@douyinfe/semi-ui 2.49.1 → 2.50.0-alpha.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.
Files changed (61) hide show
  1. package/dist/css/semi.css +74 -161
  2. package/dist/css/semi.min.css +1 -1
  3. package/dist/umd/semi-ui.js +465 -389
  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/image/interface.d.ts +3 -3
  8. package/lib/cjs/image/previewFooter.js +8 -5
  9. package/lib/cjs/image/previewHeader.d.ts +2 -2
  10. package/lib/cjs/image/previewHeader.js +8 -9
  11. package/lib/cjs/image/previewImage.d.ts +12 -1
  12. package/lib/cjs/image/previewImage.js +83 -23
  13. package/lib/cjs/image/previewInner.d.ts +2 -11
  14. package/lib/cjs/image/previewInner.js +42 -60
  15. package/lib/cjs/index.d.ts +0 -2
  16. package/lib/cjs/index.js +0 -14
  17. package/lib/cjs/modal/confirm.d.ts +6 -6
  18. package/lib/cjs/notification/index.d.ts +8 -8
  19. package/lib/cjs/notification/notice.d.ts +1 -1
  20. package/lib/cjs/notification/notice.js +1 -1
  21. package/lib/cjs/table/ColumnSorter.d.ts +3 -1
  22. package/lib/cjs/table/ColumnSorter.js +26 -15
  23. package/lib/cjs/table/Table.js +1 -0
  24. package/lib/cjs/table/interface.d.ts +4 -0
  25. package/lib/cjs/tree/indent.d.ts +9 -0
  26. package/lib/cjs/tree/indent.js +37 -0
  27. package/lib/cjs/tree/index.d.ts +2 -0
  28. package/lib/cjs/tree/index.js +8 -3
  29. package/lib/cjs/tree/interface.d.ts +2 -0
  30. package/lib/cjs/tree/treeNode.d.ts +3 -0
  31. package/lib/cjs/tree/treeNode.js +34 -6
  32. package/lib/cjs/treeSelect/index.d.ts +2 -1
  33. package/lib/cjs/treeSelect/index.js +7 -2
  34. package/lib/es/image/interface.d.ts +3 -3
  35. package/lib/es/image/previewFooter.js +8 -5
  36. package/lib/es/image/previewHeader.d.ts +2 -2
  37. package/lib/es/image/previewHeader.js +3 -4
  38. package/lib/es/image/previewImage.d.ts +12 -1
  39. package/lib/es/image/previewImage.js +83 -23
  40. package/lib/es/image/previewInner.d.ts +2 -11
  41. package/lib/es/image/previewInner.js +42 -60
  42. package/lib/es/index.d.ts +0 -2
  43. package/lib/es/index.js +0 -2
  44. package/lib/es/modal/confirm.d.ts +6 -6
  45. package/lib/es/notification/index.d.ts +8 -8
  46. package/lib/es/notification/notice.d.ts +1 -1
  47. package/lib/es/notification/notice.js +1 -1
  48. package/lib/es/table/ColumnSorter.d.ts +3 -1
  49. package/lib/es/table/ColumnSorter.js +26 -15
  50. package/lib/es/table/Table.js +1 -0
  51. package/lib/es/table/interface.d.ts +4 -0
  52. package/lib/es/tree/indent.d.ts +9 -0
  53. package/lib/es/tree/indent.js +27 -0
  54. package/lib/es/tree/index.d.ts +2 -0
  55. package/lib/es/tree/index.js +8 -3
  56. package/lib/es/tree/interface.d.ts +2 -0
  57. package/lib/es/tree/treeNode.d.ts +3 -0
  58. package/lib/es/tree/treeNode.js +34 -6
  59. package/lib/es/treeSelect/index.d.ts +2 -1
  60. package/lib/es/treeSelect/index.js +7 -2
  61. package/package.json +8 -8
