@douyinfe/semi-ui 2.25.2 → 2.26.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.
@@ -1338,6 +1338,8 @@ class Table extends _baseComponent.default {
1338
1338
  if (this.props.defaultExpandAllRows && handledProps.groups && handledProps.groups.size || this.props.expandAllRows || this.props.expandAllGroupRows) {
1339
1339
  this.foundation.initExpandedRowKeys(handledProps);
1340
1340
  }
1341
+
1342
+ states.pagination = handledProps.pagination;
1341
1343
  } // Centrally update paging related state
1342
1344
 
1343
1345
 
@@ -56,6 +56,7 @@ export interface TagInputState {
56
56
  focusing?: boolean;
57
57
  hovering?: boolean;
58
58
  active?: boolean;
59
+ entering?: boolean;
59
60
  }
60
61
  declare class TagInput extends BaseComponent<TagInputProps, TagInputState> {
61
62
  static propTypes: {
@@ -151,6 +152,8 @@ declare class TagInput extends BaseComponent<TagInputProps, TagInputState> {
151
152
  renderTags(): JSX.Element;
152
153
  blur(): void;
153
154
  focus(): void;
155
+ handleInputCompositionStart: (e: any) => void;
156
+ handleInputCompositionEnd: (e: any) => void;
154
157
  render(): JSX.Element;
155
158
  }
156
159
  export default TagInput;
@@ -186,13 +186,22 @@ class TagInput extends _baseComponent.default {
186
186
  this.foundation.handleSortEnd(callbackProps);
187
187
  };
188
188
 
189
+ this.handleInputCompositionStart = e => {
190
+ this.foundation.handleInputCompositionStart(e);
191
+ };
192
+
193
+ this.handleInputCompositionEnd = e => {
194
+ this.foundation.handleInputCompositionEnd(e);
195
+ };
196
+
189
197
  this.foundation = new _foundation.default(this.adapter);
190
198
  this.state = {
191
199
  tagsArray: props.defaultValue || [],
192
200
  inputValue: '',
193
201
  focusing: false,
194
202
  hovering: false,
195
- active: false
203
+ active: false,
204
+ entering: false
196
205
  };
197
206
  this.inputRef = /*#__PURE__*/_react.default.createRef();
198
207
  this.tagInputRef = /*#__PURE__*/_react.default.createRef();
@@ -268,6 +277,11 @@ class TagInput extends _baseComponent.default {
268
277
  active
269
278
  });
270
279
  },
280
+ setEntering: entering => {
281
+ this.setState({
282
+ entering
283
+ });
284
+ },
271
285
  getClickOutsideHandler: () => {
272
286
  return this.clickOutsideHandler;
273
287
  },
@@ -558,7 +572,9 @@ class TagInput extends _baseComponent.default {
558
572
  },
559
573
  onFocus: e => {
560
574
  this.handleInputFocus(e);
561
- }
575
+ },
576
+ onCompositionStart: this.handleInputCompositionStart,
577
+ onCompositionEnd: this.handleInputCompositionEnd
562
578
  })), this.renderClearBtn(), this.renderSuffix())
563
579
  );
564
580
  }
@@ -107,7 +107,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
107
107
  arrowIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
108
108
  clearIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
109
109
  defaultOpen: PropTypes.Requireable<boolean>;
110
- defaultValue: PropTypes.Requireable<NonNullable<string | any[]>>;
110
+ defaultValue: PropTypes.Requireable<NonNullable<string | object>>;
111
111
  defaultExpandAll: PropTypes.Requireable<boolean>;
112
112
  defaultExpandedKeys: PropTypes.Requireable<any[]>;
113
113
  expandAll: PropTypes.Requireable<boolean>;
@@ -202,6 +202,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
202
202
  renderContent: () => JSX.Element;
203
203
  removeTag: (removedKey: TreeNodeData['key']) => void;
204
204
  handleClick: (e: React.MouseEvent) => void;
205
+ getDataForKeyNotInKeyEntities: (key: string) => any;
205
206
  handleSelectionEnterPress: (e: React.KeyboardEvent<HTMLDivElement>) => void;
206
207
  hasValue: () => boolean;
207
208
  showClearBtn: () => boolean;
@@ -5,6 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
+ var _isNull2 = _interopRequireDefault(require("lodash/isNull"));
9
+
10
+ var _isUndefined2 = _interopRequireDefault(require("lodash/isUndefined"));
11
+
8
12
  var _isFunction2 = _interopRequireDefault(require("lodash/isFunction"));
9
13
 
