@douyinfe/semi-ui 2.31.2-alpha.0 → 2.32.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 +40 -11
- package/dist/css/semi.min.css +1 -1
- package/dist/umd/semi-ui.js +693 -379
- 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/cascader/index.d.ts +1 -0
- package/lib/cjs/cascader/index.js +10 -1
- package/lib/cjs/datePicker/dateInput.d.ts +5 -1
- package/lib/cjs/datePicker/dateInput.js +16 -9
- package/lib/cjs/datePicker/datePicker.d.ts +33 -5
- package/lib/cjs/datePicker/datePicker.js +104 -23
- package/lib/cjs/datePicker/index.d.ts +1 -0
- package/lib/cjs/datePicker/monthsGrid.d.ts +1 -1
- package/lib/cjs/datePicker/monthsGrid.js +11 -3
- package/lib/cjs/datePicker/yearAndMonth.d.ts +10 -6
- package/lib/cjs/datePicker/yearAndMonth.js +84 -30
- package/lib/cjs/form/baseForm.d.ts +3 -3
- package/lib/cjs/form/field.d.ts +2 -2
- package/lib/cjs/input/index.d.ts +1 -1
- package/lib/cjs/input/inputGroup.d.ts +1 -1
- package/lib/cjs/locale/interface.d.ts +1 -0
- package/lib/cjs/locale/source/ar.js +2 -1
- package/lib/cjs/locale/source/de.js +2 -1
- package/lib/cjs/locale/source/en_GB.js +2 -1
- package/lib/cjs/locale/source/en_US.js +2 -1
- package/lib/cjs/locale/source/es.js +2 -1
- package/lib/cjs/locale/source/fr.js +2 -1
- package/lib/cjs/locale/source/id_ID.js +2 -1
- package/lib/cjs/locale/source/it.js +2 -1
- package/lib/cjs/locale/source/ja_JP.js +2 -1
- package/lib/cjs/locale/source/ko_KR.js +2 -1
- package/lib/cjs/locale/source/ms_MY.js +2 -1
- package/lib/cjs/locale/source/nl_NL.js +2 -1
- package/lib/cjs/locale/source/pl_PL.js +2 -1
- package/lib/cjs/locale/source/pt_BR.js +2 -1
- package/lib/cjs/locale/source/ro.d.ts +1 -0
- package/lib/cjs/locale/source/ro.js +2 -1
- package/lib/cjs/locale/source/ru_RU.js +2 -1
- package/lib/cjs/locale/source/sv_SE.js +2 -1
- package/lib/cjs/locale/source/th_TH.js +2 -1
- package/lib/cjs/locale/source/tr_TR.js +2 -1
- package/lib/cjs/locale/source/vi_VN.js +2 -1
- package/lib/cjs/locale/source/zh_CN.js +2 -1
- package/lib/cjs/locale/source/zh_TW.js +2 -1
- package/lib/cjs/modal/confirm.d.ts +8 -8
- package/lib/cjs/navigation/Item.js +4 -2
- package/lib/cjs/navigation/nav-context.d.ts +2 -0
- package/lib/cjs/rating/index.d.ts +1 -1
- package/lib/cjs/rating/item.d.ts +1 -1
- package/lib/cjs/select/index.d.ts +18 -1
- package/lib/cjs/select/index.js +4 -1
- package/lib/cjs/sideSheet/SideSheetContent.d.ts +3 -1
- package/lib/cjs/sideSheet/SideSheetContent.js +3 -2
- package/lib/cjs/sideSheet/index.js +6 -3
- package/lib/cjs/space/index.js +5 -2
- package/lib/cjs/switch/index.d.ts +1 -1
- package/lib/cjs/switch/index.js +1 -1
- package/lib/cjs/table/Table.d.ts +2 -2
- package/lib/cjs/table/index.d.ts +1 -1
- package/lib/cjs/tagInput/index.d.ts +1 -1
- package/lib/cjs/timePicker/TimePicker.d.ts +1 -1
- package/lib/cjs/timePicker/index.d.ts +1 -1
- package/lib/cjs/treeSelect/index.d.ts +1 -0
- package/lib/cjs/treeSelect/index.js +7 -3
- package/lib/cjs/typography/title.d.ts +1 -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/cascader/index.d.ts +1 -0
- package/lib/es/cascader/index.js +10 -1
- package/lib/es/datePicker/dateInput.d.ts +5 -1
- package/lib/es/datePicker/dateInput.js +16 -9
- package/lib/es/datePicker/datePicker.d.ts +33 -5
- package/lib/es/datePicker/datePicker.js +109 -23
- package/lib/es/datePicker/index.d.ts +1 -0
- package/lib/es/datePicker/monthsGrid.d.ts +1 -1
- package/lib/es/datePicker/monthsGrid.js +11 -3
- package/lib/es/datePicker/yearAndMonth.d.ts +10 -6
- package/lib/es/datePicker/yearAndMonth.js +83 -29
- package/lib/es/form/baseForm.d.ts +3 -3
- package/lib/es/form/field.d.ts +2 -2
- package/lib/es/input/index.d.ts +1 -1
- package/lib/es/input/inputGroup.d.ts +1 -1
- package/lib/es/locale/interface.d.ts +1 -0
- package/lib/es/locale/source/ar.js +2 -1
- package/lib/es/locale/source/de.js +2 -1
- package/lib/es/locale/source/en_GB.js +2 -1
- package/lib/es/locale/source/en_US.js +2 -1
- package/lib/es/locale/source/es.js +2 -1
- package/lib/es/locale/source/fr.js +2 -1
- package/lib/es/locale/source/id_ID.js +2 -1
- package/lib/es/locale/source/it.js +2 -1
- package/lib/es/locale/source/ja_JP.js +2 -1
- package/lib/es/locale/source/ko_KR.js +2 -1
- package/lib/es/locale/source/ms_MY.js +2 -1
- package/lib/es/locale/source/nl_NL.js +2 -1
- package/lib/es/locale/source/pl_PL.js +2 -1
- package/lib/es/locale/source/pt_BR.js +2 -1
- package/lib/es/locale/source/ro.d.ts +1 -0
- package/lib/es/locale/source/ro.js +2 -1
- package/lib/es/locale/source/ru_RU.js +2 -1
- package/lib/es/locale/source/sv_SE.js +2 -1
- package/lib/es/locale/source/th_TH.js +2 -1
- package/lib/es/locale/source/tr_TR.js +2 -1
- package/lib/es/locale/source/vi_VN.js +2 -1
- package/lib/es/locale/source/zh_CN.js +2 -1
- package/lib/es/locale/source/zh_TW.js +2 -1
- package/lib/es/modal/confirm.d.ts +8 -8
- package/lib/es/navigation/Item.js +4 -2
- package/lib/es/navigation/nav-context.d.ts +2 -0
- package/lib/es/rating/index.d.ts +1 -1
- package/lib/es/rating/item.d.ts +1 -1
- package/lib/es/select/index.d.ts +18 -1
- package/lib/es/select/index.js +4 -1
- package/lib/es/sideSheet/SideSheetContent.d.ts +3 -1
- package/lib/es/sideSheet/SideSheetContent.js +3 -2
- package/lib/es/sideSheet/index.js +6 -3
- package/lib/es/space/index.js +4 -2
- package/lib/es/switch/index.d.ts +1 -1
- package/lib/es/switch/index.js +1 -1
- package/lib/es/table/Table.d.ts +2 -2
- package/lib/es/table/index.d.ts +1 -1
- package/lib/es/tagInput/index.d.ts +1 -1
- package/lib/es/timePicker/TimePicker.d.ts +1 -1
- package/lib/es/timePicker/index.d.ts +1 -1
- package/lib/es/treeSelect/index.d.ts +1 -0
- package/lib/es/treeSelect/index.js +7 -3
- package/lib/es/typography/title.d.ts +1 -1
- package/package.json +8 -8
|
@@ -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<"default" | "small">;
|
|
43
43
|
railTheme: PropTypes.Requireable<"primary" | "tertiary" | "muted">;
|
|
44
44
|
className: PropTypes.Requireable<string>;
|
|
45
45
|
style: PropTypes.Requireable<object>;
|
|
@@ -125,7 +125,7 @@ declare class AutoComplete<T extends AutoCompleteItems> extends BaseComponent<Au
|
|
|
125
125
|
renderSelectedItem: PropTypes.Requireable<(...args: any[]) => any>;
|
|
126
126
|
suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
127
127
|
showClear: PropTypes.Requireable<boolean>;
|
|
128
|
-
size: PropTypes.Requireable<"
|
|
128
|
+
size: PropTypes.Requireable<"default" | "small" | "large">;
|
|
129
129
|
style: PropTypes.Requireable<object>;
|
|
130
130
|
stopPropagation: PropTypes.Requireable<NonNullable<string | boolean>>;
|
|
131
131
|
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<"default" | "small" | "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<"default" | "small" | "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<"
|
|
25
|
+
size: import("prop-types").Requireable<"default" | "small" | "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>;
|
|
@@ -188,6 +188,7 @@ declare class Cascader extends BaseComponent<CascaderProps, CascaderState> {
|
|
|
188
188
|
componentDidUpdate(prevProps: CascaderProps): void;
|
|
189
189
|
handleInputChange: (value: string) => void;
|
|
190
190
|
handleTagRemove: (e: any, tagValuePath: Array<string | number>) => void;
|
|
191
|
+
handleRemoveByKey: (key: any) => void;
|
|
191
192
|
renderTagItem: (value: string | Array<string>, idx: number, type: string) => string | number | boolean | React.ReactFragment | JSX.Element;
|
|
192
193
|
renderTagInput(): JSX.Element;
|
|
193
194
|
renderInput(): JSX.Element;
|
|
@@ -82,6 +82,13 @@ class Cascader extends _baseComponent.default {
|
|
|
82
82
|
this.foundation.handleTagRemove(e, tagValuePath);
|
|
83
83
|
};
|
|
84
84
|
|
|
85
|
+
this.handleRemoveByKey = key => {
|
|
86
|
+
const {
|
|
87
|
+
keyEntities
|
|
88
|
+
} = this.state;
|
|
89
|
+
this.handleTagRemove(null, keyEntities[key].valuePath);
|
|
90
|
+
};
|
|
91
|
+
|
|
85
92
|
this.renderTagItem = (value, idx, type) => {
|
|
86
93
|
const {
|
|
87
94
|
keyEntities,
|
|
@@ -375,7 +382,9 @@ class Cascader extends _baseComponent.default {
|
|
|
375
382
|
disabled: disabled,
|
|
376
383
|
triggerRender: triggerRender,
|
|
377
384
|
componentName: 'Cascader',
|
|
378
|
-
componentProps: Object.assign({}, this.props)
|
|
385
|
+
componentProps: Object.assign({}, this.props),
|
|
386
|
+
onSearch: this.handleInputChange,
|
|
387
|
+
onRemove: this.handleRemoveByKey
|
|
379
388
|
});
|
|
380
389
|
};
|
|
381
390
|
|
|
@@ -15,6 +15,9 @@ export interface DateInputProps extends DateInputFoundationProps, BaseProps {
|
|
|
15
15
|
onClear?: (e: React.MouseEvent<HTMLDivElement>) => void;
|
|
16
16
|
onInsetInputChange?: (options: InsetInputChangeProps) => void;
|
|
17
17
|
value?: Date[];
|
|
18
|
+
inputRef?: React.RefObject<HTMLInputElement>;
|
|
19
|
+
rangeInputStartRef?: React.RefObject<HTMLInputElement>;
|
|
20
|
+
rangeInputEndRef?: React.RefObject<HTMLInputElement>;
|
|
18
21
|
}
|
|
19
22
|
export default class DateInput extends BaseComponent<DateInputProps, {}> {
|
|
20
23
|
static propTypes: {
|
|
@@ -26,7 +29,7 @@ export default class DateInput extends BaseComponent<DateInputProps, {}> {
|
|
|
26
29
|
onFocus: PropTypes.Requireable<(...args: any[]) => any>;
|
|
27
30
|
value: PropTypes.Requireable<any[]>;
|
|
28
31
|
disabled: PropTypes.Requireable<boolean>;
|
|
29
|
-
type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
|
|
32
|
+
type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "monthRange" | "dateTimeRange">;
|
|
30
33
|
showClear: PropTypes.Requireable<boolean>;
|
|
31
34
|
format: PropTypes.Requireable<string>;
|
|
32
35
|
inputStyle: PropTypes.Requireable<object>;
|
|
@@ -81,6 +84,7 @@ export default class DateInput extends BaseComponent<DateInputProps, {}> {
|
|
|
81
84
|
renderRangeClearBtn(rangeStart: string, rangeEnd: string): JSX.Element;
|
|
82
85
|
renderRangeSuffix(suffix: React.ReactNode): JSX.Element;
|
|
83
86
|
renderRangeInput(rangeProps: DateInputProps): JSX.Element;
|
|
87
|
+
isRenderMultipleInputs(): boolean;
|
|
84
88
|
renderInputInset(): JSX.Element;
|
|
85
89
|
renderTriggerInput(): JSX.Element;
|
|
86
90
|
render(): JSX.Element;
|
|
@@ -284,6 +284,14 @@ class DateInput extends _baseComponent.default {
|
|
|
284
284
|
})), this.renderRangeClearBtn(rangeStart, rangeEnd), this.renderRangeSuffix(suffix));
|
|
285
285
|
}
|
|
286
286
|
|
|
287
|
+
isRenderMultipleInputs() {
|
|
288
|
+
const {
|
|
289
|
+
type
|
|
290
|
+
} = this.props; // isRange and not monthRange render multiple inputs
|
|
291
|
+
|
|
292
|
+
return type.includes('Range') && type !== 'monthRange';
|
|
293
|
+
}
|
|
294
|
+
|
|
287
295
|
renderInputInset() {
|
|
288
296
|
const {
|
|
289
297
|
type,
|
|
@@ -297,9 +305,6 @@ class DateInput extends _baseComponent.default {
|
|
|
297
305
|
density,
|
|
298
306
|
insetInput
|
|
299
307
|
} = this.props;
|
|
300
|
-
|
|
301
|
-
const _isRangeType = type.includes('Range');
|
|
302
|
-
|
|
303
308
|
const newInsetInputValue = this.foundation.getInsetInputValue({
|
|
304
309
|
value,
|
|
305
310
|
insetInputValue
|
|
@@ -334,7 +339,7 @@ class DateInput extends _baseComponent.default {
|
|
|
334
339
|
valuePath: 'monthLeft.timeInput',
|
|
335
340
|
onChange: this.handleInsetInputChange,
|
|
336
341
|
onFocus: handleInsetTimeFocus
|
|
337
|
-
}),
|
|
342
|
+
}), this.isRenderMultipleInputs() && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
338
343
|
className: separatorCls
|
|
339
344
|
}, density === 'compact' ? null : '-'), /*#__PURE__*/_react.default.createElement(_insetInput.InsetDateInput, {
|
|
340
345
|
forwardRef: rangeInputEndRef,
|
|
@@ -379,6 +384,7 @@ class DateInput extends _baseComponent.default {
|
|
|
379
384
|
prefix,
|
|
380
385
|
autofocus,
|
|
381
386
|
size,
|
|
387
|
+
inputRef,
|
|
382
388
|
// range input support props, no need passing to not range type
|
|
383
389
|
rangeInputStartRef,
|
|
384
390
|
rangeInputEndRef,
|
|
@@ -391,7 +397,7 @@ class DateInput extends _baseComponent.default {
|
|
|
391
397
|
insetInputValue,
|
|
392
398
|
defaultPickerValue
|
|
393
399
|
} = _a,
|
|
394
|
-
rest = __rest(_a, ["placeholder", "type", "value", "inputValue", "inputStyle", "disabled", "showClear", "inputReadOnly", "insetLabel", "validateStatus", "block", "prefixCls", "multiple", "dateFnsLocale", "onBlur", "onClear", "onFocus", "prefix", "autofocus", "size", "rangeInputStartRef", "rangeInputEndRef", "onRangeClear", "onRangeBlur", "onRangeEndTabPress", "rangeInputFocus", "rangeSeparator", "insetInput", "insetInputValue", "defaultPickerValue"]);
|
|
400
|
+
rest = __rest(_a, ["placeholder", "type", "value", "inputValue", "inputStyle", "disabled", "showClear", "inputReadOnly", "insetLabel", "validateStatus", "block", "prefixCls", "multiple", "dateFnsLocale", "onBlur", "onClear", "onFocus", "prefix", "autofocus", "size", "inputRef", "rangeInputStartRef", "rangeInputEndRef", "onRangeClear", "onRangeBlur", "onRangeEndTabPress", "rangeInputFocus", "rangeSeparator", "insetInput", "insetInputValue", "defaultPickerValue"]);
|
|
395
401
|
|
|
396
402
|
const dateIcon = /*#__PURE__*/_react.default.createElement(_semiIcons.IconCalendar, {
|
|
397
403
|
"aria-hidden": true
|
|
@@ -411,22 +417,23 @@ class DateInput extends _baseComponent.default {
|
|
|
411
417
|
}
|
|
412
418
|
|
|
413
419
|
const inputCls = (0, _classnames.default)({
|
|
414
|
-
[`${prefixCls}-input-readonly`]: inputReadOnly
|
|
420
|
+
[`${prefixCls}-input-readonly`]: inputReadOnly,
|
|
421
|
+
[`${prefixCls}-monthRange-input`]: type === 'monthRange'
|
|
415
422
|
});
|
|
416
|
-
const isRangeType = /range/i.test(type);
|
|
417
423
|
const rangeProps = Object.assign(Object.assign({}, this.props), {
|
|
418
424
|
text,
|
|
419
425
|
suffix,
|
|
420
426
|
inputCls
|
|
421
427
|
});
|
|
422
|
-
return
|
|
428
|
+
return this.isRenderMultipleInputs() ? this.renderRangeInput(rangeProps) : /*#__PURE__*/_react.default.createElement(_index.default, Object.assign({}, rest, {
|
|
429
|
+
ref: inputRef,
|
|
423
430
|
insetLabel: insetLabel,
|
|
424
431
|
disabled: disabled,
|
|
425
432
|
readonly: inputReadOnly,
|
|
426
433
|
className: inputCls,
|
|
427
434
|
style: inputStyle,
|
|
428
435
|
hideSuffix: showClear,
|
|
429
|
-
placeholder: placeholder,
|
|
436
|
+
placeholder: type === 'monthRange' && Array.isArray(placeholder) ? placeholder[0] + rangeSeparator + placeholder[1] : placeholder,
|
|
430
437
|
onEnterPress: this.handleEnterPress,
|
|
431
438
|
onChange: this.handleChange,
|
|
432
439
|
onClear: this.handleInputClear,
|
|
@@ -28,10 +28,21 @@ export interface DatePickerProps extends DatePickerFoundationProps {
|
|
|
28
28
|
renderDate?: (dayNumber?: number, fullDate?: string) => React.ReactNode;
|
|
29
29
|
renderFullDate?: (dayNumber?: number, fullDate?: string, dayStatus?: DayStatusType) => React.ReactNode;
|
|
30
30
|
triggerRender?: (props: DatePickerProps) => React.ReactNode;
|
|
31
|
+
/**
|
|
32
|
+
* There are multiple input boxes when selecting a range, and the input boxes will be out of focus multiple times.
|
|
33
|
+
*
|
|
34
|
+
* Use `onOpenChange` or `onClickOutSide` instead
|
|
35
|
+
*/
|
|
31
36
|
onBlur?: React.MouseEventHandler<HTMLInputElement>;
|
|
32
37
|
onClear?: React.MouseEventHandler<HTMLDivElement>;
|
|
38
|
+
/**
|
|
39
|
+
* There are multiple input boxes when selecting a range, and the input boxes will be focused multiple times.
|
|
40
|
+
*
|
|
41
|
+
* Use `onOpenChange` or `triggerRender` instead
|
|
42
|
+
*/
|
|
33
43
|
onFocus?: (e: React.MouseEvent, rangeType: RangeType) => void;
|
|
34
44
|
onPresetClick?: (item: PresetType, e: React.MouseEvent<HTMLDivElement>) => void;
|
|
45
|
+
onClickOutSide?: () => void;
|
|
35
46
|
locale?: Locale['DatePicker'];
|
|
36
47
|
dateFnsLocale?: Locale['dateFnsLocale'];
|
|
37
48
|
yearAndMonthOpts?: ScrollItemProps<any>;
|
|
@@ -46,8 +57,8 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
|
|
|
46
57
|
'aria-invalid': PropTypes.Requireable<boolean>;
|
|
47
58
|
'aria-labelledby': PropTypes.Requireable<string>;
|
|
48
59
|
'aria-required': PropTypes.Requireable<boolean>;
|
|
49
|
-
type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
|
|
50
|
-
size: PropTypes.Requireable<"
|
|
60
|
+
type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "monthRange" | "dateTimeRange">;
|
|
61
|
+
size: PropTypes.Requireable<"default" | "small" | "large">;
|
|
51
62
|
clearIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
52
63
|
density: PropTypes.Requireable<"default" | "compact">;
|
|
53
64
|
defaultValue: PropTypes.Requireable<NonNullable<string | number | object>>;
|
|
@@ -113,6 +124,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
|
|
|
113
124
|
rangeSeparator: PropTypes.Requireable<string>;
|
|
114
125
|
preventScroll: PropTypes.Requireable<boolean>;
|
|
115
126
|
yearAndMonthOpts: PropTypes.Requireable<object>;
|
|
127
|
+
onClickOutSide: PropTypes.Requireable<(...args: any[]) => any>;
|
|
116
128
|
};
|
|
117
129
|
static defaultProps: {
|
|
118
130
|
onChangeWithDateFirst: boolean;
|
|
@@ -155,12 +167,14 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
|
|
|
155
167
|
syncSwitchMonth: boolean;
|
|
156
168
|
rangeSeparator: " ~ ";
|
|
157
169
|
insetInput: boolean;
|
|
170
|
+
onClickOutSide: (...args: any[]) => void;
|
|
158
171
|
};
|
|
159
172
|
triggerElRef: React.MutableRefObject<HTMLElement>;
|
|
160
173
|
panelRef: React.RefObject<HTMLDivElement>;
|
|
161
174
|
monthGrid: React.RefObject<MonthsGrid>;
|
|
162
|
-
|
|
163
|
-
|
|
175
|
+
inputRef: DateInputProps['inputRef'];
|
|
176
|
+
rangeInputStartRef: DateInputProps['rangeInputStartRef'];
|
|
177
|
+
rangeInputEndRef: DateInputProps['rangeInputEndRef'];
|
|
164
178
|
focusRecordsRef: React.RefObject<{
|
|
165
179
|
rangeStart: boolean;
|
|
166
180
|
rangeEnd: boolean;
|
|
@@ -175,6 +189,20 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
|
|
|
175
189
|
componentDidUpdate(prevProps: DatePickerProps): void;
|
|
176
190
|
componentDidMount(): void;
|
|
177
191
|
componentWillUnmount(): void;
|
|
192
|
+
open(): void;
|
|
193
|
+
close(): void;
|
|
194
|
+
/**
|
|
195
|
+
*
|
|
196
|
+
* When selecting a range, the default focus is on the start input box, passing in `rangeEnd` can focus on the end input box
|
|
197
|
+
*
|
|
198
|
+
* When `insetInput` is `true`, due to trigger disabled, the cursor will focus on the input box of the popup layer panel
|
|
199
|
+
*
|
|
200
|
+
* 范围选择时,默认聚焦在开始输入框,传入 `rangeEnd` 可以聚焦在结束输入框
|
|
201
|
+
*
|
|
202
|
+
* `insetInput` 打开时,由于 trigger 禁用,会把焦点放在弹出面板的输入框上
|
|
203
|
+
*/
|
|
204
|
+
focus(focusType?: Exclude<RangeType, false>): void;
|
|
205
|
+
blur(): void;
|
|
178
206
|
setTriggerRef: (node: HTMLDivElement) => HTMLDivElement;
|
|
179
207
|
handleSelectedChange: MonthsGridProps['onChange'];
|
|
180
208
|
handleYMSelectedChange: YearAndMonthProps['onSelect'];
|
|
@@ -199,7 +227,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
|
|
|
199
227
|
handleInsetDateFocus: (e: React.FocusEvent, rangeType: 'rangeStart' | 'rangeEnd') => void;
|
|
200
228
|
handleInsetTimeFocus: () => void;
|
|
201
229
|
handlePanelVisibleChange: (visible: boolean) => void;
|
|
202
|
-
renderInner(
|
|
230
|
+
renderInner(): JSX.Element;
|
|
203
231
|
handleConfirm: (e: React.MouseEvent) => void;
|
|
204
232
|
handleCancel: (e: React.MouseEvent) => void;
|
|
205
233
|
renderFooter: (locale: Locale['DatePicker'], localeCode: string) => JSX.Element;
|
|
@@ -173,7 +173,8 @@ class DatePicker extends _baseComponent.default {
|
|
|
173
173
|
density,
|
|
174
174
|
topSlot,
|
|
175
175
|
bottomSlot,
|
|
176
|
-
presetPosition
|
|
176
|
+
presetPosition,
|
|
177
|
+
type
|
|
177
178
|
} = this.props;
|
|
178
179
|
const wrapCls = (0, _classnames.default)(_constants.cssClasses.PREFIX, {
|
|
179
180
|
[_constants.cssClasses.PANEL_YAM]: this.adapter.typeIsYearOrMonth(),
|
|
@@ -182,11 +183,12 @@ class DatePicker extends _baseComponent.default {
|
|
|
182
183
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
183
184
|
ref: this.panelRef,
|
|
184
185
|
className: wrapCls,
|
|
185
|
-
style: dropdownStyle
|
|
186
|
+
style: dropdownStyle,
|
|
187
|
+
"x-type": type
|
|
186
188
|
}, topSlot && /*#__PURE__*/_react.default.createElement("div", {
|
|
187
189
|
className: `${_constants.cssClasses.PREFIX}-topSlot`,
|
|
188
190
|
"x-semi-prop": "topSlot"
|
|
189
|
-
}, topSlot), presetPosition === "top" && this.renderQuickControls(), this.adapter.typeIsYearOrMonth() ? this.renderYearMonthPanel(locale, localeCode) : this.renderMonthGrid(locale, localeCode, dateFnsLocale), presetPosition === "bottom" && this.renderQuickControls(), bottomSlot && /*#__PURE__*/_react.default.createElement("div", {
|
|
191
|
+
}, topSlot), presetPosition === "top" && type !== 'monthRange' && this.renderQuickControls(), this.adapter.typeIsYearOrMonth() ? this.renderYearMonthPanel(locale, localeCode) : this.renderMonthGrid(locale, localeCode, dateFnsLocale), presetPosition === "bottom" && type !== 'monthRange' && this.renderQuickControls(), bottomSlot && /*#__PURE__*/_react.default.createElement("div", {
|
|
190
192
|
className: `${_constants.cssClasses.PREFIX}-bottomSlot`,
|
|
191
193
|
"x-semi-prop": "bottomSlot"
|
|
192
194
|
}, bottomSlot), this.renderFooter(locale, localeCode));
|
|
@@ -196,15 +198,31 @@ class DatePicker extends _baseComponent.default {
|
|
|
196
198
|
const {
|
|
197
199
|
density,
|
|
198
200
|
presetPosition,
|
|
199
|
-
yearAndMonthOpts
|
|
201
|
+
yearAndMonthOpts,
|
|
202
|
+
type
|
|
200
203
|
} = this.props;
|
|
201
204
|
const date = this.state.value[0];
|
|
202
|
-
|
|
203
|
-
|
|
205
|
+
const year = {
|
|
206
|
+
left: 0,
|
|
207
|
+
right: 0
|
|
208
|
+
};
|
|
209
|
+
const month = {
|
|
210
|
+
left: 0,
|
|
211
|
+
right: 0
|
|
212
|
+
};
|
|
204
213
|
|
|
205
214
|
if ((0, _isDate2.default)(date)) {
|
|
206
|
-
year = date.getFullYear();
|
|
207
|
-
month = date.getMonth() + 1;
|
|
215
|
+
year.left = date.getFullYear();
|
|
216
|
+
month.left = date.getMonth() + 1;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
if (type === 'monthRange') {
|
|
220
|
+
const dateRight = this.state.value[1];
|
|
221
|
+
|
|
222
|
+
if ((0, _isDate2.default)(dateRight)) {
|
|
223
|
+
year.right = dateRight.getFullYear();
|
|
224
|
+
month.right = dateRight.getMonth() + 1;
|
|
225
|
+
}
|
|
208
226
|
}
|
|
209
227
|
|
|
210
228
|
return /*#__PURE__*/_react.default.createElement(_yearAndMonth.default, {
|
|
@@ -220,6 +238,7 @@ class DatePicker extends _baseComponent.default {
|
|
|
220
238
|
presetPosition: presetPosition,
|
|
221
239
|
renderQuickControls: this.renderQuickControls(),
|
|
222
240
|
renderDateInput: this.renderDateInput(),
|
|
241
|
+
type: type,
|
|
223
242
|
yearAndMonthOpts: yearAndMonthOpts
|
|
224
243
|
});
|
|
225
244
|
};
|
|
@@ -279,6 +298,7 @@ class DatePicker extends _baseComponent.default {
|
|
|
279
298
|
this.triggerElRef = /*#__PURE__*/_react.default.createRef();
|
|
280
299
|
this.panelRef = /*#__PURE__*/_react.default.createRef();
|
|
281
300
|
this.monthGrid = /*#__PURE__*/_react.default.createRef();
|
|
301
|
+
this.inputRef = /*#__PURE__*/_react.default.createRef();
|
|
282
302
|
this.rangeInputStartRef = /*#__PURE__*/_react.default.createRef();
|
|
283
303
|
this.rangeInputEndRef = /*#__PURE__*/_react.default.createRef();
|
|
284
304
|
this.focusRecordsRef = /*#__PURE__*/_react.default.createRef(); // @ts-ignore ignore readonly
|
|
@@ -294,10 +314,10 @@ class DatePicker extends _baseComponent.default {
|
|
|
294
314
|
var _this2 = this;
|
|
295
315
|
|
|
296
316
|
return Object.assign(Object.assign({}, super.adapter), {
|
|
297
|
-
togglePanel: panelShow => {
|
|
317
|
+
togglePanel: (panelShow, cb) => {
|
|
298
318
|
this.setState({
|
|
299
319
|
panelShow
|
|
300
|
-
});
|
|
320
|
+
}, cb);
|
|
301
321
|
|
|
302
322
|
if (!panelShow) {
|
|
303
323
|
this.focusRecordsRef.current.rangeEnd = false;
|
|
@@ -311,17 +331,20 @@ class DatePicker extends _baseComponent.default {
|
|
|
311
331
|
}
|
|
312
332
|
|
|
313
333
|
this.clickOutSideHandler = e => {
|
|
314
|
-
if (this.adapter.needConfirm()) {
|
|
315
|
-
return;
|
|
316
|
-
}
|
|
317
|
-
|
|
318
334
|
const triggerEl = this.triggerElRef && this.triggerElRef.current;
|
|
319
335
|
const panelEl = this.panelRef && this.panelRef.current;
|
|
320
336
|
const isInTrigger = triggerEl && triggerEl.contains(e.target);
|
|
321
337
|
const isInPanel = panelEl && panelEl.contains(e.target);
|
|
338
|
+
const clickOutSide = !isInTrigger && !isInPanel && this._mounted;
|
|
322
339
|
|
|
323
|
-
if (
|
|
324
|
-
this.
|
|
340
|
+
if (this.adapter.needConfirm()) {
|
|
341
|
+
clickOutSide && this.props.onClickOutSide();
|
|
342
|
+
return;
|
|
343
|
+
} else {
|
|
344
|
+
if (clickOutSide) {
|
|
345
|
+
this.props.onClickOutSide();
|
|
346
|
+
this.foundation.closePanel(e);
|
|
347
|
+
}
|
|
325
348
|
}
|
|
326
349
|
};
|
|
327
350
|
|
|
@@ -388,7 +411,7 @@ class DatePicker extends _baseComponent.default {
|
|
|
388
411
|
}
|
|
389
412
|
},
|
|
390
413
|
needConfirm: () => ['dateTime', 'dateTimeRange'].includes(this.props.type) && this.props.needConfirm === true,
|
|
391
|
-
typeIsYearOrMonth: () => ['month', 'year'].includes(this.props.type),
|
|
414
|
+
typeIsYearOrMonth: () => ['month', 'year', 'monthRange'].includes(this.props.type),
|
|
392
415
|
setRangeInputFocus: rangeInputFocus => {
|
|
393
416
|
const {
|
|
394
417
|
preventScroll
|
|
@@ -486,6 +509,34 @@ class DatePicker extends _baseComponent.default {
|
|
|
486
509
|
break;
|
|
487
510
|
}
|
|
488
511
|
},
|
|
512
|
+
setInputFocus: () => {
|
|
513
|
+
const {
|
|
514
|
+
preventScroll
|
|
515
|
+
} = this.props;
|
|
516
|
+
const inputNode = (0, _get2.default)(this, 'inputRef.current');
|
|
517
|
+
inputNode && inputNode.focus({
|
|
518
|
+
preventScroll
|
|
519
|
+
});
|
|
520
|
+
},
|
|
521
|
+
setInputBlur: () => {
|
|
522
|
+
const inputNode = (0, _get2.default)(this, 'inputRef.current');
|
|
523
|
+
inputNode && inputNode.blur();
|
|
524
|
+
},
|
|
525
|
+
setRangeInputBlur: () => {
|
|
526
|
+
const {
|
|
527
|
+
rangeInputFocus
|
|
528
|
+
} = this.state;
|
|
529
|
+
|
|
530
|
+
if (rangeInputFocus === 'rangeStart') {
|
|
531
|
+
const inputStartNode = (0, _get2.default)(this, 'rangeInputStartRef.current');
|
|
532
|
+
inputStartNode && inputStartNode.blur();
|
|
533
|
+
} else if (rangeInputFocus === 'rangeEnd') {
|
|
534
|
+
const inputEndNode = (0, _get2.default)(this, 'rangeInputEndRef.current');
|
|
535
|
+
inputEndNode && inputEndNode.blur();
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
this.adapter.setRangeInputFocus(false);
|
|
539
|
+
},
|
|
489
540
|
setTriggerDisabled: disabled => {
|
|
490
541
|
this.setState({
|
|
491
542
|
triggerDisabled: disabled
|
|
@@ -528,6 +579,33 @@ class DatePicker extends _baseComponent.default {
|
|
|
528
579
|
super.componentWillUnmount();
|
|
529
580
|
}
|
|
530
581
|
|
|
582
|
+
open() {
|
|
583
|
+
this.foundation.open();
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
close() {
|
|
587
|
+
this.foundation.close();
|
|
588
|
+
}
|
|
589
|
+
/**
|
|
590
|
+
*
|
|
591
|
+
* When selecting a range, the default focus is on the start input box, passing in `rangeEnd` can focus on the end input box
|
|
592
|
+
*
|
|
593
|
+
* When `insetInput` is `true`, due to trigger disabled, the cursor will focus on the input box of the popup layer panel
|
|
594
|
+
*
|
|
595
|
+
* 范围选择时,默认聚焦在开始输入框,传入 `rangeEnd` 可以聚焦在结束输入框
|
|
596
|
+
*
|
|
597
|
+
* `insetInput` 打开时,由于 trigger 禁用,会把焦点放在弹出面板的输入框上
|
|
598
|
+
*/
|
|
599
|
+
|
|
600
|
+
|
|
601
|
+
focus(focusType) {
|
|
602
|
+
this.foundation.focus(focusType);
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
blur() {
|
|
606
|
+
this.foundation.blur();
|
|
607
|
+
}
|
|
608
|
+
|
|
531
609
|
renderMonthGrid(locale, localeCode, dateFnsLocale) {
|
|
532
610
|
const {
|
|
533
611
|
type,
|
|
@@ -649,7 +727,7 @@ class DatePicker extends _baseComponent.default {
|
|
|
649
727
|
})) : null;
|
|
650
728
|
}
|
|
651
729
|
|
|
652
|
-
renderInner(
|
|
730
|
+
renderInner() {
|
|
653
731
|
const {
|
|
654
732
|
clearIcon,
|
|
655
733
|
type,
|
|
@@ -691,7 +769,7 @@ class DatePicker extends _baseComponent.default {
|
|
|
691
769
|
const phText = placeholder || locale.placeholder[type]; // i18n
|
|
692
770
|
// These values should be passed to triggerRender, do not delete any key if it is not necessary
|
|
693
771
|
|
|
694
|
-
const props =
|
|
772
|
+
const props = {
|
|
695
773
|
placeholder: phText,
|
|
696
774
|
clearIcon,
|
|
697
775
|
disabled: inputDisabled,
|
|
@@ -725,8 +803,9 @@ class DatePicker extends _baseComponent.default {
|
|
|
725
803
|
onRangeClear: this.handleRangeInputClear,
|
|
726
804
|
onRangeEndTabPress: this.handleRangeEndTabPress,
|
|
727
805
|
rangeInputStartRef: insetInput ? null : this.rangeInputStartRef,
|
|
728
|
-
rangeInputEndRef: insetInput ? null : this.rangeInputEndRef
|
|
729
|
-
|
|
806
|
+
rangeInputEndRef: insetInput ? null : this.rangeInputEndRef,
|
|
807
|
+
inputRef: this.inputRef
|
|
808
|
+
};
|
|
730
809
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
731
810
|
// tooltip will mount a11y props to children
|
|
732
811
|
// eslint-disable-next-line jsx-a11y/role-has-required-aria-props
|
|
@@ -843,7 +922,8 @@ DatePicker.propTypes = {
|
|
|
843
922
|
onPanelChange: _propTypes.default.func,
|
|
844
923
|
rangeSeparator: _propTypes.default.string,
|
|
845
924
|
preventScroll: _propTypes.default.bool,
|
|
846
|
-
yearAndMonthOpts: _propTypes.default.object
|
|
925
|
+
yearAndMonthOpts: _propTypes.default.object,
|
|
926
|
+
onClickOutSide: _propTypes.default.func
|
|
847
927
|
};
|
|
848
928
|
DatePicker.defaultProps = {
|
|
849
929
|
onChangeWithDateFirst: true,
|
|
@@ -880,5 +960,6 @@ DatePicker.defaultProps = {
|
|
|
880
960
|
autoSwitchDate: true,
|
|
881
961
|
syncSwitchMonth: false,
|
|
882
962
|
rangeSeparator: _constants.strings.DEFAULT_SEPARATOR_RANGE,
|
|
883
|
-
insetInput: false
|
|
963
|
+
insetInput: false,
|
|
964
|
+
onClickOutSide: _noop2.default
|
|
884
965
|
};
|
|
@@ -8,5 +8,6 @@ export type { MonthsGridProps } from './monthsGrid';
|
|
|
8
8
|
export type { QuickControlProps } from './quickControl';
|
|
9
9
|
export type { YearAndMonthProps } from './yearAndMonth';
|
|
10
10
|
export type { InsetInputProps } from '@douyinfe/semi-foundation/lib/cjs/datePicker/inputFoundation';
|
|
11
|
+
export type { DatePicker as BaseDatePicker };
|
|
11
12
|
declare const _default: React.ForwardRefExoticComponent<DatePickerProps & React.RefAttributes<DatePicker>>;
|
|
12
13
|
export default _default;
|
|
@@ -19,7 +19,7 @@ export interface MonthsGridProps extends MonthsGridFoundationProps, BaseProps {
|
|
|
19
19
|
export declare type MonthsGridState = MonthsGridFoundationState;
|
|
20
20
|
export default class MonthsGrid extends BaseComponent<MonthsGridProps, MonthsGridState> {
|
|
21
21
|
static propTypes: {
|
|
22
|
-
type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
|
|
22
|
+
type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "monthRange" | "dateTimeRange">;
|
|
23
23
|
defaultValue: PropTypes.Requireable<any[]>;
|
|
24
24
|
defaultPickerValue: PropTypes.Requireable<NonNullable<string | number | object>>;
|
|
25
25
|
multiple: PropTypes.Requireable<boolean>;
|
|
@@ -508,9 +508,17 @@ class MonthsGrid extends _baseComponent.default {
|
|
|
508
508
|
ref: current => this.cacheRefCurrent(`yam-${panelType}`, current),
|
|
509
509
|
locale: locale,
|
|
510
510
|
localeCode: localeCode,
|
|
511
|
-
currentYear
|
|
512
|
-
currentMonth
|
|
513
|
-
|
|
511
|
+
// currentYear={y}
|
|
512
|
+
// currentMonth={m}
|
|
513
|
+
currentYear: {
|
|
514
|
+
left: y,
|
|
515
|
+
right: 0
|
|
516
|
+
},
|
|
517
|
+
currentMonth: {
|
|
518
|
+
left: m,
|
|
519
|
+
right: 0
|
|
520
|
+
},
|
|
521
|
+
onSelect: item => this.foundation.toYearMonth(panelType, new Date(item.currentYear.left, item.currentMonth.left - 1)),
|
|
514
522
|
onBackToMain: () => {
|
|
515
523
|
this.foundation.showDatePanel(panelType);
|
|
516
524
|
const wrapCurrent = this.adapter.getCache(`wrap-${panelType}`);
|
|
@@ -4,14 +4,15 @@ import YearAndMonthFoundation, { MonthScrollItem, YearAndMonthAdapter, YearAndMo
|
|
|
4
4
|
import BaseComponent, { BaseProps } from '../_base/baseComponent';
|
|
5
5
|
import ScrollItem from '../scrollList/scrollItem';
|
|
6
6
|
import { Locale } from '../locale/interface';
|
|
7
|
+
import { PanelType } from '@douyinfe/semi-foundation/lib/cjs/datePicker/monthsGridFoundation';
|
|
7
8
|
export interface YearAndMonthProps extends YearAndMonthFoundationProps, BaseProps {
|
|
8
9
|
locale?: Locale['DatePicker'];
|
|
9
10
|
}
|
|
10
11
|
export declare type YearAndMonthState = YearAndMonthFoundationState;
|
|
11
12
|
declare class YearAndMonth extends BaseComponent<YearAndMonthProps, YearAndMonthState> {
|
|
12
13
|
static propTypes: {
|
|
13
|
-
currentYear: PropTypes.Requireable<
|
|
14
|
-
currentMonth: PropTypes.Requireable<
|
|
14
|
+
currentYear: PropTypes.Requireable<object>;
|
|
15
|
+
currentMonth: PropTypes.Requireable<object>;
|
|
15
16
|
onSelect: PropTypes.Requireable<(...args: any[]) => any>;
|
|
16
17
|
locale: PropTypes.Requireable<object>;
|
|
17
18
|
localeCode: PropTypes.Requireable<string>;
|
|
@@ -23,6 +24,7 @@ declare class YearAndMonth extends BaseComponent<YearAndMonthProps, YearAndMonth
|
|
|
23
24
|
presetPosition: PropTypes.Requireable<"left" | "top" | "right" | "bottom">;
|
|
24
25
|
renderQuickControls: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
25
26
|
renderDateInput: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
27
|
+
type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "monthRange" | "dateTimeRange">;
|
|
26
28
|
};
|
|
27
29
|
static defaultProps: {
|
|
28
30
|
disabledDate: {
|
|
@@ -33,6 +35,7 @@ declare class YearAndMonth extends BaseComponent<YearAndMonthProps, YearAndMonth
|
|
|
33
35
|
yearCycled: boolean;
|
|
34
36
|
noBackBtn: boolean;
|
|
35
37
|
onSelect: (...args: any[]) => void;
|
|
38
|
+
type: string;
|
|
36
39
|
};
|
|
37
40
|
foundation: YearAndMonthFoundation;
|
|
38
41
|
yearRef: React.RefObject<ScrollItem<YearScrollItem>>;
|
|
@@ -40,12 +43,13 @@ declare class YearAndMonth extends BaseComponent<YearAndMonthProps, YearAndMonth
|
|
|
40
43
|
constructor(props: YearAndMonthProps);
|
|
41
44
|
get adapter(): YearAndMonthAdapter;
|
|
42
45
|
static getDerivedStateFromProps(props: YearAndMonthProps, state: YearAndMonthState): Partial<YearAndMonthFoundationState>;
|
|
43
|
-
renderColYear(): JSX.Element;
|
|
44
|
-
selectYear: (item: YearScrollItem) => void;
|
|
45
|
-
selectMonth: (item: MonthScrollItem) => void;
|
|
46
|
+
renderColYear(panelType: PanelType): JSX.Element;
|
|
47
|
+
selectYear: (item: YearScrollItem, panelType?: PanelType) => void;
|
|
48
|
+
selectMonth: (item: MonthScrollItem, panelType?: PanelType) => void;
|
|
46
49
|
reselect: () => void;
|
|
47
|
-
renderColMonth(): JSX.Element;
|
|
50
|
+
renderColMonth(panelType: PanelType): JSX.Element;
|
|
48
51
|
backToMain: React.MouseEventHandler<HTMLButtonElement>;
|
|
52
|
+
renderPanel(panelType: PanelType): JSX.Element;
|
|
49
53
|
render(): JSX.Element;
|
|
50
54
|
}
|
|
51
55
|
export default YearAndMonth;
|