@douyinfe/semi-ui 2.17.1 → 2.19.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/anchor/index.tsx +1 -1
- package/anchor/link.tsx +3 -4
- package/autoComplete/__test__/autoComplete.test.js +6 -6
- package/autoComplete/index.tsx +1 -1
- package/autoComplete/option.tsx +164 -0
- package/calendar/__test__/calendar.test.js +21 -2
- package/calendar/_story/calendar.stories.js +31 -0
- package/calendar/index.tsx +3 -1
- package/calendar/interface.ts +2 -1
- package/carousel/index.tsx +5 -5
- package/checkbox/checkbox.tsx +10 -2
- package/checkbox/checkboxGroup.tsx +2 -0
- package/dist/css/semi.css +160 -22
- package/dist/css/semi.min.css +1 -1
- package/dist/umd/semi-ui.js +15144 -16407
- 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/form/_story/FieldProps/labelOptional.jsx +30 -0
- package/form/_story/form.stories.js +7 -0
- package/form/hoc/withField.tsx +1 -0
- package/form/label.tsx +21 -7
- package/gulpfile.js +3 -1
- package/lib/cjs/_base/base.css +35 -0
- package/lib/cjs/anchor/index.js +2 -1
- package/lib/cjs/anchor/link.d.ts +1 -1
- package/lib/cjs/anchor/link.js +9 -5
- package/lib/cjs/autoComplete/index.d.ts +1 -1
- package/lib/cjs/autoComplete/index.js +1 -1
- package/lib/cjs/autoComplete/option.d.ts +50 -0
- package/lib/cjs/autoComplete/option.js +218 -0
- package/lib/cjs/calendar/index.d.ts +2 -0
- package/lib/cjs/calendar/index.js +3 -1
- package/lib/cjs/calendar/interface.d.ts +2 -1
- package/lib/cjs/carousel/index.js +2 -2
- package/lib/cjs/checkbox/checkbox.d.ts +4 -0
- package/lib/cjs/checkbox/checkbox.js +9 -3
- package/lib/cjs/checkbox/checkboxGroup.js +4 -2
- package/lib/cjs/form/baseForm.d.ts +1 -1
- package/lib/cjs/form/field.d.ts +1 -1
- package/lib/cjs/form/hoc/withField.js +2 -1
- package/lib/cjs/form/label.d.ts +8 -5
- package/lib/cjs/form/label.js +15 -4
- package/lib/cjs/locale/interface.d.ts +3 -0
- package/lib/cjs/locale/source/ar.js +3 -0
- package/lib/cjs/locale/source/de.js +3 -0
- package/lib/cjs/locale/source/en_GB.js +3 -0
- package/lib/cjs/locale/source/en_US.js +3 -0
- package/lib/cjs/locale/source/es.js +3 -0
- package/lib/cjs/locale/source/fr.js +3 -0
- package/lib/cjs/locale/source/id_ID.js +3 -0
- package/lib/cjs/locale/source/it.js +3 -0
- package/lib/cjs/locale/source/ja_JP.js +3 -0
- package/lib/cjs/locale/source/ko_KR.js +3 -0
- package/lib/cjs/locale/source/ms_MY.js +3 -0
- package/lib/cjs/locale/source/pt_BR.js +3 -0
- package/lib/cjs/locale/source/ru_RU.js +3 -0
- package/lib/cjs/locale/source/th_TH.js +3 -0
- package/lib/cjs/locale/source/tr_TR.js +3 -0
- package/lib/cjs/locale/source/vi_VN.js +3 -0
- package/lib/cjs/locale/source/zh_CN.js +3 -0
- package/lib/cjs/locale/source/zh_TW.js +3 -0
- package/lib/cjs/modal/Modal.js +0 -8
- package/lib/cjs/modal/ModalContent.js +4 -1
- package/lib/cjs/radio/radio.d.ts +2 -0
- package/lib/cjs/radio/radio.js +33 -8
- package/lib/cjs/radio/radioGroup.js +4 -2
- package/lib/cjs/tag/group.d.ts +3 -0
- package/lib/cjs/tag/group.js +24 -6
- package/lib/cjs/tag/index.d.ts +2 -1
- package/lib/cjs/tag/index.js +7 -5
- package/lib/cjs/tag/interface.d.ts +2 -1
- package/lib/cjs/tree/index.d.ts +3 -1
- package/lib/cjs/tree/index.js +23 -0
- package/lib/cjs/tree/interface.d.ts +4 -0
- package/lib/cjs/typography/title.d.ts +1 -1
- package/lib/es/_base/base.css +35 -0
- package/lib/es/anchor/index.js +2 -1
- package/lib/es/anchor/link.d.ts +1 -1
- package/lib/es/anchor/link.js +9 -5
- package/lib/es/autoComplete/index.d.ts +1 -1
- package/lib/es/autoComplete/index.js +1 -1
- package/lib/es/autoComplete/option.d.ts +50 -0
- package/lib/es/autoComplete/option.js +188 -0
- package/lib/es/calendar/index.d.ts +2 -0
- package/lib/es/calendar/index.js +3 -1
- package/lib/es/calendar/interface.d.ts +2 -1
- package/lib/es/carousel/index.js +2 -2
- package/lib/es/checkbox/checkbox.d.ts +4 -0
- package/lib/es/checkbox/checkbox.js +10 -4
- package/lib/es/checkbox/checkboxGroup.js +4 -2
- package/lib/es/form/baseForm.d.ts +1 -1
- package/lib/es/form/field.d.ts +1 -1
- package/lib/es/form/hoc/withField.js +2 -1
- package/lib/es/form/label.d.ts +8 -5
- package/lib/es/form/label.js +13 -4
- package/lib/es/locale/interface.d.ts +3 -0
- package/lib/es/locale/source/ar.js +3 -0
- package/lib/es/locale/source/de.js +3 -0
- package/lib/es/locale/source/en_GB.js +3 -0
- package/lib/es/locale/source/en_US.js +3 -0
- package/lib/es/locale/source/es.js +3 -0
- package/lib/es/locale/source/fr.js +3 -0
- package/lib/es/locale/source/id_ID.js +3 -0
- package/lib/es/locale/source/it.js +3 -0
- package/lib/es/locale/source/ja_JP.js +3 -0
- package/lib/es/locale/source/ko_KR.js +3 -0
- package/lib/es/locale/source/ms_MY.js +3 -0
- package/lib/es/locale/source/pt_BR.js +3 -0
- package/lib/es/locale/source/ru_RU.js +3 -0
- package/lib/es/locale/source/th_TH.js +3 -0
- package/lib/es/locale/source/tr_TR.js +3 -0
- package/lib/es/locale/source/vi_VN.js +3 -0
- package/lib/es/locale/source/zh_CN.js +3 -0
- package/lib/es/locale/source/zh_TW.js +3 -0
- package/lib/es/modal/Modal.js +0 -8
- package/lib/es/modal/ModalContent.js +4 -1
- package/lib/es/radio/radio.d.ts +2 -0
- package/lib/es/radio/radio.js +31 -8
- package/lib/es/radio/radioGroup.js +4 -2
- package/lib/es/tag/group.d.ts +3 -0
- package/lib/es/tag/group.js +24 -6
- package/lib/es/tag/index.d.ts +2 -1
- package/lib/es/tag/index.js +7 -5
- package/lib/es/tag/interface.d.ts +2 -1
- package/lib/es/tree/index.d.ts +3 -1
- package/lib/es/tree/index.js +22 -0
- package/lib/es/tree/interface.d.ts +4 -0
- package/lib/es/typography/title.d.ts +1 -1
- package/locale/interface.ts +3 -0
- package/locale/source/ar.ts +3 -0
- package/locale/source/de.ts +3 -0
- package/locale/source/en_GB.ts +3 -0
- package/locale/source/en_US.ts +3 -0
- package/locale/source/es.ts +3 -0
- package/locale/source/fr.ts +3 -0
- package/locale/source/id_ID.ts +3 -0
- package/locale/source/it.ts +3 -0
- package/locale/source/ja_JP.ts +3 -0
- package/locale/source/ko_KR.ts +3 -0
- package/locale/source/ms_MY.ts +3 -0
- package/locale/source/pt_BR.ts +3 -0
- package/locale/source/ru_RU.ts +3 -0
- package/locale/source/th_TH.ts +3 -0
- package/locale/source/tr_TR.ts +4 -1
- package/locale/source/vi_VN.ts +3 -0
- package/locale/source/zh_CN.ts +3 -0
- package/locale/source/zh_TW.ts +3 -0
- package/modal/Modal.tsx +0 -6
- package/modal/ModalContent.tsx +4 -1
- package/modal/__test__/modal.test.js +1 -1
- package/modal/_story/__snapshots__/modal.stories.tsx.snap +203 -0
- package/package.json +7 -7
- package/radio/_story/radio.stories.js +2 -2
- package/radio/radio.tsx +27 -5
- package/radio/radioGroup.tsx +2 -0
- package/rating/__test__/rating.test.js +1 -1
- package/select/__test__/select.test.js +11 -17
- package/select/_story/select.stories.js +6 -6
- package/steps/_story/steps.stories.js +3 -3
- package/switch/_story/switch.stories.js +4 -4
- package/switch/_story/switch.stories.tsx +4 -4
- package/tag/_story/tag.stories.js +57 -1
- package/tag/group.tsx +20 -3
- package/tag/index.tsx +6 -5
- package/tag/interface.ts +2 -1
- package/transfer/_story/transfer.stories.js +2 -2
- package/tree/_story/tree.stories.js +152 -3
- package/tree/index.tsx +16 -1
- package/tree/interface.ts +6 -0
- package/upload/_story/upload.stories.js +2 -2
- package/webpack.config.js +10 -2
package/lib/cjs/tag/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export default class Tag extends Component<TagProps, TagState> {
|
|
|
10
10
|
static defaultProps: TagProps;
|
|
11
11
|
static propTypes: {
|
|
12
12
|
children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
13
|
+
tagKey: PropTypes.Requireable<PropTypes.Requireable<string> | PropTypes.Requireable<number>>;
|
|
13
14
|
size: PropTypes.Requireable<string>;
|
|
14
15
|
color: PropTypes.Requireable<string>;
|
|
15
16
|
type: PropTypes.Requireable<string>;
|
|
@@ -28,7 +29,7 @@ export default class Tag extends Component<TagProps, TagState> {
|
|
|
28
29
|
visible: boolean;
|
|
29
30
|
};
|
|
30
31
|
setVisible(visible: boolean): void;
|
|
31
|
-
close(e: React.MouseEvent<HTMLElement>, value: React.ReactNode): void;
|
|
32
|
+
close(e: React.MouseEvent<HTMLElement>, value: React.ReactNode, tagKey: string | number): void;
|
|
32
33
|
handleKeyDown(event: any): void;
|
|
33
34
|
renderAvatar(): JSX.Element;
|
|
34
35
|
render(): JSX.Element;
|
package/lib/cjs/tag/index.js
CHANGED
|
@@ -118,13 +118,13 @@ class Tag extends _react.Component {
|
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
-
close(e, value) {
|
|
121
|
+
close(e, value, tagKey) {
|
|
122
122
|
const {
|
|
123
123
|
onClose
|
|
124
124
|
} = this.props;
|
|
125
125
|
e.stopPropagation();
|
|
126
126
|
e.nativeEvent.stopImmediatePropagation();
|
|
127
|
-
onClose && onClose(value, e); // when user call e.preventDefault() in onClick callback, tag will not hidden
|
|
127
|
+
onClose && onClose(value, e, tagKey); // when user call e.preventDefault() in onClick callback, tag will not hidden
|
|
128
128
|
|
|
129
129
|
if (e.defaultPrevented) {
|
|
130
130
|
return;
|
|
@@ -143,7 +143,7 @@ class Tag extends _react.Component {
|
|
|
143
143
|
switch (event.key) {
|
|
144
144
|
case "Backspace":
|
|
145
145
|
case "Delete":
|
|
146
|
-
closable && this.close(event, this.props.children);
|
|
146
|
+
closable && this.close(event, this.props.children, this.props.tagKey);
|
|
147
147
|
(0, _a11y.handlePrevent)(event);
|
|
148
148
|
break;
|
|
149
149
|
|
|
@@ -182,6 +182,7 @@ class Tag extends _react.Component {
|
|
|
182
182
|
|
|
183
183
|
const _a = this.props,
|
|
184
184
|
{
|
|
185
|
+
tagKey,
|
|
185
186
|
children,
|
|
186
187
|
size,
|
|
187
188
|
color,
|
|
@@ -195,7 +196,7 @@ class Tag extends _react.Component {
|
|
|
195
196
|
avatarShape,
|
|
196
197
|
tabIndex
|
|
197
198
|
} = _a,
|
|
198
|
-
attr = __rest(_a, ["children", "size", "color", "closable", "visible", "onClose", "onClick", "className", "type", "avatarSrc", "avatarShape", "tabIndex"]);
|
|
199
|
+
attr = __rest(_a, ["tagKey", "children", "size", "color", "closable", "visible", "onClose", "onClick", "className", "type", "avatarSrc", "avatarShape", "tabIndex"]);
|
|
199
200
|
|
|
200
201
|
const {
|
|
201
202
|
visible: isVisible
|
|
@@ -226,7 +227,7 @@ class Tag extends _react.Component {
|
|
|
226
227
|
// eslint-disable-next-line jsx-a11y/click-events-have-key-events
|
|
227
228
|
_react.default.createElement("div", {
|
|
228
229
|
className: "".concat(prefixCls, "-close"),
|
|
229
|
-
onClick: e => this.close(e, children)
|
|
230
|
+
onClick: e => this.close(e, children, tagKey)
|
|
230
231
|
}, /*#__PURE__*/_react.default.createElement(_semiIcons.IconClose, {
|
|
231
232
|
size: "small"
|
|
232
233
|
})) : null;
|
|
@@ -254,6 +255,7 @@ Tag.defaultProps = {
|
|
|
254
255
|
};
|
|
255
256
|
Tag.propTypes = {
|
|
256
257
|
children: _propTypes.default.node,
|
|
258
|
+
tagKey: _propTypes.default.oneOf([_propTypes.default.string, _propTypes.default.number]),
|
|
257
259
|
size: _propTypes.default.oneOf(tagSize),
|
|
258
260
|
color: _propTypes.default.oneOf(tagColors),
|
|
259
261
|
type: _propTypes.default.oneOf(tagType),
|
|
@@ -5,12 +5,13 @@ export declare type TagSize = 'default' | 'small' | 'large';
|
|
|
5
5
|
export declare type AvatarShape = 'circle' | 'square';
|
|
6
6
|
export interface TagProps {
|
|
7
7
|
children?: React.ReactNode;
|
|
8
|
+
tagKey?: string | number;
|
|
8
9
|
size?: TagSize;
|
|
9
10
|
color?: TagColor;
|
|
10
11
|
type?: TagType;
|
|
11
12
|
closable?: boolean;
|
|
12
13
|
visible?: boolean;
|
|
13
|
-
onClose?: (tagChildren: React.ReactNode, event: React.MouseEvent<HTMLElement
|
|
14
|
+
onClose?: (tagChildren: React.ReactNode, event: React.MouseEvent<HTMLElement>, tagKey: string | number) => void;
|
|
14
15
|
onClick?: React.MouseEventHandler<HTMLDivElement>;
|
|
15
16
|
style?: React.CSSProperties;
|
|
16
17
|
className?: string;
|
package/lib/cjs/tree/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import BaseComponent from '../_base/baseComponent';
|
|
|
6
6
|
import Input from '../input/index';
|
|
7
7
|
import TreeNode from './treeNode';
|
|
8
8
|
import '@douyinfe/semi-foundation/lib/cjs/tree/tree.css';
|
|
9
|
-
import { TreeProps, TreeState, TreeNodeProps, TreeNodeData, FlattenNode, KeyEntity } from './interface';
|
|
9
|
+
import { TreeProps, TreeState, TreeNodeProps, TreeNodeData, FlattenNode, KeyEntity, ScrollData } from './interface';
|
|
10
10
|
export * from './interface';
|
|
11
11
|
export { AutoSizerProps } from './autoSizer';
|
|
12
12
|
declare class Tree extends BaseComponent<TreeProps, TreeState> {
|
|
@@ -102,6 +102,7 @@ declare class Tree extends BaseComponent<TreeProps, TreeState> {
|
|
|
102
102
|
onNodeClick: any;
|
|
103
103
|
onMotionEnd: any;
|
|
104
104
|
context: ContextValue;
|
|
105
|
+
virtualizedListRef: React.RefObject<any>;
|
|
105
106
|
constructor(props: TreeProps);
|
|
106
107
|
/**
|
|
107
108
|
* Process of getDerivedStateFromProps was inspired by rc-tree
|
|
@@ -110,6 +111,7 @@ declare class Tree extends BaseComponent<TreeProps, TreeState> {
|
|
|
110
111
|
static getDerivedStateFromProps(props: TreeProps, prevState: TreeState): Partial<TreeState>;
|
|
111
112
|
get adapter(): TreeAdapter;
|
|
112
113
|
search: (value: string) => void;
|
|
114
|
+
scrollTo: (scrollData: ScrollData) => void;
|
|
113
115
|
renderInput(): JSX.Element;
|
|
114
116
|
renderEmpty: () => JSX.Element;
|
|
115
117
|
onNodeSelect: (e: MouseEvent | KeyboardEvent, treeNode: TreeNodeProps) => void;
|
package/lib/cjs/tree/index.js
CHANGED
|
@@ -17,6 +17,8 @@ _Object$defineProperty(exports, "__esModule", {
|
|
|
17
17
|
var _exportNames = {};
|
|
18
18
|
exports.default = void 0;
|
|
19
19
|
|
|
20
|
+
var _findIndex = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find-index"));
|
|
21
|
+
|
|
20
22
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
|
|
21
23
|
|
|
22
24
|
var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set"));
|
|
@@ -101,6 +103,25 @@ class Tree extends _baseComponent.default {
|
|
|
101
103
|
this.foundation.handleInputChange(value);
|
|
102
104
|
};
|
|
103
105
|
|
|
106
|
+
this.scrollTo = scrollData => {
|
|
107
|
+
var _a;
|
|
108
|
+
|
|
109
|
+
const {
|
|
110
|
+
key,
|
|
111
|
+
align = 'center'
|
|
112
|
+
} = scrollData;
|
|
113
|
+
const {
|
|
114
|
+
flattenNodes
|
|
115
|
+
} = this.state;
|
|
116
|
+
|
|
117
|
+
if (key) {
|
|
118
|
+
const index = flattenNodes === null || flattenNodes === void 0 ? void 0 : (0, _findIndex.default)(flattenNodes).call(flattenNodes, node => {
|
|
119
|
+
return node.key === key;
|
|
120
|
+
});
|
|
121
|
+
index >= 0 && ((_a = this.virtualizedListRef.current) === null || _a === void 0 ? void 0 : _a.scrollToItem(index, align));
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
|
|
104
125
|
this.renderEmpty = () => {
|
|
105
126
|
const {
|
|
106
127
|
emptyContent
|
|
@@ -262,6 +283,7 @@ class Tree extends _baseComponent.default {
|
|
|
262
283
|
this.optionsRef = /*#__PURE__*/_react.default.createRef();
|
|
263
284
|
this.foundation = new _foundation.default(this.adapter);
|
|
264
285
|
this.dragNode = null;
|
|
286
|
+
this.virtualizedListRef = /*#__PURE__*/_react.default.createRef();
|
|
265
287
|
}
|
|
266
288
|
/**
|
|
267
289
|
* Process of getDerivedStateFromProps was inspired by rc-tree
|
|
@@ -634,6 +656,7 @@ class Tree extends _baseComponent.default {
|
|
|
634
656
|
width
|
|
635
657
|
} = _ref4;
|
|
636
658
|
return /*#__PURE__*/_react.default.createElement(_reactWindow.FixedSizeList, {
|
|
659
|
+
ref: this.virtualizedListRef,
|
|
637
660
|
itemCount: flattenNodes.length,
|
|
638
661
|
itemSize: virtualize.itemSize,
|
|
639
662
|
height: height,
|
|
@@ -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<4 | 2 | 1 | 3 | 5 | 6>;
|
|
41
41
|
style: PropTypes.Requireable<object>;
|
|
42
42
|
className: PropTypes.Requireable<string>;
|
|
43
43
|
component: PropTypes.Requireable<string>;
|
package/lib/es/_base/base.css
CHANGED
|
@@ -1,6 +1,41 @@
|
|
|
1
1
|
/* shadow */
|
|
2
2
|
/* sizing */
|
|
3
3
|
/* spacing */
|
|
4
|
+
body {
|
|
5
|
+
--semi-transition_duration-slowest:0ms;
|
|
6
|
+
--semi-transition_duration-slower:0ms;
|
|
7
|
+
--semi-transition_duration-slow:0ms;
|
|
8
|
+
--semi-transition_duration-normal:0ms;
|
|
9
|
+
--semi-transition_duration-fast:0ms;
|
|
10
|
+
--semi-transition_duration-faster:0ms;
|
|
11
|
+
--semi-transition_duration-fastest:0ms;
|
|
12
|
+
--semi-transition_function-linear:linear;
|
|
13
|
+
--semi-transition_function-ease:ease;
|
|
14
|
+
--semi-transition_function-easeIn:ease-in;
|
|
15
|
+
--semi-transition_function-easeOut:ease-out;
|
|
16
|
+
--semi-transition_function-easeInIOut:ease-in-out;
|
|
17
|
+
--semi-transition_delay-slowest:0ms;
|
|
18
|
+
--semi-transition_delay-slower:0ms;
|
|
19
|
+
--semi-transition_delay-slow:0ms;
|
|
20
|
+
--semi-transition_delay-normal:0ms;
|
|
21
|
+
--semi-transition_delay-fast:0ms;
|
|
22
|
+
--semi-transition_delay-faster:0ms;
|
|
23
|
+
--semi-transition_delay-fastest:0ms;
|
|
24
|
+
--semi-transform_scale-none:scale(1,1);
|
|
25
|
+
--semi-transform_scale-small:scale(1,1);
|
|
26
|
+
--semi-transform_scale-medium:scale(1,1);
|
|
27
|
+
--semi-transform_scale-large:scale(1,1);
|
|
28
|
+
--semi-transform-rotate-none:rotate(0deg);
|
|
29
|
+
--semi-transform_rotate-clockwise90deg:rotate(90deg);
|
|
30
|
+
--semi-transform_rotate-clockwise180deg:rotate(180deg);
|
|
31
|
+
--semi-transform_rotate-clockwise270deg:rotate(270deg);
|
|
32
|
+
--semi-transform_rotate-clockwise360deg:rotate(360deg);
|
|
33
|
+
--semi-transform_rotate-anticlockwise90deg:rotate(-90deg);
|
|
34
|
+
--semi-transform_rotate-anticlockwise180deg:rotate(-180deg);
|
|
35
|
+
--semi-transform_rotate-anticlockwise270deg:rotate(-270deg);
|
|
36
|
+
--semi-transform_rotate-anticlockwise360deg:rotate(-360deg);
|
|
37
|
+
}
|
|
38
|
+
|
|
4
39
|
body,
|
|
5
40
|
body .semi-always-light {
|
|
6
41
|
--semi-amber-0: 254,251,235;
|
package/lib/es/anchor/index.js
CHANGED
package/lib/es/anchor/link.d.ts
CHANGED
|
@@ -36,6 +36,6 @@ export default class Link extends BaseComponent<LinkProps, {}> {
|
|
|
36
36
|
componentDidUpdate(prevProps: LinkProps): void;
|
|
37
37
|
componentWillUnmount(): void;
|
|
38
38
|
renderTitle: () => string | number | boolean | React.ReactFragment | JSX.Element;
|
|
39
|
-
renderChildren: () =>
|
|
39
|
+
renderChildren: () => JSX.Element;
|
|
40
40
|
render(): JSX.Element;
|
|
41
41
|
}
|
package/lib/es/anchor/link.js
CHANGED
|
@@ -65,10 +65,14 @@ export default class Link extends BaseComponent {
|
|
|
65
65
|
} = this.props;
|
|
66
66
|
|
|
67
67
|
if (!this.context.autoCollapse) {
|
|
68
|
-
return
|
|
68
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
69
|
+
role: "list"
|
|
70
|
+
}, children);
|
|
69
71
|
}
|
|
70
72
|
|
|
71
|
-
return activeLink === href || childMap[href] && childMap[href].has(activeLink) ?
|
|
73
|
+
return activeLink === href || childMap[href] && childMap[href].has(activeLink) ? /*#__PURE__*/React.createElement("div", {
|
|
74
|
+
role: "list"
|
|
75
|
+
}, children) : null;
|
|
72
76
|
};
|
|
73
77
|
|
|
74
78
|
this.foundation = new LinkFoundation(this.adapter);
|
|
@@ -144,8 +148,7 @@ export default class Link extends BaseComponent {
|
|
|
144
148
|
["".concat(prefixCls, "-link-title-disabled")]: disabled
|
|
145
149
|
});
|
|
146
150
|
const ariaProps = {
|
|
147
|
-
'aria-disabled': disabled
|
|
148
|
-
'aria-label': href
|
|
151
|
+
'aria-disabled': disabled
|
|
149
152
|
};
|
|
150
153
|
|
|
151
154
|
if (active) {
|
|
@@ -158,7 +161,8 @@ export default class Link extends BaseComponent {
|
|
|
158
161
|
|
|
159
162
|
return /*#__PURE__*/React.createElement("div", {
|
|
160
163
|
className: linkCls,
|
|
161
|
-
style: style
|
|
164
|
+
style: style,
|
|
165
|
+
role: "listitem"
|
|
162
166
|
}, /*#__PURE__*/React.createElement("div", _Object$assign({
|
|
163
167
|
role: "link",
|
|
164
168
|
tabIndex: 0
|
|
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
import { AutoCompleteAdapter, StateOptionItem, DataItem } from '@douyinfe/semi-foundation/lib/es/autoComplete/foundation';
|
|
4
4
|
import BaseComponent, { ValidateStatus } from '../_base/baseComponent';
|
|
5
5
|
import { Position } from '../tooltip';
|
|
6
|
-
import Option from '
|
|
6
|
+
import Option from './option';
|
|
7
7
|
import '@douyinfe/semi-foundation/lib/es/autoComplete/autoComplete.css';
|
|
8
8
|
import { Motion } from '../_base/base';
|
|
9
9
|
/**
|
|
@@ -19,7 +19,7 @@ import Spin from '../spin';
|
|
|
19
19
|
import Popover from '../popover';
|
|
20
20
|
import Input from '../input';
|
|
21
21
|
import Trigger from '../trigger';
|
|
22
|
-
import Option from '
|
|
22
|
+
import Option from './option';
|
|
23
23
|
import warning from '@douyinfe/semi-foundation/lib/es/utils/warning';
|
|
24
24
|
import '@douyinfe/semi-foundation/lib/es/autoComplete/autoComplete.css';
|
|
25
25
|
const prefixCls = cssClasses.PREFIX;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import React, { PureComponent } from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { BasicOptionProps } from '@douyinfe/semi-foundation/lib/es/autoComplete/optionFoundation';
|
|
4
|
+
export interface OptionProps extends BasicOptionProps {
|
|
5
|
+
[x: string]: any;
|
|
6
|
+
value?: string | number;
|
|
7
|
+
label?: string | number | React.ReactNode;
|
|
8
|
+
children?: React.ReactNode;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
showTick?: boolean;
|
|
11
|
+
className?: string;
|
|
12
|
+
style?: React.CSSProperties;
|
|
13
|
+
}
|
|
14
|
+
interface renderOptionContentArgument {
|
|
15
|
+
config: {
|
|
16
|
+
searchWords: any;
|
|
17
|
+
sourceString: React.ReactNode;
|
|
18
|
+
};
|
|
19
|
+
children: React.ReactNode;
|
|
20
|
+
inputValue: string;
|
|
21
|
+
prefixCls: string;
|
|
22
|
+
}
|
|
23
|
+
declare class Option extends PureComponent<OptionProps> {
|
|
24
|
+
static isSelectOption: boolean;
|
|
25
|
+
static propTypes: {
|
|
26
|
+
children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
27
|
+
disabled: PropTypes.Requireable<boolean>;
|
|
28
|
+
value: PropTypes.Requireable<string | number>;
|
|
29
|
+
selected: PropTypes.Requireable<boolean>;
|
|
30
|
+
label: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
31
|
+
empty: PropTypes.Requireable<boolean>;
|
|
32
|
+
emptyContent: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
33
|
+
onSelect: PropTypes.Requireable<(...args: any[]) => any>;
|
|
34
|
+
focused: PropTypes.Requireable<boolean>;
|
|
35
|
+
showTick: PropTypes.Requireable<boolean>;
|
|
36
|
+
className: PropTypes.Requireable<string>;
|
|
37
|
+
style: PropTypes.Requireable<object>;
|
|
38
|
+
onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
|
|
39
|
+
prefixCls: PropTypes.Requireable<string>;
|
|
40
|
+
renderOptionItem: PropTypes.Requireable<(...args: any[]) => any>;
|
|
41
|
+
inputValue: PropTypes.Requireable<string>;
|
|
42
|
+
};
|
|
43
|
+
static defaultProps: {
|
|
44
|
+
prefixCls: string;
|
|
45
|
+
};
|
|
46
|
+
onClick({ value, label, children, ...rest }: Partial<OptionProps>, event: React.MouseEvent): void;
|
|
47
|
+
renderOptionContent({ config, children, inputValue, prefixCls }: renderOptionContentArgument): React.ReactNode;
|
|
48
|
+
render(): any;
|
|
49
|
+
}
|
|
50
|
+
export default Option;
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import _isString from "lodash/isString";
|
|
2
|
+
import _indexOfInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/index-of";
|
|
3
|
+
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
|
|
4
|
+
import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
|
|
5
|
+
|
|
6
|
+
var __rest = this && this.__rest || function (s, e) {
|
|
7
|
+
var t = {};
|
|
8
|
+
|
|
9
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && _indexOfInstanceProperty(e).call(e, p) < 0) t[p] = s[p];
|
|
10
|
+
|
|
11
|
+
if (s != null && typeof _Object$getOwnPropertySymbols === "function") for (var i = 0, p = _Object$getOwnPropertySymbols(s); i < p.length; i++) {
|
|
12
|
+
if (_indexOfInstanceProperty(e).call(e, p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
13
|
+
}
|
|
14
|
+
return t;
|
|
15
|
+
};
|
|
16
|
+
/* eslint-disable max-len */
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
import React, { PureComponent } from 'react';
|
|
20
|
+
import classNames from 'classnames';
|
|
21
|
+
import PropTypes from 'prop-types';
|
|
22
|
+
import { cssClasses } from '@douyinfe/semi-foundation/lib/es/autoComplete/constants';
|
|
23
|
+
import LocaleConsumer from '../locale/localeConsumer';
|
|
24
|
+
import { IconTick } from '@douyinfe/semi-icons';
|
|
25
|
+
import { getHighLightTextHTML } from '../_utils/index';
|
|
26
|
+
|
|
27
|
+
class Option extends PureComponent {
|
|
28
|
+
onClick(_a, event) {
|
|
29
|
+
var {
|
|
30
|
+
value,
|
|
31
|
+
label,
|
|
32
|
+
children
|
|
33
|
+
} = _a,
|
|
34
|
+
rest = __rest(_a, ["value", "label", "children"]);
|
|
35
|
+
|
|
36
|
+
const {
|
|
37
|
+
props
|
|
38
|
+
} = this;
|
|
39
|
+
const isDisabled = props.disabled;
|
|
40
|
+
|
|
41
|
+
if (!isDisabled) {
|
|
42
|
+
props.onSelect(_Object$assign(_Object$assign({}, rest), {
|
|
43
|
+
value,
|
|
44
|
+
label: label || children
|
|
45
|
+
}), event);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
renderOptionContent(_ref) {
|
|
50
|
+
let {
|
|
51
|
+
config,
|
|
52
|
+
children,
|
|
53
|
+
inputValue,
|
|
54
|
+
prefixCls
|
|
55
|
+
} = _ref;
|
|
56
|
+
|
|
57
|
+
if (_isString(children) && inputValue) {
|
|
58
|
+
return getHighLightTextHTML(config);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return children;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
render() {
|
|
65
|
+
const _a = this.props,
|
|
66
|
+
{
|
|
67
|
+
children,
|
|
68
|
+
disabled,
|
|
69
|
+
value,
|
|
70
|
+
selected,
|
|
71
|
+
label,
|
|
72
|
+
empty,
|
|
73
|
+
emptyContent,
|
|
74
|
+
onSelect,
|
|
75
|
+
focused,
|
|
76
|
+
showTick,
|
|
77
|
+
className,
|
|
78
|
+
style,
|
|
79
|
+
onMouseEnter,
|
|
80
|
+
prefixCls,
|
|
81
|
+
renderOptionItem,
|
|
82
|
+
inputValue
|
|
83
|
+
} = _a,
|
|
84
|
+
rest = __rest(_a, ["children", "disabled", "value", "selected", "label", "empty", "emptyContent", "onSelect", "focused", "showTick", "className", "style", "onMouseEnter", "prefixCls", "renderOptionItem", "inputValue"]);
|
|
85
|
+
|
|
86
|
+
const optionClassName = classNames(prefixCls, {
|
|
87
|
+
["".concat(prefixCls, "-disabled")]: disabled,
|
|
88
|
+
["".concat(prefixCls, "-selected")]: selected,
|
|
89
|
+
["".concat(prefixCls, "-focused")]: focused,
|
|
90
|
+
["".concat(prefixCls, "-empty")]: empty,
|
|
91
|
+
[className]: className
|
|
92
|
+
});
|
|
93
|
+
const selectedIconClassName = classNames(["".concat(prefixCls, "-icon")]);
|
|
94
|
+
|
|
95
|
+
if (empty) {
|
|
96
|
+
if (emptyContent === null) {
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return /*#__PURE__*/React.createElement(LocaleConsumer, {
|
|
101
|
+
componentName: "Select"
|
|
102
|
+
}, locale => /*#__PURE__*/React.createElement("div", {
|
|
103
|
+
className: optionClassName,
|
|
104
|
+
"x-semi-prop": "emptyContent"
|
|
105
|
+
}, emptyContent || locale.emptyText));
|
|
106
|
+
} // Since there are empty, locale and other logic, the custom renderOptionItem is directly converged to the internal option instead of being placed in Select/index
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
if (typeof renderOptionItem === 'function') {
|
|
110
|
+
return renderOptionItem(_Object$assign({
|
|
111
|
+
disabled,
|
|
112
|
+
focused,
|
|
113
|
+
selected,
|
|
114
|
+
style,
|
|
115
|
+
label,
|
|
116
|
+
value,
|
|
117
|
+
inputValue,
|
|
118
|
+
onMouseEnter: e => onMouseEnter(e),
|
|
119
|
+
onClick: e => this.onClick(_Object$assign({
|
|
120
|
+
value,
|
|
121
|
+
label,
|
|
122
|
+
children
|
|
123
|
+
}, rest), e)
|
|
124
|
+
}, rest));
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const config = {
|
|
128
|
+
searchWords: inputValue,
|
|
129
|
+
sourceString: children,
|
|
130
|
+
option: {
|
|
131
|
+
highlightClassName: "".concat(prefixCls, "-keyword")
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
return (
|
|
135
|
+
/*#__PURE__*/
|
|
136
|
+
// eslint-disable-next-line jsx-a11y/interactive-supports-focus,jsx-a11y/click-events-have-key-events
|
|
137
|
+
React.createElement("div", {
|
|
138
|
+
className: optionClassName,
|
|
139
|
+
onClick: e => {
|
|
140
|
+
this.onClick(_Object$assign({
|
|
141
|
+
value,
|
|
142
|
+
label,
|
|
143
|
+
children
|
|
144
|
+
}, rest), e);
|
|
145
|
+
},
|
|
146
|
+
onMouseEnter: e => onMouseEnter && onMouseEnter(e),
|
|
147
|
+
role: "option",
|
|
148
|
+
"aria-selected": selected ? "true" : "false",
|
|
149
|
+
"aria-disabled": disabled ? "true" : "false",
|
|
150
|
+
style: style
|
|
151
|
+
}, showTick ? /*#__PURE__*/React.createElement("div", {
|
|
152
|
+
className: selectedIconClassName
|
|
153
|
+
}, /*#__PURE__*/React.createElement(IconTick, null)) : null, _isString(children) ? /*#__PURE__*/React.createElement("div", {
|
|
154
|
+
className: "".concat(prefixCls, "-text")
|
|
155
|
+
}, this.renderOptionContent({
|
|
156
|
+
children,
|
|
157
|
+
config,
|
|
158
|
+
inputValue,
|
|
159
|
+
prefixCls
|
|
160
|
+
})) : children)
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
Option.isSelectOption = true;
|
|
167
|
+
Option.propTypes = {
|
|
168
|
+
children: PropTypes.node,
|
|
169
|
+
disabled: PropTypes.bool,
|
|
170
|
+
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
171
|
+
selected: PropTypes.bool,
|
|
172
|
+
label: PropTypes.node,
|
|
173
|
+
empty: PropTypes.bool,
|
|
174
|
+
emptyContent: PropTypes.node,
|
|
175
|
+
onSelect: PropTypes.func,
|
|
176
|
+
focused: PropTypes.bool,
|
|
177
|
+
showTick: PropTypes.bool,
|
|
178
|
+
className: PropTypes.string,
|
|
179
|
+
style: PropTypes.object,
|
|
180
|
+
onMouseEnter: PropTypes.func,
|
|
181
|
+
prefixCls: PropTypes.string,
|
|
182
|
+
renderOptionItem: PropTypes.func,
|
|
183
|
+
inputValue: PropTypes.string
|
|
184
|
+
};
|
|
185
|
+
Option.defaultProps = {
|
|
186
|
+
prefixCls: cssClasses.PREFIX_OPTION
|
|
187
|
+
};
|
|
188
|
+
export default Option;
|
|
@@ -18,6 +18,7 @@ declare class Calendar extends BaseComponent<CalendarProps, {}> {
|
|
|
18
18
|
}>[]>;
|
|
19
19
|
mode: PropTypes.Requireable<string>;
|
|
20
20
|
showCurrTime: PropTypes.Requireable<boolean>;
|
|
21
|
+
weekStartsOn: PropTypes.Requireable<number>;
|
|
21
22
|
scrollTop: PropTypes.Requireable<number>;
|
|
22
23
|
onClick: PropTypes.Requireable<(...args: any[]) => any>;
|
|
23
24
|
renderTimeDisplay: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -35,6 +36,7 @@ declare class Calendar extends BaseComponent<CalendarProps, {}> {
|
|
|
35
36
|
markWeekend: boolean;
|
|
36
37
|
height: number;
|
|
37
38
|
scrollTop: number;
|
|
39
|
+
weekStartsOn: number;
|
|
38
40
|
};
|
|
39
41
|
render(): React.FunctionComponentElement<any>;
|
|
40
42
|
}
|
package/lib/es/calendar/index.js
CHANGED
|
@@ -54,6 +54,7 @@ Calendar.propTypes = {
|
|
|
54
54
|
})),
|
|
55
55
|
mode: PropTypes.string,
|
|
56
56
|
showCurrTime: PropTypes.bool,
|
|
57
|
+
weekStartsOn: PropTypes.number,
|
|
57
58
|
scrollTop: PropTypes.number,
|
|
58
59
|
onClick: PropTypes.func,
|
|
59
60
|
renderTimeDisplay: PropTypes.func,
|
|
@@ -70,6 +71,7 @@ Calendar.defaultProps = {
|
|
|
70
71
|
mode: 'week',
|
|
71
72
|
markWeekend: false,
|
|
72
73
|
height: 600,
|
|
73
|
-
scrollTop: 400
|
|
74
|
+
scrollTop: 400,
|
|
75
|
+
weekStartsOn: 0
|
|
74
76
|
};
|
|
75
77
|
export default Calendar;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { EventObject } from '@douyinfe/semi-foundation/lib/es/calendar/foundation';
|
|
2
|
+
import { EventObject, weeekStartsOnEnum } from '@douyinfe/semi-foundation/lib/es/calendar/foundation';
|
|
3
3
|
import { strings } from '@douyinfe/semi-foundation/lib/es/calendar/constants';
|
|
4
4
|
import { ArrayElement } from '../_base/base';
|
|
5
5
|
import { BaseProps } from '../_base/baseComponent';
|
|
@@ -10,6 +10,7 @@ export interface CalendarProps extends BaseProps {
|
|
|
10
10
|
events?: EventObject[];
|
|
11
11
|
mode?: ArrayElement<typeof strings.MODE>;
|
|
12
12
|
showCurrTime?: boolean;
|
|
13
|
+
weekStartsOn?: weeekStartsOnEnum;
|
|
13
14
|
scrollTop?: number;
|
|
14
15
|
onClick?: (e: React.MouseEvent, value: Date) => void;
|
|
15
16
|
onClose?: (e: React.MouseEvent) => void;
|
package/lib/es/carousel/index.js
CHANGED
|
@@ -41,7 +41,7 @@ class Carousel extends BaseComponent {
|
|
|
41
41
|
};
|
|
42
42
|
|
|
43
43
|
this.handleAutoPlay = () => {
|
|
44
|
-
if (!this.foundation.
|
|
44
|
+
if (!this.foundation.getIsControlledComponent()) {
|
|
45
45
|
this.foundation.handleAutoPlay();
|
|
46
46
|
}
|
|
47
47
|
};
|
|
@@ -61,7 +61,7 @@ class Carousel extends BaseComponent {
|
|
|
61
61
|
autoPlay
|
|
62
62
|
} = this.props;
|
|
63
63
|
|
|
64
|
-
if ((typeof autoPlay !== 'object' || autoPlay.hoverToPause) && !this.foundation.
|
|
64
|
+
if ((typeof autoPlay !== 'object' || autoPlay.hoverToPause) && !this.foundation.getIsControlledComponent()) {
|
|
65
65
|
this.foundation.handleAutoPlay();
|
|
66
66
|
}
|
|
67
67
|
};
|
|
@@ -5,6 +5,7 @@ import CheckboxInner from './checkboxInner';
|
|
|
5
5
|
import BaseComponent from '../_base/baseComponent';
|
|
6
6
|
import '@douyinfe/semi-foundation/lib/es/checkbox/checkbox.css';
|
|
7
7
|
import { CheckboxContextType } from './context';
|
|
8
|
+
import { CheckboxType } from './checkboxGroup';
|
|
8
9
|
export declare type CheckboxEvent = BasicCheckboxEvent;
|
|
9
10
|
export declare type TargetObject = BasicTargetObject;
|
|
10
11
|
export interface CheckboxProps extends BaseCheckboxProps {
|
|
@@ -24,6 +25,7 @@ export interface CheckboxProps extends BaseCheckboxProps {
|
|
|
24
25
|
tabIndex?: number;
|
|
25
26
|
addonId?: string;
|
|
26
27
|
extraId?: string;
|
|
28
|
+
type?: CheckboxType;
|
|
27
29
|
}
|
|
28
30
|
interface CheckboxState {
|
|
29
31
|
checked: boolean;
|
|
@@ -55,6 +57,7 @@ declare class Checkbox extends BaseComponent<CheckboxProps, CheckboxState> {
|
|
|
55
57
|
'aria-label': PropTypes.Requireable<string>;
|
|
56
58
|
tabIndex: PropTypes.Requireable<number>;
|
|
57
59
|
preventScroll: PropTypes.Requireable<boolean>;
|
|
60
|
+
type: PropTypes.Requireable<string>;
|
|
58
61
|
};
|
|
59
62
|
static defaultProps: {
|
|
60
63
|
defaultChecked: boolean;
|
|
@@ -62,6 +65,7 @@ declare class Checkbox extends BaseComponent<CheckboxProps, CheckboxState> {
|
|
|
62
65
|
onChange: (...args: any[]) => void;
|
|
63
66
|
onMouseEnter: (...args: any[]) => void;
|
|
64
67
|
onMouseLeave: (...args: any[]) => void;
|
|
68
|
+
type: string;
|
|
65
69
|
};
|
|
66
70
|
checkboxEntity: CheckboxInner;
|
|
67
71
|
context: CheckboxContextType;
|