@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.
Files changed (91) hide show
  1. package/dist/css/semi.css +8 -1
  2. package/dist/css/semi.min.css +1 -1
  3. package/dist/umd/semi-ui.js +278 -233
  4. package/dist/umd/semi-ui.js.map +1 -1
  5. package/dist/umd/semi-ui.min.js +1 -1
  6. package/dist/umd/semi-ui.min.js.map +1 -1
  7. package/lib/cjs/anchor/index.d.ts +1 -1
  8. package/lib/cjs/autoComplete/index.d.ts +1 -1
  9. package/lib/cjs/button/Button.d.ts +1 -1
  10. package/lib/cjs/button/buttonGroup.d.ts +1 -1
  11. package/lib/cjs/button/index.d.ts +1 -1
  12. package/lib/cjs/datePicker/datePicker.d.ts +1 -1
  13. package/lib/cjs/form/baseForm.d.ts +5 -5
  14. package/lib/cjs/form/errorMessage.d.ts +2 -1
  15. package/lib/cjs/form/field.d.ts +1 -1
  16. package/lib/cjs/form/hooks/useFormState.d.ts +2 -1
  17. package/lib/cjs/form/interface.d.ts +15 -15
  18. package/lib/cjs/image/image.js +12 -0
  19. package/lib/cjs/image/interface.d.ts +1 -1
  20. package/lib/cjs/image/preview.d.ts +1 -1
  21. package/lib/cjs/image/preview.js +2 -2
  22. package/lib/cjs/image/previewImage.d.ts +1 -1
  23. package/lib/cjs/image/previewImage.js +1 -1
  24. package/lib/cjs/image/previewInner.d.ts +1 -1
  25. package/lib/cjs/image/previewInner.js +13 -5
  26. package/lib/cjs/input/index.d.ts +1 -1
  27. package/lib/cjs/input/inputGroup.d.ts +1 -1
  28. package/lib/cjs/locale/source/tr_TR.js +2 -2
  29. package/lib/cjs/navigation/Item.d.ts +4 -1
  30. package/lib/cjs/navigation/Item.js +18 -5
  31. package/lib/cjs/navigation/index.d.ts +7 -1
  32. package/lib/cjs/navigation/index.js +4 -2
  33. package/lib/cjs/navigation/nav-context.d.ts +1 -0
  34. package/lib/cjs/rating/index.d.ts +1 -1
  35. package/lib/cjs/rating/item.d.ts +1 -1
  36. package/lib/cjs/switch/index.d.ts +1 -1
  37. package/lib/cjs/table/Body/index.js +2 -2
  38. package/lib/cjs/table/Table.d.ts +2 -2
  39. package/lib/cjs/table/Table.js +3 -2
  40. package/lib/cjs/table/index.d.ts +1 -1
  41. package/lib/cjs/tabs/TabPane.js +4 -3
  42. package/lib/cjs/tabs/interface.d.ts +1 -0
  43. package/lib/cjs/tagInput/index.d.ts +2 -2
  44. package/lib/cjs/tagInput/index.js +6 -4
  45. package/lib/cjs/timePicker/TimePicker.d.ts +1 -1
  46. package/lib/cjs/timePicker/index.d.ts +1 -1
  47. package/lib/cjs/transfer/index.d.ts +1 -0
  48. package/lib/cjs/transfer/index.js +7 -1
  49. package/lib/es/anchor/index.d.ts +1 -1
  50. package/lib/es/autoComplete/index.d.ts +1 -1
  51. package/lib/es/button/Button.d.ts +1 -1
  52. package/lib/es/button/buttonGroup.d.ts +1 -1
  53. package/lib/es/button/index.d.ts +1 -1
  54. package/lib/es/datePicker/datePicker.d.ts +1 -1
  55. package/lib/es/form/baseForm.d.ts +5 -5
  56. package/lib/es/form/errorMessage.d.ts +2 -1
  57. package/lib/es/form/field.d.ts +1 -1
  58. package/lib/es/form/hooks/useFormState.d.ts +2 -1
  59. package/lib/es/form/interface.d.ts +15 -15
  60. package/lib/es/image/image.js +11 -0
  61. package/lib/es/image/interface.d.ts +1 -1
  62. package/lib/es/image/preview.d.ts +1 -1
  63. package/lib/es/image/preview.js +2 -2
  64. package/lib/es/image/previewImage.d.ts +1 -1
  65. package/lib/es/image/previewImage.js +1 -1
  66. package/lib/es/image/previewInner.d.ts +1 -1
  67. package/lib/es/image/previewInner.js +13 -5
  68. package/lib/es/input/index.d.ts +1 -1
  69. package/lib/es/input/inputGroup.d.ts +1 -1
  70. package/lib/es/locale/source/tr_TR.js +2 -2
  71. package/lib/es/navigation/Item.d.ts +4 -1
  72. package/lib/es/navigation/Item.js +18 -5
  73. package/lib/es/navigation/index.d.ts +7 -1
  74. package/lib/es/navigation/index.js +4 -2
  75. package/lib/es/navigation/nav-context.d.ts +1 -0
  76. package/lib/es/rating/index.d.ts +1 -1
  77. package/lib/es/rating/item.d.ts +1 -1
  78. package/lib/es/switch/index.d.ts +1 -1
  79. package/lib/es/table/Body/index.js +3 -3
  80. package/lib/es/table/Table.d.ts +2 -2
  81. package/lib/es/table/Table.js +3 -2
  82. package/lib/es/table/index.d.ts +1 -1
  83. package/lib/es/tabs/TabPane.js +4 -3
  84. package/lib/es/tabs/interface.d.ts +1 -0
  85. package/lib/es/tagInput/index.d.ts +2 -2
  86. package/lib/es/tagInput/index.js +6 -4
  87. package/lib/es/timePicker/TimePicker.d.ts +1 -1
  88. package/lib/es/timePicker/index.d.ts +1 -1
  89. package/lib/es/transfer/index.d.ts +1 -0
  90. package/lib/es/transfer/index.js +7 -1
  91. package/package.json +7 -7
