@douyinfe/semi-ui 2.28.2 → 2.29.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 (87) hide show
  1. package/dist/css/semi.css +17 -11
  2. package/dist/css/semi.min.css +1 -1
  3. package/dist/umd/semi-ui.js +94 -39
  4. package/dist/umd/semi-ui.js.map +1 -1
  5. package/dist/umd/semi-ui.min.js +1 -1
  6. package/dist/umd/semi-ui.min.js.map +1 -1
  7. package/lib/cjs/datePicker/dateInput.d.ts +1 -1
  8. package/lib/cjs/datePicker/dateInput.js +15 -6
  9. package/lib/cjs/datePicker/datePicker.js +4 -4
  10. package/lib/cjs/datePicker/index.d.ts +1 -0
  11. package/lib/cjs/datePicker/quickControl.d.ts +3 -2
  12. package/lib/cjs/datePicker/quickControl.js +1 -1
  13. package/lib/cjs/form/group.d.ts +2 -0
  14. package/lib/cjs/form/group.js +16 -5
  15. package/lib/cjs/locale/interface.d.ts +1 -2
  16. package/lib/cjs/locale/source/ar.js +7 -8
  17. package/lib/cjs/locale/source/de.js +4 -5
  18. package/lib/cjs/locale/source/en_GB.js +4 -5
  19. package/lib/cjs/locale/source/en_US.js +4 -5
  20. package/lib/cjs/locale/source/es.js +4 -5
  21. package/lib/cjs/locale/source/fr.js +4 -5
  22. package/lib/cjs/locale/source/id_ID.js +4 -5
  23. package/lib/cjs/locale/source/it.js +4 -5
  24. package/lib/cjs/locale/source/ja_JP.js +4 -5
  25. package/lib/cjs/locale/source/ko_KR.js +4 -5
  26. package/lib/cjs/locale/source/ms_MY.js +4 -5
  27. package/lib/cjs/locale/source/nl_NL.d.ts +8 -0
  28. package/lib/cjs/locale/source/nl_NL.js +181 -0
  29. package/lib/cjs/locale/source/pl_PL.d.ts +8 -0
  30. package/lib/cjs/locale/source/pl_PL.js +181 -0
  31. package/lib/cjs/locale/source/pt_BR.js +4 -5
  32. package/lib/cjs/locale/source/ro.d.ts +1 -2
  33. package/lib/cjs/locale/source/ro.js +7 -8
  34. package/lib/cjs/locale/source/ru_RU.js +7 -8
  35. package/lib/cjs/locale/source/sv_SE.d.ts +7 -0
  36. package/lib/cjs/locale/source/sv_SE.js +180 -0
  37. package/lib/cjs/locale/source/th_TH.js +4 -5
  38. package/lib/cjs/locale/source/tr_TR.js +2 -3
  39. package/lib/cjs/locale/source/vi_VN.js +4 -5
  40. package/lib/cjs/locale/source/zh_CN.js +4 -5
  41. package/lib/cjs/locale/source/zh_TW.js +4 -5
  42. package/lib/cjs/pagination/index.js +7 -4
  43. package/lib/cjs/slider/index.js +3 -10
  44. package/lib/cjs/tooltip/index.js +5 -1
  45. package/lib/cjs/transfer/index.d.ts +16 -1
  46. package/lib/cjs/transfer/index.js +37 -3
  47. package/lib/es/datePicker/dateInput.d.ts +1 -1
  48. package/lib/es/datePicker/dateInput.js +17 -6
  49. package/lib/es/datePicker/datePicker.js +4 -4
  50. package/lib/es/datePicker/index.d.ts +1 -0
  51. package/lib/es/datePicker/quickControl.d.ts +3 -2
  52. package/lib/es/datePicker/quickControl.js +1 -1
  53. package/lib/es/form/group.d.ts +2 -0
  54. package/lib/es/form/group.js +16 -5
  55. package/lib/es/locale/interface.d.ts +1 -2
  56. package/lib/es/locale/source/ar.js +7 -8
  57. package/lib/es/locale/source/de.js +4 -5
  58. package/lib/es/locale/source/en_GB.js +4 -5
  59. package/lib/es/locale/source/en_US.js +4 -5
  60. package/lib/es/locale/source/es.js +4 -5
  61. package/lib/es/locale/source/fr.js +4 -5
  62. package/lib/es/locale/source/id_ID.js +4 -5
  63. package/lib/es/locale/source/it.js +4 -5
  64. package/lib/es/locale/source/ja_JP.js +4 -5
  65. package/lib/es/locale/source/ko_KR.js +4 -5
  66. package/lib/es/locale/source/ms_MY.js +4 -5
  67. package/lib/es/locale/source/nl_NL.d.ts +8 -0
  68. package/lib/es/locale/source/nl_NL.js +173 -0
  69. package/lib/es/locale/source/pl_PL.d.ts +8 -0
  70. package/lib/es/locale/source/pl_PL.js +173 -0
  71. package/lib/es/locale/source/pt_BR.js +4 -5
  72. package/lib/es/locale/source/ro.d.ts +1 -2
  73. package/lib/es/locale/source/ro.js +7 -8
  74. package/lib/es/locale/source/ru_RU.js +7 -8
  75. package/lib/es/locale/source/sv_SE.d.ts +7 -0
  76. package/lib/es/locale/source/sv_SE.js +172 -0
  77. package/lib/es/locale/source/th_TH.js +4 -5
  78. package/lib/es/locale/source/tr_TR.js +2 -3
  79. package/lib/es/locale/source/vi_VN.js +4 -5
  80. package/lib/es/locale/source/zh_CN.js +4 -5
  81. package/lib/es/locale/source/zh_TW.js +4 -5
  82. package/lib/es/pagination/index.js +7 -4
  83. package/lib/es/slider/index.js +3 -10
  84. package/lib/es/tooltip/index.js +5 -1
  85. package/lib/es/transfer/index.d.ts +16 -1
  86. package/lib/es/transfer/index.js +37 -3
  87. package/package.json +8 -8
