@douyinfe/semi-ui 2.0.8 → 2.1.0-beta.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 +166 -6
- package/dist/css/semi.min.css +1 -1
- package/dist/umd/semi-ui.js +318 -172
- 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/es/autoComplete/index.d.ts +0 -1
- package/lib/es/autoComplete/index.js +0 -1
- package/lib/es/button/index.d.ts +0 -1
- package/lib/es/button/index.js +1 -2
- package/lib/es/cascader/index.d.ts +1 -0
- package/lib/es/cascader/index.js +15 -3
- package/lib/es/datePicker/yearAndMonth.js +1 -1
- package/lib/es/form/hoc/withField.d.ts +2 -2
- package/lib/es/form/interface.d.ts +2 -2
- package/lib/es/iconButton/index.d.ts +0 -1
- package/lib/es/iconButton/index.js +0 -1
- package/lib/es/notification/index.d.ts +1 -1
- package/lib/es/popconfirm/index.d.ts +5 -1
- package/lib/es/popconfirm/index.js +10 -4
- package/lib/es/popover/index.d.ts +3 -1
- package/lib/es/popover/index.js +4 -8
- package/lib/es/radio/context.d.ts +1 -1
- package/lib/es/radio/radio.d.ts +2 -2
- package/lib/es/radio/radioGroup.d.ts +4 -4
- package/lib/es/select/index.d.ts +0 -1
- package/lib/es/select/index.js +16 -10
- package/lib/es/select/option.js +2 -2
- package/lib/es/select/utils.d.ts +1 -1
- package/lib/es/select/utils.js +10 -4
- package/lib/es/slider/index.js +3 -1
- package/lib/es/spin/index.d.ts +2 -2
- package/lib/es/spin/index.js +1 -1
- package/lib/es/tabs/TabBar.d.ts +4 -2
- package/lib/es/tabs/TabBar.js +12 -4
- package/lib/es/tabs/TabPane.d.ts +2 -1
- package/lib/es/tabs/TabPane.js +3 -2
- package/lib/es/tabs/index.d.ts +4 -2
- package/lib/es/tabs/index.js +83 -14
- package/lib/es/tabs/interface.d.ts +6 -1
- package/lib/es/tagInput/index.d.ts +3 -0
- package/lib/es/tagInput/index.js +6 -1
- package/lib/es/toast/index.d.ts +1 -1
- package/lib/es/tooltip/index.d.ts +3 -0
- package/lib/es/tooltip/index.js +3 -0
- package/lib/es/tree/interface.d.ts +2 -2
- package/lib/es/treeSelect/index.d.ts +2 -11
- package/lib/es/upload/index.d.ts +1 -0
- package/package.json +8 -8
package/lib/es/tabs/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { MouseEvent, ReactElement, ReactNode, RefCallback, RefObject } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import TabsFoundation, { TabsAdapter } from '@douyinfe/semi-foundation/lib/es/tabs/foundation';
|
|
4
4
|
import BaseComponent from '../_base/baseComponent';
|
|
5
5
|
import '@douyinfe/semi-foundation/lib/es/tabs/tabs.css';
|
|
6
6
|
import TabPane from './TabPane';
|
|
7
|
-
import {
|
|
7
|
+
import { PlainTab, TabsProps } from './interface';
|
|
8
8
|
export * from './interface';
|
|
9
9
|
export interface TabsState {
|
|
10
10
|
activeKey: string;
|
|
@@ -32,6 +32,7 @@ declare class Tabs extends BaseComponent<TabsProps, TabsState> {
|
|
|
32
32
|
tabPaneMotion: PropTypes.Requireable<boolean | object>;
|
|
33
33
|
tabPosition: PropTypes.Requireable<string>;
|
|
34
34
|
type: PropTypes.Requireable<string>;
|
|
35
|
+
onTabClose: PropTypes.Requireable<(...args: any[]) => any>;
|
|
35
36
|
};
|
|
36
37
|
static defaultProps: TabsProps;
|
|
37
38
|
contentRef: RefObject<HTMLDivElement>;
|
|
@@ -45,6 +46,7 @@ declare class Tabs extends BaseComponent<TabsProps, TabsState> {
|
|
|
45
46
|
onTabClick: (activeKey: string, event: MouseEvent<HTMLDivElement>) => void;
|
|
46
47
|
rePosChildren: (children: ReactElement[], activeKey: string) => ReactElement[];
|
|
47
48
|
getActiveItem: () => ReactNode | ReactNode[];
|
|
49
|
+
deleteTabItem: (tabKey: string, event: MouseEvent<HTMLDivElement>) => void;
|
|
48
50
|
render(): ReactNode;
|
|
49
51
|
}
|
|
50
52
|
export default Tabs;
|
package/lib/es/tabs/index.js
CHANGED
|
@@ -5,6 +5,7 @@ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/insta
|
|
|
5
5
|
import _Array$isArray from "@babel/runtime-corejs3/core-js-stable/array/is-array";
|
|
6
6
|
import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
|
|
7
7
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
8
|
+
import _findIndexInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find-index";
|
|
8
9
|
import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
|
|
9
10
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
|
10
11
|
|
|
@@ -26,7 +27,7 @@ import { cssClasses, strings } from '@douyinfe/semi-foundation/lib/es/tabs/const
|
|
|
26
27
|
import isNullOrUndefined from '@douyinfe/semi-foundation/lib/es/utils/isNullOrUndefined';
|
|
27
28
|
import getDataAttr from '@douyinfe/semi-foundation/lib/es/utils/getDataAttr';
|
|
28
29
|
import TabsFoundation from '@douyinfe/semi-foundation/lib/es/tabs/foundation';
|
|
29
|
-
import { isEqual,
|
|
30
|
+
import { isEqual, omit, pick } from 'lodash-es';
|
|
30
31
|
import BaseComponent from '../_base/baseComponent';
|
|
31
32
|
import '@douyinfe/semi-foundation/lib/es/tabs/tabs.css';
|
|
32
33
|
import TabBar from './TabBar';
|
|
@@ -87,6 +88,11 @@ class Tabs extends BaseComponent {
|
|
|
87
88
|
});
|
|
88
89
|
};
|
|
89
90
|
|
|
91
|
+
this.deleteTabItem = (tabKey, event) => {
|
|
92
|
+
event.stopPropagation();
|
|
93
|
+
this.foundation.handleTabDelete(tabKey);
|
|
94
|
+
};
|
|
95
|
+
|
|
90
96
|
this.foundation = new TabsFoundation(this.adapter);
|
|
91
97
|
this.state = {
|
|
92
98
|
activeKey: this.foundation.getDefaultActiveKey(),
|
|
@@ -119,13 +125,15 @@ class Tabs extends BaseComponent {
|
|
|
119
125
|
tab,
|
|
120
126
|
icon,
|
|
121
127
|
disabled,
|
|
122
|
-
itemKey
|
|
128
|
+
itemKey,
|
|
129
|
+
closable
|
|
123
130
|
} = child.props;
|
|
124
131
|
return {
|
|
125
132
|
tab,
|
|
126
133
|
icon,
|
|
127
134
|
disabled,
|
|
128
|
-
itemKey
|
|
135
|
+
itemKey,
|
|
136
|
+
closable
|
|
129
137
|
};
|
|
130
138
|
}
|
|
131
139
|
|
|
@@ -136,6 +144,61 @@ class Tabs extends BaseComponent {
|
|
|
136
144
|
panes
|
|
137
145
|
});
|
|
138
146
|
},
|
|
147
|
+
collectActiveKey: () => {
|
|
148
|
+
let panes = [];
|
|
149
|
+
const {
|
|
150
|
+
tabList,
|
|
151
|
+
children,
|
|
152
|
+
activeKey: propsActiveKey
|
|
153
|
+
} = this.props;
|
|
154
|
+
|
|
155
|
+
if (typeof propsActiveKey !== 'undefined') {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
const {
|
|
160
|
+
activeKey
|
|
161
|
+
} = this.state;
|
|
162
|
+
|
|
163
|
+
if (_Array$isArray(tabList) && tabList.length) {
|
|
164
|
+
panes = tabList;
|
|
165
|
+
} else {
|
|
166
|
+
var _context3;
|
|
167
|
+
|
|
168
|
+
panes = _mapInstanceProperty(_context3 = React.Children).call(_context3, children, child => {
|
|
169
|
+
if (child) {
|
|
170
|
+
const {
|
|
171
|
+
tab,
|
|
172
|
+
icon,
|
|
173
|
+
disabled,
|
|
174
|
+
itemKey,
|
|
175
|
+
closable
|
|
176
|
+
} = child.props;
|
|
177
|
+
return {
|
|
178
|
+
tab,
|
|
179
|
+
icon,
|
|
180
|
+
disabled,
|
|
181
|
+
itemKey,
|
|
182
|
+
closable
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
return undefined;
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
if (_findIndexInstanceProperty(panes).call(panes, p => p.itemKey === activeKey) === -1) {
|
|
191
|
+
if (panes.length > 0) {
|
|
192
|
+
this.setState({
|
|
193
|
+
activeKey: panes[0].itemKey
|
|
194
|
+
});
|
|
195
|
+
} else {
|
|
196
|
+
this.setState({
|
|
197
|
+
activeKey: ''
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
},
|
|
139
202
|
notifyTabClick: (activeKey, event) => {
|
|
140
203
|
this.props.onTabClick(activeKey, event);
|
|
141
204
|
},
|
|
@@ -148,14 +211,14 @@ class Tabs extends BaseComponent {
|
|
|
148
211
|
});
|
|
149
212
|
},
|
|
150
213
|
getDefaultActiveKeyFromChildren: () => {
|
|
151
|
-
var
|
|
214
|
+
var _context4;
|
|
152
215
|
|
|
153
216
|
const {
|
|
154
217
|
tabList,
|
|
155
218
|
children
|
|
156
219
|
} = this.props;
|
|
157
220
|
let activeKey = '';
|
|
158
|
-
const list = tabList ? tabList : _mapInstanceProperty(
|
|
221
|
+
const list = tabList ? tabList : _mapInstanceProperty(_context4 = React.Children.toArray(children)).call(_context4, child => child.props);
|
|
159
222
|
|
|
160
223
|
_forEachInstanceProperty(list).call(list, item => {
|
|
161
224
|
if (item && !activeKey && !item.disabled) {
|
|
@@ -164,6 +227,9 @@ class Tabs extends BaseComponent {
|
|
|
164
227
|
});
|
|
165
228
|
|
|
166
229
|
return activeKey;
|
|
230
|
+
},
|
|
231
|
+
notifyTabDelete: tabKey => {
|
|
232
|
+
this.props.onTabClose && this.props.onTabClose(tabKey);
|
|
167
233
|
}
|
|
168
234
|
});
|
|
169
235
|
}
|
|
@@ -179,12 +245,12 @@ class Tabs extends BaseComponent {
|
|
|
179
245
|
}
|
|
180
246
|
|
|
181
247
|
componentDidUpdate(prevProps) {
|
|
182
|
-
var
|
|
248
|
+
var _context5, _context6;
|
|
183
249
|
|
|
184
250
|
// Panes state acts on tab bar, no need to compare TabPane children
|
|
185
|
-
const prevChildrenProps = _mapInstanceProperty(
|
|
251
|
+
const prevChildrenProps = _mapInstanceProperty(_context5 = React.Children.toArray(prevProps.children)).call(_context5, child => pick(child.props, panePickKeys));
|
|
186
252
|
|
|
187
|
-
const nowChildrenProps = _mapInstanceProperty(
|
|
253
|
+
const nowChildrenProps = _mapInstanceProperty(_context6 = React.Children.toArray(this.props.children)).call(_context6, child => pick(child.props, panePickKeys));
|
|
188
254
|
|
|
189
255
|
const isTabListType = this.props.tabList || prevProps.tabList;
|
|
190
256
|
|
|
@@ -202,7 +268,7 @@ class Tabs extends BaseComponent {
|
|
|
202
268
|
}
|
|
203
269
|
|
|
204
270
|
render() {
|
|
205
|
-
var
|
|
271
|
+
var _context7, _context8;
|
|
206
272
|
|
|
207
273
|
const _a = this.props,
|
|
208
274
|
{
|
|
@@ -230,11 +296,11 @@ class Tabs extends BaseComponent {
|
|
|
230
296
|
} = this.state;
|
|
231
297
|
const tabWrapperCls = cls(className, {
|
|
232
298
|
[cssClasses.TABS]: true,
|
|
233
|
-
[_concatInstanceProperty(
|
|
299
|
+
[_concatInstanceProperty(_context7 = "".concat(cssClasses.TABS, "-")).call(_context7, tabPosition)]: tabPosition
|
|
234
300
|
});
|
|
235
301
|
const tabContentCls = cls({
|
|
236
302
|
[cssClasses.TABS_CONTENT]: true,
|
|
237
|
-
[_concatInstanceProperty(
|
|
303
|
+
[_concatInstanceProperty(_context8 = "".concat(cssClasses.TABS_CONTENT, "-")).call(_context8, tabPosition)]: tabPosition
|
|
238
304
|
});
|
|
239
305
|
const tabBarProps = {
|
|
240
306
|
activeKey,
|
|
@@ -246,7 +312,8 @@ class Tabs extends BaseComponent {
|
|
|
246
312
|
style: tabBarStyle,
|
|
247
313
|
tabBarExtraContent,
|
|
248
314
|
tabPosition,
|
|
249
|
-
type
|
|
315
|
+
type,
|
|
316
|
+
deleteTabItem: this.deleteTabItem
|
|
250
317
|
};
|
|
251
318
|
const tabBar = renderTabBar ? renderTabBar(tabBarProps, TabBar) : /*#__PURE__*/React.createElement(TabBar, _Object$assign({}, tabBarProps));
|
|
252
319
|
const content = keepDOM ? children : this.getActiveItem();
|
|
@@ -291,7 +358,8 @@ Tabs.propTypes = {
|
|
|
291
358
|
tabList: PropTypes.array,
|
|
292
359
|
tabPaneMotion: PropTypes.oneOfType([PropTypes.bool, PropTypes.object, PropTypes.func]),
|
|
293
360
|
tabPosition: PropTypes.oneOf(strings.POSITION_MAP),
|
|
294
|
-
type: PropTypes.oneOf(strings.TYPE_MAP)
|
|
361
|
+
type: PropTypes.oneOf(strings.TYPE_MAP),
|
|
362
|
+
onTabClose: PropTypes.func
|
|
295
363
|
};
|
|
296
364
|
Tabs.defaultProps = {
|
|
297
365
|
children: [],
|
|
@@ -303,6 +371,7 @@ Tabs.defaultProps = {
|
|
|
303
371
|
size: 'large',
|
|
304
372
|
tabPaneMotion: true,
|
|
305
373
|
tabPosition: 'top',
|
|
306
|
-
type: 'line'
|
|
374
|
+
type: 'line',
|
|
375
|
+
onTabClose: () => undefined
|
|
307
376
|
};
|
|
308
377
|
export default Tabs;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ComponentType, CSSProperties, MouseEvent, ReactNode } from 'react';
|
|
2
2
|
import { Motion } from '../_base/base';
|
|
3
3
|
export declare type TabType = 'line' | 'card' | 'button';
|
|
4
4
|
export declare type TabSize = 'small' | 'medium' | 'large';
|
|
@@ -8,6 +8,7 @@ export interface PlainTab {
|
|
|
8
8
|
icon?: ReactNode;
|
|
9
9
|
itemKey: string;
|
|
10
10
|
tab?: ReactNode;
|
|
11
|
+
closable: boolean;
|
|
11
12
|
}
|
|
12
13
|
export interface TabsProps {
|
|
13
14
|
activeKey?: string;
|
|
@@ -30,6 +31,7 @@ export interface TabsProps {
|
|
|
30
31
|
tabPaneMotion?: boolean;
|
|
31
32
|
tabPosition?: TabPosition;
|
|
32
33
|
type?: TabType;
|
|
34
|
+
onTabClose?: (tabKey: string) => void;
|
|
33
35
|
}
|
|
34
36
|
export interface TabBarProps {
|
|
35
37
|
activeKey?: string;
|
|
@@ -44,6 +46,8 @@ export interface TabBarProps {
|
|
|
44
46
|
type?: TabType;
|
|
45
47
|
dropdownClassName?: string;
|
|
46
48
|
dropdownStyle?: CSSProperties;
|
|
49
|
+
closable?: boolean;
|
|
50
|
+
deleteTabItem?: (tabKey: string, event: MouseEvent<Element>) => void;
|
|
47
51
|
}
|
|
48
52
|
export interface TabPaneProps {
|
|
49
53
|
className?: string;
|
|
@@ -52,6 +56,7 @@ export interface TabPaneProps {
|
|
|
52
56
|
itemKey?: string;
|
|
53
57
|
style?: CSSProperties;
|
|
54
58
|
tab?: ReactNode;
|
|
59
|
+
closable?: boolean;
|
|
55
60
|
}
|
|
56
61
|
export interface TabPaneTransitionProps {
|
|
57
62
|
[key: string]: any;
|
|
@@ -29,6 +29,7 @@ export interface TagInputProps {
|
|
|
29
29
|
onFocus?: (e: React.MouseEvent<HTMLInputElement>) => void;
|
|
30
30
|
onInputChange?: (value: string, e: React.MouseEvent<HTMLInputElement>) => void;
|
|
31
31
|
onInputExceed?: ((value: string) => void);
|
|
32
|
+
onKeyDown?: (e: React.MouseEvent<HTMLInputElement>) => void;
|
|
32
33
|
onRemove?: (removedValue: string, idx: number) => void;
|
|
33
34
|
placeholder?: string;
|
|
34
35
|
prefix?: React.ReactNode;
|
|
@@ -78,6 +79,7 @@ declare class TagInput extends BaseComponent<TagInputProps, TagInputState> {
|
|
|
78
79
|
onInputExceed: PropTypes.Requireable<(...args: any[]) => any>;
|
|
79
80
|
onAdd: PropTypes.Requireable<(...args: any[]) => any>;
|
|
80
81
|
onRemove: PropTypes.Requireable<(...args: any[]) => any>;
|
|
82
|
+
onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
|
|
81
83
|
size: PropTypes.Requireable<"default" | "small" | "large">;
|
|
82
84
|
validateStatus: PropTypes.Requireable<"default" | "error" | "warning">;
|
|
83
85
|
prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
@@ -101,6 +103,7 @@ declare class TagInput extends BaseComponent<TagInputProps, TagInputState> {
|
|
|
101
103
|
onInputExceed: (...args: any[]) => void;
|
|
102
104
|
onAdd: (...args: any[]) => void;
|
|
103
105
|
onRemove: (...args: any[]) => void;
|
|
106
|
+
onKeyDown: (...args: any[]) => void;
|
|
104
107
|
};
|
|
105
108
|
inputRef: React.RefObject<HTMLInputElement>;
|
|
106
109
|
constructor(props: TagInputProps);
|
package/lib/es/tagInput/index.js
CHANGED
|
@@ -112,6 +112,9 @@ class TagInput extends BaseComponent {
|
|
|
112
112
|
},
|
|
113
113
|
notifyTagRemove: (v, idx) => {
|
|
114
114
|
this.props.onRemove(v, idx);
|
|
115
|
+
},
|
|
116
|
+
notifyKeyDown: e => {
|
|
117
|
+
this.props.onKeyDown(e);
|
|
115
118
|
}
|
|
116
119
|
});
|
|
117
120
|
}
|
|
@@ -360,6 +363,7 @@ TagInput.propTypes = {
|
|
|
360
363
|
onInputExceed: PropTypes.func,
|
|
361
364
|
onAdd: PropTypes.func,
|
|
362
365
|
onRemove: PropTypes.func,
|
|
366
|
+
onKeyDown: PropTypes.func,
|
|
363
367
|
size: PropTypes.oneOf(strings.SIZE_SET),
|
|
364
368
|
validateStatus: PropTypes.oneOf(strings.STATUS),
|
|
365
369
|
prefix: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
|
|
@@ -382,6 +386,7 @@ TagInput.defaultProps = {
|
|
|
382
386
|
onExceed: noop,
|
|
383
387
|
onInputExceed: noop,
|
|
384
388
|
onAdd: noop,
|
|
385
|
-
onRemove: noop
|
|
389
|
+
onRemove: noop,
|
|
390
|
+
onKeyDown: noop
|
|
386
391
|
};
|
|
387
392
|
export default TagInput;
|
package/lib/es/toast/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export interface ToastReactProps extends ToastProps {
|
|
|
11
11
|
icon?: React.ReactNode;
|
|
12
12
|
content: React.ReactNode;
|
|
13
13
|
}
|
|
14
|
-
export { ToastListProps, ToastListState, ToastState };
|
|
14
|
+
export { ConfigProps, ToastListProps, ToastListState, ToastState };
|
|
15
15
|
declare const createBaseToast: () => {
|
|
16
16
|
new (props: ToastListProps): {
|
|
17
17
|
readonly adapter: ToastListAdapter;
|
|
@@ -31,6 +31,7 @@ export interface TooltipProps extends BaseProps {
|
|
|
31
31
|
content?: React.ReactNode;
|
|
32
32
|
prefixCls?: string;
|
|
33
33
|
onVisibleChange?: (visible: boolean) => void;
|
|
34
|
+
onClickOutSide?: (e: React.MouseEvent) => void;
|
|
34
35
|
spacing?: number;
|
|
35
36
|
showArrow?: boolean | React.ReactNode;
|
|
36
37
|
zIndex?: number;
|
|
@@ -77,6 +78,7 @@ export default class Tooltip extends BaseComponent<TooltipProps, TooltipState> {
|
|
|
77
78
|
content: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
78
79
|
prefixCls: PropTypes.Requireable<string>;
|
|
79
80
|
onVisibleChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
81
|
+
onClickOutSide: PropTypes.Requireable<(...args: any[]) => any>;
|
|
80
82
|
spacing: PropTypes.Requireable<number>;
|
|
81
83
|
showArrow: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
82
84
|
zIndex: PropTypes.Requireable<number>;
|
|
@@ -105,6 +107,7 @@ export default class Tooltip extends BaseComponent<TooltipProps, TooltipState> {
|
|
|
105
107
|
mouseEnterDelay: 50;
|
|
106
108
|
mouseLeaveDelay: 50;
|
|
107
109
|
onVisibleChange: (...args: any[]) => void;
|
|
110
|
+
onClickOutSide: (...args: any[]) => void;
|
|
108
111
|
spacing: 8;
|
|
109
112
|
showArrow: boolean;
|
|
110
113
|
arrowBounding: {
|
package/lib/es/tooltip/index.js
CHANGED
|
@@ -423,6 +423,7 @@ export default class Tooltip extends BaseComponent {
|
|
|
423
423
|
popupEl = ReactDOM.findDOMNode(popupEl);
|
|
424
424
|
|
|
425
425
|
if (el && !el.contains(e.target) && popupEl && !popupEl.contains(e.target) || this.props.clickTriggerToHide) {
|
|
426
|
+
this.props.onClickOutSide(e);
|
|
426
427
|
cb();
|
|
427
428
|
}
|
|
428
429
|
};
|
|
@@ -621,6 +622,7 @@ Tooltip.propTypes = {
|
|
|
621
622
|
content: PropTypes.node,
|
|
622
623
|
prefixCls: PropTypes.string,
|
|
623
624
|
onVisibleChange: PropTypes.func,
|
|
625
|
+
onClickOutSide: PropTypes.func,
|
|
624
626
|
spacing: PropTypes.number,
|
|
625
627
|
showArrow: PropTypes.oneOfType([PropTypes.bool, PropTypes.node]),
|
|
626
628
|
zIndex: PropTypes.number,
|
|
@@ -646,6 +648,7 @@ Tooltip.defaultProps = {
|
|
|
646
648
|
mouseEnterDelay: numbers.MOUSE_ENTER_DELAY,
|
|
647
649
|
mouseLeaveDelay: numbers.MOUSE_LEAVE_DELAY,
|
|
648
650
|
onVisibleChange: noop,
|
|
651
|
+
onClickOutSide: noop,
|
|
649
652
|
spacing: numbers.SPACING,
|
|
650
653
|
showArrow: true,
|
|
651
654
|
arrowBounding: numbers.ARROW_BOUNDING
|
|
@@ -22,7 +22,7 @@ export interface OnDragProps extends BasicOnDragProps {
|
|
|
22
22
|
export interface DragEnterProps extends DragProps {
|
|
23
23
|
expandedKeys?: string[];
|
|
24
24
|
}
|
|
25
|
-
export interface
|
|
25
|
+
export interface ExpandedOtherProps extends BasicExpandedOtherProps {
|
|
26
26
|
node: TreeNodeData;
|
|
27
27
|
}
|
|
28
28
|
export interface RenderFullLabelProps extends BasicRenderFullLabelProps {
|
|
@@ -57,7 +57,7 @@ export interface TreeProps extends BasicTreeProps {
|
|
|
57
57
|
onDragStart?: (dragProps: DragProps) => void;
|
|
58
58
|
onDragEnter?: (dragEnterProps: DragEnterProps) => void;
|
|
59
59
|
onDrop?: (onDragProps: OnDragProps) => void;
|
|
60
|
-
onExpand?: (expandedKeys: string[],
|
|
60
|
+
onExpand?: (expandedKeys: string[], expandedOtherProps: ExpandedOtherProps) => void;
|
|
61
61
|
onLoad?: (loadedKeys?: Set<string>, treeNode?: TreeNodeData) => void;
|
|
62
62
|
onContextMenu?: (e: MouseEvent, node: TreeNodeData) => void;
|
|
63
63
|
onSelect?: (selectedKeys: string, selected: boolean, selectedNode: TreeNodeData) => void;
|
|
@@ -27,16 +27,7 @@ export declare type RenderSelectedItemInMultiple = (treeNode: TreeNodeData, othe
|
|
|
27
27
|
isRenderInTag: boolean;
|
|
28
28
|
content: React.ReactNode;
|
|
29
29
|
};
|
|
30
|
-
export
|
|
31
|
-
(treeNode: TreeNodeData): React.ReactNode;
|
|
32
|
-
(treeNode: TreeNodeData, otherProps: {
|
|
33
|
-
index: number | string;
|
|
34
|
-
onClose: (tagContent: any, e: React.MouseEvent) => void;
|
|
35
|
-
}): {
|
|
36
|
-
isRenderInTag: boolean;
|
|
37
|
-
content: React.ReactNode;
|
|
38
|
-
};
|
|
39
|
-
}
|
|
30
|
+
export declare type RenderSelectedItem = RenderSelectedItemInSingle | RenderSelectedItemInMultiple;
|
|
40
31
|
export declare type OverrideCommonProps = 'renderFullLabel' | 'renderLabel' | 'defaultValue' | 'emptyContent' | 'filterTreeNode' | 'style' | 'treeData' | 'value' | 'onExpand';
|
|
41
32
|
/**
|
|
42
33
|
* Type definition description:
|
|
@@ -205,7 +196,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
|
|
|
205
196
|
renderArrow: () => JSX.Element;
|
|
206
197
|
renderClearBtn: () => JSX.Element;
|
|
207
198
|
renderSelection: () => JSX.Element;
|
|
208
|
-
renderTagItem: (key: string, idx: number) =>
|
|
199
|
+
renderTagItem: (key: string, idx: number) => React.ReactNode;
|
|
209
200
|
renderTagInput: () => JSX.Element;
|
|
210
201
|
renderInput: () => JSX.Element;
|
|
211
202
|
renderEmpty: () => JSX.Element;
|
package/lib/es/upload/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import BaseComponent, { ValidateStatus } from '../_base/baseComponent';
|
|
|
7
7
|
import { ArrayElement } from '../_base/base';
|
|
8
8
|
import { Locale } from '../locale/interface';
|
|
9
9
|
import '@douyinfe/semi-foundation/lib/es/upload/upload.css';
|
|
10
|
+
export { BeforeUploadObjectResult, AfterUploadResult };
|
|
10
11
|
export interface FileItem extends BaseFileItem {
|
|
11
12
|
validateMessage?: ReactNode;
|
|
12
13
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@douyinfe/semi-ui",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.1.0-beta.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/es/index.js",
|
|
6
6
|
"module": "lib/es/index.js",
|
|
@@ -19,11 +19,11 @@
|
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@babel/runtime-corejs3": "^7.15.4",
|
|
22
|
-
"@douyinfe/semi-animation-react": "2.0.
|
|
23
|
-
"@douyinfe/semi-foundation": "2.0.
|
|
24
|
-
"@douyinfe/semi-icons": "2.0.
|
|
25
|
-
"@douyinfe/semi-illustrations": "2.0.
|
|
26
|
-
"@douyinfe/semi-theme-default": "2.0.
|
|
22
|
+
"@douyinfe/semi-animation-react": "2.1.0-beta.1",
|
|
23
|
+
"@douyinfe/semi-foundation": "2.1.0-beta.1",
|
|
24
|
+
"@douyinfe/semi-icons": "2.1.0-beta.1",
|
|
25
|
+
"@douyinfe/semi-illustrations": "2.1.0-beta.1",
|
|
26
|
+
"@douyinfe/semi-theme-default": "2.1.0-beta.1",
|
|
27
27
|
"async-validator": "^3.5.0",
|
|
28
28
|
"classnames": "^2.2.6",
|
|
29
29
|
"copy-text-to-clipboard": "^2.1.1",
|
|
@@ -64,13 +64,13 @@
|
|
|
64
64
|
],
|
|
65
65
|
"author": "",
|
|
66
66
|
"license": "MIT",
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "112ef9a681542c2057f98e2e708648b4fdd5618c",
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"@babel/plugin-proposal-decorators": "^7.15.8",
|
|
70
70
|
"@babel/plugin-transform-runtime": "^7.15.8",
|
|
71
71
|
"@babel/preset-env": "^7.15.8",
|
|
72
72
|
"@babel/preset-react": "^7.14.5",
|
|
73
|
-
"@douyinfe/semi-scss-compile": "2.0.
|
|
73
|
+
"@douyinfe/semi-scss-compile": "2.1.0-beta.1",
|
|
74
74
|
"@storybook/addon-knobs": "^6.3.1",
|
|
75
75
|
"babel-loader": "^8.2.2",
|
|
76
76
|
"case-sensitive-paths-webpack-plugin": "^2.4.0",
|