@@ -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<"default" | "small">;
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<"default" | "small" | "large">;
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<"default" | "small" | "large">;
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<"default" | "small" | "large">;
21
+ size: PropTypes.Requireable<"small" | "default" | "large">;
22
22
  theme: PropTypes.Requireable<"solid" | "light" | "borderless">;
23
23
  'aria-label': PropTypes.Requireable<string>;
24
24
  };
@@ -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<"default" | "small" | "large">;
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<"default" | "small" | "large">;
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, BaseFormState> {
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, "stopPropagation" | "motion" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & React.RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
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, BaseFormState>;
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
- export declare type ReactFieldError = Array<any> | React.ReactNode;
3
+ import type { BasicFieldError } from '@douyinfe/semi-foundation/lib/cjs/form/interface';
4
+ export declare type ReactFieldError = BasicFieldError | React.ReactNode;
4
5
  export interface ErrorMessageProps {
5
6
  error?: ReactFieldError;
6
7
  className?: string;
@@ -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, "stopPropagation" | "motion" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & import("react").RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
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
- declare function useFormState(): import("@douyinfe/semi-foundation/lib/cjs/form/interface").FormState<any>;
1
+ import { FormState } from '@douyinfe/semi-foundation/lib/cjs/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/cjs/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/cjs/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: Record<string, any>) => void;
87
- onSubmitFail?: (errors: Record<string, FieldError>, values: any) => void;
86
+ onSubmit?: (values: Values) => void;
87
+ onSubmitFail?: (errors: Record<keyof Values, FieldError>, values: Partial<Values>) => void;
88
88
  onReset?: () => void;
89
- onValueChange?: (values: Record<string, any>, changedValue: Record<string, any>) => void;
90
- onChange?: (formState: FormState) => void;
91
- validateFields?: (values: Record<string, any>) => string | Record<string, any>;
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?: Record<string, any>;
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';
@@ -7,6 +7,8 @@ exports.default = void 0;
7
7
 
8
8
  var _isObject2 = _interopRequireDefault(require("lodash/isObject"));
9
9
 
10
+ var _isBoolean2 = _interopRequireDefault(require("lodash/isBoolean"));
11
+
10
12
  var _react = _interopRequireDefault(require("react"));
11
13
 
12
14
  var _baseComponent = _interopRequireDefault(require("../_base/baseComponent"));
@@ -153,6 +155,16 @@ class Image extends _baseComponent.default {
153
155
  willUpdateStates.loadStatus = "loading";
154
156
  }
155
157
 
158
+ if ((0, _isObject2.default)(props.preview)) {
159
+ const {
160
+ visible
161
+ } = props.preview;
162
+
163
+ if ((0, _isBoolean2.default)(visible)) {
164
+ willUpdateStates.previewVisible = visible;
165
+ }
166
+ }
167
+
156
168
  return willUpdateStates;
157
169
  }
158
170
 
@@ -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
- onRotateChange?: (angle: number) => void;
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[];
@@ -241,8 +241,8 @@ Preview.propTypes = {
241
241
  onPrev: _propTypes.default.func,
242
242
  onNext: _propTypes.default.func,
243
243
  onDownload: _propTypes.default.func,
244
- onRatioChange: _propTypes.default.func,
245
- onRotateChange: _propTypes.default.func
244
+ onRotateLeft: _propTypes.default.func,
245
+ onRatioChange: _propTypes.default.func
246
246
  };
247
247
  Preview.defaultProps = {
248
248
  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<number>;
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>;
@@ -241,7 +241,7 @@ PreviewImage.propTypes = {
241
241
  zoomStep: _propTypes.default.number,
242
242
  zoom: _propTypes.default.number,
243
243
  ratio: _propTypes.default.string,
244
- disableDownload: _propTypes.default.number,
244
+ disableDownload: _propTypes.default.bool,
245
245
  clickZoom: _propTypes.default.number,
246
246
  setRatio: _propTypes.default.func,
247
247
  onZoom: _propTypes.default.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
- onRotateChange: PropTypes.Requireable<(...args: any[]) => any>;
48
+ onRotateLeft: PropTypes.Requireable<(...args: any[]) => any>;
49
49
  };
50
50
  static defaultProps: {
51
51
  showTooltip: boolean;
@@ -127,11 +127,19 @@ class PreviewInner extends _baseComponent.default {
127
127
  get adapter() {
128
128
  return Object.assign(Object.assign({}, super.adapter), {
129
129
  getIsInGroup: () => this.isInGroup(),
130
- notifyChange: index => {
130
+ notifyChange: (index, direction) => {
131
131
  const {
132
- onChange
132
+ onChange,
133
+ onPrev,
134
+ onNext
133
135
  } = this.props;
134
136
  (0, _isFunction2.default)(onChange) && onChange(index);
137
+
138
+ if (direction === "prev") {
139
+ onPrev && onPrev(index);
140
+ } else {
141
+ onNext && onNext(index);
142
+ }
135
143
  },
136
144
  notifyZoom: (zoom, increase) => {
137
145
  const {
@@ -165,9 +173,9 @@ class PreviewInner extends _baseComponent.default {
165
173
  },
166
174
  notifyRotateChange: angle => {
167
175
  const {
168
- onRotateChange
176
+ onRotateLeft
169
177
  } = this.props;
170
- (0, _isFunction2.default)(onRotateChange) && onRotateChange(angle);
178
+ (0, _isFunction2.default)(onRotateLeft) && onRotateLeft(angle);
171
179
  },
172
180
  notifyDownload: (src, index) => {
173
181
  const {
@@ -427,7 +435,7 @@ PreviewInner.propTypes = {
427
435
  onNext: _propTypes.default.func,
428
436
  onDownload: _propTypes.default.func,
429
437
  onRatioChange: _propTypes.default.func,
430
- onRotateChange: _propTypes.default.func
438
+ onRotateLeft: _propTypes.default.func
431
439
  };
432
440
  PreviewInner.defaultProps = {
433
441
  showTooltip: false,
@@ -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<"default" | "small" | "large">;
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<"default" | "small" | "large">;
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>;
@@ -88,8 +88,8 @@ const local = {
88
88
  Wed: 'Çar',
89
89
  Thu: 'Perş',
90
90
  Fri: 'Cum',
91
- Sat: 'Oturdu',
92
- Sun: 'Güneş'
91
+ Sat: 'Cmt',
92
+ Sun: 'Paz'
93
93
  },
94
94
  localeFormatToken: {
95
95
  FORMAT_SWITCH_DATE: 'yyyy-MM-dd'
@@ -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.ReactElement<any, string | React.JSXElementConstructor<any>>;
72
+ render(): React.ReactNode;
70
73
  }
@@ -170,7 +170,8 @@ class NavItem extends _baseComponent.default {
170
170
  link,
171
171
  linkOptions,
172
172
  disabled,
173
- level = 0
173
+ level = 0,
174
+ tabIndex
174
175
  } = this.props;
175
176
  const {
176
177
  mode,
@@ -233,7 +234,8 @@ class NavItem extends _baseComponent.default {
233
234
  ["".concat(clsPrefix, "-sub")]: isSubNav,
234
235
  ["".concat(clsPrefix, "-selected")]: selected && !isSubNav,
235
236
  ["".concat(clsPrefix, "-collapsed")]: isCollapsed,
236
- ["".concat(clsPrefix, "-disabled")]: disabled
237
+ ["".concat(clsPrefix, "-disabled")]: disabled,
238
+ ["".concat(clsPrefix, "-has-link")]: typeof link === 'string'
237
239
  });
238
240
  const ariaProps = {
239
241
  'aria-disabled': disabled
@@ -250,7 +252,7 @@ class NavItem extends _baseComponent.default {
250
252
  _react.default.createElement("li", Object.assign({
251
253
  // if role = menuitem, the narration will read all expanded li
252
254
  role: isSubNav ? null : "menuitem",
253
- tabIndex: isSubNav ? -1 : 0
255
+ tabIndex: isSubNav ? -1 : tabIndex
254
256
  }, ariaProps, {
255
257
  style: style,
256
258
  ref: this.setItemRef,
@@ -267,6 +269,15 @@ class NavItem extends _baseComponent.default {
267
269
  itemDom = this.wrapTooltip(itemDom);
268
270
  }
269
271
 
272
+ if (typeof this.context.renderWrapper === 'function') {
273
+ return this.context.renderWrapper({
274
+ itemElement: itemDom,
275
+ isSubNav: isSubNav,
276
+ isInSubNav: isInSubNav,
277
+ props: this.props
278
+ });
279
+ }
280
+
270
281
  return itemDom;
271
282
  }
272
283
 
@@ -291,7 +302,8 @@ NavItem.propTypes = {
291
302
  isSubNav: _propTypes.default.bool,
292
303
  link: _propTypes.default.string,
293
304
  linkOptions: _propTypes.default.object,
294
- disabled: _propTypes.default.bool
305
+ disabled: _propTypes.default.bool,
306
+ tabIndex: _propTypes.default.number
295
307
  };
296
308
  NavItem.defaultProps = {
297
309
  isSubNav: false,
@@ -301,5 +313,6 @@ NavItem.defaultProps = {
301
313
  onClick: _noop2.default,
302
314
  onMouseEnter: _noop2.default,
303
315
  onMouseLeave: _noop2.default,
304
- disabled: false
316
+ disabled: false,
317
+ tabIndex: 0
305
318
  };
@@ -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/cjs/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;
@@ -234,7 +234,8 @@ class Nav extends _baseComponent.default {
234
234
  footer,
235
235
  header,
236
236
  toggleIconPosition,
237
- limitIndent
237
+ limitIndent,
238
+ renderWrapper
238
239
  } = this.props;
239
240
  const {
240
241
  selectedKeys,
@@ -341,7 +342,8 @@ class Nav extends _baseComponent.default {
341
342
  locale,
342
343
  prefixCls,
343
344
  toggleIconPosition,
344
- limitIndent
345
+ limitIndent,
346
+ renderWrapper
345
347
  }
346
348
  }, /*#__PURE__*/_react.default.createElement("div", {
347
349
  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;
@@ -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 | "default" | "small">>;
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>;
@@ -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 | "default" | "small">>;
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>;
@@ -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<"default" | "small" | "large">;
48
+ size: PropTypes.Requireable<"small" | "default" | "large">;
49
49
  uncheckedText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
50
50
  id: PropTypes.Requireable<string>;
51
51
  };
@@ -269,7 +269,7 @@ class Body extends _baseComponent.default {
269
269
  width: tableWidth
270
270
  },
271
271
  className: tableCls
272
- }, (0, _size2.default)(dataSource) === 0 ? emptySlot : children));
272
+ }, children), (0, _size2.default)(dataSource) === 0 && emptySlot);
273
273
  });
274
274
 
275
275
  this.onItemsRendered = props => {
@@ -308,7 +308,7 @@ class Body extends _baseComponent.default {
308
308
 
309
309
  const listStyle = {
310
310
  width: '100%',
311
- height: (virtualizedData === null || virtualizedData === void 0 ? void 0 : virtualizedData.length) ? y : 0,
311
+ height: (virtualizedData === null || virtualizedData === void 0 ? void 0 : virtualizedData.length) ? y : _constants.numbers.DEFAULT_EMPTYSLOT_HEIGHT,
312
312
  overflowX: 'auto',
313
313
  overflowY: 'auto'
314
314
  };
@@ -52,7 +52,7 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
52
52
  components: PropTypes.Requireable<any>;
53
53
  bordered: PropTypes.Requireable<boolean>;
54
54
  loading: PropTypes.Requireable<boolean>;
55
- size: PropTypes.Requireable<"default" | "small" | "middle">;
55
+ size: PropTypes.Requireable<"small" | "default" | "middle">;
56
56
  tableLayout: PropTypes.Requireable<"" | "fixed" | "auto">;
57
57
  columns: PropTypes.Requireable<PropTypes.InferProps<{
58
58
  align: PropTypes.Requireable<"left" | "right" | "center">;
@@ -289,7 +289,7 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
289
289
  showTotal?: boolean;
290
290
  pageSize?: number;
291
291
  pageSizeOpts?: number[];
292
- size?: "default" | "small";
292
+ size?: "small" | "default";
293
293
  currentPage?: number;
294
294
  defaultCurrentPage?: number;
295
295
  onPageChange?: (currentPage: number) => void;
@@ -678,8 +678,9 @@ class Table extends _baseComponent.default {
678
678
  useFixedHeader,
679
679
  headerRef: this._cacheHeaderRef,
680
680
  bodyRef: this.bodyWrapRef,
681
- includeHeader: !useFixedHeader
682
- })), emptySlot, this.renderFooter(props)];
681
+ includeHeader: !useFixedHeader,
682
+ emptySlot
683
+ })), this.renderFooter(props)];
683
684
  return table;
684
685
  };
685
686
 
@@ -15,7 +15,7 @@ declare class Table<RecordType extends Record<string, any> = Data> extends React
15
15
  components: PropTypes.Requireable<any>;
16
16
  bordered: PropTypes.Requireable<boolean>;
17
17
  loading: PropTypes.Requireable<boolean>;
18
- size: PropTypes.Requireable<"default" | "small" | "middle">;
18
+ size: PropTypes.Requireable<"small" | "default" | "middle">;
19
19
  tableLayout: PropTypes.Requireable<"" | "fixed" | "auto">;
20
20
  columns: PropTypes.Requireable<PropTypes.InferProps<{
21
21
  align: PropTypes.Requireable<"left" | "right" | "center">;
@@ -83,9 +83,10 @@ class TabPane extends _react.PureComponent {
83
83
  className,
84
84
  style,
85
85
  children,
86
- itemKey
86
+ itemKey,
87
+ tabIndex
87
88
  } = _a,
88
- restProps = __rest(_a, ["className", "style", "children", "itemKey"]);
89
+ restProps = __rest(_a, ["className", "style", "children", "itemKey", "tabIndex"]);
89
90
 
90
91
  const active = this.context.activeKey === itemKey;
91
92
  const classNames = (0, _classnames.default)(className, {
@@ -123,7 +124,7 @@ class TabPane extends _react.PureComponent {
123
124
  className: classNames,
124
125
  style: style,
125
126
  "aria-hidden": active ? 'false' : 'true',
126
- tabIndex: 0
127
+ tabIndex: tabIndex ? tabIndex : 0
127
128
  }, (0, _getDataAttr.default)(restProps), {
128
129
  "x-semi-prop": "children"
129
130
  }), /*#__PURE__*/_react.default.createElement(_cssAnimation.default, {
@@ -61,6 +61,7 @@ export interface TabPaneProps {
61
61
  style?: CSSProperties;
62
62
  tab?: ReactNode;
63
63
  closable?: boolean;
64
+ tabIndex?: number;
64
65
  }
65
66
  export interface TabPaneTransitionProps {
66
67
  [key: string]: any;