@douyinfe/semi-ui 2.44.0 → 2.44.1

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.
@@ -27,7 +27,7 @@ declare class ArrayFieldComponent extends Component<ArrayFieldProps, ArrayFieldS
27
27
  componentWillUnmount(): void;
28
28
  componentDidUpdate(): void;
29
29
  add(): void;
30
- addWithInitValue(lineObject: Record<string, any>): void;
30
+ addWithInitValue(rowVal: Record<string, any> | string): void;
31
31
  remove(i: number): void;
32
32
  render(): JSX.Element;
33
33
  }
@@ -120,13 +120,13 @@ class ArrayFieldComponent extends _react.Component {
120
120
  keys
121
121
  });
122
122
  }
123
- addWithInitValue(lineObject) {
123
+ addWithInitValue(rowVal) {
124
124
  const updater = this.context;
125
125
  const {
126
126
  field
127
127
  } = this.props;
128
128
  const newArrayFieldVal = updater.getValue(field) ? updater.getValue(field).slice() : [];
129
- newArrayFieldVal.push(lineObject);
129
+ newArrayFieldVal.push(rowVal);
130
130
  updater.updateStateValue(field, newArrayFieldVal, {});
131
131
  updater.updateArrayField(field, {
132
132
  updateKey: new Date().valueOf()
@@ -119,7 +119,7 @@ declare class Form<Values extends Record<string, any> = any> extends BaseCompone
119
119
  showClear?: boolean;
120
120
  showArrow?: boolean;
121
121
  renderSelectedItem?: import("../select").RenderSelectedItemFn;
122
- renderCreateItem?: (inputValue: string | number, focus: boolean) => React.ReactNode;
122
+ renderCreateItem?: (inputValue: string | number, focus: boolean, style?: React.CSSProperties) => React.ReactNode;
123
123
  renderOptionItem?: (props: import("../select").optionRenderProps) => React.ReactNode;
124
124
  onMouseEnter?: (e: React.MouseEvent<Element, MouseEvent>) => any;
125
125
  onMouseLeave?: (e: React.MouseEvent<Element, MouseEvent>) => any;
@@ -65,7 +65,7 @@ declare const FormSelect: import("react").ComponentType<import("utility-types").
65
65
  showClear?: boolean;
66
66
  showArrow?: boolean;
67
67
  renderSelectedItem?: import("../select/index").RenderSelectedItemFn;
68
- renderCreateItem?: (inputValue: string | number, focus: boolean) => import("react").ReactNode;
68
+ renderCreateItem?: (inputValue: string | number, focus: boolean, style?: import("react").CSSProperties) => import("react").ReactNode;
69
69
  renderOptionItem?: (props: import("../select/index").optionRenderProps) => import("react").ReactNode;
70
70
  onMouseEnter?: (e: import("react").MouseEvent<Element, MouseEvent>) => any;
71
71
  onMouseLeave?: (e: import("react").MouseEvent<Element, MouseEvent>) => any;
@@ -128,7 +128,7 @@ export type SelectProps = {
128
128
  showClear?: boolean;
129
129
  showArrow?: boolean;
130
130
  renderSelectedItem?: RenderSelectedItemFn;
131
- renderCreateItem?: (inputValue: OptionProps['value'], focus: boolean) => React.ReactNode;
131
+ renderCreateItem?: (inputValue: OptionProps['value'], focus: boolean, style?: React.CSSProperties) => React.ReactNode;
132
132
  renderOptionItem?: (props: optionRenderProps) => React.ReactNode;
133
133
  onMouseEnter?: (e: React.MouseEvent) => any;
134
134
  onMouseLeave?: (e: React.MouseEvent) => any;
@@ -559,7 +559,7 @@ class Select extends _baseComponent.default {
559
559
  }, locale.createText), option.value)));
560
560
  return defaultCreateItem;
561
561
  }
