@douyinfe/semi-ui 2.22.2 → 2.23.0-alpha.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 +8 -1
- package/dist/css/semi.min.css +1 -1
- package/dist/umd/semi-ui.js +278 -233
- 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/anchor/index.d.ts +1 -1
- package/lib/cjs/autoComplete/index.d.ts +1 -1
- package/lib/cjs/button/Button.d.ts +1 -1
- package/lib/cjs/button/buttonGroup.d.ts +1 -1
- package/lib/cjs/button/index.d.ts +1 -1
- package/lib/cjs/datePicker/datePicker.d.ts +1 -1
- package/lib/cjs/form/baseForm.d.ts +5 -5
- package/lib/cjs/form/errorMessage.d.ts +2 -1
- package/lib/cjs/form/field.d.ts +1 -1
- package/lib/cjs/form/hooks/useFormState.d.ts +2 -1
- package/lib/cjs/form/interface.d.ts +15 -15
- package/lib/cjs/image/image.js +12 -0
- package/lib/cjs/image/interface.d.ts +1 -1
- package/lib/cjs/image/preview.d.ts +1 -1
- package/lib/cjs/image/preview.js +2 -2
- package/lib/cjs/image/previewImage.d.ts +1 -1
- package/lib/cjs/image/previewImage.js +1 -1
- package/lib/cjs/image/previewInner.d.ts +1 -1
- package/lib/cjs/image/previewInner.js +13 -5
- package/lib/cjs/input/index.d.ts +1 -1
- package/lib/cjs/input/inputGroup.d.ts +1 -1
- package/lib/cjs/locale/source/tr_TR.js +2 -2
- package/lib/cjs/navigation/Item.d.ts +4 -1
- package/lib/cjs/navigation/Item.js +18 -5
- package/lib/cjs/navigation/index.d.ts +7 -1
- package/lib/cjs/navigation/index.js +4 -2
- package/lib/cjs/navigation/nav-context.d.ts +1 -0
- package/lib/cjs/rating/index.d.ts +1 -1
- package/lib/cjs/rating/item.d.ts +1 -1
- package/lib/cjs/switch/index.d.ts +1 -1
- package/lib/cjs/table/Body/index.js +2 -2
- package/lib/cjs/table/Table.d.ts +2 -2
- package/lib/cjs/table/Table.js +3 -2
- package/lib/cjs/table/index.d.ts +1 -1
- package/lib/cjs/tabs/TabPane.js +4 -3
- package/lib/cjs/tabs/interface.d.ts +1 -0
- package/lib/cjs/tagInput/index.d.ts +2 -2
- package/lib/cjs/tagInput/index.js +6 -4
- package/lib/cjs/timePicker/TimePicker.d.ts +1 -1
- package/lib/cjs/timePicker/index.d.ts +1 -1
- package/lib/cjs/transfer/index.d.ts +1 -0
- package/lib/cjs/transfer/index.js +7 -1
- package/lib/es/anchor/index.d.ts +1 -1
- package/lib/es/autoComplete/index.d.ts +1 -1
- package/lib/es/button/Button.d.ts +1 -1
- package/lib/es/button/buttonGroup.d.ts +1 -1
- package/lib/es/button/index.d.ts +1 -1
- package/lib/es/datePicker/datePicker.d.ts +1 -1
- package/lib/es/form/baseForm.d.ts +5 -5
- package/lib/es/form/errorMessage.d.ts +2 -1
- package/lib/es/form/field.d.ts +1 -1
- package/lib/es/form/hooks/useFormState.d.ts +2 -1
- package/lib/es/form/interface.d.ts +15 -15
- package/lib/es/image/image.js +11 -0
- package/lib/es/image/interface.d.ts +1 -1
- package/lib/es/image/preview.d.ts +1 -1
- package/lib/es/image/preview.js +2 -2
- package/lib/es/image/previewImage.d.ts +1 -1
- package/lib/es/image/previewImage.js +1 -1
- package/lib/es/image/previewInner.d.ts +1 -1
- package/lib/es/image/previewInner.js +13 -5
- package/lib/es/input/index.d.ts +1 -1
- package/lib/es/input/inputGroup.d.ts +1 -1
- package/lib/es/locale/source/tr_TR.js +2 -2
- package/lib/es/navigation/Item.d.ts +4 -1
- package/lib/es/navigation/Item.js +18 -5
- package/lib/es/navigation/index.d.ts +7 -1
- package/lib/es/navigation/index.js +4 -2
- package/lib/es/navigation/nav-context.d.ts +1 -0
- package/lib/es/rating/index.d.ts +1 -1
- package/lib/es/rating/item.d.ts +1 -1
- package/lib/es/switch/index.d.ts +1 -1
- package/lib/es/table/Body/index.js +3 -3
- package/lib/es/table/Table.d.ts +2 -2
- package/lib/es/table/Table.js +3 -2
- package/lib/es/table/index.d.ts +1 -1
- package/lib/es/tabs/TabPane.js +4 -3
- package/lib/es/tabs/interface.d.ts +1 -0
- package/lib/es/tagInput/index.d.ts +2 -2
- package/lib/es/tagInput/index.js +6 -4
- package/lib/es/timePicker/TimePicker.d.ts +1 -1
- package/lib/es/timePicker/index.d.ts +1 -1
- package/lib/es/transfer/index.d.ts +1 -0
- package/lib/es/transfer/index.js +7 -1
- package/package.json +7 -7
|
@@ -37,7 +37,7 @@ export interface TagInputProps {
|
|
|
37
37
|
insetLabel?: React.ReactNode;
|
|
38
38
|
insetLabelId?: string;
|
|
39
39
|
prefix?: React.ReactNode;
|
|
40
|
-
renderTagItem?: (value: string, index: number) => React.ReactNode;
|
|
40
|
+
renderTagItem?: (value: string, index: number, onClose: () => void) => React.ReactNode;
|
|
41
41
|
separator?: string | string[] | null;
|
|
42
42
|
showClear?: boolean;
|
|
43
43
|
size?: Size;
|
|
@@ -89,7 +89,7 @@ declare class TagInput extends BaseComponent<TagInputProps, TagInputState> {
|
|
|
89
89
|
onAdd: PropTypes.Requireable<(...args: any[]) => any>;
|
|
90
90
|
onRemove: PropTypes.Requireable<(...args: any[]) => any>;
|
|
91
91
|
onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
|
|
92
|
-
size: PropTypes.Requireable<"
|
|
92
|
+
size: PropTypes.Requireable<"small" | "default" | "large">;
|
|
93
93
|
validateStatus: PropTypes.Requireable<"default" | "error" | "warning" | "success">;
|
|
94
94
|
prefix: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
|
|
95
95
|
suffix: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
|
|
@@ -152,20 +152,22 @@ class TagInput extends _baseComponent.default {
|
|
|
152
152
|
return tagsArray.map((value, index) => {
|
|
153
153
|
const elementKey = showIconHandler ? value : "".concat(index).concat(value);
|
|
154
154
|
|
|
155
|
+
const onClose = () => {
|
|
156
|
+
!disabled && this.handleTagClose(index);
|
|
157
|
+
};
|
|
158
|
+
|
|
155
159
|
if ((0, _isFunction2.default)(renderTagItem)) {
|
|
156
160
|
return showIconHandler ? /*#__PURE__*/_react.default.createElement("div", {
|
|
157
161
|
className: itemWrapperCls,
|
|
158
162
|
key: elementKey
|
|
159
|
-
}, /*#__PURE__*/_react.default.createElement(DragHandle, null), renderTagItem(value, index)) : renderTagItem(value, index);
|
|
163
|
+
}, /*#__PURE__*/_react.default.createElement(DragHandle, null), renderTagItem(value, index, onClose)) : renderTagItem(value, index, onClose);
|
|
160
164
|
} else {
|
|
161
165
|
return /*#__PURE__*/_react.default.createElement(_tag.default, {
|
|
162
166
|
className: tagCls,
|
|
163
167
|
color: "white",
|
|
164
168
|
size: size === 'small' ? 'small' : 'large',
|
|
165
169
|
type: "light",
|
|
166
|
-
onClose:
|
|
167
|
-
!disabled && this.handleTagClose(index);
|
|
168
|
-
},
|
|
170
|
+
onClose: onClose,
|
|
169
171
|
closable: !disabled,
|
|
170
172
|
key: elementKey,
|
|
171
173
|
visible: true,
|
|
@@ -125,7 +125,7 @@ export default class TimePicker extends BaseComponent<TimePickerProps, TimePicke
|
|
|
125
125
|
secondStep: PropTypes.Requireable<number>;
|
|
126
126
|
focusOnOpen: PropTypes.Requireable<boolean>;
|
|
127
127
|
autoFocus: PropTypes.Requireable<boolean>;
|
|
128
|
-
size: PropTypes.Requireable<"
|
|
128
|
+
size: PropTypes.Requireable<"small" | "default" | "large">;
|
|
129
129
|
panels: PropTypes.Requireable<PropTypes.InferProps<{
|
|
130
130
|
panelHeader: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
|
|
131
131
|
panelFooter: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
|
|
@@ -46,7 +46,7 @@ export default class LocaleTimePicker extends React.PureComponent<LocalePickerPr
|
|
|
46
46
|
secondStep: import("prop-types").Requireable<number>;
|
|
47
47
|
focusOnOpen: import("prop-types").Requireable<boolean>;
|
|
48
48
|
autoFocus: import("prop-types").Requireable<boolean>;
|
|
49
|
-
size: import("prop-types").Requireable<"
|
|
49
|
+
size: import("prop-types").Requireable<"small" | "default" | "large">;
|
|
50
50
|
panels: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
51
51
|
panelHeader: import("prop-types").Requireable<NonNullable<import("prop-types").ReactNodeLike>>;
|
|
52
52
|
panelFooter: import("prop-types").Requireable<NonNullable<import("prop-types").ReactNodeLike>>;
|
|
@@ -152,6 +152,7 @@ declare class Transfer extends BaseComponent<TransferProps, TransferState> {
|
|
|
152
152
|
static getDerivedStateFromProps(props: TransferProps, state: TransferState): TransferState;
|
|
153
153
|
get adapter(): TransferAdapter<TransferProps, TransferState>;
|
|
154
154
|
onInputChange(value: string): void;
|
|
155
|
+
search(value: string): void;
|
|
155
156
|
onSelectOrRemove(item: ResolvedDataItem): void;
|
|
156
157
|
onSortEnd(callbackProps: OnSortEndProps): void;
|
|
157
158
|
renderFilter(locale: Locale['Transfer']): JSX.Element;
|
|
@@ -155,7 +155,13 @@ class Transfer extends _baseComponent.default {
|
|
|
155
155
|
}
|
|
156
156
|
|
|
157
157
|
onInputChange(value) {
|
|
158
|
-
this.foundation.handleInputChange(value);
|
|
158
|
+
this.foundation.handleInputChange(value, true);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
search(value) {
|
|
162
|
+
// The search method is used to provide the user with a manually triggered search
|
|
163
|
+
// Since the method is manually called by the user, setting the second parameter to false does not trigger the onSearch callback to notify the user
|
|
164
|
+
this.foundation.handleInputChange(value, false);
|
|
159
165
|
}
|
|
160
166
|
|
|
161
167
|
onSelectOrRemove(item) {
|
package/lib/es/anchor/index.d.ts
CHANGED
|
@@ -39,7 +39,7 @@ declare class Anchor extends BaseComponent<AnchorProps, AnchorState> {
|
|
|
39
39
|
static contextType: React.Context<ContextValue>;
|
|
40
40
|
static Link: typeof Link;
|
|
41
41
|
static PropTypes: {
|
|
42
|
-
size: PropTypes.Requireable<"
|
|
42
|
+
size: PropTypes.Requireable<"small" | "default">;
|
|
43
43
|
railTheme: PropTypes.Requireable<"primary" | "tertiary" | "muted">;
|
|
44
44
|
className: PropTypes.Requireable<string>;
|
|
45
45
|
style: PropTypes.Requireable<object>;
|
|
@@ -123,7 +123,7 @@ declare class AutoComplete<T extends AutoCompleteItems> extends BaseComponent<Au
|
|
|
123
123
|
renderSelectedItem: PropTypes.Requireable<(...args: any[]) => any>;
|
|
124
124
|
suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
125
125
|
showClear: PropTypes.Requireable<boolean>;
|
|
126
|
-
size: PropTypes.Requireable<"
|
|
126
|
+
size: PropTypes.Requireable<"small" | "default" | "large">;
|
|
127
127
|
style: PropTypes.Requireable<object>;
|
|
128
128
|
stopPropagation: PropTypes.Requireable<NonNullable<string | boolean>>;
|
|
129
129
|
maxHeight: PropTypes.Requireable<NonNullable<string | number>>;
|
|
@@ -47,7 +47,7 @@ export default class Button extends PureComponent<ButtonProps> {
|
|
|
47
47
|
disabled: PropTypes.Requireable<boolean>;
|
|
48
48
|
prefixCls: PropTypes.Requireable<string>;
|
|
49
49
|
style: PropTypes.Requireable<object>;
|
|
50
|
-
size: PropTypes.Requireable<"
|
|
50
|
+
size: PropTypes.Requireable<"small" | "default" | "large">;
|
|
51
51
|
type: PropTypes.Requireable<"warning" | "primary" | "tertiary" | "secondary" | "danger">;
|
|
52
52
|
block: PropTypes.Requireable<boolean>;
|
|
53
53
|
onClick: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -18,7 +18,7 @@ export default class ButtonGroup extends BaseComponent<ButtonGroupProps> {
|
|
|
18
18
|
children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
19
19
|
disabled: PropTypes.Requireable<boolean>;
|
|
20
20
|
type: PropTypes.Requireable<string>;
|
|
21
|
-
size: PropTypes.Requireable<"
|
|
21
|
+
size: PropTypes.Requireable<"small" | "default" | "large">;
|
|
22
22
|
theme: PropTypes.Requireable<"solid" | "light" | "borderless">;
|
|
23
23
|
'aria-label': PropTypes.Requireable<string>;
|
|
24
24
|
};
|
package/lib/es/button/index.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ declare class Button extends React.PureComponent<ButtonProps> {
|
|
|
22
22
|
onMouseEnter: import("prop-types").Requireable<(...args: any[]) => any>;
|
|
23
23
|
onMouseLeave: import("prop-types").Requireable<(...args: any[]) => any>;
|
|
24
24
|
disabled: import("prop-types").Requireable<boolean>;
|
|
25
|
-
size: import("prop-types").Requireable<"
|
|
25
|
+
size: import("prop-types").Requireable<"small" | "default" | "large">;
|
|
26
26
|
type: import("prop-types").Requireable<"warning" | "primary" | "tertiary" | "secondary" | "danger">;
|
|
27
27
|
block: import("prop-types").Requireable<boolean>;
|
|
28
28
|
onClick: import("prop-types").Requireable<(...args: any[]) => any>;
|
|
@@ -44,7 +44,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
|
|
|
44
44
|
'aria-labelledby': PropTypes.Requireable<string>;
|
|
45
45
|
'aria-required': PropTypes.Requireable<boolean>;
|
|
46
46
|
type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
|
|
47
|
-
size: PropTypes.Requireable<"
|
|
47
|
+
size: PropTypes.Requireable<"small" | "default" | "large">;
|
|
48
48
|
density: PropTypes.Requireable<"default" | "compact">;
|
|
49
49
|
defaultValue: PropTypes.Requireable<NonNullable<string | number | object>>;
|
|
50
50
|
value: PropTypes.Requireable<NonNullable<string | number | object>>;
|
|
@@ -11,7 +11,7 @@ import { BaseFormProps, FormApi } from './interface';
|
|
|
11
11
|
interface BaseFormState {
|
|
12
12
|
formId: string;
|
|
13
13
|
}
|
|
14
|
-
declare class Form extends BaseComponent<BaseFormProps
|
|
14
|
+
declare class Form<Values extends Record<string, any> = any> extends BaseComponent<BaseFormProps<Values>, BaseFormState> {
|
|
15
15
|
static propTypes: {
|
|
16
16
|
'aria-label': PropTypes.Requireable<string>;
|
|
17
17
|
onSubmit: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -128,7 +128,7 @@ declare class Form extends BaseComponent<BaseFormProps, BaseFormState> {
|
|
|
128
128
|
preventScroll?: boolean;
|
|
129
129
|
showRestTagsPopover?: boolean;
|
|
130
130
|
restTagsPopoverProps?: import("../popover").PopoverProps;
|
|
131
|
-
} & Pick<import("../tooltip").TooltipProps, "
|
|
131
|
+
} & Pick<import("../tooltip").TooltipProps, "motion" | "stopPropagation" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & React.RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
|
|
132
132
|
static Checkbox: React.ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../checkbox").CheckboxProps & import("./interface").RCIncludeType>;
|
|
133
133
|
static CheckboxGroup: React.ComponentType<import("utility-types").Subtract<import("../checkbox").CheckboxGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
|
|
134
134
|
static Radio: React.ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../radio").RadioProps & import("./interface").RCIncludeType>;
|
|
@@ -148,11 +148,11 @@ declare class Form extends BaseComponent<BaseFormProps, BaseFormState> {
|
|
|
148
148
|
static InputGroup: typeof FormInputGroup;
|
|
149
149
|
static Label: typeof Label;
|
|
150
150
|
static Section: typeof Section;
|
|
151
|
-
formApi: FormApi
|
|
152
|
-
constructor(props: BaseFormProps);
|
|
151
|
+
formApi: FormApi<Values>;
|
|
152
|
+
constructor(props: BaseFormProps<Values>);
|
|
153
153
|
componentDidMount(): void;
|
|
154
154
|
componentWillUnmount(): void;
|
|
155
|
-
get adapter(): BaseFormAdapter<BaseFormProps,
|
|
155
|
+
get adapter(): BaseFormAdapter<BaseFormProps<Values>, BaseFormState, Values>;
|
|
156
156
|
get content(): React.ReactNode;
|
|
157
157
|
submit(e: React.FormEvent<HTMLFormElement>): void;
|
|
158
158
|
reset(e: React.FormEvent<HTMLFormElement>): void;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { PureComponent } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
|
|
3
|
+
import type { BasicFieldError } from '@douyinfe/semi-foundation/lib/es/form/interface';
|
|
4
|
+
export declare type ReactFieldError = BasicFieldError | React.ReactNode;
|
|
4
5
|
export interface ErrorMessageProps {
|
|
5
6
|
error?: ReactFieldError;
|
|
6
7
|
className?: string;
|
package/lib/es/form/field.d.ts
CHANGED
|
@@ -76,7 +76,7 @@ declare const FormSelect: import("react").ComponentType<import("utility-types").
|
|
|
76
76
|
preventScroll?: boolean;
|
|
77
77
|
showRestTagsPopover?: boolean;
|
|
78
78
|
restTagsPopoverProps?: import("../popover").PopoverProps;
|
|
79
|
-
} & Pick<import("../tooltip").TooltipProps, "
|
|
79
|
+
} & Pick<import("../tooltip").TooltipProps, "motion" | "stopPropagation" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & import("react").RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
|
|
80
80
|
declare const FormCheckboxGroup: import("react").ComponentType<import("utility-types").Subtract<import("../checkbox/checkboxGroup").CheckboxGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & import("react").RefAttributes<any>>;
|
|
81
81
|
declare const FormCheckbox: import("react").ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../checkbox/checkbox").CheckboxProps & import("./interface").RCIncludeType>;
|
|
82
82
|
declare const FormRadioGroup: import("react").ComponentType<import("utility-types").Subtract<import("../radio/radioGroup").RadioGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & import("react").RefAttributes<any>>;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
import { FormState } from '@douyinfe/semi-foundation/lib/es/form/interface';
|
|
2
|
+
declare function useFormState<T extends Record<string, any> = any>(): FormState<T>;
|
|
2
3
|
export default useFormState;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Subtract } from 'utility-types';
|
|
3
3
|
import type { RuleItem } from 'async-validator';
|
|
4
|
-
import { Options as scrollIntoViewOptions } from 'scroll-into-view-if-needed';
|
|
5
|
-
import { BaseFormApi as FormApi, FormState, WithFieldOption } from '@douyinfe/semi-foundation/lib/es/form/interface';
|
|
6
|
-
import { SelectProps } from '../select/index';
|
|
4
|
+
import type { Options as scrollIntoViewOptions } from 'scroll-into-view-if-needed';
|
|
5
|
+
import type { BaseFormApi as FormApi, FormState, WithFieldOption, AllErrors } from '@douyinfe/semi-foundation/lib/es/form/interface';
|
|
6
|
+
import type { SelectProps } from '../select/index';
|
|
7
7
|
import Option from '../select/option';
|
|
8
8
|
import OptGroup from '../select/optionGroup';
|
|
9
|
-
import { CheckboxProps } from '../checkbox/index';
|
|
10
|
-
import { RadioProps } from '../radio/index';
|
|
9
|
+
import type { CheckboxProps } from '../checkbox/index';
|
|
10
|
+
import type { RadioProps } from '../radio/index';
|
|
11
11
|
import { ReactFieldError as FieldError } from './errorMessage';
|
|
12
|
-
import { LabelProps } from './label';
|
|
13
|
-
export { FormState, FormApi, WithFieldOption, RuleItem };
|
|
12
|
+
import type { LabelProps } from './label';
|
|
13
|
+
export type { FormState, FormApi, WithFieldOption, RuleItem };
|
|
14
14
|
export declare type CommonFieldProps = {
|
|
15
15
|
/** Field is required (except Form. Checkbox within the Group, Form. Radio) */
|
|
16
16
|
field: string;
|
|
@@ -81,19 +81,19 @@ export interface FormFCChild<K extends Record<string, any> = any> {
|
|
|
81
81
|
values: K;
|
|
82
82
|
formApi: FormApi<K>;
|
|
83
83
|
}
|
|
84
|
-
export interface BaseFormProps extends Omit<React.FormHTMLAttributes<HTMLFormElement>, 'children' | 'onChange'> {
|
|
84
|
+
export interface BaseFormProps<Values extends Record<string, any> = any> extends Omit<React.FormHTMLAttributes<HTMLFormElement>, 'children' | 'onChange' | 'onSubmit' | 'onReset'> {
|
|
85
85
|
'aria-label'?: React.AriaAttributes['aria-label'];
|
|
86
|
-
onSubmit?: (values:
|
|
87
|
-
onSubmitFail?: (errors: Record<
|
|
86
|
+
onSubmit?: (values: Values) => void;
|
|
87
|
+
onSubmitFail?: (errors: Record<keyof Values, FieldError>, values: Partial<Values>) => void;
|
|
88
88
|
onReset?: () => void;
|
|
89
|
-
onValueChange?: (values:
|
|
90
|
-
onChange?: (formState: FormState) => void;
|
|
91
|
-
validateFields?: (values:
|
|
89
|
+
onValueChange?: (values: Values, changedValue: Partial<Values>) => void;
|
|
90
|
+
onChange?: (formState: FormState<Values>) => void;
|
|
91
|
+
validateFields?: (values: Values) => string | Partial<AllErrors<Values>>;
|
|
92
92
|
/** Use this if you want to populate the form with initial values. */
|
|
93
|
-
initValues?:
|
|
93
|
+
initValues?: Values;
|
|
94
94
|
id?: string;
|
|
95
95
|
/** getFormApi will be call once when Form mounted, u can save formApi reference in your component */
|
|
96
|
-
getFormApi?: (formApi: FormApi) => void;
|
|
96
|
+
getFormApi?: (formApi: FormApi<Values>) => void;
|
|
97
97
|
style?: React.CSSProperties;
|
|
98
98
|
className?: string;
|
|
99
99
|
layout?: 'horizontal' | 'vertical';
|
package/lib/es/image/image.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import _isObject from "lodash/isObject";
|
|
2
|
+
import _isBoolean from "lodash/isBoolean";
|
|
2
3
|
|
|
3
4
|
/* eslint-disable jsx-a11y/click-events-have-key-events */
|
|
4
5
|
|
|
@@ -131,6 +132,16 @@ export default class Image extends BaseComponent {
|
|
|
131
132
|
willUpdateStates.loadStatus = "loading";
|
|
132
133
|
}
|
|
133
134
|
|
|
135
|
+
if (_isObject(props.preview)) {
|
|
136
|
+
const {
|
|
137
|
+
visible
|
|
138
|
+
} = props.preview;
|
|
139
|
+
|
|
140
|
+
if (_isBoolean(visible)) {
|
|
141
|
+
willUpdateStates.previewVisible = visible;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
134
145
|
return willUpdateStates;
|
|
135
146
|
}
|
|
136
147
|
|
|
@@ -60,7 +60,7 @@ export interface PreviewProps extends BaseProps {
|
|
|
60
60
|
onPrev?: (index: number) => void;
|
|
61
61
|
onNext?: (index: number) => void;
|
|
62
62
|
onRatioChange?: (type: RatioType) => void;
|
|
63
|
-
|
|
63
|
+
onRotateLeft?: (angle: number) => void;
|
|
64
64
|
onDownload?: (src: string, index: number) => void;
|
|
65
65
|
}
|
|
66
66
|
export interface MenuProps {
|
|
@@ -44,8 +44,8 @@ export default class Preview extends BaseComponent<PreviewProps, PreviewState> {
|
|
|
44
44
|
onPrev: PropTypes.Requireable<(...args: any[]) => any>;
|
|
45
45
|
onNext: PropTypes.Requireable<(...args: any[]) => any>;
|
|
46
46
|
onDownload: PropTypes.Requireable<(...args: any[]) => any>;
|
|
47
|
+
onRotateLeft: PropTypes.Requireable<(...args: any[]) => any>;
|
|
47
48
|
onRatioChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
48
|
-
onRotateChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
49
49
|
};
|
|
50
50
|
static defaultProps: {
|
|
51
51
|
src: any[];
|
package/lib/es/image/preview.js
CHANGED
|
@@ -220,8 +220,8 @@ Preview.propTypes = {
|
|
|
220
220
|
onPrev: PropTypes.func,
|
|
221
221
|
onNext: PropTypes.func,
|
|
222
222
|
onDownload: PropTypes.func,
|
|
223
|
-
|
|
224
|
-
|
|
223
|
+
onRotateLeft: PropTypes.func,
|
|
224
|
+
onRatioChange: PropTypes.func
|
|
225
225
|
};
|
|
226
226
|
Preview.defaultProps = {
|
|
227
227
|
src: [],
|
|
@@ -13,7 +13,7 @@ export default class PreviewImage extends BaseComponent<PreviewImageProps, Previ
|
|
|
13
13
|
zoomStep: PropTypes.Requireable<number>;
|
|
14
14
|
zoom: PropTypes.Requireable<number>;
|
|
15
15
|
ratio: PropTypes.Requireable<string>;
|
|
16
|
-
disableDownload: PropTypes.Requireable<
|
|
16
|
+
disableDownload: PropTypes.Requireable<boolean>;
|
|
17
17
|
clickZoom: PropTypes.Requireable<number>;
|
|
18
18
|
setRatio: PropTypes.Requireable<(...args: any[]) => any>;
|
|
19
19
|
onZoom: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -223,7 +223,7 @@ PreviewImage.propTypes = {
|
|
|
223
223
|
zoomStep: PropTypes.number,
|
|
224
224
|
zoom: PropTypes.number,
|
|
225
225
|
ratio: PropTypes.string,
|
|
226
|
-
disableDownload: PropTypes.
|
|
226
|
+
disableDownload: PropTypes.bool,
|
|
227
227
|
clickZoom: PropTypes.number,
|
|
228
228
|
setRatio: PropTypes.func,
|
|
229
229
|
onZoom: PropTypes.func,
|
|
@@ -45,7 +45,7 @@ export default class PreviewInner extends BaseComponent<PreviewInnerProps, Previ
|
|
|
45
45
|
onNext: PropTypes.Requireable<(...args: any[]) => any>;
|
|
46
46
|
onDownload: PropTypes.Requireable<(...args: any[]) => any>;
|
|
47
47
|
onRatioChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
48
|
-
|
|
48
|
+
onRotateLeft: PropTypes.Requireable<(...args: any[]) => any>;
|
|
49
49
|
};
|
|
50
50
|
static defaultProps: {
|
|
51
51
|
showTooltip: boolean;
|
|
@@ -105,11 +105,19 @@ export default class PreviewInner extends BaseComponent {
|
|
|
105
105
|
get adapter() {
|
|
106
106
|
return Object.assign(Object.assign({}, super.adapter), {
|
|
107
107
|
getIsInGroup: () => this.isInGroup(),
|
|
108
|
-
notifyChange: index => {
|
|
108
|
+
notifyChange: (index, direction) => {
|
|
109
109
|
const {
|
|
110
|
-
onChange
|
|
110
|
+
onChange,
|
|
111
|
+
onPrev,
|
|
112
|
+
onNext
|
|
111
113
|
} = this.props;
|
|
112
114
|
_isFunction(onChange) && onChange(index);
|
|
115
|
+
|
|
116
|
+
if (direction === "prev") {
|
|
117
|
+
onPrev && onPrev(index);
|
|
118
|
+
} else {
|
|
119
|
+
onNext && onNext(index);
|
|
120
|
+
}
|
|
113
121
|
},
|
|
114
122
|
notifyZoom: (zoom, increase) => {
|
|
115
123
|
const {
|
|
@@ -143,9 +151,9 @@ export default class PreviewInner extends BaseComponent {
|
|
|
143
151
|
},
|
|
144
152
|
notifyRotateChange: angle => {
|
|
145
153
|
const {
|
|
146
|
-
|
|
154
|
+
onRotateLeft
|
|
147
155
|
} = this.props;
|
|
148
|
-
_isFunction(
|
|
156
|
+
_isFunction(onRotateLeft) && onRotateLeft(angle);
|
|
149
157
|
},
|
|
150
158
|
notifyDownload: (src, index) => {
|
|
151
159
|
const {
|
|
@@ -403,7 +411,7 @@ PreviewInner.propTypes = {
|
|
|
403
411
|
onNext: PropTypes.func,
|
|
404
412
|
onDownload: PropTypes.func,
|
|
405
413
|
onRatioChange: PropTypes.func,
|
|
406
|
-
|
|
414
|
+
onRotateLeft: PropTypes.func
|
|
407
415
|
};
|
|
408
416
|
PreviewInner.defaultProps = {
|
|
409
417
|
showTooltip: false,
|
package/lib/es/input/index.d.ts
CHANGED
|
@@ -82,7 +82,7 @@ declare class Input extends BaseComponent<InputProps, InputState> {
|
|
|
82
82
|
showClear: PropTypes.Requireable<boolean>;
|
|
83
83
|
hideSuffix: PropTypes.Requireable<boolean>;
|
|
84
84
|
placeholder: PropTypes.Requireable<any>;
|
|
85
|
-
size: PropTypes.Requireable<"
|
|
85
|
+
size: PropTypes.Requireable<"small" | "default" | "large">;
|
|
86
86
|
className: PropTypes.Requireable<string>;
|
|
87
87
|
style: PropTypes.Requireable<object>;
|
|
88
88
|
validateStatus: PropTypes.Requireable<"default" | "error" | "warning" | "success">;
|
|
@@ -21,7 +21,7 @@ export default class inputGroup extends BaseComponent<InputGroupProps, InputGrou
|
|
|
21
21
|
static propTypes: {
|
|
22
22
|
className: PropTypes.Requireable<string>;
|
|
23
23
|
children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
24
|
-
size: PropTypes.Requireable<"
|
|
24
|
+
size: PropTypes.Requireable<"small" | "default" | "large">;
|
|
25
25
|
style: PropTypes.Requireable<object>;
|
|
26
26
|
onBlur: PropTypes.Requireable<(...args: any[]) => any>;
|
|
27
27
|
onFocus: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -12,6 +12,7 @@ export interface NavItemProps extends ItemProps, BaseProps {
|
|
|
12
12
|
level?: number;
|
|
13
13
|
link?: string;
|
|
14
14
|
linkOptions?: React.AnchorHTMLAttributes<HTMLAnchorElement>;
|
|
15
|
+
tabIndex?: number;
|
|
15
16
|
text?: React.ReactNode;
|
|
16
17
|
tooltipHideDelay?: number;
|
|
17
18
|
tooltipShowDelay?: number;
|
|
@@ -45,6 +46,7 @@ export default class NavItem extends BaseComponent<NavItemProps, NavItemState> {
|
|
|
45
46
|
link: PropTypes.Requireable<string>;
|
|
46
47
|
linkOptions: PropTypes.Requireable<object>;
|
|
47
48
|
disabled: PropTypes.Requireable<boolean>;
|
|
49
|
+
tabIndex: PropTypes.Requireable<number>;
|
|
48
50
|
};
|
|
49
51
|
static defaultProps: {
|
|
50
52
|
isSubNav: boolean;
|
|
@@ -55,6 +57,7 @@ export default class NavItem extends BaseComponent<NavItemProps, NavItemState> {
|
|
|
55
57
|
onMouseEnter: (...args: any[]) => void;
|
|
56
58
|
onMouseLeave: (...args: any[]) => void;
|
|
57
59
|
disabled: boolean;
|
|
60
|
+
tabIndex: number;
|
|
58
61
|
};
|
|
59
62
|
foundation: ItemFoundation;
|
|
60
63
|
context: NavContextType;
|
|
@@ -66,5 +69,5 @@ export default class NavItem extends BaseComponent<NavItemProps, NavItemState> {
|
|
|
66
69
|
wrapTooltip: (node: React.ReactNode) => JSX.Element;
|
|
67
70
|
handleClick: (e: React.MouseEvent) => void;
|
|
68
71
|
handleKeyPress: (e: React.KeyboardEvent) => void;
|
|
69
|
-
render(): React.
|
|
72
|
+
render(): React.ReactNode;
|
|
70
73
|
}
|
|
@@ -148,7 +148,8 @@ export default class NavItem extends BaseComponent {
|
|
|
148
148
|
link,
|
|
149
149
|
linkOptions,
|
|
150
150
|
disabled,
|
|
151
|
-
level = 0
|
|
151
|
+
level = 0,
|
|
152
|
+
tabIndex
|
|
152
153
|
} = this.props;
|
|
153
154
|
const {
|
|
154
155
|
mode,
|
|
@@ -211,7 +212,8 @@ export default class NavItem extends BaseComponent {
|
|
|
211
212
|
["".concat(clsPrefix, "-sub")]: isSubNav,
|
|
212
213
|
["".concat(clsPrefix, "-selected")]: selected && !isSubNav,
|
|
213
214
|
["".concat(clsPrefix, "-collapsed")]: isCollapsed,
|
|
214
|
-
["".concat(clsPrefix, "-disabled")]: disabled
|
|
215
|
+
["".concat(clsPrefix, "-disabled")]: disabled,
|
|
216
|
+
["".concat(clsPrefix, "-has-link")]: typeof link === 'string'
|
|
215
217
|
});
|
|
216
218
|
const ariaProps = {
|
|
217
219
|
'aria-disabled': disabled
|
|
@@ -228,7 +230,7 @@ export default class NavItem extends BaseComponent {
|
|
|
228
230
|
React.createElement("li", Object.assign({
|
|
229
231
|
// if role = menuitem, the narration will read all expanded li
|
|
230
232
|
role: isSubNav ? null : "menuitem",
|
|
231
|
-
tabIndex: isSubNav ? -1 :
|
|
233
|
+
tabIndex: isSubNav ? -1 : tabIndex
|
|
232
234
|
}, ariaProps, {
|
|
233
235
|
style: style,
|
|
234
236
|
ref: this.setItemRef,
|
|
@@ -245,6 +247,15 @@ export default class NavItem extends BaseComponent {
|
|
|
245
247
|
itemDom = this.wrapTooltip(itemDom);
|
|
246
248
|
}
|
|
247
249
|
|
|
250
|
+
if (typeof this.context.renderWrapper === 'function') {
|
|
251
|
+
return this.context.renderWrapper({
|
|
252
|
+
itemElement: itemDom,
|
|
253
|
+
isSubNav: isSubNav,
|
|
254
|
+
isInSubNav: isInSubNav,
|
|
255
|
+
props: this.props
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
|
|
248
259
|
return itemDom;
|
|
249
260
|
}
|
|
250
261
|
|
|
@@ -267,7 +278,8 @@ NavItem.propTypes = {
|
|
|
267
278
|
isSubNav: PropTypes.bool,
|
|
268
279
|
link: PropTypes.string,
|
|
269
280
|
linkOptions: PropTypes.object,
|
|
270
|
-
disabled: PropTypes.bool
|
|
281
|
+
disabled: PropTypes.bool,
|
|
282
|
+
tabIndex: PropTypes.number
|
|
271
283
|
};
|
|
272
284
|
NavItem.defaultProps = {
|
|
273
285
|
isSubNav: false,
|
|
@@ -277,5 +289,6 @@ NavItem.defaultProps = {
|
|
|
277
289
|
onClick: _noop,
|
|
278
290
|
onMouseEnter: _noop,
|
|
279
291
|
onMouseLeave: _noop,
|
|
280
|
-
disabled: false
|
|
292
|
+
disabled: false,
|
|
293
|
+
tabIndex: 0
|
|
281
294
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import BaseComponent, { BaseProps } from '../_base/baseComponent';
|
|
2
|
-
import React from 'react';
|
|
2
|
+
import React, { ReactElement, ReactNode } from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import { NavigationAdapter } from '@douyinfe/semi-foundation/lib/es/navigation/foundation';
|
|
5
5
|
import SubNav, { SubNavProps } from './SubNav';
|
|
@@ -63,6 +63,12 @@ export interface NavProps extends BaseProps {
|
|
|
63
63
|
isOpen: boolean;
|
|
64
64
|
}) => void;
|
|
65
65
|
onSelect?: (data: OnSelectedData) => void;
|
|
66
|
+
renderWrapper?: ({ itemElement, isSubNav, isInSubNav, props }: {
|
|
67
|
+
itemElement: ReactElement;
|
|
68
|
+
isInSubNav: boolean;
|
|
69
|
+
isSubNav: boolean;
|
|
70
|
+
props: NavItemProps | SubNavProps;
|
|
71
|
+
}) => ReactNode;
|
|
66
72
|
}
|
|
67
73
|
export interface NavState {
|
|
68
74
|
isCollapsed: boolean;
|
|
@@ -205,7 +205,8 @@ class Nav extends BaseComponent {
|
|
|
205
205
|
footer,
|
|
206
206
|
header,
|
|
207
207
|
toggleIconPosition,
|
|
208
|
-
limitIndent
|
|
208
|
+
limitIndent,
|
|
209
|
+
renderWrapper
|
|
209
210
|
} = this.props;
|
|
210
211
|
const {
|
|
211
212
|
selectedKeys,
|
|
@@ -310,7 +311,8 @@ class Nav extends BaseComponent {
|
|
|
310
311
|
locale,
|
|
311
312
|
prefixCls,
|
|
312
313
|
toggleIconPosition,
|
|
313
|
-
limitIndent
|
|
314
|
+
limitIndent,
|
|
315
|
+
renderWrapper
|
|
314
316
|
}
|
|
315
317
|
}, /*#__PURE__*/React.createElement("div", {
|
|
316
318
|
className: finalCls,
|
|
@@ -18,6 +18,7 @@ export interface NavContextType {
|
|
|
18
18
|
subNavCloseDelay?: NavProps['subNavCloseDelay'];
|
|
19
19
|
subNavOpenDelay?: NavProps['subNavOpenDelay'];
|
|
20
20
|
canUpdateOpenKeys?: boolean;
|
|
21
|
+
renderWrapper?: NavProps['renderWrapper'];
|
|
21
22
|
}
|
|
22
23
|
declare const NavContext: React.Context<NavContextType>;
|
|
23
24
|
export default NavContext;
|
package/lib/es/rating/index.d.ts
CHANGED
|
@@ -69,7 +69,7 @@ export default class Rating extends BaseComponent<RatingProps, RatingState> {
|
|
|
69
69
|
onBlur: PropTypes.Requireable<(...args: any[]) => any>;
|
|
70
70
|
onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
|
|
71
71
|
autoFocus: PropTypes.Requireable<boolean>;
|
|
72
|
-
size: PropTypes.Requireable<NonNullable<number | "
|
|
72
|
+
size: PropTypes.Requireable<NonNullable<number | "small" | "default">>;
|
|
73
73
|
tooltips: PropTypes.Requireable<string[]>;
|
|
74
74
|
id: PropTypes.Requireable<string>;
|
|
75
75
|
preventScroll: PropTypes.Requireable<boolean>;
|
package/lib/es/rating/item.d.ts
CHANGED
|
@@ -40,7 +40,7 @@ export default class Item extends BaseComponent<RatingItemProps, RatingItemState
|
|
|
40
40
|
disabled: PropTypes.Requireable<boolean>;
|
|
41
41
|
count: PropTypes.Requireable<number>;
|
|
42
42
|
ariaLabelPrefix: PropTypes.Requireable<string>;
|
|
43
|
-
size: PropTypes.Requireable<NonNullable<number | "
|
|
43
|
+
size: PropTypes.Requireable<NonNullable<number | "small" | "default">>;
|
|
44
44
|
'aria-describedby': PropTypes.Requireable<string>;
|
|
45
45
|
onFocus: PropTypes.Requireable<(...args: any[]) => any>;
|
|
46
46
|
onBlur: PropTypes.Requireable<(...args: any[]) => any>;
|
package/lib/es/switch/index.d.ts
CHANGED
|
@@ -45,7 +45,7 @@ declare class Switch extends BaseComponent<SwitchProps, SwitchState> {
|
|
|
45
45
|
onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
|
|
46
46
|
onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
|
|
47
47
|
style: PropTypes.Requireable<object>;
|
|
48
|
-
size: PropTypes.Requireable<"
|
|
48
|
+
size: PropTypes.Requireable<"small" | "default" | "large">;
|
|
49
49
|
uncheckedText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
50
50
|
id: PropTypes.Requireable<string>;
|
|
51
51
|
};
|