@@ -157,13 +157,13 @@ export declare function withError(props: ModalReactProps): {
157
157
  height?: string | number;
158
158
  content?: React.ReactNode;
159
159
  icon: string | number | boolean | React.ReactFragment | JSX.Element;
160
+ onCancel?: (e: React.MouseEvent<Element, MouseEvent>) => void | Promise<any>;
160
161
  closeOnEsc?: boolean;
161
162
  preventScroll?: boolean;
162
163
  afterClose?: () => void;
163
164
  keepDOM?: boolean;
164
165
  cancelText?: string;
165
166
  okText?: string;
166
- onCancel?: (e: React.MouseEvent<Element, MouseEvent>) => void | Promise<any>;
167
167
  closeIcon?: React.ReactNode;
168
168
  bodyStyle?: React.CSSProperties;
169
169
  closable?: boolean;
@@ -377,6 +377,11 @@ export declare function withError(props: ModalReactProps): {
377
377
  accessKey?: string;
378
378
  autoFocus?: boolean;
379
379
  content?: string;
380
+ formAction?: string;
381
+ formEncType?: string;
382
+ formMethod?: string;
383
+ formNoValidate?: boolean;
384
+ formTarget?: string;
380
385
  contextMenu?: string;
381
386
  dir?: string;
382
387
  draggable?: boolean | "true" | "false";
@@ -458,11 +463,6 @@ export declare function withError(props: ModalReactProps): {
458
463
  'aria-valuemin'?: number;
459
464
  'aria-valuenow'?: number;
460
465
  'aria-valuetext'?: string;
461
- formAction?: string;
462
- formEncType?: string;
463
- formMethod?: string;
464
- formNoValidate?: boolean;
465
- formTarget?: string;
466
466
  };
467
467
  };
468
468
  export declare function withConfirm(props: ModalReactProps): {
@@ -33,20 +33,20 @@ declare class NotificationList extends BaseComponent<NotificationListProps, Noti
33
33
  constructor(props: NotificationListProps);
34
34
  context: ContextValue;
35
35
  get adapter(): NotificationListAdapter;
36
- static addNotice(notice: NoticeProps): string | number;
36
+ static addNotice(notice: NoticeProps): string;
37
37
  static removeNotice(id: string): string;
38
- static info(opts: NoticeProps): string | number;
39
- static success(opts: NoticeProps): string | number;
40
- static error(opts: NoticeProps): string | number;
41
- static warning(opts: NoticeProps): string | number;
42
- static open(opts: NoticeProps): string | number;
38
+ static info(opts: NoticeProps): string;
39
+ static success(opts: NoticeProps): string;
40
+ static error(opts: NoticeProps): string;
41
+ static warning(opts: NoticeProps): string;
42
+ static open(opts: NoticeProps): string;
43
43
  static close(id: string): string;
44
44
  static destroyAll(): void;
45
45
  static config(opts: ConfigProps): void;
46
46
  add: (noticeOpts: NoticeProps) => any;
47
47
  has: (id: string) => any;
48
- remove: (id: string | number) => void;
49
- update: (id: string | number, opts: NoticeProps) => any;
48
+ remove: (id: string) => void;
49
+ update: (id: string, opts: NoticeProps) => any;
50
50
  destroyAll: () => any;
51
51
  renderNoticeInPosition: (notices: NoticeInstance[], position: NoticePosition, removedItems?: NoticeInstance[], updatedItems?: NoticeInstance[]) => JSX.Element;
52
52
  setPosInStyle(noticeInstance: NoticeInstance): {};
@@ -16,7 +16,7 @@ declare class Notice extends BaseComponent<NoticeReactProps, NoticeState> {
16
16
  static contextType: React.Context<ContextValue>;
17
17
  static propTypes: {
18
18
  duration: PropTypes.Requireable<number>;
19
- id: PropTypes.Requireable<NonNullable<string | number>>;
19
+ id: PropTypes.Requireable<string>;
20
20
  title: PropTypes.Requireable<PropTypes.ReactNodeLike>;
21
21
  content: PropTypes.Requireable<PropTypes.ReactNodeLike>;
22
22
  type: PropTypes.Requireable<string>;
@@ -168,7 +168,7 @@ class Notice extends _baseComponent.default {
168
168
  Notice.contextType = _context.default;
169
169
  Notice.propTypes = {
170
170
  duration: _propTypes.default.number,
171
- id: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
171
+ id: _propTypes.default.string,
172
172
  title: _propTypes.default.node,
173
173
  content: _propTypes.default.node,
174
174
  type: _propTypes.default.oneOf(types),
@@ -1,6 +1,6 @@
1
1
  import React, { PureComponent } from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { SortOrder } from './interface';
3
+ import { SortIcon, SortOrder } from './interface';
4
4
  export interface ColumnSorterProps {
5
5
  className?: string;
6
6
  style?: React.CSSProperties;
@@ -8,6 +8,7 @@ export interface ColumnSorterProps {
8
8
  prefixCls?: string;
9
9
  sortOrder?: SortOrder;
10
10
  title?: React.ReactNode;
11
+ sortIcon?: SortIcon;
11
12
  }
12
13
  export default class ColumnSorter extends PureComponent<ColumnSorterProps> {
13
14
  static propTypes: {
@@ -16,6 +17,7 @@ export default class ColumnSorter extends PureComponent<ColumnSorterProps> {
16
17
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
17
18
  prefixCls: PropTypes.Requireable<string>;
18
19
  sortOrder: PropTypes.Requireable<NonNullable<string | boolean>>;
20
+ sortIcon: PropTypes.Requireable<(...args: any[]) => any>;
19
21
  };
20
22
  static defaultProps: {
21
23
  prefixCls: "semi-table";
@@ -21,7 +21,8 @@ class ColumnSorter extends _react.PureComponent {
21
21
  onClick,
22
22
  sortOrder,
23
23
  style,
24
- title
24
+ title,
25
+ sortIcon
25
26
  } = this.props;
26
27
  const iconBtnSize = 'default';
27
28
  const upCls = (0, _classnames.default)(`${prefixCls}-column-sorter-up`, {
@@ -38,25 +39,34 @@ class ColumnSorter extends _react.PureComponent {
38
39
  'aria-label': `Current sort order is ${sortOrder ? `${sortOrder}ing` : 'none'}`,
39
40
  'aria-roledescription': 'Sort data with this column'
40
41
  };
42
+ const renderSortIcon = () => {
43
+ if (typeof sortIcon === 'function') {
44
+ return sortIcon({
45
+ sortOrder
46
+ });
47
+ } else {
48
+ return /*#__PURE__*/_react.default.createElement("div", {
49
+ style: style,
50
+ className: `${prefixCls}-column-sorter`
51
+ }, /*#__PURE__*/_react.default.createElement("span", {
52
+ className: `${upCls}`
53
+ }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconCaretup, {
54
+ size: iconBtnSize
55
+ })), /*#__PURE__*/_react.default.createElement("span", {
56
+ className: `${downCls}`
57
+ }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconCaretdown, {
58
+ size: iconBtnSize
59
+ })));
60
+ }
61
+ };
41
62
  return /*#__PURE__*/_react.default.createElement("div", Object.assign({
42
- role: 'button'
63
+ role: "button"
43
64
  }, ariaProps, {
44
65
  tabIndex: -1,
45
66
  className: `${prefixCls}-column-sorter-wrapper`,
46
67
  onClick: onClick,
47
68
  onKeyPress: e => (0, _isEnterPress.default)(e) && onClick(e)
48
- }), title, /*#__PURE__*/_react.default.createElement("div", {
49
- style: style,
50
- className: `${prefixCls}-column-sorter`
51
- }, /*#__PURE__*/_react.default.createElement("span", {
52
- className: `${upCls}`
53
- }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconCaretup, {
54
- size: iconBtnSize
55
- })), /*#__PURE__*/_react.default.createElement("span", {
56
- className: `${downCls}`
57
- }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconCaretdown, {
58
- size: iconBtnSize
59
- }))));
69
+ }), title, renderSortIcon());
60
70
  }
61
71
  }
62
72
  exports.default = ColumnSorter;
@@ -65,7 +75,8 @@ ColumnSorter.propTypes = {
65
75
  style: _propTypes.default.object,
66
76
  onClick: _propTypes.default.func,
67
77
  prefixCls: _propTypes.default.string,
68
- sortOrder: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool])
78
+ sortOrder: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),
79
+ sortIcon: _propTypes.default.func
69
80
  };
