@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.
- package/dist/css/semi.css +74 -161
- package/dist/css/semi.min.css +1 -1
- package/dist/umd/semi-ui.js +465 -389
- package/dist/umd/semi-ui.js.map +1 -1
- package/dist/umd/semi-ui.min.js +1 -1
- package/dist/umd/semi-ui.min.js.map +1 -1
- package/lib/cjs/image/interface.d.ts +3 -3
- package/lib/cjs/image/previewFooter.js +8 -5
- package/lib/cjs/image/previewHeader.d.ts +2 -2
- package/lib/cjs/image/previewHeader.js +8 -9
- package/lib/cjs/image/previewImage.d.ts +12 -1
- package/lib/cjs/image/previewImage.js +83 -23
- package/lib/cjs/image/previewInner.d.ts +2 -11
- package/lib/cjs/image/previewInner.js +42 -60
- package/lib/cjs/index.d.ts +0 -2
- package/lib/cjs/index.js +0 -14
- package/lib/cjs/modal/confirm.d.ts +6 -6
- package/lib/cjs/notification/index.d.ts +8 -8
- package/lib/cjs/notification/notice.d.ts +1 -1
- package/lib/cjs/notification/notice.js +1 -1
- package/lib/cjs/table/ColumnSorter.d.ts +3 -1
- package/lib/cjs/table/ColumnSorter.js +26 -15
- package/lib/cjs/table/Table.js +1 -0
- package/lib/cjs/table/interface.d.ts +4 -0
- package/lib/cjs/tree/indent.d.ts +9 -0
- package/lib/cjs/tree/indent.js +37 -0
- package/lib/cjs/tree/index.d.ts +2 -0
- package/lib/cjs/tree/index.js +8 -3
- package/lib/cjs/tree/interface.d.ts +2 -0
- package/lib/cjs/tree/treeNode.d.ts +3 -0
- package/lib/cjs/tree/treeNode.js +34 -6
- package/lib/cjs/treeSelect/index.d.ts +2 -1
- package/lib/cjs/treeSelect/index.js +7 -2
- package/lib/es/image/interface.d.ts +3 -3
- package/lib/es/image/previewFooter.js +8 -5
- package/lib/es/image/previewHeader.d.ts +2 -2
- package/lib/es/image/previewHeader.js +3 -4
- package/lib/es/image/previewImage.d.ts +12 -1
- package/lib/es/image/previewImage.js +83 -23
- package/lib/es/image/previewInner.d.ts +2 -11
- package/lib/es/image/previewInner.js +42 -60
- package/lib/es/index.d.ts +0 -2
- package/lib/es/index.js +0 -2
- package/lib/es/modal/confirm.d.ts +6 -6
- package/lib/es/notification/index.d.ts +8 -8
- package/lib/es/notification/notice.d.ts +1 -1
- package/lib/es/notification/notice.js +1 -1
- package/lib/es/table/ColumnSorter.d.ts +3 -1
- package/lib/es/table/ColumnSorter.js +26 -15
- package/lib/es/table/Table.js +1 -0
- package/lib/es/table/interface.d.ts +4 -0
- package/lib/es/tree/indent.d.ts +9 -0
- package/lib/es/tree/indent.js +27 -0
- package/lib/es/tree/index.d.ts +2 -0
- package/lib/es/tree/index.js +8 -3
- package/lib/es/tree/interface.d.ts +2 -0
- package/lib/es/tree/treeNode.d.ts +3 -0
- package/lib/es/tree/treeNode.js +34 -6
- package/lib/es/treeSelect/index.d.ts +2 -1
- package/lib/es/treeSelect/index.js +7 -2
- 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
|
|
36
|
+
static addNotice(notice: NoticeProps): string;
|
|
37
37
|
static removeNotice(id: string): string;
|
|
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
|
|
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
|
|
49
|
-
update: (id: string
|
|
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<
|
|
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.
|
|
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:
|
|
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,
|
|
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,
|
package/lib/cjs/table/Table.js
CHANGED
|
@@ -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;
|
package/lib/cjs/tree/index.d.ts
CHANGED
|
@@ -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;
|
package/lib/cjs/tree/index.js
CHANGED
|
@@ -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;
|
package/lib/cjs/tree/treeNode.js
CHANGED
|
@@ -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),
|
|
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.
|
|
3
|
+
declare const Header: React.FC<HeaderProps>;
|
|
4
4
|
export default Header;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
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 =
|
|
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:
|
|
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
|
}
|