10
14
  var _get2 = _interopRequireDefault(require("lodash/get"));
@@ -148,6 +152,10 @@ class TreeSelect extends _baseComponent.default {
148
152
  this.handleClick = e => {
149
153
  this.foundation.handleClick(e);
150
154
  };
155
+
156
+ this.getDataForKeyNotInKeyEntities = key => {
157
+ return this.foundation.getDataForKeyNotInKeyEntities(key);
158
+ };
151
159
  /* istanbul ignore next */
152
160
 
153
161
 
@@ -218,15 +226,15 @@ class TreeSelect extends _baseComponent.default {
218
226
  let renderKeys = [];
219
227
 
220
228
  if (checkRelation === 'related') {
221
- renderKeys = (0, _treeUtil.normalizeKeyList)([...checkedKeys], keyEntities, leafOnly);
229
+ renderKeys = (0, _treeUtil.normalizeKeyList)([...checkedKeys], keyEntities, leafOnly, true);
222
230
  } else if (checkRelation === 'unRelated' && Object.keys(keyEntities).length > 0) {
223
231
  renderKeys = [...realCheckedKeys];
224
232
  }
225
233
 
226
234
  const tagList = []; // eslint-disable-next-line @typescript-eslint/no-shadow
227
235
 
228
- renderKeys.forEach(key => {
229
- const item = keyEntities[key].data;
236
+ renderKeys.forEach((key, index) => {
237
+ const item = keyEntities[key] && keyEntities[key].data.key === key ? keyEntities[key].data : this.getDataForKeyNotInKeyEntities(key);
230
238
 
231
239
  const onClose = (tagContent, e) => {
232
240
  if (e && typeof e.preventDefault === 'function') {
@@ -240,12 +248,12 @@ class TreeSelect extends _baseComponent.default {
240
248
  const {
241
249
  content,
242
250
  isRenderInTag
243
- } = treeNodeLabelProp in item && item ? renderSelectedItem(item, {
244
- index: key,
251
+ } = item && treeNodeLabelProp in item ? renderSelectedItem(item, {
252
+ index,
245
253
  onClose
246
254
  }) : null;
247
255
 
248
- if (!content) {
256
+ if ((0, _isNull2.default)(content) || (0, _isUndefined2.default)(content)) {
249
257
  return;
250
258
  }
251
259
 
@@ -255,7 +263,7 @@ class TreeSelect extends _baseComponent.default {
255
263
  color: 'white',
256
264
  visible: true,
257
265
  onClose,
258
- key,
266
+ key: "tag-".concat(key, "-").concat(index),
259
267
  size: size === 'small' ? 'small' : 'large'
260
268
  };
261
269
 
@@ -466,7 +474,7 @@ class TreeSelect extends _baseComponent.default {
466
474
  ["".concat(prefixcls, "-with-suffix")]: suffix,
467
475
  ["".concat(prefixcls, "-with-suffix")]: suffix
468
476
  }, className);
469
- const triggerRenderKeys = multiple ? (0, _treeUtil.normalizeKeyList)([...checkedKeys], keyEntities, leafOnly) : selectedKeys;
477
+ const triggerRenderKeys = multiple ? (0, _treeUtil.normalizeKeyList)([...checkedKeys], keyEntities, leafOnly, true) : selectedKeys;
470
478
  const inner = useCustomTrigger ? /*#__PURE__*/_react.default.createElement(_trigger.default, {
471
479
  inputValue: inputValue,
472
480
  // eslint-disable-next-line @typescript-eslint/no-shadow
@@ -530,8 +538,8 @@ class TreeSelect extends _baseComponent.default {
530
538
  renderSelectedItem: propRenderSelectedItem,
531
539
  treeNodeLabelProp
532
540
  } = this.props;
533
- const keyList = (0, _treeUtil.normalizeKeyList)([key], keyEntities, leafOnly);
534
- const nodes = keyList.map(i => keyEntities[i].data);
541
+ const keyList = (0, _treeUtil.normalizeKeyList)([key], keyEntities, leafOnly, true);
542
+ const nodes = keyList.map(i => keyEntities[key] && keyEntities[key].data.key === key ? keyEntities[key].data : this.getDataForKeyNotInKeyEntities(key));
535
543
  const value = (0, _treeUtil.getValueOrKey)(nodes);
536
544
  const tagCls = (0, _classnames.default)("".concat(prefixcls, "-selection-tag"), {
537
545
  ["".concat(prefixcls, "-selection-tag-disabled")]: disabled
@@ -564,7 +572,7 @@ class TreeSelect extends _baseComponent.default {
564
572
  const {
565
573
  content,
566
574
  isRenderInTag
567
- } = treeNodeLabelProp in item && item ? renderSelectedItem(item, {
575
+ } = item && treeNodeLabelProp in item ? renderSelectedItem(item, {
568
576
  index: idx,
569
577
  onClose
570
578
  }) : null;
@@ -602,7 +610,7 @@ class TreeSelect extends _baseComponent.default {
602
610
  let keyList = [];
603
611
 
604
612
  if (checkRelation === 'related') {
605
- keyList = (0, _treeUtil.normalizeKeyList)(checkedKeys, keyEntities, leafOnly);
613
+ keyList = (0, _treeUtil.normalizeKeyList)(checkedKeys, keyEntities, leafOnly, true);
606
614
  } else if (checkRelation === 'unRelated') {
607
615
  keyList = [...realCheckedKeys];
608
616
  } // auto focus search input divide into two parts
@@ -1328,7 +1336,7 @@ TreeSelect.propTypes = {
1328
1336
  arrowIcon: _propTypes.default.node,
1329
1337
  clearIcon: _propTypes.default.node,
1330
1338
  defaultOpen: _propTypes.default.bool,
1331
- defaultValue: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.array]),
1339
+ defaultValue: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.array, _propTypes.default.object]),
1332
1340
  defaultExpandAll: _propTypes.default.bool,
1333
1341
  defaultExpandedKeys: _propTypes.default.array,
1334
1342
  expandAll: _propTypes.default.bool,
@@ -44,6 +44,10 @@ const getRenderText = function (originEle, rows) {
44
44
  let ellipsisPos // eslint-disable-next-line max-params
45
45
  = arguments.length > 6 ? arguments[6] : undefined;
46
46
 
47
+ if (content.length === 0) {
48
+ return '';
49
+ }
50
+
47
51
  if (!ellipsisContainer) {
48
52
  ellipsisContainer = document.createElement('div');
49
53
  ellipsisContainer.setAttribute('aria-hidden', 'true');
@@ -1295,6 +1295,8 @@ class Table extends BaseComponent {
1295
1295
  if (this.props.defaultExpandAllRows && handledProps.groups && handledProps.groups.size || this.props.expandAllRows || this.props.expandAllGroupRows) {
1296
1296
  this.foundation.initExpandedRowKeys(handledProps);
1297
1297
  }
1298
+
1299
+ states.pagination = handledProps.pagination;
1298
1300
  } // Centrally update paging related state
1299
1301
 
1300
1302
 
@@ -56,6 +56,7 @@ export interface TagInputState {
56
56
  focusing?: boolean;
57
57
  hovering?: boolean;
58
58
  active?: boolean;
59
+ entering?: boolean;
59
60
  }
60
61
  declare class TagInput extends BaseComponent<TagInputProps, TagInputState> {
61
62
  static propTypes: {
@@ -151,6 +152,8 @@ declare class TagInput extends BaseComponent<TagInputProps, TagInputState> {
151
152
  renderTags(): JSX.Element;
152
153
  blur(): void;
153
154
  focus(): void;
155
+ handleInputCompositionStart: (e: any) => void;
156
+ handleInputCompositionEnd: (e: any) => void;
154
157
  render(): JSX.Element;
155
158
  }
156
159
  export default TagInput;
@@ -157,13 +157,22 @@ class TagInput extends BaseComponent {
157
157
  this.foundation.handleSortEnd(callbackProps);
158
158
  };
159
159
 
160
+ this.handleInputCompositionStart = e => {
161
+ this.foundation.handleInputCompositionStart(e);
162
+ };
163
+
164
+ this.handleInputCompositionEnd = e => {
165
+ this.foundation.handleInputCompositionEnd(e);
166
+ };
167
+
160
168
  this.foundation = new TagInputFoundation(this.adapter);
161
169
  this.state = {
162
170
  tagsArray: props.defaultValue || [],
163
171
  inputValue: '',
164
172
  focusing: false,
165
173
  hovering: false,
166
- active: false
174
+ active: false,
175
+ entering: false
167
176
  };
168
177
  this.inputRef = /*#__PURE__*/React.createRef();
169
178
  this.tagInputRef = /*#__PURE__*/React.createRef();
@@ -239,6 +248,11 @@ class TagInput extends BaseComponent {
239
248
  active
240
249
  });
241
250
  },
251
+ setEntering: entering => {
252
+ this.setState({
253
+ entering
254
+ });
255
+ },
242
256
  getClickOutsideHandler: () => {
243
257
  return this.clickOutsideHandler;
244
258
  },
@@ -528,7 +542,9 @@ class TagInput extends BaseComponent {
528
542
  },
529
543
  onFocus: e => {
530
544
  this.handleInputFocus(e);
531
- }
545
+ },
546
+ onCompositionStart: this.handleInputCompositionStart,
547
+ onCompositionEnd: this.handleInputCompositionEnd
532
548
  })), this.renderClearBtn(), this.renderSuffix())
533
549
  );
534
550
  }
@@ -107,7 +107,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
107
107
  arrowIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
108
108
  clearIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
109
109
  defaultOpen: PropTypes.Requireable<boolean>;
110
- defaultValue: PropTypes.Requireable<NonNullable<string | any[]>>;
110
+ defaultValue: PropTypes.Requireable<NonNullable<string | object>>;
111
111
  defaultExpandAll: PropTypes.Requireable<boolean>;
112
112
  defaultExpandedKeys: PropTypes.Requireable<any[]>;
113
113
  expandAll: PropTypes.Requireable<boolean>;
@@ -202,6 +202,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
202
202
  renderContent: () => JSX.Element;
203
203
  removeTag: (removedKey: TreeNodeData['key']) => void;
204
204
  handleClick: (e: React.MouseEvent) => void;
205
+ getDataForKeyNotInKeyEntities: (key: string) => any;
205
206
  handleSelectionEnterPress: (e: React.KeyboardEvent<HTMLDivElement>) => void;
206
207
  hasValue: () => boolean;
207
208
  showClearBtn: () => boolean;
@@ -1,3 +1,5 @@
1
+ import _isNull from "lodash/isNull";
2
+ import _isUndefined from "lodash/isUndefined";
1
3
  import _isFunction from "lodash/isFunction";
2
4
  import _get from "lodash/get";
3
5
  import _noop from "lodash/noop";
@@ -101,6 +103,10 @@ class TreeSelect extends BaseComponent {
101
103
  this.handleClick = e => {
102
104
  this.foundation.handleClick(e);
103
105
  };
106
+
107
+ this.getDataForKeyNotInKeyEntities = key => {
108
+ return this.foundation.getDataForKeyNotInKeyEntities(key);
109
+ };
104
110
  /* istanbul ignore next */
105
111
 
106
112
 
@@ -171,15 +177,15 @@ class TreeSelect extends BaseComponent {
171
177
  let renderKeys = [];
172
178
 
173
179
  if (checkRelation === 'related') {
174
- renderKeys = normalizeKeyList([...checkedKeys], keyEntities, leafOnly);
180
+ renderKeys = normalizeKeyList([...checkedKeys], keyEntities, leafOnly, true);
175
181
  } else if (checkRelation === 'unRelated' && Object.keys(keyEntities).length > 0) {
176
182
  renderKeys = [...realCheckedKeys];
177
183
  }
178
184
 
179
185
  const tagList = []; // eslint-disable-next-line @typescript-eslint/no-shadow
180
186
 
181
- renderKeys.forEach(key => {
182
- const item = keyEntities[key].data;
187
+ renderKeys.forEach((key, index) => {
188
+ const item = keyEntities[key] && keyEntities[key].data.key === key ? keyEntities[key].data : this.getDataForKeyNotInKeyEntities(key);
183
189
 
184
190
  const onClose = (tagContent, e) => {
185
191
  if (e && typeof e.preventDefault === 'function') {
@@ -193,12 +199,12 @@ class TreeSelect extends BaseComponent {
193
199
  const {
194
200
  content,
195
201
  isRenderInTag
196
- } = treeNodeLabelProp in item && item ? renderSelectedItem(item, {
197
- index: key,
202
+ } = item && treeNodeLabelProp in item ? renderSelectedItem(item, {
203
+ index,
198
204
  onClose
199
205
  }) : null;
200
206
 
201
- if (!content) {
207
+ if (_isNull(content) || _isUndefined(content)) {
202
208
  return;
203
209
  }
204
210
 
@@ -208,7 +214,7 @@ class TreeSelect extends BaseComponent {
208
214
  color: 'white',
209
215
  visible: true,
210
216
  onClose,
211
- key,
217
+ key: "tag-".concat(key, "-").concat(index),
212
218
  size: size === 'small' ? 'small' : 'large'
213
219
  };
214
220
 
@@ -421,7 +427,7 @@ class TreeSelect extends BaseComponent {
421
427
  ["".concat(prefixcls, "-with-suffix")]: suffix,
422
428
  ["".concat(prefixcls, "-with-suffix")]: suffix
423
429
  }, className);
424
- const triggerRenderKeys = multiple ? normalizeKeyList([...checkedKeys], keyEntities, leafOnly) : selectedKeys;
430
+ const triggerRenderKeys = multiple ? normalizeKeyList([...checkedKeys], keyEntities, leafOnly, true) : selectedKeys;
425
431
  const inner = useCustomTrigger ? /*#__PURE__*/React.createElement(Trigger, {
426
432
  inputValue: inputValue,
427
433
  // eslint-disable-next-line @typescript-eslint/no-shadow
@@ -485,8 +491,8 @@ class TreeSelect extends BaseComponent {
485
491
  renderSelectedItem: propRenderSelectedItem,
486
492
  treeNodeLabelProp
487
493
  } = this.props;
488
- const keyList = normalizeKeyList([key], keyEntities, leafOnly);
489
- const nodes = keyList.map(i => keyEntities[i].data);
494
+ const keyList = normalizeKeyList([key], keyEntities, leafOnly, true);
495
+ const nodes = keyList.map(i => keyEntities[key] && keyEntities[key].data.key === key ? keyEntities[key].data : this.getDataForKeyNotInKeyEntities(key));
490
496
  const value = getValueOrKey(nodes);
491
497
  const tagCls = cls("".concat(prefixcls, "-selection-tag"), {
492
498
  ["".concat(prefixcls, "-selection-tag-disabled")]: disabled
@@ -519,7 +525,7 @@ class TreeSelect extends BaseComponent {
519
525
  const {
520
526
  content,
521
527
  isRenderInTag
522
- } = treeNodeLabelProp in item && item ? renderSelectedItem(item, {
528
+ } = item && treeNodeLabelProp in item ? renderSelectedItem(item, {
523
529
  index: idx,
524
530
  onClose
525
531
  }) : null;
@@ -557,7 +563,7 @@ class TreeSelect extends BaseComponent {
557
563
  let keyList = [];
558
564
 
559
565
  if (checkRelation === 'related') {
560
- keyList = normalizeKeyList(checkedKeys, keyEntities, leafOnly);
566
+ keyList = normalizeKeyList(checkedKeys, keyEntities, leafOnly, true);
561
567
  } else if (checkRelation === 'unRelated') {
562
568
  keyList = [...realCheckedKeys];
563
569
  } // auto focus search input divide into two parts
@@ -1282,7 +1288,7 @@ TreeSelect.propTypes = {
1282
1288
  arrowIcon: PropTypes.node,
1283
1289
  clearIcon: PropTypes.node,
1284
1290
  defaultOpen: PropTypes.bool,
1285
- defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),
1291
+ defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),
1286
1292
  defaultExpandAll: PropTypes.bool,
1287
1293
  defaultExpandedKeys: PropTypes.array,
1288
1294
  expandAll: PropTypes.bool,
@@ -34,6 +34,10 @@ const getRenderText = function (originEle, rows) {
34
34
  let ellipsisPos // eslint-disable-next-line max-params
35
35
  = arguments.length > 6 ? arguments[6] : undefined;
36
36
 
37
+ if (content.length === 0) {
38
+ return '';
39
+ }
40
+
37
41
  if (!ellipsisContainer) {
38
42
  ellipsisContainer = document.createElement('div');
39
43
  ellipsisContainer.setAttribute('aria-hidden', 'true');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@douyinfe/semi-ui",
3
- "version": "2.25.2",
3
+ "version": "2.26.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.25.2",
21
- "@douyinfe/semi-animation-react": "2.25.2",
22
- "@douyinfe/semi-foundation": "2.25.2",
23
- "@douyinfe/semi-icons": "2.25.2",
24
- "@douyinfe/semi-illustrations": "2.25.2",
25
- "@douyinfe/semi-theme-default": "2.25.2",
20
+ "@douyinfe/semi-animation": "2.26.0",
21
+ "@douyinfe/semi-animation-react": "2.26.0",
22
+ "@douyinfe/semi-foundation": "2.26.0",
23
+ "@douyinfe/semi-icons": "2.26.0",
24
+ "@douyinfe/semi-illustrations": "2.26.0",
25
+ "@douyinfe/semi-theme-default": "2.26.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": "d1cdea565d328c70a4de8636aed30c88f60732dd",
72
+ "gitHead": "7fed74a6b19a9bf9d45f56eb36c97fce0ac9de76",
73
73
  "devDependencies": {
74
74
  "@babel/plugin-proposal-decorators": "^7.15.8",
75
75
  "@babel/plugin-transform-runtime": "^7.15.8",