70
81
  ColumnSorter.defaultProps = {
71
82
  prefixCls: _constants.cssClasses.PREFIX,
@@ -647,6 +647,7 @@ class Table extends _baseComponent.default {
647
647
  const sorter = /*#__PURE__*/_react.default.createElement(_ColumnSorter.default, {
648
648
  key: _constants.strings.DEFAULT_KEY_COLUMN_SORTER,
649
649
  sortOrder: sortOrder,
650
+ sortIcon: column.sortIcon,
650
651
  onClick: e => _this2.foundation.handleSort(column, e),
651
652
  title: TitleNode
652
653
  });
@@ -83,6 +83,7 @@ export interface ColumnProps<RecordType extends Record<string, any> = any> {
83
83
  sortChildrenRecord?: boolean;
84
84
  sortOrder?: SortOrder;
85
85
  sorter?: Sorter<RecordType>;
86
+ sortIcon?: SortIcon;
86
87
  title?: ColumnTitle;
87
88
  useFullRender?: boolean;
88
89
  width?: string | number;
@@ -95,6 +96,9 @@ export interface ColumnProps<RecordType extends Record<string, any> = any> {
95
96
  }
96
97
  export type Align = BaseAlign;
97
98
  export type SortOrder = BaseSortOrder;
99
+ export type SortIcon = (props: {
100
+ sortOrder: SortOrder;
101
+ }) => ReactNode;
98
102
  export type FilterIcon = boolean | React.ReactNode | FilterIconRenderFunction;
99
103
  export interface Filter extends BaseFilter {
100
104
  value?: any;
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ interface IndentProps {
3
+ prefixcls: string;
4
+ level: number;
5
+ isEnd: boolean[];
6
+ showLine: boolean;
7
+ }
8
+ declare const _default: React.MemoExoticComponent<({ prefixcls, level, isEnd, showLine }: IndentProps) => JSX.Element>;
9
+ export default _default;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _classnames = _interopRequireDefault(require("classnames"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ 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); }
11
+ 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; }
12
+ const Indent = _ref => {
13
+ let {
14
+ prefixcls,
15
+ level,
16
+ isEnd,
17
+ showLine
18
+ } = _ref;
19
+ const baseClassName = `${prefixcls}-indent-unit`;
20
+ const list = [];
21
+ for (let i = 0; i < level; i += 1) {
22
+ list.push( /*#__PURE__*/React.createElement("span", {
23
+ key: i,
24
+ className: (0, _classnames.default)(baseClassName, {
25
+ [`${baseClassName}-end`]: isEnd[i]
26
+ })
27
+ }));
28
+ }
29
+ return /*#__PURE__*/React.createElement("span", {
30
+ "aria-hidden": "true",
31
+ className: (0, _classnames.default)(`${prefixcls}-indent`, {
32
+ [`${prefixcls}-indent-show-line`]: showLine
33
+ })
34
+ }, list);
35
+ };
36
+ var _default = /*#__PURE__*/React.memo(Indent);
37
+ exports.default = _default;
@@ -39,6 +39,7 @@ declare class Tree extends BaseComponent<TreeProps, TreeState> {
39
39
  searchStyle: PropTypes.Requireable<object>;
40
40
  selectedKey: PropTypes.Requireable<string>;
41
41
  showFilteredOnly: PropTypes.Requireable<boolean>;
42
+ showLine: PropTypes.Requireable<boolean>;
42
43
  style: PropTypes.Requireable<object>;
43
44
  treeData: PropTypes.Requireable<PropTypes.InferProps<{
44
45
  key: PropTypes.Requireable<string>;
@@ -90,6 +91,7 @@ declare class Tree extends BaseComponent<TreeProps, TreeState> {
90
91
  motion: boolean;
91
92
  leafOnly: boolean;
92
93
  showFilteredOnly: boolean;
94
+ showLine: boolean;
93
95
  expandAction: boolean;
94
96
  disableStrictly: boolean;
95
97
  draggable: boolean;
@@ -172,12 +172,14 @@ class Tree extends _baseComponent.default {
172
172
  return null;
173
173
  }
174
174
  const {
175
- keyMaps
175
+ keyMaps,
176
+ showLine
176
177
  } = this.props;
177
- const props = (0, _pick2.default)(treeNode, ['key', 'label', 'disabled', 'isLeaf', 'icon']);
178
+ const props = (0, _pick2.default)(treeNode, ['key', 'label', 'disabled', 'isLeaf', 'icon', 'isEnd']);
178
179
  const children = data[(0, _get2.default)(keyMaps, 'children', 'children')];
179
180
  !(0, _isUndefined2.default)(children) && (props.children = children);
180
181
  return /*#__PURE__*/_react.default.createElement(_treeNode.default, Object.assign({}, treeNodeProps, data, props, {
182
+ showLine: showLine,
181
183
  data: data,
182
184
  style: (0, _isEmpty2.default)(style) ? {} : style
183
185
  }));
@@ -611,6 +613,7 @@ class Tree extends _baseComponent.default {
611
613
  directory,
612
614
  multiple,
613
615
  showFilteredOnly,
616
+ showLine,
614
617
  motion,
615
618
  expandAction,
616
619
  loadData,
@@ -621,7 +624,7 @@ class Tree extends _baseComponent.default {
621
624
  virtualize,
622
625
  checkRelation
623
626
  } = _a,
624
- rest = __rest(_a, ["blockNode", "className", "style", "filterTreeNode", "disabled", "icon", "directory", "multiple", "showFilteredOnly", "motion", "expandAction", "loadData", "renderLabel", "draggable", "renderFullLabel", "labelEllipsis", "virtualize", "checkRelation"]);
627
+ rest = __rest(_a, ["blockNode", "className", "style", "filterTreeNode", "disabled", "icon", "directory", "multiple", "showFilteredOnly", "showLine", "motion", "expandAction", "loadData", "renderLabel", "draggable", "renderFullLabel", "labelEllipsis", "virtualize", "checkRelation"]);
625
628
  const wrapperCls = (0, _classnames.default)(`${prefixcls}-wrapper`, className);
626
629
  const listCls = (0, _classnames.default)(`${prefixcls}-option-list`, {
627
630
  [`${prefixcls}-option-list-block`]: blockNode
@@ -710,6 +713,7 @@ Tree.propTypes = {
710
713
  searchStyle: _propTypes.default.object,
711
714
  selectedKey: _propTypes.default.string,
712
715
  showFilteredOnly: _propTypes.default.bool,
716
+ showLine: _propTypes.default.bool,
713
717
  style: _propTypes.default.object,
714
718
  treeData: _propTypes.default.arrayOf(_propTypes.default.shape({
715
719
  key: _propTypes.default.string,
@@ -761,6 +765,7 @@ Tree.defaultProps = {
761
765
  motion: true,
762
766
  leafOnly: false,
763
767
  showFilteredOnly: false,
768
+ showLine: false,
764
769
  expandAction: false,
765
770
  disableStrictly: false,
766
771
  draggable: false,
@@ -90,6 +90,7 @@ export interface TreeState extends BasicTreeInnerData {
90
90
  export interface TreeNodeProps extends BasicTreeNodeProps {
91
91
  children?: TreeNodeData[];
92
92
  icon?: ReactNode;
93
+ isEnd?: boolean[];
93
94
  }
94
95
  export interface TreeNodeState {
95
96
  [x: string]: any;
@@ -104,6 +105,7 @@ export interface FlattenNode extends BasicFlattenNode {
104
105
  data?: BasicTreeNodeData;
105
106
  label?: ReactNode;
106
107
  parent?: null | FlattenNode;
108
+ isEnd?: boolean[];
107
109
  }
108
110
  export interface NodeListProps {
109
111
  [x: string]: any;
@@ -22,6 +22,8 @@ export default class TreeNode extends PureComponent<TreeNodeProps, TreeNodeState
22
22
  treeNodeFilterProp: PropTypes.Requireable<string>;
23
23
  selectedKey: PropTypes.Requireable<string>;
24
24
  motionKey: PropTypes.Requireable<NonNullable<string | string[]>>;
25
+ isEnd: PropTypes.Requireable<boolean[]>;
26
+ showLine: PropTypes.Requireable<boolean>;
25
27
  };
26
28
  static defaultProps: {
27
29
  selectedKey: string;
@@ -56,6 +58,7 @@ export default class TreeNode extends PureComponent<TreeNodeProps, TreeNodeState
56
58
  isDisabled: () => boolean;
57
59
  renderArrow(): JSX.Element;
58
60
  renderCheckbox(): JSX.Element;
61
+ renderSwitcher: () => JSX.Element;
59
62
  renderIcon(): any;
60
63
  renderEmptyNode(): JSX.Element;
61
64
  renderRealLabel: () => any;
@@ -19,6 +19,7 @@ var _checkbox = require("../checkbox");
19
19
  var _treeContext = _interopRequireDefault(require("./treeContext"));
20
20
  var _spin = _interopRequireDefault(require("../spin"));
21
21
  var _index = require("../_utils/index");
22
+ var _indent = _interopRequireDefault(require("./indent"));
22
23
  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); }
23
24
  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; }
24
25
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -204,6 +205,18 @@ class TreeNode extends _react.PureComponent {
204
205
  }
205
206
  return Boolean(treeDisabled || disabled);
206
207
  };
208
+ // Switcher
209
+ this.renderSwitcher = () => {
210
+ if (this.isLeaf()) {
211
+ // if switcherIconDom is null, no render switcher span
212
+ return /*#__PURE__*/_react.default.createElement("span", {
213
+ className: (0, _classnames.default)(`${prefixcls}-switcher`)
214
+ }, /*#__PURE__*/_react.default.createElement("span", {
215
+ className: `${prefixcls}-switcher-leaf-line`
216
+ }));
217
+ }
218
+ return null;
219
+ };
207
220
  this.renderRealLabel = () => {
208
221
  const {
209
222
  renderLabel
@@ -243,7 +256,8 @@ class TreeNode extends _react.PureComponent {
243
256
  const showIcon = !this.isLeaf();
244
257
  const {
245
258
  loading,
246
- expanded
259
+ expanded,
260
+ showLine
247
261
  } = this.props;
248
262
  if (loading) {
249
263
  return /*#__PURE__*/_react.default.createElement(_spin.default, {
@@ -259,6 +273,9 @@ class TreeNode extends _react.PureComponent {
259
273
  onClick: this.onExpand
260
274
  });
261
275
  }
276
+ if (showLine) {
277
+ return this.renderSwitcher();
278
+ }
262
279
  return /*#__PURE__*/_react.default.createElement("span", {
263
280
  className: `${prefixcls}-empty-icon`
264
281
  });
@@ -342,9 +359,11 @@ class TreeNode extends _react.PureComponent {
342
359
  filtered,
343
360
  treeNodeFilterProp,
344
361
  display,
345
- style
362
+ style,
363
+ isEnd,
364
+ showLine
346
365
  } = _a,
347
- rest = __rest(_a, ["eventKey", "expanded", "selected", "checked", "halfChecked", "loading", "active", "level", "empty", "filtered", "treeNodeFilterProp", "display", "style"]);
366
+ rest = __rest(_a, ["eventKey", "expanded", "selected", "checked", "halfChecked", "loading", "active", "level", "empty", "filtered", "treeNodeFilterProp", "display", "style", "isEnd", "showLine"]);
348
367
  if (empty) {
349
368
  return this.renderEmptyNode();
350
369
  }
@@ -356,6 +375,7 @@ class TreeNode extends _react.PureComponent {
356
375
  dropPosition,
357
376
  labelEllipsis
358
377
  } = this.context;
378
+ const isEndNode = isEnd[isEnd.length - 1];
359
379
  const disabled = this.isDisabled();
360
380
  const dragOver = dragOverNodeKey === eventKey && dropPosition === 0;
361
381
  const dragOverGapTop = dragOverNodeKey === eventKey && dropPosition === -1;
@@ -373,7 +393,8 @@ class TreeNode extends _react.PureComponent {
373
393
  [`${prefixcls}-fullLabel-draggable`]: !disabled && draggable && renderFullLabel,
374
394
  // When draggable + renderFullLabel is turned on, the style of dragover
375
395
  [`${prefixcls}-fullLabel-drag-over-gap-top`]: !disabled && dragOverGapTop && renderFullLabel,
376
- [`${prefixcls}-fullLabel-drag-over-gap-bottom`]: !disabled && dragOverGapBottom && renderFullLabel
396
+ [`${prefixcls}-fullLabel-drag-over-gap-bottom`]: !disabled && dragOverGapBottom && renderFullLabel,
397
+ [`${prefixcls}-tree-node-last-leaf`]: isEndNode
377
398
  });
378
399
  const labelProps = {
379
400
  onClick: this.onClick,
@@ -449,7 +470,12 @@ class TreeNode extends _react.PureComponent {
449
470
  onDoubleClick: this.onDoubleClick,
450
471
  ref: this.setRef,
451
472
  style: style
452
- }, dragProps), this.renderArrow(), /*#__PURE__*/_react.default.createElement("span", {
473
+ }, dragProps), /*#__PURE__*/_react.default.createElement(_indent.default, {
474
+ showLine: showLine,
475
+ prefixcls: prefixcls,
476
+ level: level,
477
+ isEnd: isEnd
478
+ }), this.renderArrow(), /*#__PURE__*/_react.default.createElement("span", {
453
479
  className: labelCls
454
480
  }, multiple ? this.renderCheckbox() : null, this.renderIcon(), /*#__PURE__*/_react.default.createElement("span", {
455
481
  className: `${prefixcls}-label-text`
@@ -475,7 +501,9 @@ TreeNode.propTypes = {
475
501
  keyword: _propTypes.default.string,
476
502
  treeNodeFilterProp: _propTypes.default.string,
477
503
  selectedKey: _propTypes.default.string,
478
- motionKey: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)])
504
+ motionKey: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
505
+ isEnd: _propTypes.default.arrayOf(_propTypes.default.bool),
506
+ showLine: _propTypes.default.bool
479
507
  };
480
508
  TreeNode.defaultProps = {
481
509
  selectedKey: '',
@@ -29,7 +29,7 @@ export type RenderSelectedItemInMultiple = (treeNode: TreeNodeData, otherProps:
29
29
  content: React.ReactNode;
30
30
  };
31
31
  export type RenderSelectedItem = RenderSelectedItemInSingle | RenderSelectedItemInMultiple;
32
- export type OverrideCommonProps = 'renderFullLabel' | 'renderLabel' | 'defaultValue' | 'emptyContent' | 'filterTreeNode' | 'style' | 'treeData' | 'value' | 'onExpand' | 'keyMaps';
32
+ export type OverrideCommonProps = 'renderFullLabel' | 'renderLabel' | 'defaultValue' | 'emptyContent' | 'filterTreeNode' | 'style' | 'treeData' | 'value' | 'onExpand' | 'keyMaps' | 'showLine';
33
33
  /**
34
34
  * Type definition description:
35
35
  * TreeSelectProps inherits some properties from BasicTreeSelectProps (from foundation) and TreeProps (from semi-ui-react).
@@ -134,6 +134,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
134
134
  showSearchClear: PropTypes.Requireable<boolean>;
135
135
  autoAdjustOverflow: PropTypes.Requireable<boolean>;
136
136
  showFilteredOnly: PropTypes.Requireable<boolean>;
137
+ showLine: PropTypes.Requireable<boolean>;
137
138
  motionExpand: PropTypes.Requireable<boolean>;
138
139
  emptyContent: PropTypes.Requireable<PropTypes.ReactNodeLike>;
139
140
  keyMaps: PropTypes.Requireable<object>;
@@ -702,10 +702,13 @@ class TreeSelect extends _baseComponent.default {
702
702
  key
703
703
  } = treeNode;
704
704
  const treeNodeProps = this.foundation.getTreeNodeProps(key);
705
+ const {
706
+ showLine
707
+ } = this.props;
705
708
  if (!treeNodeProps) {
706
709
  return null;
707
710
  }
708
- const props = (0, _pick2.default)(treeNode, ['key', 'label', 'disabled', 'isLeaf', 'icon']);
711
+ const props = (0, _pick2.default)(treeNode, ['key', 'label', 'disabled', 'isLeaf', 'icon', 'isEnd']);
709
712
  const {
710
713
  keyMaps
711
714
  } = this.props;
@@ -713,7 +716,8 @@ class TreeSelect extends _baseComponent.default {
713
716
  !(0, _isUndefined2.default)(children) && (props.children = children);
714
717
  return /*#__PURE__*/_react.default.createElement(_treeNode.default, Object.assign({}, treeNodeProps, data, props, {
715
718
  data: data,
716
- style: style
719
+ style: style,
720
+ showLine: showLine
717
721
  }));
718
722
  };
719
723
  this.itemKey = (index, data) => {
@@ -1247,6 +1251,7 @@ TreeSelect.propTypes = {
1247
1251
  showSearchClear: _propTypes.default.bool,
1248
1252
  autoAdjustOverflow: _propTypes.default.bool,
1249
1253
  showFilteredOnly: _propTypes.default.bool,
1254
+ showLine: _propTypes.default.bool,
1250
1255
  motionExpand: _propTypes.default.bool,
1251
1256
  emptyContent: _propTypes.default.node,
1252
1257
  keyMaps: _propTypes.default.object,
@@ -53,8 +53,6 @@ export interface PreviewProps extends BaseProps {
53
53
  zIndex?: number;
54
54
  children?: ReactNode;
55
55
  crossOrigin?: "anonymous" | "use-credentials";
56
- maxZoom?: number;
57
- minZoom?: number;
58
56
  renderHeader?: (info: any) => ReactNode;
59
57
  renderPreviewMenu?: (props: MenuProps) => ReactNode;
60
58
  getPopupContainer?: () => HTMLElement;
@@ -140,12 +138,14 @@ export interface FooterProps extends SliderProps {
140
138
  onRotate?: (direction: string) => void;
141
139
  onDownload?: () => void;
142
140
  renderPreviewMenu?: (props: MenuProps) => ReactNode;
143
- forwardRef?: React.RefObject<HTMLElement>;
144
141
  }
145
142
  export interface PreviewImageProps {
146
143
  src?: string;
147
144
  rotation?: number;
148
145
  style?: React.CSSProperties;
146
+ maxZoom?: number;
147
+ minZoom?: number;
148
+ zoomStep?: number;
149
149
  zoom?: number;
150
150
  ratio?: RatioType;
151
151
  disableDownload?: boolean;
@@ -12,9 +12,14 @@ import PreviewFooterFoundation from '@douyinfe/semi-foundation/lib/es/image/prev
12
12
  import LocaleConsumer from "../locale/localeConsumer";
13
13
  const prefixCls = cssClasses.PREFIX;
14
14
  const footerPrefixCls = `${cssClasses.PREFIX}-preview-footer`;
15
+ let mouseActiveTime = 0;
15
16
  export default class Footer extends BaseComponent {
16
17
  get adapter() {
17
- return Object.assign({}, super.adapter);
18
+ return Object.assign(Object.assign({}, super.adapter), {
19
+ setStartMouseOffset: time => {
20
+ mouseActiveTime = time;
21
+ }
22
+ });
18
23
  }
19
24
  constructor(props) {
20
25
  super(props);
@@ -254,15 +259,13 @@ export default class Footer extends BaseComponent {
254
259
  render() {
255
260
  const {
256
261
  className,
257
- renderPreviewMenu,
258
- forwardRef
262
+ renderPreviewMenu
259
263
  } = this.props;
260
264
  const menuCls = cls(footerPrefixCls, `${footerPrefixCls}-wrapper`, className, {
261
265
  [`${footerPrefixCls}-content`]: !Boolean(renderPreviewMenu)
262
266
  });
263
267
  return /*#__PURE__*/React.createElement("section", {
264
- className: menuCls,
265
- ref: forwardRef
268
+ className: menuCls
266
269
  }, renderPreviewMenu ? this.customRenderViewMenu() : this.getFooterMenu());
267
270
  }
268
271
  }
@@ -1,4 +1,4 @@
1
- import React from "react";
1
+ import * as React from "react";
2
2
  import { HeaderProps } from "./interface";
3
- declare const Header: React.ForwardRefExoticComponent<HeaderProps & React.RefAttributes<HTMLElement>>;
3
+ declare const Header: React.FC<HeaderProps>;
4
4
  export default Header;
@@ -1,10 +1,10 @@
1
- import React, { forwardRef } from "react";
1
+ import * as React from "react";
2
2
  import { IconClose } from "@douyinfe/semi-icons";
3
3
  import { cssClasses } from '@douyinfe/semi-foundation/lib/es/image/constants';
4
4
  import cls from "classnames";
5
5
  import { PreviewContext } from "./previewContext";
6
6
  const prefixCls = `${cssClasses.PREFIX}-preview-header`;
7
- const Header = /*#__PURE__*/forwardRef((_ref, ref) => {
7
+ const Header = _ref => {
8
8
  let {
9
9
  onClose,
10
10
  titleStyle,
@@ -21,7 +21,6 @@ const Header = /*#__PURE__*/forwardRef((_ref, ref) => {
21
21
  title = titles[currentIndex];
22
22
  }
23
23
  return /*#__PURE__*/React.createElement("section", {
24
- ref: ref,
25
24
  className: cls(prefixCls, className)
26
25
  }, /*#__PURE__*/React.createElement("section", {
27
26
  className: `${prefixCls}-title`,
@@ -31,5 +30,5 @@ const Header = /*#__PURE__*/forwardRef((_ref, ref) => {
31
30
  onMouseUp: onClose
32
31
  }, /*#__PURE__*/React.createElement(IconClose, null)));
33
32
  });
34
- });
33
+ };
35
34
  export default Header;
@@ -8,6 +8,9 @@ export default class PreviewImage extends BaseComponent<PreviewImageProps, Previ
8
8
  src: PropTypes.Requireable<string>;
9
9
  rotation: PropTypes.Requireable<number>;
10
10
  style: PropTypes.Requireable<object>;
11
+ maxZoom: PropTypes.Requireable<number>;
12
+ minZoom: PropTypes.Requireable<number>;
13
+ zoomStep: PropTypes.Requireable<number>;
11
14
  zoom: PropTypes.Requireable<number>;
12
15
  ratio: PropTypes.Requireable<string>;
13
16
  disableDownload: PropTypes.Requireable<boolean>;
@@ -18,21 +21,29 @@ export default class PreviewImage extends BaseComponent<PreviewImageProps, Previ
18
21
  onError: PropTypes.Requireable<(...args: any[]) => any>;
19
22
  };
20
23
  static defaultProps: {
24
+ maxZoom: number;
25
+ minZoom: number;
26
+ zoomStep: number;
21
27
  zoom: any;
22
28
  };
23
29
  get adapter(): PreviewImageAdapter<PreviewImageProps, PreviewImageStates>;
24
30
  containerRef: React.RefObject<HTMLDivElement>;
25
- imageRef: React.RefObject<HTMLImageElement>;
31
+ imageRef: HTMLImageElement | null;
26
32
  foundation: PreviewImageFoundation;
27
33
  constructor(props: any);
28
34
  componentDidMount(): void;
29
35
  componentWillUnmount(): void;
30
36
  componentDidUpdate(prevProps: PreviewImageProps, prevStates: PreviewImageStates): void;
31
37
  onWindowResize: () => void;
38
+ handleZoomChange: (newZoom: any, e: any) => void;
32
39
  handleRightClickImage: (e: any) => void;
40
+ handleWheel: (e: any) => void;
33
41
  handleLoad: (e: any) => void;
34
42
  handleError: (e: any) => void;
43
+ resizeImage: () => void;
35
44
  handleMoveImage: (e: any) => void;
45
+ registryImageRef: (ref: any) => void;
36
46
  onImageMouseDown: (e: React.MouseEvent<HTMLImageElement>) => void;
47
+ onImageMouseUp: () => void;
37
48
  render(): JSX.Element;
38
49
  }