@douyinfe/semi-ui 2.1.0-beta.2 → 2.1.0-beta.3
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 +13 -1
- package/dist/css/semi.min.css +1 -1
- package/dist/umd/semi-ui.js +259 -134
- 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 +36 -11
- package/lib/es/button/index.d.ts +0 -1
- package/lib/es/button/index.js +1 -2
- package/lib/es/calendar/dayCalendar.js +1 -1
- package/lib/es/calendar/monthCalendar.js +1 -1
- package/lib/es/calendar/rangeCalendar.js +1 -1
- package/lib/es/calendar/weekCalendar.js +1 -1
- package/lib/es/cascader/index.d.ts +1 -0
- package/lib/es/cascader/index.js +15 -3
- package/lib/es/collapse/index.js +1 -5
- package/lib/es/datePicker/yearAndMonth.d.ts +2 -2
- package/lib/es/datePicker/yearAndMonth.js +1 -1
- package/lib/es/form/baseForm.d.ts +4 -10
- package/lib/es/form/baseForm.js +1 -2
- package/lib/es/form/field.d.ts +4 -22
- package/lib/es/form/field.js +2 -18
- package/lib/es/form/hoc/withField.d.ts +1 -1
- package/lib/es/form/hoc/withField.js +0 -3
- package/lib/es/iconButton/index.d.ts +0 -1
- package/lib/es/iconButton/index.js +0 -1
- package/lib/es/locale/localeConsumer.d.ts +5 -5
- package/lib/es/modal/useModal/HookModal.d.ts +3 -2
- package/lib/es/modal/useModal/index.js +1 -1
- package/lib/es/notification/index.d.ts +1 -1
- package/lib/es/notification/index.js +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/rating/index.d.ts +1 -1
- package/lib/es/resizeObserver/index.js +1 -0
- package/lib/es/scrollList/scrollItem.d.ts +12 -11
- package/lib/es/scrollList/scrollItem.js +8 -8
- package/lib/es/select/index.js +18 -11
- package/lib/es/select/option.js +4 -4
- package/lib/es/select/utils.d.ts +1 -1
- package/lib/es/select/utils.js +12 -8
- package/lib/es/sideSheet/SideSheetContent.d.ts +1 -1
- package/lib/es/sideSheet/index.d.ts +3 -3
- package/lib/es/steps/basicSteps.js +2 -2
- package/lib/es/steps/fillSteps.js +3 -3
- package/lib/es/steps/navSteps.js +2 -2
- package/lib/es/tabs/TabBar.d.ts +5 -3
- 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 +3 -1
- package/lib/es/tabs/index.js +85 -16
- 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/timePicker/Combobox.d.ts +10 -4
- package/lib/es/timePicker/Combobox.js +2 -1
- package/lib/es/timePicker/TimePicker.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/treeSelect/index.js +2 -1
- package/lib/es/typography/base.d.ts +1 -1
- package/lib/es/typography/paragraph.d.ts +1 -1
- package/lib/es/typography/text.d.ts +1 -1
- package/lib/es/typography/title.d.ts +1 -1
- package/lib/es/upload/fileCard.d.ts +3 -18
- package/lib/es/upload/index.d.ts +4 -57
- package/lib/es/upload/interface.d.ts +56 -0
- package/lib/es/upload/interface.js +1 -0
- package/package.json +9 -8
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
|
|
|
@@ -19,14 +20,14 @@ var __rest = this && this.__rest || function (s, e) {
|
|
|
19
20
|
return t;
|
|
20
21
|
};
|
|
21
22
|
|
|
22
|
-
import React, { createRef } from 'react';
|
|
23
|
+
import React, { createRef, isValidElement } from 'react';
|
|
23
24
|
import cls from 'classnames';
|
|
24
25
|
import PropTypes from 'prop-types';
|
|
25
26
|
import { cssClasses, strings } from '@douyinfe/semi-foundation/lib/es/tabs/constants';
|
|
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';
|
|
@@ -79,7 +80,7 @@ class Tabs extends BaseComponent {
|
|
|
79
80
|
}
|
|
80
81
|
|
|
81
82
|
return _filterInstanceProperty(_context = React.Children.toArray(children)).call(_context, pane => {
|
|
82
|
-
if (pane && pane.type && pane.type.isTabPane) {
|
|
83
|
+
if ( /*#__PURE__*/isValidElement(pane) && pane.type && pane.type.isTabPane) {
|
|
83
84
|
return pane.props.itemKey === activeKey;
|
|
84
85
|
}
|
|
85
86
|
|
|
@@ -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 => /*#__PURE__*/isValidElement(child) ? child.props : null);
|
|
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( /*#__PURE__*/isValidElement(child) ? child.props : null, panePickKeys));
|
|
186
252
|
|
|
187
|
-
const nowChildrenProps = _mapInstanceProperty(
|
|
253
|
+
const nowChildrenProps = _mapInstanceProperty(_context6 = React.Children.toArray(this.props.children)).call(_context6, child => pick( /*#__PURE__*/isValidElement(child) ? child.props : null, 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;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import PropTypes from 'prop-types';
|
|
2
2
|
import BaseComponent, { BaseProps } from '../_base/baseComponent';
|
|
3
3
|
import ScrollItem from '../scrollList/scrollItem';
|
|
4
|
-
import ComboboxFoundation from '@douyinfe/semi-foundation/lib/es/timePicker/ComboxFoundation';
|
|
4
|
+
import ComboboxFoundation, { formatOption } from '@douyinfe/semi-foundation/lib/es/timePicker/ComboxFoundation';
|
|
5
5
|
import { TimePickerProps } from './TimePicker';
|
|
6
6
|
import { Locale } from '../locale/interface';
|
|
7
7
|
export declare type ComboboxProps = Pick<TimePickerProps, 'format' | 'prefixCls' | 'disabledHours' | 'disabledMinutes' | 'disabledSeconds' | 'hideDisabledOptions' | 'use12Hours' | 'scrollItemProps' | 'panelFooter' | 'panelHeader'> & BaseProps & {
|
|
@@ -26,6 +26,11 @@ export interface ComboboxState {
|
|
|
26
26
|
minuteOptions: number[];
|
|
27
27
|
secondOptions: number[];
|
|
28
28
|
}
|
|
29
|
+
export declare type FormatOptionReturn = ReturnType<typeof formatOption>;
|
|
30
|
+
export interface AMPMOptionItem {
|
|
31
|
+
value: string;
|
|
32
|
+
text: string;
|
|
33
|
+
}
|
|
29
34
|
declare class Combobox extends BaseComponent<ComboboxProps, ComboboxState> {
|
|
30
35
|
static propTypes: {
|
|
31
36
|
format: PropTypes.Requireable<string>;
|
|
@@ -56,11 +61,12 @@ declare class Combobox extends BaseComponent<ComboboxProps, ComboboxState> {
|
|
|
56
61
|
componentDidUpdate(prevProps: ComboboxProps, prevState: ComboboxState): void;
|
|
57
62
|
componentWillUnmount(): void;
|
|
58
63
|
componentDidMount(): void;
|
|
59
|
-
cacheRefCurrent: (key: string, current: ScrollItem) => void;
|
|
64
|
+
cacheRefCurrent: (key: string, current: ScrollItem<FormatOptionReturn> | ScrollItem<AMPMOptionItem>) => void;
|
|
60
65
|
reselect: () => void;
|
|
61
|
-
onItemChange: ({ type, value }: {
|
|
62
|
-
type
|
|
66
|
+
onItemChange: ({ type, value, disabled }: {
|
|
67
|
+
type?: string;
|
|
63
68
|
value: string;
|
|
69
|
+
disabled?: boolean;
|
|
64
70
|
}) => void;
|
|
65
71
|
onEnterSelectPanel: (range: string) => void;
|
|
66
72
|
renderHourSelect(hour: number, locale: Locale['TimePicker']): JSX.Element;
|
|
@@ -49,7 +49,7 @@ export declare type TimePickerProps = {
|
|
|
49
49
|
position?: Position;
|
|
50
50
|
prefixCls?: string;
|
|
51
51
|
rangeSeparator?: string;
|
|
52
|
-
scrollItemProps?: ScrollItemProps
|
|
52
|
+
scrollItemProps?: ScrollItemProps<any>;
|
|
53
53
|
secondStep?: number;
|
|
54
54
|
showClear?: boolean;
|
|
55
55
|
size?: InputSize;
|
|
@@ -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;
|
|
@@ -952,7 +952,8 @@ class TreeSelect extends BaseComponent {
|
|
|
952
952
|
registerClickOutsideHandler: cb => {
|
|
953
953
|
const clickOutsideHandler = e => {
|
|
954
954
|
const optionInstance = this.optionsRef && this.optionsRef.current;
|
|
955
|
-
const triggerDom = this.triggerRef && this.triggerRef.current;
|
|
955
|
+
const triggerDom = this.triggerRef && this.triggerRef.current; // eslint-disable-next-line
|
|
956
|
+
|
|
956
957
|
const optionsDom = ReactDOM.findDOMNode(optionInstance);
|
|
957
958
|
const target = e.target;
|
|
958
959
|
|
|
@@ -63,7 +63,7 @@ export default class Base extends Component<BaseTypographyProps, BaseTypographyS
|
|
|
63
63
|
link: PropTypes.Requireable<boolean | object>;
|
|
64
64
|
spacing: PropTypes.Requireable<"normal" | "extended">;
|
|
65
65
|
strong: PropTypes.Requireable<boolean>;
|
|
66
|
-
size: PropTypes.Requireable<"
|
|
66
|
+
size: PropTypes.Requireable<"small" | "normal">;
|
|
67
67
|
type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
|
|
68
68
|
style: PropTypes.Requireable<object>;
|
|
69
69
|
className: PropTypes.Requireable<string>;
|
|
@@ -30,7 +30,7 @@ export default class Paragraph extends PureComponent<ParagraphProps> {
|
|
|
30
30
|
underline: PropTypes.Requireable<boolean>;
|
|
31
31
|
strong: PropTypes.Requireable<boolean>;
|
|
32
32
|
type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
|
|
33
|
-
size: PropTypes.Requireable<"
|
|
33
|
+
size: PropTypes.Requireable<"small" | "normal">;
|
|
34
34
|
spacing: PropTypes.Requireable<"normal" | "extended">;
|
|
35
35
|
style: PropTypes.Requireable<object>;
|
|
36
36
|
className: PropTypes.Requireable<string>;
|
|
@@ -33,7 +33,7 @@ export default class Text extends PureComponent<TextProps> {
|
|
|
33
33
|
link: PropTypes.Requireable<boolean | object>;
|
|
34
34
|
strong: PropTypes.Requireable<boolean>;
|
|
35
35
|
type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
|
|
36
|
-
size: PropTypes.Requireable<"
|
|
36
|
+
size: PropTypes.Requireable<"small" | "normal">;
|
|
37
37
|
style: PropTypes.Requireable<object>;
|
|
38
38
|
className: PropTypes.Requireable<string>;
|
|
39
39
|
code: PropTypes.Requireable<boolean>;
|
|
@@ -37,7 +37,7 @@ export default class Title extends PureComponent<TitleProps> {
|
|
|
37
37
|
underline: PropTypes.Requireable<boolean>;
|
|
38
38
|
strong: PropTypes.Requireable<boolean>;
|
|
39
39
|
type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
|
|
40
|
-
heading: PropTypes.Requireable<
|
|
40
|
+
heading: PropTypes.Requireable<1 | 2 | 3 | 4 | 5 | 6>;
|
|
41
41
|
style: PropTypes.Requireable<object>;
|
|
42
42
|
className: PropTypes.Requireable<string>;
|
|
43
43
|
component: PropTypes.Requireable<string>;
|
|
@@ -1,25 +1,10 @@
|
|
|
1
|
-
import { PureComponent, ReactNode,
|
|
1
|
+
import { PureComponent, ReactNode, MouseEvent, CSSProperties } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { Locale } from '../locale/interface';
|
|
4
|
-
|
|
4
|
+
import { RenderFileItemProps } from './interface';
|
|
5
|
+
export interface FileCardProps extends RenderFileItemProps {
|
|
5
6
|
className?: string;
|
|
6
|
-
disabled?: boolean;
|
|
7
|
-
listType?: 'picture' | 'list';
|
|
8
|
-
name?: string;
|
|
9
|
-
onPreviewClick?: MouseEventHandler<HTMLDivElement>;
|
|
10
|
-
onRemove?: (props: FileCardProps, e: MouseEvent) => void;
|
|
11
|
-
onReplace?: (props: FileCardProps, e: MouseEvent) => void;
|
|
12
|
-
onRetry?: (props: FileCardProps, e: MouseEvent) => void;
|
|
13
|
-
percent?: number;
|
|
14
|
-
preview?: boolean;
|
|
15
|
-
previewFile?: (props: FileCardProps) => ReactNode;
|
|
16
|
-
showReplace?: boolean;
|
|
17
|
-
showRetry?: boolean;
|
|
18
|
-
size?: string;
|
|
19
|
-
status?: string;
|
|
20
7
|
style?: CSSProperties;
|
|
21
|
-
url?: string;
|
|
22
|
-
validateMessage?: ReactNode;
|
|
23
8
|
}
|
|
24
9
|
declare class FileCard extends PureComponent<FileCardProps> {
|
|
25
10
|
static propTypes: {
|
package/lib/es/upload/index.d.ts
CHANGED
|
@@ -1,65 +1,12 @@
|
|
|
1
1
|
import { ReactNode, CSSProperties, RefObject, ChangeEvent, DragEvent } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import UploadFoundation, {
|
|
4
|
-
import { strings } from '@douyinfe/semi-foundation/lib/es/upload/constants';
|
|
3
|
+
import UploadFoundation, { UploadAdapter, BeforeUploadObjectResult, AfterUploadResult } from '@douyinfe/semi-foundation/lib/es/upload/foundation';
|
|
5
4
|
import FileCard from './fileCard';
|
|
6
5
|
import BaseComponent, { ValidateStatus } from '../_base/baseComponent';
|
|
7
|
-
import {
|
|
6
|
+
import { FileItem, RenderFileItemProps, UploadListType, PromptPositionType, BeforeUploadProps, AfterUploadProps, OnChangeProps, customRequestArgs, CustomError } from './interface';
|
|
8
7
|
import { Locale } from '../locale/interface';
|
|
9
8
|
import '@douyinfe/semi-foundation/lib/es/upload/upload.css';
|
|
10
|
-
export { BeforeUploadObjectResult, AfterUploadResult };
|
|
11
|
-
export interface FileItem extends BaseFileItem {
|
|
12
|
-
validateMessage?: ReactNode;
|
|
13
|
-
}
|
|
14
|
-
export declare type UploadListType = ArrayElement<typeof strings.LIST_TYPE>;
|
|
15
|
-
export declare type PromptPositionType = ArrayElement<typeof strings.PROMPT_POSITION>;
|
|
16
|
-
export interface RenderFileItemProps extends FileItem {
|
|
17
|
-
previewFile: (fileItem: FileItem) => ReactNode;
|
|
18
|
-
listType: UploadListType;
|
|
19
|
-
onRemove: () => void;
|
|
20
|
-
onRetry: () => void;
|
|
21
|
-
onReplace: () => void;
|
|
22
|
-
key: string;
|
|
23
|
-
showRetry: boolean;
|
|
24
|
-
showReplace: boolean;
|
|
25
|
-
style: CSSProperties;
|
|
26
|
-
disabled: boolean;
|
|
27
|
-
onPreviewClick: () => void;
|
|
28
|
-
}
|
|
29
|
-
export interface BeforeUploadProps {
|
|
30
|
-
file: FileItem;
|
|
31
|
-
fileList: Array<FileItem>;
|
|
32
|
-
}
|
|
33
|
-
export interface AfterUploadProps {
|
|
34
|
-
file: FileItem;
|
|
35
|
-
fileList: Array<FileItem>;
|
|
36
|
-
response: any;
|
|
37
|
-
}
|
|
38
|
-
export interface OnChangeProps {
|
|
39
|
-
fileList: Array<FileItem>;
|
|
40
|
-
currentFile: FileItem;
|
|
41
|
-
}
|
|
42
|
-
export interface customRequestArgs {
|
|
43
|
-
fileName: string;
|
|
44
|
-
data: Record<string, any>;
|
|
45
|
-
file: FileItem;
|
|
46
|
-
fileInstance: File;
|
|
47
|
-
onProgress: (event: {
|
|
48
|
-
total: number;
|
|
49
|
-
loaded: number;
|
|
50
|
-
}) => any;
|
|
51
|
-
onError: (userXhr: {
|
|
52
|
-
status?: number;
|
|
53
|
-
}, e: Event) => any;
|
|
54
|
-
onSuccess: (response: any, e: Event) => any;
|
|
55
|
-
withCredentials: boolean;
|
|
56
|
-
action: string;
|
|
57
|
-
}
|
|
58
|
-
export interface CustomError extends Error {
|
|
59
|
-
status: number;
|
|
60
|
-
method: string;
|
|
61
|
-
url: string;
|
|
62
|
-
}
|
|
9
|
+
export { FileItem, RenderFileItemProps, UploadListType, PromptPositionType, BeforeUploadProps, AfterUploadProps, OnChangeProps, customRequestArgs, CustomError, BeforeUploadObjectResult, AfterUploadResult };
|
|
63
10
|
export interface UploadProps {
|
|
64
11
|
accept?: string;
|
|
65
12
|
action: string;
|
|
@@ -103,7 +50,7 @@ export interface UploadProps {
|
|
|
103
50
|
onRetry?: (fileItem: FileItem) => void;
|
|
104
51
|
onSizeError?: (file: File, fileList: Array<FileItem>) => void;
|
|
105
52
|
onSuccess?: (responseBody: any, file: File, fileList: Array<FileItem>) => void;
|
|
106
|
-
previewFile?: (
|
|
53
|
+
previewFile?: (renderFileItemProps: RenderFileItemProps) => ReactNode;
|
|
107
54
|
prompt?: ReactNode;
|
|
108
55
|
promptPosition?: PromptPositionType;
|
|
109
56
|
renderFileItem?: (renderFileItemProps: RenderFileItemProps) => ReactNode;
|