@douyinfe/semi-ui 2.59.0-alpha.0 → 2.59.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 (45) hide show
  1. package/dist/css/semi.css +3 -0
  2. package/dist/css/semi.min.css +1 -1
  3. package/dist/umd/semi-ui.js +75 -59
  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/form/hoc/withField.js +1 -0
  8. package/lib/cjs/form/hooks/useFieldApi.js +1 -0
  9. package/lib/cjs/index.d.ts +1 -0
  10. package/lib/cjs/index.js +7 -0
  11. package/lib/cjs/slider/index.d.ts +1 -0
  12. package/lib/cjs/slider/index.js +6 -14
  13. package/lib/cjs/tabs/TabBar.d.ts +3 -0
  14. package/lib/cjs/tabs/TabBar.js +23 -15
  15. package/lib/cjs/tree/interface.d.ts +1 -1
  16. package/lib/cjs/tree/treeContext.d.ts +1 -1
  17. package/lib/cjs/tree/treeNode.d.ts +1 -1
  18. package/lib/cjs/tree/treeNode.js +20 -19
  19. package/lib/cjs/typography/base.d.ts +3 -1
  20. package/lib/cjs/typography/base.js +16 -6
  21. package/lib/cjs/typography/context.d.ts +3 -0
  22. package/lib/cjs/typography/context.js +11 -0
  23. package/lib/cjs/typography/numeral.d.ts +1 -1
  24. package/lib/cjs/typography/paragraph.d.ts +1 -1
  25. package/lib/cjs/typography/text.d.ts +1 -1
  26. package/lib/es/form/hoc/withField.js +1 -0
  27. package/lib/es/form/hooks/useFieldApi.js +1 -0
  28. package/lib/es/index.d.ts +1 -0
  29. package/lib/es/index.js +2 -1
  30. package/lib/es/slider/index.d.ts +1 -0
  31. package/lib/es/slider/index.js +6 -14
  32. package/lib/es/tabs/TabBar.d.ts +3 -0
  33. package/lib/es/tabs/TabBar.js +23 -15
  34. package/lib/es/tree/interface.d.ts +1 -1
  35. package/lib/es/tree/treeContext.d.ts +1 -1
  36. package/lib/es/tree/treeNode.d.ts +1 -1
  37. package/lib/es/tree/treeNode.js +20 -19
  38. package/lib/es/typography/base.d.ts +3 -1
  39. package/lib/es/typography/base.js +16 -6
  40. package/lib/es/typography/context.d.ts +3 -0
  41. package/lib/es/typography/context.js +3 -0
  42. package/lib/es/typography/numeral.d.ts +1 -1
  43. package/lib/es/typography/paragraph.d.ts +1 -1
  44. package/lib/es/typography/text.d.ts +1 -1
  45. package/package.json +8 -8
@@ -358,6 +358,7 @@ function withField(Component, opts) {
358
358
  validateRef.current = validate;
359
359
  }, [rules, validate]);