@@ -3,11 +3,10 @@ const local = {
3
3
  code: 'zh-CN',
4
4
  dateFnsLocale: zhCN,
5
5
  Pagination: {
6
- item: '',
7
- page: '页',
8
- pageSize: '条/页',
9
- total: '',
10
- jumpTo: '跳至'
6
+ pageSize: '${pageSize} 条/页',
7
+ total: '共 ${total} 页',
8
+ jumpTo: '跳至',
9
+ page: ''
11
10
  },
12
11
  Modal: {
13
12
  confirm: '确定',
@@ -3,11 +3,10 @@ const local = {
3
3
  code: 'zh-TW',
4
4
  dateFnsLocale: zhTW,
5
5
  Pagination: {
6
- item: '',
7
- page: '頁',
8
- pageSize: '條/頁',
9
- total: '',
10
- jumpTo: '跳至'
6
+ pageSize: '${pageSize} 條/頁',
7
+ total: '共 ${total} 頁',
8
+ jumpTo: '跳至',
9
+ page: ''
11
10
  },
12
11
  Modal: {
13
12
  confirm: '確定',
@@ -197,19 +197,20 @@ export default class Pagination extends BaseComponent {
197
197
  return null;
198
198
  }
199
199
 
200
- const pageSizeText = locale.pageSize;
201
200
  const newPageSizeOpts = this.foundation.pageSizeInOpts();
201
+ const pageSizeToken = locale.pageSize; // Display pageSize in a specific language format order
202
+
202
203
  const options = newPageSizeOpts.map(size => /*#__PURE__*/React.createElement(Option, {
203
204
  value: size,
204
205
  key: size
205
- }, /*#__PURE__*/React.createElement("span", null, `${size} `, pageSizeText)));
206
+ }, /*#__PURE__*/React.createElement("span", null, pageSizeToken.replace('${pageSize}', size.toString()))));
206
207
  return /*#__PURE__*/React.createElement("div", {
207
208
  className: switchCls
208
209
  }, /*#__PURE__*/React.createElement(Select, {
209
210
  "aria-label": "Page size selector",
210
211
  onChange: newPageSize => this.foundation.changePageSize(newPageSize),
211
212
  value: pageSize,
212
- key: pageSizeText,
213
+ key: pageSize,
213
214
  position: popoverPosition || 'bottomRight',
214
215
  clickToHide: true,
215
216
  dropdownClassName: `${prefixCls}-select-dropdown`
@@ -389,12 +390,14 @@ export default class Pagination extends BaseComponent {
389
390
  return null;
390
391
  }
391
392
 
393
+ const totalNum = Math.ceil(total / pageSize);
394
+ const totalToken = locale.total.replace('${total}', totalNum.toString());
392
395
  return /*#__PURE__*/React.createElement("ul", {
393
396
  className: paginationCls,
394
397
  style: style
395
398
  }, showTotal ? /*#__PURE__*/React.createElement("span", {
396
399
  className: showTotalCls
397
- }, locale.total, ` ${Math.ceil(total / pageSize)} `, locale.page) : null, this.renderPrevBtn(), this.renderPageList(), this.renderNextBtn(), this.renderPageSizeSwitch(locale), this.renderQuickJump(locale));
400
+ }, totalToken) : null, this.renderPrevBtn(), this.renderPageList(), this.renderNextBtn(), this.renderPageSizeSwitch(locale), this.renderQuickJump(locale));
398
401
  }