562
- const customCreateItem = renderCreateItem(option.value, isFocused);
562
+ const customCreateItem = renderCreateItem(option.value, isFocused, style);
563
563
  return (
564
564
  /*#__PURE__*/
565
565
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/interactive-supports-focus
@@ -843,9 +843,8 @@ class Select extends _baseComponent.default {
843
843
  const {
844
844
  maxTagCount
845
845
  } = this.props;
846
- const maxVisibleCount = selections.size - maxTagCount;
847
- const newOverFlowItemCount = maxVisibleCount > 0 ? maxVisibleCount + items.length - 1 : items.length - 1;
848
- if (items.length > 1 && overflowItemCount !== newOverFlowItemCount) {
846
+ const newOverFlowItemCount = selections.size - maxTagCount > 0 ? selections.size - maxTagCount + items.length - 1 : items.length - 1;
847
+ if (overflowItemCount !== newOverFlowItemCount) {
849
848
  this.foundation.updateOverflowItemCount(selections.size, newOverFlowItemCount);
850
849
  }
851
850
  }
@@ -858,6 +857,7 @@ class Select extends _baseComponent.default {
858
857
  className: `${prefixcls}-content-wrapper-collapse`
859
858
  }, /*#__PURE__*/_react.default.createElement(_index2.default, {
860
859
  items: normalTags,
860
+ key: String(selections.length),
861
861
  overflowRenderer: overflowItems => this.renderOverflow(overflowItems, length - 1),
862
862
  onOverflow: overflowItems => this.handleOverflow(overflowItems),
863
863
  visibleItemRenderer: (item, index) => this.renderTag(item, index)
@@ -252,8 +252,10 @@ class Tree extends _baseComponent.default {
252
252
  const treeDataHasChange = prevProps && prevProps.treeData !== props.treeData;
253
253
  return firstInProps || treeDataHasChange;
254
254
  };
255
+ const needUpdateTreeData = needUpdate('treeData');
256
+ const needUpdateSimpleJson = needUpdate('treeDataSimpleJson');
255
257
  // Update the data of tree in state
256
- if (needUpdate('treeData') || props.draggable && needUpdateData()) {
258
+ if (needUpdateTreeData || props.draggable && needUpdateData()) {
257
259
  treeData = props.treeData;
258
260
  newState.treeData = treeData;
259
261
  const entitiesMap = (0, _treeUtil.convertDataToEntities)(treeData);
@@ -261,7 +263,7 @@ class Tree extends _baseComponent.default {
261
263
  keyEntities = newState.keyEntities;
262
264
  newState.cachedKeyValuePairs = Object.assign({}, entitiesMap.valueEntities);
263
265
  valueEntities = newState.cachedKeyValuePairs;
264
- } else if (needUpdate('treeDataSimpleJson')) {
266
+ } else if (needUpdateSimpleJson) {
265
267
  // Convert treeDataSimpleJson to treeData
266
268
  treeData = (0, _treeUtil.convertJsonToData)(props.treeDataSimpleJson);
267
269
  newState.treeData = treeData;
@@ -278,7 +280,7 @@ class Tree extends _baseComponent.default {
278
280
  newState.motionType = null;
279
281
  }
280
282
  }
281
- const dataUpdated = needUpdate('treeDataSimpleJson') || needUpdate('treeData');
283
+ const dataUpdated = needUpdateSimpleJson || needUpdateTreeData;
282
284
  const expandAllWhenDataChange = dataUpdated && props.expandAll;
283
285
  if (!isSeaching) {
284
286
  // Update expandedKeys
@@ -401,7 +403,7 @@ class Tree extends _baseComponent.default {
401
403
  if (props.value) {
402
404
  checkedKeyValues = (0, _treeUtil.findKeysForValues)((0, _treeUtil.normalizeValue)(props.value, withObject) || [], valueEntities, isMultiple);
403
405
  } else {
404
- checkedKeyValues = (0, _treeUtil.updateKeys)(prevState.checkedKeys, keyEntities);
406
+ checkedKeyValues = (0, _treeUtil.updateKeys)(props.checkRelation === 'related' ? prevState.checkedKeys : prevState.realCheckedKeys, keyEntities);
405
407
  }
406
408
  }
407
409
  if (checkedKeyValues) {
@@ -895,8 +895,10 @@ class TreeSelect extends _baseComponent.default {
895
895
  const newState = {
896
896
  prevProps: props
897
897
  };
898
+ const needUpdateTreeData = needUpdate('treeData');
899
+ const needUpdateExpandedKeys = needUpdate('expandedKeys');
898
900
  // TreeNode
899
- if (needUpdate('treeData')) {
901
+ if (needUpdateTreeData) {
900
902
  treeData = props.treeData;
901
903
  newState.treeData = treeData;
902
904
  const entitiesMap = (0, _treeUtil.convertDataToEntities)(treeData);
@@ -912,9 +914,9 @@ class TreeSelect extends _baseComponent.default {
912
914
  newState.motionType = null;
913
915
  }
914
916
  }
915
- const expandAllWhenDataChange = needUpdate('treeData') && props.expandAll;
917
+ const expandAllWhenDataChange = needUpdateTreeData && props.expandAll;
916
918
  // expandedKeys
917
- if (needUpdate('expandedKeys') || prevProps && needUpdate('autoExpandParent')) {
919
+ if (needUpdateExpandedKeys || prevProps && needUpdate('autoExpandParent')) {
918
920
  newState.expandedKeys = (0, _treeUtil.calcExpandedKeys)(props.expandedKeys, keyEntities, props.autoExpandParent || !prevProps);
919
921
  // only show animation when treeData does not change
920
922
  if (prevProps && props.motion && !treeData) {
@@ -935,7 +937,7 @@ class TreeSelect extends _baseComponent.default {
935
937
  newState.expandedKeys = (0, _treeUtil.calcExpandedKeysForValues)((0, _treeUtil.normalizeValue)(props.value, withObject), keyEntities, props.multiple, valueEntities);
936
938
  }
937
939
  // flattenNodes
938
- if (treeData || needUpdate('expandedKeys')) {
940
+ if (treeData || needUpdateExpandedKeys) {
939
941
  const flattenNodes = (0, _treeUtil.flattenTreeData)(treeData || prevState.treeData, newState.expandedKeys || prevState.expandedKeys);
940
942
  newState.flattenNodes = flattenNodes;
941
943
  }
@@ -966,7 +968,7 @@ class TreeSelect extends _baseComponent.default {
966
968
  if (props.value) {
967
969
  checkedKeyValues = (0, _treeUtil.findKeysForValues)((0, _treeUtil.normalizeValue)(props.value, withObject) || [], valueEntities, isMultiple);
968
970
  } else {
969
- checkedKeyValues = (0, _treeUtil.updateKeys)(prevState.checkedKeys, keyEntities);
971
+ checkedKeyValues = (0, _treeUtil.updateKeys)(props.checkRelation === 'related' ? prevState.checkedKeys : prevState.realCheckedKeys, keyEntities);
970
972
  }
971
973
  }
972
974
  if (checkedKeyValues) {
@@ -987,7 +989,7 @@ class TreeSelect extends _baseComponent.default {
987
989
  newState.loadedKeys = new Set(props.loadedKeys);
988
990
  }
989
991
  // ================== rePosKey ==================
990
- if (needUpdate('treeData') || needUpdate('value')) {
992
+ if (needUpdateTreeData || needUpdate('value')) {
991
993
  newState.rePosKey = rePosKey + 1;
992
994
  }
993
995
  // ================ disableStrictly =================
@@ -27,7 +27,7 @@ declare class ArrayFieldComponent extends Component<ArrayFieldProps, ArrayFieldS
27
27
  componentWillUnmount(): void;
28
28
  componentDidUpdate(): void;
29
29
  add(): void;
30
- addWithInitValue(lineObject: Record<string, any>): void;
30
+ addWithInitValue(rowVal: Record<string, any> | string): void;
31
31
  remove(i: number): void;
32
32
  render(): JSX.Element;
33
33
  }
@@ -111,13 +111,13 @@ class ArrayFieldComponent extends Component {
111
111
  keys
112
112
  });
113
113
  }
114
- addWithInitValue(lineObject) {
114
+ addWithInitValue(rowVal) {
115
115
  const updater = this.context;
116
116
  const {
117
117
  field
118
118
  } = this.props;
119
119
  const newArrayFieldVal = updater.getValue(field) ? updater.getValue(field).slice() : [];
120
- newArrayFieldVal.push(lineObject);
120
+ newArrayFieldVal.push(rowVal);
121
121
  updater.updateStateValue(field, newArrayFieldVal, {});
122
122
  updater.updateArrayField(field, {
123
123
  updateKey: new Date().valueOf()
@@ -119,7 +119,7 @@ declare class Form<Values extends Record<string, any> = any> extends BaseCompone
119
119
  showClear?: boolean;
120
120
  showArrow?: boolean;
121
121
  renderSelectedItem?: import("../select").RenderSelectedItemFn;
122
- renderCreateItem?: (inputValue: string | number, focus: boolean) => React.ReactNode;
122
+ renderCreateItem?: (inputValue: string | number, focus: boolean, style?: React.CSSProperties) => React.ReactNode;
123
123
  renderOptionItem?: (props: import("../select").optionRenderProps) => React.ReactNode;
124
124
  onMouseEnter?: (e: React.MouseEvent<Element, MouseEvent>) => any;
125
125
  onMouseLeave?: (e: React.MouseEvent<Element, MouseEvent>) => any;
@@ -65,7 +65,7 @@ declare const FormSelect: import("react").ComponentType<import("utility-types").
65
65
  showClear?: boolean;
66
66
  showArrow?: boolean;
67
67
  renderSelectedItem?: import("../select/index").RenderSelectedItemFn;
68
- renderCreateItem?: (inputValue: string | number, focus: boolean) => import("react").ReactNode;
68
+ renderCreateItem?: (inputValue: string | number, focus: boolean, style?: import("react").CSSProperties) => import("react").ReactNode;
69
69
  renderOptionItem?: (props: import("../select/index").optionRenderProps) => import("react").ReactNode;
70
70
  onMouseEnter?: (e: import("react").MouseEvent<Element, MouseEvent>) => any;
71
71
  onMouseLeave?: (e: import("react").MouseEvent<Element, MouseEvent>) => any;
@@ -128,7 +128,7 @@ export type SelectProps = {
128
128
  showClear?: boolean;
129
129
  showArrow?: boolean;
130
130
  renderSelectedItem?: RenderSelectedItemFn;
131
- renderCreateItem?: (inputValue: OptionProps['value'], focus: boolean) => React.ReactNode;
131
+ renderCreateItem?: (inputValue: OptionProps['value'], focus: boolean, style?: React.CSSProperties) => React.ReactNode;
132
132
  renderOptionItem?: (props: optionRenderProps) => React.ReactNode;
133
133
  onMouseEnter?: (e: React.MouseEvent) => any;
134
134
  onMouseLeave?: (e: React.MouseEvent) => any;
@@ -550,7 +550,7 @@ class Select extends BaseComponent {
550
550
  }, locale.createText), option.value)));
551
551
  return defaultCreateItem;
552
552
  }
553
- const customCreateItem = renderCreateItem(option.value, isFocused);
553
+ const customCreateItem = renderCreateItem(option.value, isFocused, style);
554
554
  return (
555
555
  /*#__PURE__*/
556
556
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/interactive-supports-focus
@@ -834,9 +834,8 @@ class Select extends BaseComponent {
834
834
  const {
835
835
  maxTagCount
836
836
  } = this.props;
837
- const maxVisibleCount = selections.size - maxTagCount;
838
- const newOverFlowItemCount = maxVisibleCount > 0 ? maxVisibleCount + items.length - 1 : items.length - 1;
839
- if (items.length > 1 && overflowItemCount !== newOverFlowItemCount) {
837
+ const newOverFlowItemCount = selections.size - maxTagCount > 0 ? selections.size - maxTagCount + items.length - 1 : items.length - 1;
838
+ if (overflowItemCount !== newOverFlowItemCount) {
840
839
  this.foundation.updateOverflowItemCount(selections.size, newOverFlowItemCount);
841
840
  }
842
841
  }
@@ -849,6 +848,7 @@ class Select extends BaseComponent {
849
848
  className: `${prefixcls}-content-wrapper-collapse`
850
849
  }, /*#__PURE__*/React.createElement(OverflowList, {
851
850
  items: normalTags,
851
+ key: String(selections.length),
852
852
  overflowRenderer: overflowItems => this.renderOverflow(overflowItems, length - 1),
853
853
  onOverflow: overflowItems => this.handleOverflow(overflowItems),
854
854
  visibleItemRenderer: (item, index) => this.renderTag(item, index)
@@ -233,8 +233,10 @@ class Tree extends BaseComponent {
233
233
  const treeDataHasChange = prevProps && prevProps.treeData !== props.treeData;
234
234
  return firstInProps || treeDataHasChange;
235
235
  };
236
+ const needUpdateTreeData = needUpdate('treeData');
237
+ const needUpdateSimpleJson = needUpdate('treeDataSimpleJson');
236
238
  // Update the data of tree in state
237
- if (needUpdate('treeData') || props.draggable && needUpdateData()) {
239
+ if (needUpdateTreeData || props.draggable && needUpdateData()) {
238
240
  treeData = props.treeData;
239
241
  newState.treeData = treeData;
240
242
  const entitiesMap = convertDataToEntities(treeData);
@@ -242,7 +244,7 @@ class Tree extends BaseComponent {
242
244
  keyEntities = newState.keyEntities;
243
245
  newState.cachedKeyValuePairs = Object.assign({}, entitiesMap.valueEntities);
244
246
  valueEntities = newState.cachedKeyValuePairs;
245
- } else if (needUpdate('treeDataSimpleJson')) {
247
+ } else if (needUpdateSimpleJson) {
246
248
  // Convert treeDataSimpleJson to treeData
247
249
  treeData = convertJsonToData(props.treeDataSimpleJson);
248
250
  newState.treeData = treeData;
@@ -259,7 +261,7 @@ class Tree extends BaseComponent {
259
261
  newState.motionType = null;
260
262
  }
261
263
  }
262
- const dataUpdated = needUpdate('treeDataSimpleJson') || needUpdate('treeData');
264
+ const dataUpdated = needUpdateSimpleJson || needUpdateTreeData;
263
265
  const expandAllWhenDataChange = dataUpdated && props.expandAll;
264
266
  if (!isSeaching) {
265
267
  // Update expandedKeys
@@ -382,7 +384,7 @@ class Tree extends BaseComponent {
382
384
  if (props.value) {
383
385
  checkedKeyValues = findKeysForValues(normalizeValue(props.value, withObject) || [], valueEntities, isMultiple);
384
386
  } else {
385
- checkedKeyValues = updateKeys(prevState.checkedKeys, keyEntities);
387
+ checkedKeyValues = updateKeys(props.checkRelation === 'related' ? prevState.checkedKeys : prevState.realCheckedKeys, keyEntities);
386
388
  }
387
389
  }
388
390
  if (checkedKeyValues) {
@@ -886,8 +886,10 @@ class TreeSelect extends BaseComponent {
886
886
  const newState = {
887
887
  prevProps: props
888
888
  };
889
+ const needUpdateTreeData = needUpdate('treeData');
890
+ const needUpdateExpandedKeys = needUpdate('expandedKeys');
889
891
  // TreeNode
890
- if (needUpdate('treeData')) {
892
+ if (needUpdateTreeData) {
891
893
  treeData = props.treeData;
892
894
  newState.treeData = treeData;
893
895
  const entitiesMap = convertDataToEntities(treeData);
@@ -903,9 +905,9 @@ class TreeSelect extends BaseComponent {
903
905
  newState.motionType = null;
904
906
  }
905
907
  }
906
- const expandAllWhenDataChange = needUpdate('treeData') && props.expandAll;
908
+ const expandAllWhenDataChange = needUpdateTreeData && props.expandAll;
907
909
  // expandedKeys
908
- if (needUpdate('expandedKeys') || prevProps && needUpdate('autoExpandParent')) {
910
+ if (needUpdateExpandedKeys || prevProps && needUpdate('autoExpandParent')) {
909
911
  newState.expandedKeys = calcExpandedKeys(props.expandedKeys, keyEntities, props.autoExpandParent || !prevProps);
910
912
  // only show animation when treeData does not change
911
913
  if (prevProps && props.motion && !treeData) {
@@ -926,7 +928,7 @@ class TreeSelect extends BaseComponent {
926
928
  newState.expandedKeys = calcExpandedKeysForValues(normalizeValue(props.value, withObject), keyEntities, props.multiple, valueEntities);
927
929
  }
928
930
  // flattenNodes
929
- if (treeData || needUpdate('expandedKeys')) {
931
+ if (treeData || needUpdateExpandedKeys) {
930
932
  const flattenNodes = flattenTreeData(treeData || prevState.treeData, newState.expandedKeys || prevState.expandedKeys);
931
933
  newState.flattenNodes = flattenNodes;
932
934
  }
@@ -957,7 +959,7 @@ class TreeSelect extends BaseComponent {
957
959
  if (props.value) {
958
960
  checkedKeyValues = findKeysForValues(normalizeValue(props.value, withObject) || [], valueEntities, isMultiple);
959
961
  } else {
960
- checkedKeyValues = updateKeys(prevState.checkedKeys, keyEntities);
962
+ checkedKeyValues = updateKeys(props.checkRelation === 'related' ? prevState.checkedKeys : prevState.realCheckedKeys, keyEntities);
961
963
  }
962
964
  }
963
965
  if (checkedKeyValues) {
@@ -978,7 +980,7 @@ class TreeSelect extends BaseComponent {
978
980
  newState.loadedKeys = new Set(props.loadedKeys);
979
981
  }
980
982
  // ================== rePosKey ==================
981
- if (needUpdate('treeData') || needUpdate('value')) {
983
+ if (needUpdateTreeData || needUpdate('value')) {
982
984
  newState.rePosKey = rePosKey + 1;
983
985
  }
984
986
  // ================ disableStrictly =================
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@douyinfe/semi-ui",
3
- "version": "2.44.0",
3
+ "version": "2.44.1",
4
4
  "description": "A modern, comprehensive, flexible design system and UI library. Connect DesignOps & DevOps. Quickly build beautiful React apps. Maintained by Douyin-fe team.",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es/index.js",
@@ -20,12 +20,12 @@
20
20
  "@dnd-kit/core": "^6.0.8",
21
21
  "@dnd-kit/sortable": "^7.0.2",
22
22
  "@dnd-kit/utilities": "^3.2.1",
23
- "@douyinfe/semi-animation": "2.44.0",
24
- "@douyinfe/semi-animation-react": "2.44.0",
25
- "@douyinfe/semi-foundation": "2.44.0",
26
- "@douyinfe/semi-icons": "2.44.0",
27
- "@douyinfe/semi-illustrations": "2.44.0",
28
- "@douyinfe/semi-theme-default": "2.44.0",
23
+ "@douyinfe/semi-animation": "2.44.1",
24
+ "@douyinfe/semi-animation-react": "2.44.1",
25
+ "@douyinfe/semi-foundation": "2.44.1",
26
+ "@douyinfe/semi-icons": "2.44.1",
27
+ "@douyinfe/semi-illustrations": "2.44.1",
28
+ "@douyinfe/semi-theme-default": "2.44.1",
29
29
  "async-validator": "^3.5.0",
30
30
  "classnames": "^2.2.6",
31
31
  "copy-text-to-clipboard": "^2.1.1",
@@ -75,7 +75,7 @@
75
75
  ],
76
76
  "author": "",
77
77
  "license": "MIT",
78
- "gitHead": "d683a25e4dd9c5fb8dbb069d83ffd24998b14191",
78
+ "gitHead": "33ad4e532750cab4895b3dd11d5287ef8cde1ccd",
79
79
  "devDependencies": {
80
80
  "@babel/plugin-proposal-decorators": "^7.15.8",
81
81
  "@babel/plugin-transform-runtime": "^7.15.8",