360
360
  useIsomorphicEffect(() => {
361
+ isUnmounted.current = false;
361
362
  // exec validate once when trigger include 'mount'
362
363
  if (validateOnMount) {
363
364
  fieldValidate(value);
@@ -12,6 +12,7 @@ const buildFieldApi = (formApi, field) => ({
12
12
  getTouched: () => formApi.getTouched(field),
13
13
  setTouched: isTouched => formApi.setTouched(field, isTouched),
14
14
  getValue: () => formApi.getValue(field),
15
+ // @ts-ignore
15
16
  setValue: value => formApi.setValue(field, value)
16
17
  });
17
18
  function useFieldApi(field) {
@@ -85,3 +85,4 @@ export { default as LocaleConsumer } from './locale/localeConsumer';
85
85
  export { Form, useFormApi, useFormState, useFieldApi, useFieldState, withFormState, withFormApi, withField, ArrayField, } from './form';
86
86
  export { default as Image } from './image';
87
87
  export { Preview as ImagePreview } from './image';
88
+ export { default as semiGlobal } from "./_utils/semi-global";
package/lib/cjs/index.js CHANGED
@@ -531,6 +531,12 @@ Object.defineProperty(exports, "Upload", {
531
531
  return _upload.default;
532
532
  }
533
533
  });
534
+ Object.defineProperty(exports, "semiGlobal", {
535
+ enumerable: true,
536
+ get: function () {
537
+ return _semiGlobal.default;
538
+ }
539
+ });
534
540
  Object.defineProperty(exports, "useFieldApi", {
535
541
  enumerable: true,
536
542
  get: function () {
@@ -658,6 +664,7 @@ var _localeProvider = _interopRequireDefault(require("./locale/localeProvider"))
658
664
  var _localeConsumer = _interopRequireDefault(require("./locale/localeConsumer"));
659
665
  var _form = require("./form");
660
666
  var _image = _interopRequireWildcard(require("./image"));
667
+ var _semiGlobal = _interopRequireDefault(require("./_utils/semi-global"));
661
668
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
662
669
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
663
670
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -15,6 +15,7 @@ export default class Slider extends BaseComponent<SliderProps, SliderState> {
15
15
  private maxHanleEl;
16
16
  private dragging;
17
17
  private eventListenerSet;
18
+ private handleDownEventListenerSet;
18
19
  foundation: SliderFoundation;
19
20
  constructor(props: SliderProps);
20
21
  get adapter(): SliderAdapter;
@@ -109,9 +109,6 @@ class Slider extends _baseComponent.default {
109
109
  onMouseLeave: () => {
110
110
  this.foundation.onHandleLeave();
111
111
  },
112
- onMouseUp: e => {
113
- this.foundation.onHandleUp(e);
114
- },
115
112
  onKeyUp: e => {
116
113
  this.foundation.onHandleUp(e);
117
114
  },
@@ -168,9 +165,6 @@ class Slider extends _baseComponent.default {
168
165
  onMouseLeave: () => {
169
166
  this.foundation.onHandleLeave();
170
167
  },
171
- onMouseUp: e => {
172
- this.foundation.onHandleUp(e);
173
- },
174
168
  onKeyUp: e => {
175
169
  this.foundation.onHandleUp(e);
176
170
  },
@@ -224,9 +218,6 @@ class Slider extends _baseComponent.default {
224
218
  onMouseLeave: () => {
225
219
  this.foundation.onHandleLeave();
226
220
  },
227
- onMouseUp: e => {
228
- this.foundation.onHandleUp(e);
229
- },
230
221
  onKeyUp: e => {
231
222
  this.foundation.onHandleUp(e);
232
223
  },
@@ -387,6 +378,7 @@ class Slider extends _baseComponent.default {
387
378
  this.dragging = [false, false];
388
379
  this.foundation = new _foundation.default(this.adapter);
389
380
  this.eventListenerSet = new Set();
381
+ this.handleDownEventListenerSet = new Set();
390
382
  }
391
383
  get adapter() {
392
384
  var _this = this;
@@ -477,9 +469,9 @@ class Slider extends _baseComponent.default {
477
469
  getMinHandleEl: () => this.minHanleEl.current,
478
470
  getMaxHandleEl: () => this.maxHanleEl.current,
479
471
  onHandleDown: e => {
480
- this._addEventListener(document.body, 'mousemove', this.foundation.onHandleMove, false);
481
- this._addEventListener(window, 'mouseup', this.foundation.onHandleUp, false);
482
- this._addEventListener(document.body, 'touchmove', this.foundation.onHandleTouchMove, false);
472
+ this.handleDownEventListenerSet.add(this._addEventListener(document.body, 'mousemove', this.foundation.onHandleMove, false));
473
+ this.handleDownEventListenerSet.add(this._addEventListener(window, 'mouseup', this.foundation.onHandleUp, false));
474
+ this.handleDownEventListenerSet.add(this._addEventListener(document.body, 'touchmove', this.foundation.onHandleTouchMove, false));
483
475
  },
484
476
  onHandleMove: function (mousePos, isMin) {
485
477
  let stateChangeCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _noop2.default;
@@ -546,8 +538,8 @@ class Slider extends _baseComponent.default {
546
538
  (_b = (_a = this.props).onMouseUp) === null || _b === void 0 ? void 0 : _b.call(_a, e);
547
539
  e.stopPropagation();
548
540
  e.preventDefault();
549
- document.body.removeEventListener('mousemove', this.foundation.onHandleMove, false);
550
- document.body.removeEventListener('mouseup', this.foundation.onHandleUp, false);
541
+ Array.from(this.handleDownEventListenerSet).forEach(clear => clear());
542
+ this.handleDownEventListenerSet.clear();
551
543
  },
552
544
  onHandleUpAfter: () => {
553
545
  const {
@@ -30,11 +30,14 @@ declare class TabBar extends React.Component<TabBarProps, TabBarState> {
30
30
  };
31
31
  constructor(props: TabBarProps);
32
32
  componentDidMount(): void;
33
+ componentDidUpdate(prevProps: any): void;
33
34
  renderIcon(icon: ReactNode): ReactNode;
34
35
  renderExtra(): ReactNode;
35
36
  handleItemClick: (itemKey: string, e: MouseEvent<Element>) => void;
36
37
  handleKeyDown: (event: React.KeyboardEvent, itemKey: string, closable: boolean) => void;
37
38
  renderTabItem: (panel: PlainTab) => ReactNode;
39
+ scrollTabItemIntoViewByKey: (key: string, logicalPosition?: ScrollLogicalPosition) => void;
40
+ scrollActiveTabItemIntoView: (logicalPosition?: ScrollLogicalPosition) => void;
38
41
  renderTabComponents: (list: Array<PlainTab>) => Array<ReactNode>;
39
42
  handleArrowClick: (items: Array<OverflowItem>, pos: 'start' | 'end') => void;
40
43
  renderCollapse: (items: Array<OverflowItem>, icon: ReactNode, pos: 'start' | 'end') => ReactNode;
@@ -29,18 +29,11 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
29
29
  };
30
30
  class TabBar extends _react.default.Component {
31
31
  constructor(props) {
32
+ var _this;
32
33
  super(props);
34
+ _this = this;
33
35
  this.handleItemClick = (itemKey, e) => {
34
36
  this.props.onTabClick(itemKey, e);
35
- if (this.props.collapsible) {
36
- const key = this._getItemKey(itemKey);
37
- const tabItem = document.querySelector(`[data-uuid="${this.state.uuid}"] .${_constants.cssClasses.TABS_TAB}[data-scrollkey="${key}"]`);
38
- tabItem.scrollIntoView({
39
- behavior: 'smooth',
40
- block: 'nearest',
41
- inline: 'nearest'
42
- });
43
- }
44
37
  };
45
38
  this.handleKeyDown = (event, itemKey, closable) => {
46
39
  this.props.handleKeyDown(event, itemKey, closable);
@@ -65,6 +58,19 @@ class TabBar extends _react.default.Component {
65
58
  onClick: this.handleItemClick
66
59
  }));
67
60
  };
61
+ this.scrollTabItemIntoViewByKey = function (key) {
62
+ let logicalPosition = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'nearest';
63
+ const tabItem = document.querySelector(`[data-uuid="${_this.state.uuid}"] .${_constants.cssClasses.TABS_TAB}[data-scrollkey="${key}"]`);
64
+ tabItem === null || tabItem === void 0 ? void 0 : tabItem.scrollIntoView({
65
+ behavior: 'smooth',
66
+ block: logicalPosition,
67
+ inline: logicalPosition
68
+ });
69
+ };
70
+ this.scrollActiveTabItemIntoView = logicalPosition => {
71
+ const key = this._getItemKey(this.props.activeKey);
72
+ this.scrollTabItemIntoViewByKey(key, logicalPosition);
73
+ };
68
74
  this.renderTabComponents = list => list.map(panel => this.renderTabItem(panel));
69
75
  this.handleArrowClick = (items, pos) => {
70
76
  const lastItem = pos === 'start' ? items.pop() : items.shift();
@@ -72,12 +78,7 @@ class TabBar extends _react.default.Component {
72
78
  return;
73
79
  }
74
80
  const key = this._getItemKey(lastItem.itemKey);
75
- const tabItem = document.querySelector(`[data-uuid="${this.state.uuid}"] .${_constants.cssClasses.TABS_TAB}[data-scrollkey="${key}"]`);
76
- tabItem.scrollIntoView({
77
- behavior: 'smooth',
78
- block: 'nearest',
79
- inline: 'nearest'
80
- });
81
+ this.scrollTabItemIntoViewByKey(key);
81
82
  };
82
83
  this.renderCollapse = (items, icon, pos) => {
83
84
  if ((0, _isEmpty2.default)(items)) {
@@ -227,6 +228,13 @@ class TabBar extends _react.default.Component {
227
228
  uuid: (0, _uuid.getUuidv4)()
228
229
  });
229
230
  }
231
+ componentDidUpdate(prevProps) {
232
+ if (prevProps.activeKey !== this.props.activeKey) {
233
+ if (this.props.collapsible) {
234
+ this.scrollActiveTabItemIntoView();
235
+ }
236
+ }
237
+ }
230
238
  renderIcon(icon) {
231
239
  return /*#__PURE__*/_react.default.createElement("span", null, icon);
232
240
  }
@@ -48,7 +48,7 @@ export interface TreeProps extends BasicTreeProps {
48
48
  style?: React.CSSProperties;
49
49
  treeData?: TreeNodeData[];
50
50
  value?: Value;
51
- icon?: ReactNode;
51
+ icon?: ReactNode | ((props: TreeNodeProps) => ReactNode);
52
52
  keyMaps?: KeyMapProps;
53
53
  loadData?: (treeNode?: TreeNodeData) => Promise<void>;
54
54
  onChange?: (value?: Value) => void;
@@ -3,7 +3,7 @@ import { Virtualize, ExpandAction } from '@douyinfe/semi-foundation/lib/cjs/tree
3
3
  import { TreeNodeData, KeyEntities, TreeNodeProps, FlattenNode, RenderFullLabelProps } from './interface';
4
4
  export interface TreeContextValue {
5
5
  treeDisabled?: boolean;
6
- treeIcon?: ReactNode;
6
+ treeIcon?: ReactNode | ((props: TreeNodeProps) => ReactNode);
7
7
  motion?: boolean;
8
8
  motionKeys?: Set<string>;
9
9
  motionType?: string;
@@ -59,7 +59,7 @@ export default class TreeNode extends PureComponent<TreeNodeProps, TreeNodeState
59
59
  renderArrow(): JSX.Element;
60
60
  renderCheckbox(): JSX.Element;
61
61
  renderSwitcher: () => JSX.Element;
62
- renderIcon(): any;
62
+ renderIcon(): string | number | boolean | React.ReactFragment | JSX.Element;
63
63
  renderEmptyNode(): JSX.Element;
64
64
  renderRealLabel: () => any;
65
65
  setRef: (node: HTMLElement) => void;
@@ -307,29 +307,30 @@ class TreeNode extends _react.PureComponent {
307
307
  } = this.context;
308
308
  const {
309
309
  expanded,
310
- icon
310
+ icon,
311
+ data
311
312
  } = this.props;
312
- const hasChild = !this.isLeaf();
313
- const hasIcon = icon || treeIcon;
314
- let itemIcon;
315
- if (hasIcon || directory) {
316
- if (hasIcon) {
317
- itemIcon = icon || treeIcon;
313
+ if (icon) {
314
+ return icon;
315
+ }
316
+ if (treeIcon) {
317
+ return typeof treeIcon === 'function' ? treeIcon(this.props) : treeIcon;
318
+ }
319
+ if (directory) {
320
+ const hasChild = !this.isLeaf();
321
+ if (!hasChild) {
322
+ return /*#__PURE__*/_react.default.createElement(_semiIcons.IconFile, {
323
+ className: `${prefixcls}-item-icon`
324
+ });
318
325
  } else {
319
- if (!hasChild) {
320
- itemIcon = /*#__PURE__*/_react.default.createElement(_semiIcons.IconFile, {
321
- className: `${prefixcls}-item-icon`
322
- });
323
- } else {
324
- itemIcon = expanded ? /*#__PURE__*/_react.default.createElement(_semiIcons.IconFolderOpen, {
325
- className: `${prefixcls}-item-icon`
326
- }) : /*#__PURE__*/_react.default.createElement(_semiIcons.IconFolder, {
327
- className: `${prefixcls}-item-icon`
328
- });
329
- }
326
+ return expanded ? /*#__PURE__*/_react.default.createElement(_semiIcons.IconFolderOpen, {
327
+ className: `${prefixcls}-item-icon`
328
+ }) : /*#__PURE__*/_react.default.createElement(_semiIcons.IconFolder, {
329
+ className: `${prefixcls}-item-icon`
330
+ });
330
331
  }
331
332
  }
332
- return itemIcon;
333
+ return null;
333
334
  }
334
335
  renderEmptyNode() {
335
336
  const {
@@ -85,7 +85,7 @@ export default class Base extends Component<BaseTypographyProps, BaseTypographyS
85
85
  link: PropTypes.Requireable<NonNullable<boolean | object>>;
86
86
  spacing: PropTypes.Requireable<"normal" | "extended">;
87
87
  strong: PropTypes.Requireable<boolean>;
88
- size: PropTypes.Requireable<"small" | "normal">;
88
+ size: PropTypes.Requireable<"small" | "normal" | "inherit">;
89
89
  type: PropTypes.Requireable<"warning" | "success" | "primary" | "secondary" | "danger" | "tertiary" | "quaternary">;
90
90
  style: PropTypes.Requireable<object>;
91
91
  className: PropTypes.Requireable<string>;
@@ -110,6 +110,8 @@ export default class Base extends Component<BaseTypographyProps, BaseTypographyS
110
110
  style: {};
111
111
  className: string;
112
112
  };
113
+ static contextType: React.Context<"small" | "normal" | "inherit">;
114
+ context: TypographyBaseSize;
113
115
  wrapperRef: React.RefObject<any>;
114
116
  expandRef: React.RefObject<any>;
115
117
  copyRef: React.RefObject<any>;
@@ -23,6 +23,7 @@ var _warning = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs
23
23
  var _isEnterPress = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs/utils/isEnterPress"));
24
24
  var _localeConsumer = _interopRequireDefault(require("../locale/localeConsumer"));
25
25
  var _utils = require("../_utils");
26
+ var _context = _interopRequireDefault(require("./context"));
26
27
  var _resizeObserver = _interopRequireWildcard(require("../resizeObserver"));
27
28
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
28
29
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -545,15 +546,16 @@ class Base extends _react.Component {
545
546
  icon,
546
547
  size
547
548
  } = this.props;
549
+ const realSize = size === 'inherit' ? this.context : size;
548
550
  if (!icon) {
549
551
  return null;
550
552
  }
551
- const iconSize = size === 'small' ? 'small' : 'default';
553
+ const iconSize = realSize === 'small' ? 'small' : 'default';
552
554
  return /*#__PURE__*/_react.default.createElement("span", {
553
555
  className: `${prefixCls}-icon`,
554
556
  "x-semi-prop": "icon"
555
557
  }, (0, _utils.isSemiIcon)(icon) ? /*#__PURE__*/_react.default.cloneElement(icon, {
556
- size: iconSize
558
+ realSize: iconSize
557
559
  }) : icon);
558
560
  }
559
561
  renderContent() {
@@ -577,6 +579,7 @@ class Base extends _react.Component {
577
579
  const textProps = (0, _omit2.default)(rest, ['strong', 'editable', 'mark', 'copyable', 'underline', 'code',
578
580
  // 'link',
579
581
  'delete']);
582
+ const realSize = size === 'inherit' ? this.context : size;
580
583
  const iconNode = this.renderIcon();
581
584
  const ellipsisOpt = this.getEllipsisOpt();
582
585
  const {
@@ -596,7 +599,7 @@ class Base extends _react.Component {
596
599
  const wrapperCls = (0, _classnames.default)(className, ellipsisCls, {
597
600
  // [`${prefixCls}-primary`]: !type || type === 'primary',
598
601
  [`${prefixCls}-${type}`]: type && !link,
599
- [`${prefixCls}-${size}`]: size,
602
+ [`${prefixCls}-${realSize}`]: realSize,
600
603
  [`${prefixCls}-link`]: link,
601
604
  [`${prefixCls}-disabled`]: disabled,
602
605
  [`${prefixCls}-${spacing}`]: spacing,
@@ -643,13 +646,19 @@ class Base extends _react.Component {
643
646
  }
644
647
  render() {
645
648
  var _this = this;
646
- const content = /*#__PURE__*/_react.default.createElement(_localeConsumer.default, {
649
+ const {
650
+ size
651
+ } = this.props;
652
+ const realSize = size === 'inherit' ? this.context : size;
653
+ const content = /*#__PURE__*/_react.default.createElement(_context.default.Provider, {
654
+ value: realSize
655
+ }, /*#__PURE__*/_react.default.createElement(_localeConsumer.default, {
647
656
  componentName: "Typography"
648
657
  }, locale => {
649
658
  this.expandStr = locale.expand;
650
659
  this.collapseStr = locale.collapse;
651
660
  return this.renderTipWrapper();
652
- });
661
+ }));
653
662
  if (this.props.ellipsis) {
654
663
  return /*#__PURE__*/_react.default.createElement(_resizeObserver.default, {
655
664
  onResize: function () {
@@ -720,4 +729,5 @@ Base.defaultProps = {
720
729
  size: 'normal',
721
730
  style: {},
722
731
  className: ''
723
- };
732
+ };
733
+ Base.contextType = _context.default;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const SizeContext: React.Context<"small" | "normal" | "inherit">;
3
+ export default SizeContext;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ const SizeContext = /*#__PURE__*/_react.default.createContext('normal');
10
+ var _default = SizeContext;
11
+ exports.default = _default;
@@ -39,7 +39,7 @@ export default class Numeral extends PureComponent<NumeralProps> {
39
39
  link: PropTypes.Requireable<NonNullable<boolean | object>>;
40
40
  strong: PropTypes.Requireable<boolean>;
41
41
  type: PropTypes.Requireable<"warning" | "success" | "primary" | "secondary" | "danger" | "tertiary" | "quaternary">;
42
- size: PropTypes.Requireable<"small" | "normal">;
42
+ size: PropTypes.Requireable<"small" | "normal" | "inherit">;
43
43
  style: PropTypes.Requireable<object>;
44
44
  className: PropTypes.Requireable<string>;
45
45
  code: PropTypes.Requireable<boolean>;
@@ -51,7 +51,7 @@ export default class Paragraph extends PureComponent<ParagraphProps> {
51
51
  underline: PropTypes.Requireable<boolean>;
52
52
  strong: PropTypes.Requireable<boolean>;
53
53
  type: PropTypes.Requireable<"warning" | "success" | "primary" | "secondary" | "danger" | "tertiary" | "quaternary">;
54
- size: PropTypes.Requireable<"small" | "normal">;
54
+ size: PropTypes.Requireable<"small" | "normal" | "inherit">;
55
55
  spacing: PropTypes.Requireable<"normal" | "extended">;
56
56
  style: PropTypes.Requireable<object>;
57
57
  className: PropTypes.Requireable<string>;
@@ -54,7 +54,7 @@ export default class Text extends PureComponent<TextProps> {
54
54
  link: PropTypes.Requireable<NonNullable<boolean | object>>;
55
55
  strong: PropTypes.Requireable<boolean>;
56
56
  type: PropTypes.Requireable<"warning" | "success" | "primary" | "secondary" | "danger" | "tertiary" | "quaternary">;
57
- size: PropTypes.Requireable<"small" | "normal">;
57
+ size: PropTypes.Requireable<"small" | "normal" | "inherit">;
58
58
  style: PropTypes.Requireable<object>;
59
59
  className: PropTypes.Requireable<string>;
60
60
  code: PropTypes.Requireable<boolean>;
@@ -348,6 +348,7 @@ function withField(Component, opts) {
348
348
  validateRef.current = validate;
349
349
  }, [rules, validate]);
350
350
  useIsomorphicEffect(() => {
351
+ isUnmounted.current = false;
351
352
  // exec validate once when trigger include 'mount'
352
353
  if (validateOnMount) {
353
354
  fieldValidate(value);
@@ -5,6 +5,7 @@ const buildFieldApi = (formApi, field) => ({
5
5
  getTouched: () => formApi.getTouched(field),
6
6
  setTouched: isTouched => formApi.setTouched(field, isTouched),
7
7
  getValue: () => formApi.getValue(field),
8
+ // @ts-ignore
8
9
  setValue: value => formApi.setValue(field, value)
9
10
  });
10
11
  function useFieldApi(field) {
package/lib/es/index.d.ts CHANGED
@@ -85,3 +85,4 @@ export { default as LocaleConsumer } from './locale/localeConsumer';
85
85
  export { Form, useFormApi, useFormState, useFieldApi, useFieldState, withFormState, withFormApi, withField, ArrayField, } from './form';
86
86
  export { default as Image } from './image';
87
87
  export { Preview as ImagePreview } from './image';
88
+ export { default as semiGlobal } from "./_utils/semi-global";
package/lib/es/index.js CHANGED
@@ -84,4 +84,5 @@ export { default as LocaleConsumer } from './locale/localeConsumer';
84
84
  /** Form */
85
85
  export { Form, useFormApi, useFormState, useFieldApi, useFieldState, withFormState, withFormApi, withField, ArrayField } from './form';
86
86
  export { default as Image } from './image';
87
- export { Preview as ImagePreview } from './image';
87
+ export { Preview as ImagePreview } from './image';
88
+ export { default as semiGlobal } from "./_utils/semi-global";
@@ -15,6 +15,7 @@ export default class Slider extends BaseComponent<SliderProps, SliderState> {
15
15
  private maxHanleEl;
16
16
  private dragging;
17
17
  private eventListenerSet;
18
+ private handleDownEventListenerSet;
18
19
  foundation: SliderFoundation;
19
20
  constructor(props: SliderProps);
20
21
  get adapter(): SliderAdapter;
@@ -102,9 +102,6 @@ export default class Slider extends BaseComponent {
102
102
  onMouseLeave: () => {
103
103
  this.foundation.onHandleLeave();
104
104
  },
105
- onMouseUp: e => {
106
- this.foundation.onHandleUp(e);
107
- },
108
105
  onKeyUp: e => {
109
106
  this.foundation.onHandleUp(e);
110
107
  },
@@ -161,9 +158,6 @@ export default class Slider extends BaseComponent {
161
158
  onMouseLeave: () => {
162
159
  this.foundation.onHandleLeave();
163
160
  },
164
- onMouseUp: e => {
165
- this.foundation.onHandleUp(e);
166
- },
167
161
  onKeyUp: e => {
168
162
  this.foundation.onHandleUp(e);
169
163
  },
@@ -217,9 +211,6 @@ export default class Slider extends BaseComponent {
217
211
  onMouseLeave: () => {
218
212
  this.foundation.onHandleLeave();
219
213
  },
220
- onMouseUp: e => {
221
- this.foundation.onHandleUp(e);
222
- },
223
214
  onKeyUp: e => {
224
215
  this.foundation.onHandleUp(e);
225
216
  },
@@ -380,6 +371,7 @@ export default class Slider extends BaseComponent {
380
371
  this.dragging = [false, false];
381
372
  this.foundation = new SliderFoundation(this.adapter);
382
373
  this.eventListenerSet = new Set();
374
+ this.handleDownEventListenerSet = new Set();
383
375
  }
384
376
  get adapter() {
385
377
  var _this = this;
@@ -470,9 +462,9 @@ export default class Slider extends BaseComponent {
470
462
  getMinHandleEl: () => this.minHanleEl.current,
471
463
  getMaxHandleEl: () => this.maxHanleEl.current,
472
464
  onHandleDown: e => {
473
- this._addEventListener(document.body, 'mousemove', this.foundation.onHandleMove, false);
474
- this._addEventListener(window, 'mouseup', this.foundation.onHandleUp, false);
475
- this._addEventListener(document.body, 'touchmove', this.foundation.onHandleTouchMove, false);
465
+ this.handleDownEventListenerSet.add(this._addEventListener(document.body, 'mousemove', this.foundation.onHandleMove, false));
466
+ this.handleDownEventListenerSet.add(this._addEventListener(window, 'mouseup', this.foundation.onHandleUp, false));
467
+ this.handleDownEventListenerSet.add(this._addEventListener(document.body, 'touchmove', this.foundation.onHandleTouchMove, false));
476
468
  },
477
469
  onHandleMove: function (mousePos, isMin) {
478
470
  let stateChangeCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _noop;
@@ -539,8 +531,8 @@ export default class Slider extends BaseComponent {
539
531
  (_b = (_a = this.props).onMouseUp) === null || _b === void 0 ? void 0 : _b.call(_a, e);
540
532
  e.stopPropagation();
541
533
  e.preventDefault();
542
- document.body.removeEventListener('mousemove', this.foundation.onHandleMove, false);
543
- document.body.removeEventListener('mouseup', this.foundation.onHandleUp, false);
534
+ Array.from(this.handleDownEventListenerSet).forEach(clear => clear());
535
+ this.handleDownEventListenerSet.clear();
544
536
  },
545
537
  onHandleUpAfter: () => {
546
538
  const {
@@ -30,11 +30,14 @@ declare class TabBar extends React.Component<TabBarProps, TabBarState> {
30
30
  };
31
31
  constructor(props: TabBarProps);
32
32
  componentDidMount(): void;
33
+ componentDidUpdate(prevProps: any): void;
33
34
  renderIcon(icon: ReactNode): ReactNode;
34
35
  renderExtra(): ReactNode;
35
36
  handleItemClick: (itemKey: string, e: MouseEvent<Element>) => void;
36
37
  handleKeyDown: (event: React.KeyboardEvent, itemKey: string, closable: boolean) => void;
37
38
  renderTabItem: (panel: PlainTab) => ReactNode;
39
+ scrollTabItemIntoViewByKey: (key: string, logicalPosition?: ScrollLogicalPosition) => void;
40
+ scrollActiveTabItemIntoView: (logicalPosition?: ScrollLogicalPosition) => void;
38
41
  renderTabComponents: (list: Array<PlainTab>) => Array<ReactNode>;
39
42
  handleArrowClick: (items: Array<OverflowItem>, pos: 'start' | 'end') => void;
40
43
  renderCollapse: (items: Array<OverflowItem>, icon: ReactNode, pos: 'start' | 'end') => ReactNode;
@@ -22,18 +22,11 @@ import TabItem from './TabItem';
22
22
  import LocaleConsumer from "../locale/localeConsumer";
23
23
  class TabBar extends React.Component {
24
24
  constructor(props) {
25
+ var _this;
25
26
  super(props);
27
+ _this = this;
26
28
  this.handleItemClick = (itemKey, e) => {
27
29
  this.props.onTabClick(itemKey, e);
28
- if (this.props.collapsible) {
29
- const key = this._getItemKey(itemKey);
30
- const tabItem = document.querySelector(`[data-uuid="${this.state.uuid}"] .${cssClasses.TABS_TAB}[data-scrollkey="${key}"]`);
31
- tabItem.scrollIntoView({
32
- behavior: 'smooth',
33
- block: 'nearest',
34
- inline: 'nearest'
35
- });
36
- }
37
30
  };
38
31
  this.handleKeyDown = (event, itemKey, closable) => {
39
32
  this.props.handleKeyDown(event, itemKey, closable);
@@ -58,6 +51,19 @@ class TabBar extends React.Component {
58
51
  onClick: this.handleItemClick
59
52
  }));
60
53
  };
54
+ this.scrollTabItemIntoViewByKey = function (key) {
55
+ let logicalPosition = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'nearest';
56
+ const tabItem = document.querySelector(`[data-uuid="${_this.state.uuid}"] .${cssClasses.TABS_TAB}[data-scrollkey="${key}"]`);
57
+ tabItem === null || tabItem === void 0 ? void 0 : tabItem.scrollIntoView({
58
+ behavior: 'smooth',
59
+ block: logicalPosition,
60
+ inline: logicalPosition
61
+ });
62
+ };
63
+ this.scrollActiveTabItemIntoView = logicalPosition => {
64
+ const key = this._getItemKey(this.props.activeKey);
65
+ this.scrollTabItemIntoViewByKey(key, logicalPosition);
66
+ };
61
67
  this.renderTabComponents = list => list.map(panel => this.renderTabItem(panel));
62
68
  this.handleArrowClick = (items, pos) => {
63
69
  const lastItem = pos === 'start' ? items.pop() : items.shift();
@@ -65,12 +71,7 @@ class TabBar extends React.Component {
65
71
  return;
66
72
  }
67
73
  const key = this._getItemKey(lastItem.itemKey);
68
- const tabItem = document.querySelector(`[data-uuid="${this.state.uuid}"] .${cssClasses.TABS_TAB}[data-scrollkey="${key}"]`);
69
- tabItem.scrollIntoView({
70
- behavior: 'smooth',
71
- block: 'nearest',
72
- inline: 'nearest'
73
- });
74
+ this.scrollTabItemIntoViewByKey(key);
74
75
  };
75
76
  this.renderCollapse = (items, icon, pos) => {
76
77
  if (_isEmpty(items)) {
@@ -220,6 +221,13 @@ class TabBar extends React.Component {
220
221
  uuid: getUuidv4()
221
222
  });
222
223
  }
224
+ componentDidUpdate(prevProps) {
225
+ if (prevProps.activeKey !== this.props.activeKey) {
226
+ if (this.props.collapsible) {
227
+ this.scrollActiveTabItemIntoView();
228
+ }
229
+ }
230
+ }
223
231
  renderIcon(icon) {
224
232
  return /*#__PURE__*/React.createElement("span", null, icon);
225
233
  }
@@ -48,7 +48,7 @@ export interface TreeProps extends BasicTreeProps {
48
48
  style?: React.CSSProperties;
49
49
  treeData?: TreeNodeData[];
50
50
  value?: Value;
51
- icon?: ReactNode;
51
+ icon?: ReactNode | ((props: TreeNodeProps) => ReactNode);
52
52
  keyMaps?: KeyMapProps;
53
53
  loadData?: (treeNode?: TreeNodeData) => Promise<void>;
54
54
  onChange?: (value?: Value) => void;
@@ -3,7 +3,7 @@ import { Virtualize, ExpandAction } from '@douyinfe/semi-foundation/lib/es/tree/
3
3
  import { TreeNodeData, KeyEntities, TreeNodeProps, FlattenNode, RenderFullLabelProps } from './interface';
4
4
  export interface TreeContextValue {
5
5
  treeDisabled?: boolean;
6
- treeIcon?: ReactNode;
6
+ treeIcon?: ReactNode | ((props: TreeNodeProps) => ReactNode);
7
7
  motion?: boolean;
8
8
  motionKeys?: Set<string>;
9
9
  motionType?: string;
@@ -59,7 +59,7 @@ export default class TreeNode extends PureComponent<TreeNodeProps, TreeNodeState
59
59
  renderArrow(): JSX.Element;
60
60
  renderCheckbox(): JSX.Element;
61
61
  renderSwitcher: () => JSX.Element;
62
- renderIcon(): any;
62
+ renderIcon(): string | number | boolean | React.ReactFragment | JSX.Element;
63
63
  renderEmptyNode(): JSX.Element;
64
64
  renderRealLabel: () => any;
65
65
  setRef: (node: HTMLElement) => void;