399
402
 
400
403
  render() {
@@ -54,10 +54,6 @@ export default class Slider extends BaseComponent {
54
54
  tipVisible,
55
55
  tipChildren
56
56
  } = this.foundation.computeHandleVisibleVal(tooltipVisible && isInRenderTree, tipFormatter, range);
57
- const transform = {
58
- top: 'translateY(-50%)',
59
- left: 'translateX(-50%)'
60
- };
61
57
  const minClass = cls(cssClasses.HANDLE, {
62
58
  [`${cssClasses.HANDLE}-clicked`]: chooseMovePos === 'min' && isDrag
63
59
  });
@@ -90,8 +86,7 @@ export default class Slider extends BaseComponent {
90
86
  className: minClass,
91
87
  style: {
92
88
  [stylePos]: `${minPercent * 100}%`,
93
- zIndex: chooseMovePos === 'min' && isDrag ? 2 : 1,
94
- transform: transform[stylePos]
89
+ zIndex: chooseMovePos === 'min' && isDrag ? 2 : 1
95
90
  },
96
91
  onMouseDown: e => {
97
92
  this.foundation.onHandleDown(e, 'min');
@@ -142,8 +137,7 @@ export default class Slider extends BaseComponent {
142
137
  className: minClass,
143
138
  style: {
144
139
  [stylePos]: `${minPercent * 100}%`,
145
- zIndex: chooseMovePos === 'min' ? 2 : 1,
146
- transform: transform[stylePos]
140
+ zIndex: chooseMovePos === 'min' ? 2 : 1
147
141
  },
148
142
  onMouseDown: e => {
149
143
  this.foundation.onHandleDown(e, 'min');
@@ -194,8 +188,7 @@ export default class Slider extends BaseComponent {
194
188
  className: maxClass,
195
189
  style: {
196
190
  [stylePos]: `${maxPercent * 100}%`,
197
- zIndex: chooseMovePos === 'max' ? 2 : 1,
198
- transform: transform[stylePos]
191
+ zIndex: chooseMovePos === 'max' ? 2 : 1
199
192
  },
200
193
  onMouseDown: e => {
201
194
  this.foundation.onHandleDown(e, 'max');
@@ -590,7 +590,11 @@ export default class Tooltip extends BaseComponent {
590
590
  warning(this.props.mouseLeaveDelay < this.props.mouseEnterDelay, "[Semi Tooltip] 'mouseLeaveDelay' cannot be less than 'mouseEnterDelay', which may cause the dropdown layer to not be hidden.");
591
591
 
592
592
  if (prevProps.visible !== this.props.visible) {
593
- this.props.visible ? this.foundation.delayShow() : this.foundation.delayHide();
593
+ if (['hover', 'focus'].includes(this.props.trigger)) {
594
+ this.props.visible ? this.foundation.delayShow() : this.foundation.delayHide();
595
+ } else {
596
+ this.props.visible ? this.foundation.show() : this.foundation.hide();
597
+ }
594
598
  }
595
599
 
596
600
  if (!_isEqual(prevProps.rePosKey, this.props.rePosKey)) {
@@ -75,7 +75,20 @@ interface HeaderConfig {
75
75
  onAllClick: () => void;
76
76
  type: string;
77
77
  showButton: boolean;
78
+ num: number;
79
+ allChecked?: boolean;
78
80
  }
81
+ declare type SourceHeaderProps = {
82
+ num: number;
83
+ showButton: boolean;
84
+ allChecked: boolean;
85
+ onAllClick: () => void;
86
+ };
87
+ declare type SelectedHeaderProps = {
88
+ num: number;
89
+ showButton: boolean;
90
+ onClear: () => void;
91
+ };
79
92
  export interface TransferState {
80
93
  data: Array<ResolvedDataItem>;
81
94
  selectedItems: Map<number | string, ResolvedDataItem>;
@@ -105,6 +118,8 @@ export interface TransferProps {
105
118
  renderSelectedItem?: (item: RenderSelectedItemProps) => React.ReactNode;
106
119
  renderSourcePanel?: (sourcePanelProps: SourcePanelProps) => React.ReactNode;
107
120
  renderSelectedPanel?: (selectedPanelProps: SelectedPanelProps) => React.ReactNode;
121
+ renderSourceHeader?: (headProps: SourceHeaderProps) => React.ReactNode;
122
+ renderSelectedHeader?: (headProps: SelectedHeaderProps) => React.ReactNode;
108
123
  }
109
124
  declare class Transfer extends BaseComponent<TransferProps, TransferState> {
110
125
  static propTypes: {
@@ -156,7 +171,7 @@ declare class Transfer extends BaseComponent<TransferProps, TransferState> {
156
171
  onSelectOrRemove(item: ResolvedDataItem): void;
157
172
  onSortEnd(callbackProps: OnSortEndProps): void;
158
173
  renderFilter(locale: Locale['Transfer']): JSX.Element;
159
- renderHeader(headerConfig: HeaderConfig): JSX.Element;
174
+ renderHeader(headerConfig: HeaderConfig): string | number | boolean | React.ReactFragment | JSX.Element;
160
175
  renderLeftItem(item: ResolvedDataItem, index: number): string | number | boolean | React.ReactFragment | JSX.Element;
161
176
  renderLeft(locale: Locale['Transfer']): string | number | boolean | React.ReactFragment | JSX.Element;
162
177
  renderGroupTitle(group: GroupItem, index: number): JSX.Element;
@@ -192,7 +192,9 @@ class Transfer extends BaseComponent {
192
192
 
193
193
  renderHeader(headerConfig) {
194
194
  const {
195
- disabled
195
+ disabled,
196
+ renderSourceHeader,
197
+ renderSelectedHeader
196
198
  } = this.props;
197
199
  const {
198
200
  totalContent,
@@ -206,6 +208,35 @@ class Transfer extends BaseComponent {
206
208
  [`${prefixCls}-right-header`]: type === 'right',
207
209
  [`${prefixCls}-left-header`]: type === 'left'
208
210
  });
211
+
212
+ if (type === 'left' && typeof renderSourceHeader === 'function') {
213
+ const {
214
+ num,
215
+ showButton,
216
+ allChecked,
217
+ onAllClick
218
+ } = headerConfig;
219
+ return renderSourceHeader({
220
+ num,
221
+ showButton,
222
+ allChecked,
223
+ onAllClick
224
+ });
225
+ }
226
+
227
+ if (type === 'right' && typeof renderSelectedHeader === 'function') {
228
+ const {
229
+ num,
230
+ showButton,
231
+ onAllClick: onClear
232
+ } = headerConfig;
233
+ return renderSelectedHeader({
234
+ num,
235
+ showButton,
236
+ onClear
237
+ });
238
+ }
239
+
209
240
  return /*#__PURE__*/React.createElement("div", {
210
241
  className: headerCls
211
242
  }, /*#__PURE__*/React.createElement("span", {
@@ -281,7 +312,9 @@ class Transfer extends BaseComponent {
281
312
  allContent: leftContainesNotInSelected ? locale.selectAll : locale.clearSelectAll,
282
313
  onAllClick: () => this.foundation.handleAll(leftContainesNotInSelected),
283
314
  type: 'left',
284
- showButton: type !== strings.TYPE_TREE_TO_LIST
315
+ showButton: type !== strings.TYPE_TREE_TO_LIST,
316
+ num: showNumber,
317
+ allChecked: !leftContainesNotInSelected
285
318
  };
286
319
  const inputCom = this.renderFilter(locale);
287
320
  const headerCom = this.renderHeader(headerConfig);
@@ -529,7 +562,8 @@ class Transfer extends BaseComponent {
529
562
  allContent: locale.clear,
530
563
  onAllClick: () => this.foundation.handleClear(),
531
564
  type: 'right',
532
- showButton: Boolean(selectedData.length)
565
+ showButton: Boolean(selectedData.length),
566
+ num: selectedData.length
533
567
  };
534
568
  const headerCom = this.renderHeader(headerConfig);
535
569
  const emptyCom = this.renderEmpty('right', emptyContent.right ? emptyContent.right : locale.emptyRight);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@douyinfe/semi-ui",
3
- "version": "2.28.2",
3
+ "version": "2.29.0",
4
4
  "description": "",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es/index.js",
@@ -17,12 +17,12 @@
17
17
  "lib/*"
18
18
  ],
19
19
  "dependencies": {
20
- "@douyinfe/semi-animation": "2.28.2",
21
- "@douyinfe/semi-animation-react": "2.28.2",
22
- "@douyinfe/semi-foundation": "2.28.2",
23
- "@douyinfe/semi-icons": "2.28.2",
24
- "@douyinfe/semi-illustrations": "2.28.2",
25
- "@douyinfe/semi-theme-default": "2.28.2",
20
+ "@douyinfe/semi-animation": "2.29.0",
21
+ "@douyinfe/semi-animation-react": "2.29.0",
22
+ "@douyinfe/semi-foundation": "2.29.0",
23
+ "@douyinfe/semi-icons": "2.29.0",
24
+ "@douyinfe/semi-illustrations": "2.29.0",
25
+ "@douyinfe/semi-theme-default": "2.29.0",
26
26
  "async-validator": "^3.5.0",
27
27
  "classnames": "^2.2.6",
28
28
  "copy-text-to-clipboard": "^2.1.1",
@@ -69,7 +69,7 @@
69
69
  ],
70
70
  "author": "",
71
71
  "license": "MIT",
72
- "gitHead": "d9651593e39ad3333e0f138a678460e959d01bbd",
72
+ "gitHead": "cf2c6529fb778787c2d3f6cb826e64af358a5215",
73
73
  "devDependencies": {
74
74
  "@babel/plugin-proposal-decorators": "^7.15.8",
75
75
  "@babel/plugin-transform-runtime": "^7.15.8",