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