@douyinfe/semi-ui 2.52.0-beta.1 → 2.53.0-beta.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 +1 -0
- package/dist/css/semi.min.css +1 -1
- package/dist/umd/semi-ui.js +930 -1249
- 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/_utils/index.d.ts +2 -0
- package/lib/cjs/_utils/index.js +77 -0
- package/lib/cjs/_utils/semi-global.d.ts +46 -0
- package/lib/cjs/_utils/semi-global.js +13 -0
- package/lib/cjs/autoComplete/index.d.ts +2 -25
- package/lib/cjs/autoComplete/index.js +4 -2
- package/lib/cjs/avatar/index.d.ts +2 -10
- package/lib/cjs/avatar/index.js +4 -2
- package/lib/cjs/backtop/index.d.ts +2 -5
- package/lib/cjs/backtop/index.js +4 -2
- package/lib/cjs/button/Button.d.ts +1 -1
- package/lib/cjs/button/index.d.ts +3 -1
- package/lib/cjs/button/index.js +3 -0
- package/lib/cjs/carousel/index.d.ts +2 -2
- package/lib/cjs/cascader/index.d.ts +5 -33
- package/lib/cjs/cascader/index.js +34 -23
- package/lib/cjs/collapse/index.d.ts +2 -7
- package/lib/cjs/collapse/index.js +4 -2
- package/lib/cjs/collapsible/index.d.ts +3 -9
- package/lib/cjs/collapsible/index.js +4 -2
- package/lib/cjs/configProvider/index.d.ts +2 -1
- package/lib/cjs/configProvider/index.js +5 -2
- package/lib/cjs/datePicker/datePicker.d.ts +2 -44
- package/lib/cjs/datePicker/datePicker.js +5 -3
- package/lib/cjs/datePicker/yearAndMonth.js +20 -16
- package/lib/cjs/dropdown/index.d.ts +2 -12
- package/lib/cjs/dropdown/index.js +4 -2
- package/lib/cjs/form/arrayField.js +3 -3
- package/lib/cjs/form/hoc/withField.d.ts +3 -3
- package/lib/cjs/modal/Modal.d.ts +2 -20
- package/lib/cjs/modal/Modal.js +5 -4
- package/lib/cjs/modal/confirm.d.ts +14 -14
- package/lib/cjs/navigation/index.d.ts +2 -15
- package/lib/cjs/navigation/index.js +4 -2
- package/lib/cjs/notification/notice.d.ts +2 -12
- package/lib/cjs/notification/notice.js +3 -2
- package/lib/cjs/overflowList/index.d.ts +2 -9
- package/lib/cjs/overflowList/index.js +3 -2
- package/lib/cjs/popconfirm/index.d.ts +2 -15
- package/lib/cjs/popconfirm/index.js +4 -2
- package/lib/cjs/popover/index.d.ts +2 -23
- package/lib/cjs/popover/index.js +4 -2
- package/lib/cjs/resizeObserver/index.d.ts +14 -2
- package/lib/cjs/resizeObserver/index.js +66 -32
- package/lib/cjs/select/index.d.ts +1 -0
- package/lib/cjs/select/index.js +3 -2
- package/lib/cjs/select/option.js +2 -1
- package/lib/cjs/sideSheet/index.d.ts +1 -0
- package/lib/cjs/sideSheet/index.js +3 -2
- package/lib/cjs/table/ResizableTable.js +1 -1
- package/lib/cjs/tabs/index.d.ts +1 -0
- package/lib/cjs/tabs/index.js +4 -2
- package/lib/cjs/timePicker/TimePicker.d.ts +1 -1
- package/lib/cjs/timePicker/index.d.ts +2 -34
- package/lib/cjs/timePicker/index.js +3 -1
- package/lib/cjs/toast/toast.d.ts +2 -11
- package/lib/cjs/toast/toast.js +3 -2
- package/lib/cjs/tooltip/index.d.ts +2 -32
- package/lib/cjs/tooltip/index.js +3 -2
- package/lib/cjs/typography/base.d.ts +7 -4
- package/lib/cjs/typography/base.js +127 -64
- 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/cjs/typography/title.d.ts +1 -1
- package/lib/es/_utils/index.d.ts +2 -0
- package/lib/es/_utils/index.js +75 -0
- package/lib/es/_utils/semi-global.d.ts +46 -0
- package/lib/es/_utils/semi-global.js +6 -0
- package/lib/es/autoComplete/index.d.ts +2 -25
- package/lib/es/autoComplete/index.js +4 -2
- package/lib/es/avatar/index.d.ts +2 -10
- package/lib/es/avatar/index.js +4 -2
- package/lib/es/backtop/index.d.ts +2 -5
- package/lib/es/backtop/index.js +4 -2
- package/lib/es/button/Button.d.ts +1 -1
- package/lib/es/button/index.d.ts +3 -1
- package/lib/es/button/index.js +3 -0
- package/lib/es/carousel/index.d.ts +2 -2
- package/lib/es/cascader/index.d.ts +5 -33
- package/lib/es/cascader/index.js +35 -24
- package/lib/es/collapse/index.d.ts +2 -7
- package/lib/es/collapse/index.js +4 -2
- package/lib/es/collapsible/index.d.ts +3 -9
- package/lib/es/collapsible/index.js +4 -2
- package/lib/es/configProvider/index.d.ts +2 -1
- package/lib/es/configProvider/index.js +5 -2
- package/lib/es/datePicker/datePicker.d.ts +2 -44
- package/lib/es/datePicker/datePicker.js +5 -3
- package/lib/es/datePicker/yearAndMonth.js +20 -16
- package/lib/es/dropdown/index.d.ts +2 -12
- package/lib/es/dropdown/index.js +4 -2
- package/lib/es/form/arrayField.js +3 -3
- package/lib/es/form/hoc/withField.d.ts +3 -3
- package/lib/es/modal/Modal.d.ts +2 -20
- package/lib/es/modal/Modal.js +6 -5
- package/lib/es/modal/confirm.d.ts +14 -14
- package/lib/es/navigation/index.d.ts +2 -15
- package/lib/es/navigation/index.js +4 -2
- package/lib/es/notification/notice.d.ts +2 -12
- package/lib/es/notification/notice.js +4 -3
- package/lib/es/overflowList/index.d.ts +2 -9
- package/lib/es/overflowList/index.js +4 -3
- package/lib/es/popconfirm/index.d.ts +2 -15
- package/lib/es/popconfirm/index.js +4 -2
- package/lib/es/popover/index.d.ts +2 -23
- package/lib/es/popover/index.js +4 -2
- package/lib/es/resizeObserver/index.d.ts +14 -2
- package/lib/es/resizeObserver/index.js +64 -31
- package/lib/es/select/index.d.ts +1 -0
- package/lib/es/select/index.js +4 -3
- package/lib/es/select/option.js +2 -1
- package/lib/es/sideSheet/index.d.ts +1 -0
- package/lib/es/sideSheet/index.js +4 -3
- package/lib/es/table/ResizableTable.js +1 -1
- package/lib/es/tabs/index.d.ts +1 -0
- package/lib/es/tabs/index.js +4 -2
- package/lib/es/timePicker/TimePicker.d.ts +1 -1
- package/lib/es/timePicker/index.d.ts +2 -34
- package/lib/es/timePicker/index.js +3 -1
- package/lib/es/toast/toast.d.ts +2 -11
- package/lib/es/toast/toast.js +4 -3
- package/lib/es/tooltip/index.d.ts +2 -32
- package/lib/es/tooltip/index.js +4 -3
- package/lib/es/typography/base.d.ts +7 -4
- package/lib/es/typography/base.js +128 -65
- 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/lib/es/typography/title.d.ts +1 -1
- package/package.json +9 -9
- package/dist/umd/semi-ui.min.js.LICENSE.txt +0 -5
|
@@ -14,7 +14,7 @@ export interface CarouselState {
|
|
|
14
14
|
declare class Carousel extends BaseComponent<CarouselProps, CarouselState> {
|
|
15
15
|
static propTypes: {
|
|
16
16
|
activeIndex: PropTypes.Requireable<number>;
|
|
17
|
-
animation: PropTypes.Requireable<"
|
|
17
|
+
animation: PropTypes.Requireable<"fade" | "slide">;
|
|
18
18
|
arrowProps: PropTypes.Requireable<object>;
|
|
19
19
|
autoPlay: PropTypes.Requireable<NonNullable<boolean | object>>;
|
|
20
20
|
className: PropTypes.Requireable<string>;
|
|
@@ -24,7 +24,7 @@ declare class Carousel extends BaseComponent<CarouselProps, CarouselState> {
|
|
|
24
24
|
indicatorType: PropTypes.Requireable<"line" | "dot" | "columnar">;
|
|
25
25
|
theme: PropTypes.Requireable<"dark" | "light" | "primary">;
|
|
26
26
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
27
|
-
arrowType: PropTypes.Requireable<"
|
|
27
|
+
arrowType: PropTypes.Requireable<"hover" | "always">;
|
|
28
28
|
showArrow: PropTypes.Requireable<boolean>;
|
|
29
29
|
showIndicator: PropTypes.Requireable<boolean>;
|
|
30
30
|
slideDirection: PropTypes.Requireable<"left" | "right">;
|
|
@@ -66,6 +66,7 @@ export interface CascaderState extends BasicCascaderInnerData {
|
|
|
66
66
|
treeData?: Array<CascaderData>;
|
|
67
67
|
}
|
|
68
68
|
declare class Cascader extends BaseComponent<CascaderProps, CascaderState> {
|
|
69
|
+
static __SemiComponentName__: string;
|
|
69
70
|
static contextType: React.Context<ContextValue>;
|
|
70
71
|
static propTypes: {
|
|
71
72
|
'aria-labelledby': PropTypes.Requireable<string>;
|
|
@@ -143,37 +144,7 @@ declare class Cascader extends BaseComponent<CascaderProps, CascaderState> {
|
|
|
143
144
|
preventScroll: PropTypes.Requireable<boolean>;
|
|
144
145
|
position: PropTypes.Requireable<string>;
|
|
145
146
|
};
|
|
146
|
-
static defaultProps:
|
|
147
|
-
borderless: boolean;
|
|
148
|
-
leafOnly: boolean;
|
|
149
|
-
arrowIcon: JSX.Element;
|
|
150
|
-
stopPropagation: boolean;
|
|
151
|
-
motion: boolean;
|
|
152
|
-
defaultOpen: boolean;
|
|
153
|
-
zIndex: number;
|
|
154
|
-
showClear: boolean;
|
|
155
|
-
autoClearSearchValue: boolean;
|
|
156
|
-
changeOnSelect: boolean;
|
|
157
|
-
disableStrictly: boolean;
|
|
158
|
-
autoMergeValue: boolean;
|
|
159
|
-
multiple: boolean;
|
|
160
|
-
filterTreeNode: boolean;
|
|
161
|
-
filterLeafOnly: boolean;
|
|
162
|
-
showRestTagsPopover: boolean;
|
|
163
|
-
restTagsPopoverProps: {};
|
|
164
|
-
separator: string;
|
|
165
|
-
size: "default";
|
|
166
|
-
treeNodeFilterProp: "label";
|
|
167
|
-
displayProp: "label";
|
|
168
|
-
treeData: CascaderData[];
|
|
169
|
-
showNext: "click";
|
|
170
|
-
onExceed: (...args: any[]) => void;
|
|
171
|
-
onClear: (...args: any[]) => void;
|
|
172
|
-
onDropdownVisibleChange: (...args: any[]) => void;
|
|
173
|
-
onListScroll: (...args: any[]) => void;
|
|
174
|
-
enableLeafClick: boolean;
|
|
175
|
-
'aria-label': string;
|
|
176
|
-
};
|
|
147
|
+
static defaultProps: any;
|
|
177
148
|
options: any;
|
|
178
149
|
isEmpty: boolean;
|
|
179
150
|
inputRef: React.RefObject<typeof Input>;
|
|
@@ -191,9 +162,10 @@ declare class Cascader extends BaseComponent<CascaderProps, CascaderState> {
|
|
|
191
162
|
componentWillUnmount(): void;
|
|
192
163
|
componentDidUpdate(prevProps: CascaderProps): void;
|
|
193
164
|
handleInputChange: (value: string) => void;
|
|
194
|
-
|
|
195
|
-
|
|
165
|
+
handleTagRemoveInTrigger: (pos: string) => void;
|
|
166
|
+
handleTagClose: (tagChildren: React.ReactNode, e: React.MouseEvent<HTMLElement>, tagKey: string | number) => void;
|
|
196
167
|
renderTagItem: (nodeKey: string, idx: number) => string | number | boolean | React.ReactFragment | JSX.Element;
|
|
168
|
+
onRemoveInTagInput: (v: string) => void;
|
|
197
169
|
renderTagInput(): JSX.Element;
|
|
198
170
|
renderInput(): JSX.Element;
|
|
199
171
|
handleItemClick: (e: MouseEvent | KeyboardEvent, item: Entity | Data) => void;
|
package/lib/es/cascader/index.js
CHANGED
|
@@ -25,7 +25,7 @@ import Item from './item';
|
|
|
25
25
|
import Trigger from '../trigger';
|
|
26
26
|
import Tag from '../tag';
|
|
27
27
|
import TagInput from '../tagInput';
|
|
28
|
-
import { isSemiIcon } from '../_utils';
|
|
28
|
+
import { getDefaultPropsFromGlobalConfig, isSemiIcon } from '../_utils';
|
|
29
29
|
const prefixcls = cssClasses.PREFIX;
|
|
30
30
|
const resetkey = 0;
|
|
31
31
|
class Cascader extends BaseComponent {
|
|
@@ -34,14 +34,13 @@ class Cascader extends BaseComponent {
|
|
|
34
34
|
this.handleInputChange = value => {
|
|
35
35
|
this.foundation.handleInputChange(value);
|
|
36
36
|
};
|
|
37
|
-
this.
|
|
38
|
-
this.foundation.
|
|
37
|
+
this.handleTagRemoveInTrigger = pos => {
|
|
38
|
+
this.foundation.handleTagRemoveInTrigger(pos);
|
|
39
39
|
};
|
|
40
|
-
this.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
this.handleTagRemove(null, keyEntities[key].valuePath);
|
|
40
|
+
this.handleTagClose = (tagChildren, e, tagKey) => {
|
|
41
|
+
// When value has not changed, prevent clicking tag closeBtn to close tag
|
|
42
|
+
e.preventDefault();
|
|
43
|
+
this.foundation.handleTagRemoveByKey(tagKey);
|
|
45
44
|
};
|
|
46
45
|
this.renderTagItem = (nodeKey, idx) => {
|
|
47
46
|
const {
|
|
@@ -69,18 +68,18 @@ class Cascader extends BaseComponent {
|
|
|
69
68
|
size: size === 'default' ? 'large' : size,
|
|
70
69
|
key: `tag-${nodeKey}-${idx}`,
|
|
71
70
|
color: "white",
|
|
71
|
+
tagKey: nodeKey,
|
|
72
72
|
className: tagCls,
|
|
73
73
|
closable: true,
|
|
74
|
-
onClose:
|
|
75
|
-
// When value has not changed, prevent clicking tag closeBtn to close tag
|
|
76
|
-
e.preventDefault();
|
|
77
|
-
this.handleTagRemove(e, keyEntities[nodeKey].valuePath);
|
|
78
|
-
}
|
|
74
|
+
onClose: this.handleTagClose
|
|
79
75
|
}, keyEntities[nodeKey].data[displayProp]);
|
|
80
76
|
}
|
|
81
77
|
}
|
|
82
78
|
return null;
|
|
83
79
|
};
|
|
80
|
+
this.onRemoveInTagInput = v => {
|
|
81
|
+
this.foundation.handleTagRemoveByKey(v);
|
|
82
|
+
};
|
|
84
83
|
this.handleItemClick = (e, item) => {
|
|
85
84
|
this.foundation.handleItemClick(e, item);
|
|
86
85
|
};
|
|
@@ -280,6 +279,7 @@ class Cascader extends BaseComponent {
|
|
|
280
279
|
}, labelNode);
|
|
281
280
|
};
|
|
282
281
|
this.renderCustomTrigger = () => {
|
|
282
|
+
var _a;
|
|
283
283
|
const {
|
|
284
284
|
disabled,
|
|
285
285
|
triggerRender,
|
|
@@ -290,17 +290,26 @@ class Cascader extends BaseComponent {
|
|
|
290
290
|
inputValue,
|
|
291
291
|
inputPlaceHolder,
|
|
292
292
|
resolvedCheckedKeys,
|
|
293
|
-
checkedKeys
|
|
293
|
+
checkedKeys,
|
|
294
|
+
keyEntities
|
|
294
295
|
} = this.state;
|
|
295
296
|
let realValue;
|
|
296
297
|
if (multiple) {
|
|
297
298
|
if (this.mergeType === strings.NONE_MERGE_TYPE) {
|
|
298
|
-
realValue =
|
|
299
|
+
realValue = new Set();
|
|
300
|
+
checkedKeys.forEach(key => {
|
|
301
|
+
var _a;
|
|
302
|
+
realValue.add((_a = keyEntities[key]) === null || _a === void 0 ? void 0 : _a.pos);
|
|
303
|
+
});
|
|
299
304
|
} else {
|
|
300
|
-
realValue =
|
|
305
|
+
realValue = new Set();
|
|
306
|
+
resolvedCheckedKeys.forEach(key => {
|
|
307
|
+
var _a;
|
|
308
|
+
realValue.add((_a = keyEntities[key]) === null || _a === void 0 ? void 0 : _a.pos);
|
|
309
|
+
});
|
|
301
310
|
}
|
|
302
311
|
} else {
|
|
303
|
-
realValue = [...selectedKeys][0];
|
|
312
|
+
realValue = (_a = keyEntities[[...selectedKeys][0]]) === null || _a === void 0 ? void 0 : _a.pos;
|
|
304
313
|
}
|
|
305
314
|
return /*#__PURE__*/React.createElement(Trigger, {
|
|
306
315
|
value: realValue,
|
|
@@ -313,7 +322,7 @@ class Cascader extends BaseComponent {
|
|
|
313
322
|
componentName: 'Cascader',
|
|
314
323
|
componentProps: Object.assign({}, this.props),
|
|
315
324
|
onSearch: this.handleInputChange,
|
|
316
|
-
onRemove: this.
|
|
325
|
+
onRemove: this.handleTagRemoveInTrigger
|
|
317
326
|
});
|
|
318
327
|
};
|
|
319
328
|
this.handleMouseOver = () => {
|
|
@@ -344,11 +353,12 @@ class Cascader extends BaseComponent {
|
|
|
344
353
|
selectedKeys,
|
|
345
354
|
isOpen,
|
|
346
355
|
isHovering,
|
|
347
|
-
checkedKeys
|
|
356
|
+
checkedKeys,
|
|
357
|
+
inputValue
|
|
348
358
|
} = this.state;
|
|
349
359
|
const hasValue = selectedKeys.size;
|
|
350
360
|
const multipleWithHaveValue = multiple && checkedKeys.size;
|
|
351
|
-
return showClear && (hasValue || multipleWithHaveValue) && !disabled && (isOpen || isHovering);
|
|
361
|
+
return showClear && (inputValue || hasValue || multipleWithHaveValue) && !disabled && (isOpen || isHovering);
|
|
352
362
|
};
|
|
353
363
|
this.renderClearBtn = () => {
|
|
354
364
|
const clearCls = cls(`${prefixcls}-clearbtn`);
|
|
@@ -797,11 +807,11 @@ class Cascader extends BaseComponent {
|
|
|
797
807
|
showRestTagsPopover: showRestTagsPopover,
|
|
798
808
|
restTagsPopoverProps: restTagsPopoverProps,
|
|
799
809
|
maxTagCount: maxTagCount,
|
|
800
|
-
renderTagItem:
|
|
810
|
+
renderTagItem: this.renderTagItem,
|
|
801
811
|
inputValue: inputValue,
|
|
802
812
|
onInputChange: this.handleInputChange,
|
|
803
813
|
// TODO Modify logic, not modify type
|
|
804
|
-
onRemove:
|
|
814
|
+
onRemove: this.onRemoveInTagInput,
|
|
805
815
|
placeholder: placeholder,
|
|
806
816
|
expandRestTagsOnClick: false
|
|
807
817
|
});
|
|
@@ -895,6 +905,7 @@ class Cascader extends BaseComponent {
|
|
|
895
905
|
}, selection);
|
|
896
906
|
}
|
|
897
907
|
}
|
|
908
|
+
Cascader.__SemiComponentName__ = "Cascader";
|
|
898
909
|
Cascader.contextType = ConfigContext;
|
|
899
910
|
Cascader.propTypes = {
|
|
900
911
|
'aria-labelledby': PropTypes.string,
|
|
@@ -973,7 +984,7 @@ Cascader.propTypes = {
|
|
|
973
984
|
preventScroll: PropTypes.bool,
|
|
974
985
|
position: PropTypes.string
|
|
975
986
|
};
|
|
976
|
-
Cascader.defaultProps = {
|
|
987
|
+
Cascader.defaultProps = getDefaultPropsFromGlobalConfig(Cascader.__SemiComponentName__, {
|
|
977
988
|
borderless: false,
|
|
978
989
|
leafOnly: false,
|
|
979
990
|
arrowIcon: /*#__PURE__*/React.createElement(IconChevronDown, null),
|
|
@@ -1003,5 +1014,5 @@ Cascader.defaultProps = {
|
|
|
1003
1014
|
onListScroll: _noop,
|
|
1004
1015
|
enableLeafClick: false,
|
|
1005
1016
|
'aria-label': 'Cascader'
|
|
1006
|
-
};
|
|
1017
|
+
});
|
|
1007
1018
|
export default Cascader;
|
|
@@ -4,7 +4,6 @@ import { CollapseAdapter, CollapseProps, CollapseState } from '@douyinfe/semi-fo
|
|
|
4
4
|
import BaseComponent from '../_base/baseComponent';
|
|
5
5
|
import CollapsePanel from './item';
|
|
6
6
|
import '@douyinfe/semi-foundation/lib/es/collapse/collapse.css';
|
|
7
|
-
import { noop } from '@douyinfe/semi-foundation/lib/es/utils/function';
|
|
8
7
|
export type { CollapsePanelProps } from './item';
|
|
9
8
|
export interface CollapseReactProps extends CollapseProps {
|
|
10
9
|
expandIcon?: React.ReactNode;
|
|
@@ -30,12 +29,8 @@ declare class Collapse extends BaseComponent<CollapseReactProps, CollapseState>
|
|
|
30
29
|
motion: PropTypes.Requireable<NonNullable<boolean | object>>;
|
|
31
30
|
expandIconPosition: PropTypes.Requireable<string>;
|
|
32
31
|
};
|
|
33
|
-
static
|
|
34
|
-
|
|
35
|
-
clickHeaderToExpand: boolean;
|
|
36
|
-
onChange: typeof noop;
|
|
37
|
-
expandIconPosition: string;
|
|
38
|
-
};
|
|
32
|
+
static __SemiComponentName__: string;
|
|
33
|
+
static defaultProps: any;
|
|
39
34
|
constructor(props: CollapseReactProps);
|
|
40
35
|
get adapter(): CollapseAdapter;
|
|
41
36
|
static getDerivedStateFromProps(props: CollapseReactProps, state: CollapseState): CollapseState;
|
package/lib/es/collapse/index.js
CHANGED
|
@@ -17,6 +17,7 @@ import CollapsePanel from './item';
|
|
|
17
17
|
import '@douyinfe/semi-foundation/lib/es/collapse/collapse.css';
|
|
18
18
|
import { noop } from '@douyinfe/semi-foundation/lib/es/utils/function';
|
|
19
19
|
import CollapseContext from './collapse-context';
|
|
20
|
+
import { getDefaultPropsFromGlobalConfig } from "../_utils";
|
|
20
21
|
class Collapse extends BaseComponent {
|
|
21
22
|
constructor(props) {
|
|
22
23
|
super(props);
|
|
@@ -106,10 +107,11 @@ Collapse.propTypes = {
|
|
|
106
107
|
motion: PropTypes.oneOfType([PropTypes.bool, PropTypes.func, PropTypes.object]),
|
|
107
108
|
expandIconPosition: PropTypes.oneOf(strings.iconPosition)
|
|
108
109
|
};
|
|
109
|
-
Collapse.
|
|
110
|
+
Collapse.__SemiComponentName__ = "Collapse";
|
|
111
|
+
Collapse.defaultProps = getDefaultPropsFromGlobalConfig(Collapse.__SemiComponentName__, {
|
|
110
112
|
defaultActiveKey: '',
|
|
111
113
|
clickHeaderToExpand: true,
|
|
112
114
|
onChange: noop,
|
|
113
115
|
expandIconPosition: 'right'
|
|
114
|
-
};
|
|
116
|
+
});
|
|
115
117
|
export default Collapse;
|
|
@@ -3,7 +3,7 @@ import type { CollapsibleAdapter, CollapsibleFoundationProps, CollapsibleFoundat
|
|
|
3
3
|
import CollapsibleFoundation from '@douyinfe/semi-foundation/lib/es/collapsible/foundation';
|
|
4
4
|
import BaseComponent from "../_base/baseComponent";
|
|
5
5
|
import '@douyinfe/semi-foundation/lib/es/collapsible/collapsible.css';
|
|
6
|
-
interface CollapsibleProps extends CollapsibleFoundationProps {
|
|
6
|
+
export interface CollapsibleProps extends CollapsibleFoundationProps {
|
|
7
7
|
motion?: boolean;
|
|
8
8
|
children?: React.ReactNode;
|
|
9
9
|
isOpen?: boolean;
|
|
@@ -23,14 +23,8 @@ interface CollapsibleState extends CollapsibleFoundationState {
|
|
|
23
23
|
isTransitioning: boolean;
|
|
24
24
|
}
|
|
25
25
|
declare class Collapsible extends BaseComponent<CollapsibleProps, CollapsibleState> {
|
|
26
|
-
static
|
|
27
|
-
|
|
28
|
-
duration: number;
|
|
29
|
-
motion: boolean;
|
|
30
|
-
keepDOM: boolean;
|
|
31
|
-
collapseHeight: number;
|
|
32
|
-
fade: boolean;
|
|
33
|
-
};
|
|
26
|
+
static __SemiComponentName__: string;
|
|
27
|
+
static defaultProps: any;
|
|
34
28
|
foundation: CollapsibleFoundation;
|
|
35
29
|
private domRef;
|
|
36
30
|
private resizeObserver;
|
|
@@ -6,6 +6,7 @@ import PropTypes from "prop-types";
|
|
|
6
6
|
import cls from "classnames";
|
|
7
7
|
import { cssClasses } from '@douyinfe/semi-foundation/lib/es/collapsible/constants';
|
|
8
8
|
import '@douyinfe/semi-foundation/lib/es/collapsible/collapsible.css';
|
|
9
|
+
import { getDefaultPropsFromGlobalConfig } from "../_utils";
|
|
9
10
|
class Collapsible extends BaseComponent {
|
|
10
11
|
constructor(props) {
|
|
11
12
|
super(props);
|
|
@@ -128,14 +129,15 @@ class Collapsible extends BaseComponent {
|
|
|
128
129
|
}, (this.props.keepDOM || this.props.collapseHeight !== 0 || this.state.visible || this.props.isOpen) && this.props.children));
|
|
129
130
|
}
|
|
130
131
|
}
|
|
131
|
-
Collapsible.
|
|
132
|
+
Collapsible.__SemiComponentName__ = "Collapsible";
|
|
133
|
+
Collapsible.defaultProps = getDefaultPropsFromGlobalConfig(Collapsible.__SemiComponentName__, {
|
|
132
134
|
isOpen: false,
|
|
133
135
|
duration: 250,
|
|
134
136
|
motion: true,
|
|
135
137
|
keepDOM: false,
|
|
136
138
|
collapseHeight: 0,
|
|
137
139
|
fade: false
|
|
138
|
-
};
|
|
140
|
+
});
|
|
139
141
|
Collapsible.getEntryInfo = entry => {
|
|
140
142
|
//judge whether parent or self display none
|
|
141
143
|
let inRenderTree;
|
|
@@ -4,6 +4,7 @@ import { ContextValue } from './context';
|
|
|
4
4
|
export interface ConfigProviderProps extends ContextValue {
|
|
5
5
|
}
|
|
6
6
|
export default class ConfigProvider extends React.Component<ConfigProviderProps> {
|
|
7
|
+
constructor(props: ConfigProviderProps);
|
|
7
8
|
static propTypes: {
|
|
8
9
|
locale: PropTypes.Requireable<object>;
|
|
9
10
|
timeZone: PropTypes.Requireable<NonNullable<string | number>>;
|
|
@@ -14,6 +15,6 @@ export default class ConfigProvider extends React.Component<ConfigProviderProps>
|
|
|
14
15
|
locale: import("../locale/interface").Locale;
|
|
15
16
|
direction: string;
|
|
16
17
|
};
|
|
17
|
-
|
|
18
|
+
renderChildren(): string | number | boolean | React.ReactFragment | JSX.Element;
|
|
18
19
|
render(): JSX.Element;
|
|
19
20
|
}
|
|
@@ -12,7 +12,10 @@ import { BASE_CLASS_PREFIX } from '@douyinfe/semi-foundation/lib/es/base/constan
|
|
|
12
12
|
import DefaultLocale from '../locale/source/zh_CN';
|
|
13
13
|
import Context from './context';
|
|
14
14
|
export default class ConfigProvider extends React.Component {
|
|
15
|
-
|
|
15
|
+
constructor(props) {
|
|
16
|
+
super(props);
|
|
17
|
+
}
|
|
18
|
+
renderChildren() {
|
|
16
19
|
const {
|
|
17
20
|
direction,
|
|
18
21
|
children
|
|
@@ -35,7 +38,7 @@ export default class ConfigProvider extends React.Component {
|
|
|
35
38
|
value: Object.assign({
|
|
36
39
|
direction
|
|
37
40
|
}, rest)
|
|
38
|
-
}, this.
|
|
41
|
+
}, this.renderChildren());
|
|
39
42
|
}
|
|
40
43
|
}
|
|
41
44
|
ConfigProvider.propTypes = {
|
|
@@ -127,50 +127,8 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
|
|
|
127
127
|
yearAndMonthOpts: PropTypes.Requireable<object>;
|
|
128
128
|
onClickOutSide: PropTypes.Requireable<(...args: any[]) => any>;
|
|
129
129
|
};
|
|
130
|
-
static
|
|
131
|
-
|
|
132
|
-
borderless: boolean;
|
|
133
|
-
autoAdjustOverflow: boolean;
|
|
134
|
-
stopPropagation: boolean;
|
|
135
|
-
motion: boolean;
|
|
136
|
-
prefixCls: "semi-datepicker";
|
|
137
|
-
presetPosition: string;
|
|
138
|
-
zIndex: number;
|
|
139
|
-
type: string;
|
|
140
|
-
size: string;
|
|
141
|
-
density: string;
|
|
142
|
-
multiple: boolean;
|
|
143
|
-
defaultOpen: boolean;
|
|
144
|
-
disabledHours: (...args: any[]) => void;
|
|
145
|
-
disabledMinutes: (...args: any[]) => void;
|
|
146
|
-
disabledSeconds: (...args: any[]) => void;
|
|
147
|
-
hideDisabledOptions: boolean;
|
|
148
|
-
onBlur: (...args: any[]) => void;
|
|
149
|
-
onFocus: (...args: any[]) => void;
|
|
150
|
-
onClear: (...args: any[]) => void;
|
|
151
|
-
onCancel: (...args: any[]) => void;
|
|
152
|
-
onConfirm: (...args: any[]) => void;
|
|
153
|
-
onChange: (...args: any[]) => void;
|
|
154
|
-
onOpenChange: (...args: any[]) => void;
|
|
155
|
-
onPanelChange: (...args: any[]) => void;
|
|
156
|
-
onPresetClick: (...args: any[]) => void;
|
|
157
|
-
weekStartsOn: 0;
|
|
158
|
-
disabledDate: {
|
|
159
|
-
(): false;
|
|
160
|
-
(): false;
|
|
161
|
-
};
|
|
162
|
-
disabledTime: {
|
|
163
|
-
(): false;
|
|
164
|
-
(): false;
|
|
165
|
-
};
|
|
166
|
-
inputReadOnly: boolean;
|
|
167
|
-
spacing: number;
|
|
168
|
-
autoSwitchDate: boolean;
|
|
169
|
-
syncSwitchMonth: boolean;
|
|
170
|
-
rangeSeparator: " ~ ";
|
|
171
|
-
insetInput: boolean;
|
|
172
|
-
onClickOutSide: (...args: any[]) => void;
|
|
173
|
-
};
|
|
130
|
+
static __SemiComponentName__: string;
|
|
131
|
+
static defaultProps: any;
|
|
174
132
|
triggerElRef: React.MutableRefObject<HTMLElement>;
|
|
175
133
|
panelRef: React.RefObject<HTMLDivElement>;
|
|
176
134
|
monthGrid: React.RefObject<MonthsGrid>;
|
|
@@ -30,6 +30,7 @@ import Footer from './footer';
|
|
|
30
30
|
import Trigger from '../trigger';
|
|
31
31
|
import YearAndMonth from './yearAndMonth';
|
|
32
32
|
import '@douyinfe/semi-foundation/lib/es/datePicker/datePicker.css';
|
|
33
|
+
import { getDefaultPropsFromGlobalConfig } from "../_utils";
|
|
33
34
|
export default class DatePicker extends BaseComponent {
|
|
34
35
|
constructor(props) {
|
|
35
36
|
var _this;
|
|
@@ -463,7 +464,7 @@ export default class DatePicker extends BaseComponent {
|
|
|
463
464
|
return /range/i.test(type) && !_isFunction(triggerRender);
|
|
464
465
|
}
|
|
465
466
|
componentDidUpdate(prevProps) {
|
|
466
|
-
if (prevProps.value
|
|
467
|
+
if (!_isEqual(prevProps.value, this.props.value)) {
|
|
467
468
|
this.foundation.initFromProps(Object.assign({}, this.props));
|
|
468
469
|
} else if (this.props.timeZone !== prevProps.timeZone) {
|
|
469
470
|
this.foundation.initFromProps({
|
|
@@ -837,7 +838,8 @@ DatePicker.propTypes = {
|
|
|
837
838
|
yearAndMonthOpts: PropTypes.object,
|
|
838
839
|
onClickOutSide: PropTypes.func
|
|
839
840
|
};
|
|
840
|
-
DatePicker.
|
|
841
|
+
DatePicker.__SemiComponentName__ = "DatePicker";
|
|
842
|
+
DatePicker.defaultProps = getDefaultPropsFromGlobalConfig(DatePicker.__SemiComponentName__, {
|
|
841
843
|
onChangeWithDateFirst: true,
|
|
842
844
|
borderless: false,
|
|
843
845
|
autoAdjustOverflow: true,
|
|
@@ -875,4 +877,4 @@ DatePicker.defaultProps = {
|
|
|
875
877
|
rangeSeparator: strings.DEFAULT_SEPARATOR_RANGE,
|
|
876
878
|
insetInput: false,
|
|
877
879
|
onClickOutSide: _noop
|
|
878
|
-
};
|
|
880
|
+
});
|
|
@@ -41,16 +41,6 @@ class YearAndMonth extends BaseComponent {
|
|
|
41
41
|
currentYear,
|
|
42
42
|
currentMonth
|
|
43
43
|
} = props;
|
|
44
|
-
const currentLeftYear = currentYear.left || now.getFullYear();
|
|
45
|
-
const currentLeftMonth = currentMonth.left || now.getMonth() + 1;
|
|
46
|
-
currentYear = {
|
|
47
|
-
left: currentLeftYear,
|
|
48
|
-
right: currentLeftYear
|
|
49
|
-
};
|
|
50
|
-
currentMonth = {
|
|
51
|
-
left: currentLeftMonth,
|
|
52
|
-
right: currentMonth.right || currentLeftMonth + 1
|
|
53
|
-
};
|
|
54
44
|
this.state = {
|
|
55
45
|
years: getYears(props.startYear, props.endYear).map(year => ({
|
|
56
46
|
value: year,
|
|
@@ -60,8 +50,14 @@ class YearAndMonth extends BaseComponent {
|
|
|
60
50
|
value: idx + 1,
|
|
61
51
|
month: idx + 1
|
|
62
52
|
})),
|
|
63
|
-
currentYear
|
|
64
|
-
|
|
53
|
+
currentYear: {
|
|
54
|
+
left: currentYear.left || now.getFullYear(),
|
|
55
|
+
right: currentYear.right || now.getFullYear()
|
|
56
|
+
},
|
|
57
|
+
currentMonth: {
|
|
58
|
+
left: currentMonth.left || now.getMonth() + 1,
|
|
59
|
+
right: currentMonth.right || now.getMonth() + 2
|
|
60
|
+
}
|
|
65
61
|
};
|
|
66
62
|
this.yearRef = /*#__PURE__*/React.createRef();
|
|
67
63
|
this.monthRef = /*#__PURE__*/React.createRef();
|
|
@@ -98,11 +94,19 @@ class YearAndMonth extends BaseComponent {
|
|
|
98
94
|
}
|
|
99
95
|
static getDerivedStateFromProps(props, state) {
|
|
100
96
|
const willUpdateStates = {};
|
|
101
|
-
if (!_isEqual(props.currentYear, state.currentYear)
|
|
102
|
-
|
|
97
|
+
if (!_isEqual(props.currentYear, state.currentYear)) {
|
|
98
|
+
const nowYear = new Date().getFullYear();
|
|
99
|
+
willUpdateStates.currentYear = {
|
|
100
|
+
left: props.currentYear.left || nowYear,
|
|
101
|
+
right: props.currentYear.right || nowYear
|
|
102
|
+
};
|
|
103
103
|
}
|
|
104
|
-
if (!_isEqual(props.currentMonth, state.currentMonth)
|
|
105
|
-
|
|
104
|
+
if (!_isEqual(props.currentMonth, state.currentMonth)) {
|
|
105
|
+
const nowMonth = new Date().getMonth();
|
|
106
|
+
willUpdateStates.currentMonth = {
|
|
107
|
+
left: props.currentMonth.left || nowMonth + 1,
|
|
108
|
+
right: props.currentMonth.right || nowMonth + 2
|
|
109
|
+
};
|
|
106
110
|
}
|
|
107
111
|
return willUpdateStates;
|
|
108
112
|
}
|
|
@@ -76,18 +76,8 @@ declare class Dropdown extends BaseComponent<DropdownProps, DropdownState> {
|
|
|
76
76
|
visible: PropTypes.Requireable<boolean>;
|
|
77
77
|
zIndex: PropTypes.Requireable<number>;
|
|
78
78
|
};
|
|
79
|
-
static
|
|
80
|
-
|
|
81
|
-
prefixCls: string;
|
|
82
|
-
zIndex: 1060;
|
|
83
|
-
motion: boolean;
|
|
84
|
-
trigger: string;
|
|
85
|
-
position: string;
|
|
86
|
-
mouseLeaveDelay: number;
|
|
87
|
-
showTick: boolean;
|
|
88
|
-
closeOnEsc: boolean;
|
|
89
|
-
onEscKeyDown: (...args: any[]) => void;
|
|
90
|
-
};
|
|
79
|
+
static __SemiComponentName__: string;
|
|
80
|
+
static defaultProps: any;
|
|
91
81
|
tooltipRef: React.RefObject<Tooltip>;
|
|
92
82
|
constructor(props: DropdownProps);
|
|
93
83
|
context: DropdownContextType;
|
package/lib/es/dropdown/index.js
CHANGED
|
@@ -22,6 +22,7 @@ import DropdownDivider from './dropdownDivider';
|
|
|
22
22
|
import DropdownTitle from './dropdownTitle';
|
|
23
23
|
import DropdownContext from './context';
|
|
24
24
|
import '@douyinfe/semi-foundation/lib/es/dropdown/dropdown.css';
|
|
25
|
+
import { getDefaultPropsFromGlobalConfig } from "../_utils";
|
|
25
26
|
const positionSet = strings.POSITION_SET;
|
|
26
27
|
const triggerSet = strings.TRIGGER_SET;
|
|
27
28
|
class Dropdown extends BaseComponent {
|
|
@@ -229,7 +230,8 @@ Dropdown.propTypes = {
|
|
|
229
230
|
visible: PropTypes.bool,
|
|
230
231
|
zIndex: PropTypes.number
|
|
231
232
|
};
|
|
232
|
-
Dropdown.
|
|
233
|
+
Dropdown.__SemiComponentName__ = "Dropdown";
|
|
234
|
+
Dropdown.defaultProps = getDefaultPropsFromGlobalConfig(Dropdown.__SemiComponentName__, {
|
|
233
235
|
onVisibleChange: _noop,
|
|
234
236
|
prefixCls: cssClasses.PREFIX,
|
|
235
237
|
zIndex: tooltipNumbers.DEFAULT_Z_INDEX,
|
|
@@ -240,5 +242,5 @@ Dropdown.defaultProps = {
|
|
|
240
242
|
showTick: false,
|
|
241
243
|
closeOnEsc: true,
|
|
242
244
|
onEscKeyDown: _noop
|
|
243
|
-
};
|
|
245
|
+
});
|
|
244
246
|
export default Dropdown;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import _isUndefined from "lodash/isUndefined";
|
|
2
|
-
import _cloneDeep from "lodash/cloneDeep";
|
|
3
2
|
import React, { Component } from 'react';
|
|
4
3
|
import { getUuidv4 } from '@douyinfe/semi-foundation/lib/es/utils/uuid';
|
|
5
4
|
import { FormUpdaterContext, ArrayFieldContext } from './context';
|
|
6
5
|
import warning from '@douyinfe/semi-foundation/lib/es/utils/warning';
|
|
6
|
+
import copy from 'fast-copy';
|
|
7
7
|
const filterArrayByIndex = (array, index) => array.filter((item, i) => i !== index);
|
|
8
8
|
const getUuidByArray = array => array.map(() => getUuidv4());
|
|
9
9
|
const getUpdateKey = arrayField => {
|
|
@@ -61,8 +61,8 @@ class ArrayFieldComponent extends Component {
|
|
|
61
61
|
// whether the fields inside arrayField should use props.initValue in current render process
|
|
62
62
|
this.shouldUseInitValue = !context.getArrayField(field);
|
|
63
63
|
// Separate the arrays that reset and the usual add and remove modify, otherwise they will affect each other
|
|
64
|
-
const initValueCopyForFormState =
|
|
65
|
-
const initValueCopyForReset =
|
|
64
|
+
const initValueCopyForFormState = copy(initValue);
|
|
65
|
+
const initValueCopyForReset = copy(initValue);
|
|
66
66
|
context.registerArrayField(field, initValueCopyForReset);
|
|
67
67
|
// register ArrayField will update state.updateKey to render, So there is no need to execute forceUpdate here
|
|
68
68
|
context.updateStateValue(field, initValueCopyForFormState, {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { WithFieldOption } from '@douyinfe/semi-foundation/lib/es/form/interface';
|
|
3
|
-
import { CommonFieldProps, CommonexcludeType } from '../interface';
|
|
4
|
-
import { Subtract } from 'utility-types';
|
|
2
|
+
import type { WithFieldOption } from '@douyinfe/semi-foundation/lib/es/form/interface';
|
|
3
|
+
import type { CommonFieldProps, CommonexcludeType } from '../interface';
|
|
4
|
+
import type { Subtract } from 'utility-types';
|
|
5
5
|
/**
|
|
6
6
|
* withFiled is used to inject components
|
|
7
7
|
* 1. Takes over the value and onChange of the component and synchronizes them to Form Foundation
|
package/lib/es/modal/Modal.d.ts
CHANGED
|
@@ -68,26 +68,8 @@ declare class Modal extends BaseComponent<ModalReactProps, ModalState> {
|
|
|
68
68
|
fullScreen: PropTypes.Requireable<boolean>;
|
|
69
69
|
footerFill: PropTypes.Requireable<boolean>;
|
|
70
70
|
};
|
|
71
|
-
static
|
|
72
|
-
|
|
73
|
-
motion: boolean;
|
|
74
|
-
mask: boolean;
|
|
75
|
-
centered: boolean;
|
|
76
|
-
closable: boolean;
|
|
77
|
-
visible: boolean;
|
|
78
|
-
okType: string;
|
|
79
|
-
maskClosable: boolean;
|
|
80
|
-
hasCancel: boolean;
|
|
81
|
-
onCancel: (...args: any[]) => void;
|
|
82
|
-
onOk: (...args: any[]) => void;
|
|
83
|
-
afterClose: (...args: any[]) => void;
|
|
84
|
-
maskFixed: boolean;
|
|
85
|
-
closeOnEsc: boolean;
|
|
86
|
-
size: string;
|
|
87
|
-
keepDOM: boolean;
|
|
88
|
-
lazyRender: boolean;
|
|
89
|
-
fullScreen: boolean;
|
|
90
|
-
};
|
|
71
|
+
static __SemiComponentName__: string;
|
|
72
|
+
static defaultProps: any;
|
|
91
73
|
static useModal: typeof useModal;
|
|
92
74
|
foundation: ModalFoundation;
|
|
93
75
|
private readonly modalRef;
|