acud 1.2.2 → 1.2.4
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/acud.css +5120 -7531
- package/dist/acud.css.map +1 -1
- package/dist/acud.js +7145 -447
- package/dist/acud.js.map +1 -1
- package/dist/acud.min.css +1 -1
- package/dist/acud.min.css.map +1 -1
- package/dist/acud.min.js +9 -11
- package/dist/acud.min.js.map +1 -1
- package/es/calendar/Header.d.ts +17 -0
- package/es/calendar/Header.js +157 -0
- package/es/calendar/generateCalendar.d.ts +47 -0
- package/es/calendar/generateCalendar.js +185 -0
- package/es/calendar/index.d.ts +8 -0
- package/es/calendar/index.js +4 -0
- package/es/calendar/interface.d.ts +54 -0
- package/es/calendar/interface.js +1 -0
- package/es/calendar/locale/en_US.d.ts +2 -0
- package/es/calendar/locale/en_US.js +2 -0
- package/es/calendar/locale/zh_CN.d.ts +2 -0
- package/es/calendar/locale/zh_CN.js +2 -0
- package/es/calendar/style/css.js +5 -0
- package/es/calendar/style/index.css +342 -0
- package/es/calendar/style/index.d.ts +4 -0
- package/es/calendar/style/index.js +5 -0
- package/es/calendar/style/index.less +453 -0
- package/es/calendar/style/rtl.less +5 -0
- package/es/index.d.ts +1 -0
- package/es/index.js +1 -0
- package/es/menu/ItemGroup.d.ts +10 -0
- package/es/menu/ItemGroup.js +29 -0
- package/es/menu/menu.d.ts +2 -3
- package/es/menu/menu.js +1 -2
- package/es/menu/style/index.css +17 -9
- package/es/menu/style/index.less +20 -11
- package/es/transfer/DataSource.js +6 -1
- package/lib/calendar/Header.d.ts +17 -0
- package/lib/calendar/Header.js +167 -0
- package/lib/calendar/generateCalendar.d.ts +47 -0
- package/lib/calendar/generateCalendar.js +196 -0
- package/lib/calendar/index.d.ts +8 -0
- package/lib/calendar/index.js +12 -0
- package/lib/calendar/interface.d.ts +54 -0
- package/lib/calendar/interface.js +5 -0
- package/lib/calendar/locale/en_US.d.ts +2 -0
- package/lib/calendar/locale/en_US.js +10 -0
- package/lib/calendar/locale/zh_CN.d.ts +2 -0
- package/lib/calendar/locale/zh_CN.js +10 -0
- package/lib/calendar/style/css.js +6 -0
- package/lib/calendar/style/index.css +342 -0
- package/lib/calendar/style/index.d.ts +4 -0
- package/lib/calendar/style/index.js +6 -0
- package/lib/calendar/style/index.less +453 -0
- package/lib/calendar/style/rtl.less +5 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +7 -0
- package/lib/menu/ItemGroup.d.ts +10 -0
- package/lib/menu/ItemGroup.js +40 -0
- package/lib/menu/menu.d.ts +2 -3
- package/lib/menu/menu.js +2 -3
- package/lib/menu/style/index.css +17 -9
- package/lib/menu/style/index.less +20 -11
- package/lib/style/components.less +1 -0
- package/lib/transfer/DataSource.js +6 -1
- package/package.json +2 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { GenerateConfig } from 'rc-picker/lib/generate';
|
|
3
|
+
import type { Locale } from 'rc-picker/lib/interface';
|
|
4
|
+
import type { CalendarMode } from './generateCalendar';
|
|
5
|
+
export interface CalendarHeaderProps<DateType> {
|
|
6
|
+
prefixCls: string;
|
|
7
|
+
value: DateType;
|
|
8
|
+
validRange?: [DateType, DateType];
|
|
9
|
+
generateConfig: GenerateConfig<DateType>;
|
|
10
|
+
locale: Locale;
|
|
11
|
+
mode: CalendarMode;
|
|
12
|
+
fullscreen?: boolean;
|
|
13
|
+
onChange: (date: DateType) => void;
|
|
14
|
+
onModeChange: (mode: CalendarMode) => void;
|
|
15
|
+
}
|
|
16
|
+
declare function CalendarHeader<DateType>(props: CalendarHeaderProps<DateType>): JSX.Element;
|
|
17
|
+
export default CalendarHeader;
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import classnames from 'classnames';
|
|
6
|
+
import { useContext, useMemo } from 'react';
|
|
7
|
+
import { FormItemInputContext } from '../form/context';
|
|
8
|
+
import Radio from '../radio';
|
|
9
|
+
import Select from '../select';
|
|
10
|
+
var Button = Radio.Button;
|
|
11
|
+
var Group = Radio.Group;
|
|
12
|
+
var YearSelectOffset = 10;
|
|
13
|
+
var YearSelectTotal = 20;
|
|
14
|
+
function YearSelect(props) {
|
|
15
|
+
var fullscreen = props.fullscreen,
|
|
16
|
+
validRange = props.validRange,
|
|
17
|
+
generateConfig = props.generateConfig,
|
|
18
|
+
locale = props.locale,
|
|
19
|
+
prefixCls = props.prefixCls,
|
|
20
|
+
value = props.value,
|
|
21
|
+
_onChange = props.onChange,
|
|
22
|
+
divRef = props.divRef;
|
|
23
|
+
var year = generateConfig.getYear(value || generateConfig.getNow());
|
|
24
|
+
var start = year - YearSelectOffset;
|
|
25
|
+
var end = start + YearSelectTotal;
|
|
26
|
+
if (validRange) {
|
|
27
|
+
start = generateConfig.getYear(validRange[0]);
|
|
28
|
+
end = generateConfig.getYear(validRange[1]) + 1;
|
|
29
|
+
}
|
|
30
|
+
var suffix = locale && locale.year === '年' ? '年' : '';
|
|
31
|
+
var options = [];
|
|
32
|
+
for (var index = start; index < end; index++) {
|
|
33
|
+
options.push({
|
|
34
|
+
label: "".concat(index).concat(suffix),
|
|
35
|
+
value: index
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return /*#__PURE__*/React.createElement(Select, {
|
|
39
|
+
size: fullscreen ? undefined : 'small',
|
|
40
|
+
options: options,
|
|
41
|
+
value: year,
|
|
42
|
+
className: "".concat(prefixCls, "-year-select"),
|
|
43
|
+
onChange: function onChange(numYear) {
|
|
44
|
+
var newDate = generateConfig.setYear(value, numYear);
|
|
45
|
+
if (validRange) {
|
|
46
|
+
var _validRange = _slicedToArray(validRange, 2),
|
|
47
|
+
startDate = _validRange[0],
|
|
48
|
+
endDate = _validRange[1];
|
|
49
|
+
var newYear = generateConfig.getYear(newDate);
|
|
50
|
+
var newMonth = generateConfig.getMonth(newDate);
|
|
51
|
+
if (newYear === generateConfig.getYear(endDate) && newMonth > generateConfig.getMonth(endDate)) {
|
|
52
|
+
newDate = generateConfig.setMonth(newDate, generateConfig.getMonth(endDate));
|
|
53
|
+
}
|
|
54
|
+
if (newYear === generateConfig.getYear(startDate) && newMonth < generateConfig.getMonth(startDate)) {
|
|
55
|
+
newDate = generateConfig.setMonth(newDate, generateConfig.getMonth(startDate));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
_onChange(newDate);
|
|
59
|
+
},
|
|
60
|
+
getPopupContainer: function getPopupContainer() {
|
|
61
|
+
return divRef.current;
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function MonthSelect(props) {
|
|
66
|
+
var prefixCls = props.prefixCls,
|
|
67
|
+
fullscreen = props.fullscreen,
|
|
68
|
+
validRange = props.validRange,
|
|
69
|
+
value = props.value,
|
|
70
|
+
generateConfig = props.generateConfig,
|
|
71
|
+
locale = props.locale,
|
|
72
|
+
_onChange2 = props.onChange,
|
|
73
|
+
divRef = props.divRef;
|
|
74
|
+
var month = generateConfig.getMonth(value || generateConfig.getNow());
|
|
75
|
+
var start = 0;
|
|
76
|
+
var end = 11;
|
|
77
|
+
if (validRange) {
|
|
78
|
+
var _validRange2 = _slicedToArray(validRange, 2),
|
|
79
|
+
rangeStart = _validRange2[0],
|
|
80
|
+
rangeEnd = _validRange2[1];
|
|
81
|
+
var currentYear = generateConfig.getYear(value);
|
|
82
|
+
if (generateConfig.getYear(rangeEnd) === currentYear) {
|
|
83
|
+
end = generateConfig.getMonth(rangeEnd);
|
|
84
|
+
}
|
|
85
|
+
if (generateConfig.getYear(rangeStart) === currentYear) {
|
|
86
|
+
start = generateConfig.getMonth(rangeStart);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
var months = locale.shortMonths || generateConfig.locale.getShortMonths(locale.locale);
|
|
90
|
+
var options = [];
|
|
91
|
+
for (var index = start; index <= end; index += 1) {
|
|
92
|
+
options.push({
|
|
93
|
+
label: months[index],
|
|
94
|
+
value: index
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
return /*#__PURE__*/React.createElement(Select, {
|
|
98
|
+
size: fullscreen ? undefined : 'small',
|
|
99
|
+
className: "".concat(prefixCls, "-month-select"),
|
|
100
|
+
value: month,
|
|
101
|
+
options: options,
|
|
102
|
+
onChange: function onChange(newMonth) {
|
|
103
|
+
_onChange2(generateConfig.setMonth(value, newMonth));
|
|
104
|
+
},
|
|
105
|
+
getPopupContainer: function getPopupContainer() {
|
|
106
|
+
return divRef.current;
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
function ModeSwitch(props) {
|
|
111
|
+
var prefixCls = props.prefixCls,
|
|
112
|
+
locale = props.locale,
|
|
113
|
+
mode = props.mode,
|
|
114
|
+
onModeChange = props.onModeChange,
|
|
115
|
+
fullscreen = props.fullscreen;
|
|
116
|
+
var groupCls = classnames("".concat(prefixCls, "-mode-switch"), _defineProperty({}, "".concat(prefixCls, "-radio-group-small"), !fullscreen));
|
|
117
|
+
return /*#__PURE__*/React.createElement(Group, {
|
|
118
|
+
onChange: function onChange(e) {
|
|
119
|
+
// @ts-ignore
|
|
120
|
+
onModeChange(e.target.value);
|
|
121
|
+
},
|
|
122
|
+
value: mode,
|
|
123
|
+
className: groupCls
|
|
124
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
125
|
+
value: "month"
|
|
126
|
+
}, locale.month), /*#__PURE__*/React.createElement(Button, {
|
|
127
|
+
value: "year"
|
|
128
|
+
}, locale.year));
|
|
129
|
+
}
|
|
130
|
+
function CalendarHeader(props) {
|
|
131
|
+
var prefixCls = props.prefixCls,
|
|
132
|
+
fullscreen = props.fullscreen,
|
|
133
|
+
mode = props.mode,
|
|
134
|
+
onChange = props.onChange,
|
|
135
|
+
onModeChange = props.onModeChange;
|
|
136
|
+
var divRef = React.useRef(null);
|
|
137
|
+
var formItemInputContext = useContext(FormItemInputContext);
|
|
138
|
+
var mergedFormItemInputContext = useMemo(function () {
|
|
139
|
+
return _extends(_extends({}, formItemInputContext), {
|
|
140
|
+
isFormItemInput: false
|
|
141
|
+
});
|
|
142
|
+
}, [formItemInputContext]);
|
|
143
|
+
var sharedProps = _extends(_extends({}, props), {
|
|
144
|
+
onChange: onChange,
|
|
145
|
+
fullscreen: fullscreen,
|
|
146
|
+
divRef: divRef
|
|
147
|
+
});
|
|
148
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
149
|
+
className: "".concat(prefixCls, "-header"),
|
|
150
|
+
ref: divRef
|
|
151
|
+
}, /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {
|
|
152
|
+
value: mergedFormItemInputContext
|
|
153
|
+
}, /*#__PURE__*/React.createElement(YearSelect, sharedProps), mode === 'month' && /*#__PURE__*/React.createElement(MonthSelect, sharedProps)), /*#__PURE__*/React.createElement(ModeSwitch, _extends({}, sharedProps, {
|
|
154
|
+
onModeChange: onModeChange
|
|
155
|
+
})));
|
|
156
|
+
}
|
|
157
|
+
export default CalendarHeader;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { GenerateConfig } from 'rc-picker/lib/generate';
|
|
2
|
+
import type { PickerPanelBaseProps as RCPickerPanelBaseProps, PickerPanelDateProps as RCPickerPanelDateProps, PickerPanelTimeProps as RCPickerPanelTimeProps } from 'rc-picker/lib/PickerPanel';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import enUS from './locale/zh_CN';
|
|
5
|
+
import 'dayjs/locale/zh-cn';
|
|
6
|
+
type InjectDefaultProps<Props> = Omit<Props, 'locale' | 'generateConfig' | 'prevIcon' | 'nextIcon' | 'superPrevIcon' | 'superNextIcon'> & {
|
|
7
|
+
locale?: typeof enUS;
|
|
8
|
+
size?: 'large' | 'default' | 'small';
|
|
9
|
+
};
|
|
10
|
+
export type PickerPanelBaseProps<DateType> = InjectDefaultProps<RCPickerPanelBaseProps<DateType>>;
|
|
11
|
+
export type PickerPanelDateProps<DateType> = InjectDefaultProps<RCPickerPanelDateProps<DateType>>;
|
|
12
|
+
export type PickerPanelTimeProps<DateType> = InjectDefaultProps<RCPickerPanelTimeProps<DateType>>;
|
|
13
|
+
export type PickerProps<DateType> = PickerPanelBaseProps<DateType> | PickerPanelDateProps<DateType> | PickerPanelTimeProps<DateType>;
|
|
14
|
+
export type CalendarMode = 'year' | 'month';
|
|
15
|
+
export type HeaderRender<DateType> = (config: {
|
|
16
|
+
value: DateType;
|
|
17
|
+
type: CalendarMode;
|
|
18
|
+
onChange: (date: DateType) => void;
|
|
19
|
+
onTypeChange: (type: CalendarMode) => void;
|
|
20
|
+
}) => React.ReactNode;
|
|
21
|
+
export interface CalendarProps<DateType> {
|
|
22
|
+
prefixCls?: string;
|
|
23
|
+
className?: string;
|
|
24
|
+
rootClassName?: string;
|
|
25
|
+
style?: React.CSSProperties;
|
|
26
|
+
locale?: typeof enUS;
|
|
27
|
+
validRange?: [DateType, DateType];
|
|
28
|
+
disabledDate?: (date: DateType) => boolean;
|
|
29
|
+
dateFullCellRender?: (date: DateType) => React.ReactNode;
|
|
30
|
+
dateCellRender?: (date: DateType) => React.ReactNode;
|
|
31
|
+
monthFullCellRender?: (date: DateType) => React.ReactNode;
|
|
32
|
+
monthCellRender?: (date: DateType) => React.ReactNode;
|
|
33
|
+
headerRender?: HeaderRender<DateType>;
|
|
34
|
+
value?: DateType;
|
|
35
|
+
defaultValue?: DateType;
|
|
36
|
+
mode?: CalendarMode;
|
|
37
|
+
fullscreen?: boolean;
|
|
38
|
+
onChange?: (date: DateType) => void;
|
|
39
|
+
onPanelChange?: (date: DateType, mode: CalendarMode) => void;
|
|
40
|
+
onSelect?: (date: DateType) => void;
|
|
41
|
+
crossDate?: Array<DateType>;
|
|
42
|
+
}
|
|
43
|
+
declare function generateCalendar<DateType>(generateConfig: GenerateConfig<DateType>): {
|
|
44
|
+
(props: CalendarProps<DateType>): JSX.Element;
|
|
45
|
+
displayName: string;
|
|
46
|
+
};
|
|
47
|
+
export default generateCalendar;
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
|
+
import classNames from 'classnames';
|
|
5
|
+
import { PickerPanel as RCPickerPanel } from 'rc-picker';
|
|
6
|
+
import useMergedState from "rc-util/es/hooks/useMergedState";
|
|
7
|
+
import * as React from 'react';
|
|
8
|
+
import { ConfigContext } from '../config-provider';
|
|
9
|
+
import LocaleReceiver from '../locale-provider/LocaleReceiver';
|
|
10
|
+
import CalendarHeader from './Header';
|
|
11
|
+
import dayjs from 'dayjs';
|
|
12
|
+
import enUS from './locale/zh_CN';
|
|
13
|
+
import 'dayjs/locale/zh-cn';
|
|
14
|
+
dayjs.locale('zh-cn');
|
|
15
|
+
function generateCalendar(generateConfig) {
|
|
16
|
+
function isSameYear(date1, date2) {
|
|
17
|
+
return date1 && date2 && generateConfig.getYear(date1) === generateConfig.getYear(date2);
|
|
18
|
+
}
|
|
19
|
+
function isSameMonth(date1, date2) {
|
|
20
|
+
return isSameYear(date1, date2) && generateConfig.getMonth(date1) === generateConfig.getMonth(date2);
|
|
21
|
+
}
|
|
22
|
+
function isSameDate(date1, date2) {
|
|
23
|
+
return isSameMonth(date1, date2) && generateConfig.getDate(date1) === generateConfig.getDate(date2);
|
|
24
|
+
}
|
|
25
|
+
function isCrossDate(crossDate, date) {
|
|
26
|
+
return crossDate && crossDate.some(function (crossDateItem) {
|
|
27
|
+
return isSameDate(crossDateItem, date);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
var Calendar = function Calendar(props) {
|
|
31
|
+
var customizePrefixCls = props.prefixCls,
|
|
32
|
+
className = props.className,
|
|
33
|
+
rootClassName = props.rootClassName,
|
|
34
|
+
style = props.style,
|
|
35
|
+
dateFullCellRender = props.dateFullCellRender,
|
|
36
|
+
dateCellRender = props.dateCellRender,
|
|
37
|
+
monthFullCellRender = props.monthFullCellRender,
|
|
38
|
+
monthCellRender = props.monthCellRender,
|
|
39
|
+
headerRender = props.headerRender,
|
|
40
|
+
value = props.value,
|
|
41
|
+
defaultValue = props.defaultValue,
|
|
42
|
+
disabledDate = props.disabledDate,
|
|
43
|
+
mode = props.mode,
|
|
44
|
+
validRange = props.validRange,
|
|
45
|
+
_props$fullscreen = props.fullscreen,
|
|
46
|
+
fullscreen = _props$fullscreen === void 0 ? true : _props$fullscreen,
|
|
47
|
+
onChange = props.onChange,
|
|
48
|
+
onPanelChange = props.onPanelChange,
|
|
49
|
+
onSelect = props.onSelect,
|
|
50
|
+
crossDate = props.crossDate;
|
|
51
|
+
var _React$useContext = React.useContext(ConfigContext),
|
|
52
|
+
getPrefixCls = _React$useContext.getPrefixCls,
|
|
53
|
+
direction = _React$useContext.direction;
|
|
54
|
+
var prefixCls = getPrefixCls('picker', customizePrefixCls);
|
|
55
|
+
var calendarPrefixCls = "".concat(prefixCls, "-calendar");
|
|
56
|
+
var today = generateConfig.getNow();
|
|
57
|
+
// ====================== State =======================
|
|
58
|
+
// Value
|
|
59
|
+
var _useMergedState = useMergedState(function () {
|
|
60
|
+
return value || generateConfig.getNow();
|
|
61
|
+
}, {
|
|
62
|
+
defaultValue: defaultValue,
|
|
63
|
+
value: value
|
|
64
|
+
}),
|
|
65
|
+
_useMergedState2 = _slicedToArray(_useMergedState, 2),
|
|
66
|
+
mergedValue = _useMergedState2[0],
|
|
67
|
+
setMergedValue = _useMergedState2[1];
|
|
68
|
+
// Mode
|
|
69
|
+
var _useMergedState3 = useMergedState('month', {
|
|
70
|
+
value: mode
|
|
71
|
+
}),
|
|
72
|
+
_useMergedState4 = _slicedToArray(_useMergedState3, 2),
|
|
73
|
+
mergedMode = _useMergedState4[0],
|
|
74
|
+
setMergedMode = _useMergedState4[1];
|
|
75
|
+
var panelMode = React.useMemo(function () {
|
|
76
|
+
return mergedMode === 'year' ? 'month' : 'date';
|
|
77
|
+
}, [mergedMode]);
|
|
78
|
+
// Disabled Date
|
|
79
|
+
var mergedDisabledDate = React.useCallback(function (date) {
|
|
80
|
+
var notInRange = validRange ? generateConfig.isAfter(validRange[0], date) || generateConfig.isAfter(date, validRange[1]) : false;
|
|
81
|
+
return notInRange || !!(disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date));
|
|
82
|
+
}, [disabledDate, validRange]);
|
|
83
|
+
// ====================== Events ======================
|
|
84
|
+
var triggerPanelChange = function triggerPanelChange(date, newMode) {
|
|
85
|
+
onPanelChange === null || onPanelChange === void 0 ? void 0 : onPanelChange(date, newMode);
|
|
86
|
+
};
|
|
87
|
+
var triggerChange = function triggerChange(date) {
|
|
88
|
+
setMergedValue(date);
|
|
89
|
+
if (!isSameDate(date, mergedValue)) {
|
|
90
|
+
// Trigger when month panel switch month
|
|
91
|
+
if (panelMode === 'date' && !isSameMonth(date, mergedValue) || panelMode === 'month' && !isSameYear(date, mergedValue)) {
|
|
92
|
+
triggerPanelChange(date, mergedMode);
|
|
93
|
+
}
|
|
94
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(date);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
var triggerModeChange = function triggerModeChange(newMode) {
|
|
98
|
+
setMergedMode(newMode);
|
|
99
|
+
triggerPanelChange(mergedValue, newMode);
|
|
100
|
+
};
|
|
101
|
+
var onInternalSelect = function onInternalSelect(date) {
|
|
102
|
+
triggerChange(date);
|
|
103
|
+
onSelect === null || onSelect === void 0 ? void 0 : onSelect(date);
|
|
104
|
+
};
|
|
105
|
+
// ====================== Render ======================
|
|
106
|
+
var _dateRender = React.useCallback(function (date) {
|
|
107
|
+
var _classNames;
|
|
108
|
+
if (dateFullCellRender) {
|
|
109
|
+
return dateFullCellRender(date);
|
|
110
|
+
}
|
|
111
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
112
|
+
className: classNames("".concat(prefixCls, "-cell-inner"), "".concat(calendarPrefixCls, "-date"), (_classNames = {}, _defineProperty(_classNames, "".concat(calendarPrefixCls, "-date-today"), isSameDate(today, date)), _defineProperty(_classNames, "".concat(calendarPrefixCls, "-date-cross"), isCrossDate(crossDate, date)), _classNames))
|
|
113
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
114
|
+
className: "".concat(calendarPrefixCls, "-date-value")
|
|
115
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
116
|
+
className: "".concat(calendarPrefixCls, "-date-value-text")
|
|
117
|
+
}, String(generateConfig.getDate(date)).padStart(2, '0'))), /*#__PURE__*/React.createElement("div", {
|
|
118
|
+
className: "".concat(calendarPrefixCls, "-date-content")
|
|
119
|
+
}, dateCellRender && dateCellRender(date)));
|
|
120
|
+
}, [dateFullCellRender, dateCellRender, mergedMode]);
|
|
121
|
+
var monthRender = React.useCallback(function (date, locale) {
|
|
122
|
+
if (monthFullCellRender) {
|
|
123
|
+
return monthFullCellRender(date);
|
|
124
|
+
}
|
|
125
|
+
var months = locale.shortMonths || generateConfig.locale.getShortMonths(locale.locale);
|
|
126
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
127
|
+
className: classNames("".concat(prefixCls, "-cell-inner"), "".concat(calendarPrefixCls, "-date"), _defineProperty({}, "".concat(calendarPrefixCls, "-date-today"), isSameMonth(today, date)))
|
|
128
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
129
|
+
className: "".concat(calendarPrefixCls, "-date-value")
|
|
130
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
131
|
+
className: "".concat(calendarPrefixCls, "-date-value-text")
|
|
132
|
+
}, months[generateConfig.getMonth(date)])), /*#__PURE__*/React.createElement("div", {
|
|
133
|
+
className: "".concat(calendarPrefixCls, "-date-content")
|
|
134
|
+
}, monthCellRender && monthCellRender(date)));
|
|
135
|
+
}, [monthFullCellRender, monthCellRender, mergedMode]);
|
|
136
|
+
var renderCalendar = function renderCalendar(contextLocale) {
|
|
137
|
+
var _classNames3;
|
|
138
|
+
var locale = _extends(_extends({}, contextLocale), props.locale || {});
|
|
139
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
140
|
+
className: classNames(calendarPrefixCls, (_classNames3 = {}, _defineProperty(_classNames3, "".concat(calendarPrefixCls, "-full"), fullscreen), _defineProperty(_classNames3, "".concat(calendarPrefixCls, "-mini"), !fullscreen), _defineProperty(_classNames3, "".concat(calendarPrefixCls, "-rtl"), direction === 'rtl'), _classNames3), className, rootClassName),
|
|
141
|
+
style: style
|
|
142
|
+
}, headerRender ? headerRender({
|
|
143
|
+
value: mergedValue,
|
|
144
|
+
type: mergedMode,
|
|
145
|
+
onChange: onInternalSelect,
|
|
146
|
+
onTypeChange: triggerModeChange
|
|
147
|
+
}) : /*#__PURE__*/React.createElement(CalendarHeader, {
|
|
148
|
+
prefixCls: calendarPrefixCls,
|
|
149
|
+
value: mergedValue,
|
|
150
|
+
generateConfig: generateConfig,
|
|
151
|
+
mode: mergedMode,
|
|
152
|
+
fullscreen: fullscreen,
|
|
153
|
+
locale: locale === null || locale === void 0 ? void 0 : locale.lang,
|
|
154
|
+
validRange: validRange,
|
|
155
|
+
onChange: onInternalSelect,
|
|
156
|
+
onModeChange: triggerModeChange
|
|
157
|
+
}), /*#__PURE__*/React.createElement(RCPickerPanel, {
|
|
158
|
+
value: mergedValue,
|
|
159
|
+
prefixCls: prefixCls,
|
|
160
|
+
locale: locale === null || locale === void 0 ? void 0 : locale.lang,
|
|
161
|
+
generateConfig: generateConfig,
|
|
162
|
+
dateRender: function dateRender(date) {
|
|
163
|
+
return _dateRender(date);
|
|
164
|
+
},
|
|
165
|
+
monthCellRender: function monthCellRender(date) {
|
|
166
|
+
return monthRender(date, locale === null || locale === void 0 ? void 0 : locale.lang);
|
|
167
|
+
},
|
|
168
|
+
onSelect: onInternalSelect,
|
|
169
|
+
mode: panelMode,
|
|
170
|
+
picker: panelMode,
|
|
171
|
+
disabledDate: mergedDisabledDate,
|
|
172
|
+
hideHeader: true
|
|
173
|
+
}));
|
|
174
|
+
};
|
|
175
|
+
return /*#__PURE__*/React.createElement(LocaleReceiver, {
|
|
176
|
+
componentName: "Calendar",
|
|
177
|
+
defaultLocale: enUS
|
|
178
|
+
}, renderCalendar);
|
|
179
|
+
};
|
|
180
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
181
|
+
Calendar.displayName = 'Calendar';
|
|
182
|
+
}
|
|
183
|
+
return Calendar;
|
|
184
|
+
}
|
|
185
|
+
export default generateCalendar;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export type AdditionalPickerLocaleLangProps = {
|
|
2
|
+
placeholder: string;
|
|
3
|
+
yearPlaceholder?: string;
|
|
4
|
+
quarterPlaceholder?: string;
|
|
5
|
+
monthPlaceholder?: string;
|
|
6
|
+
weekPlaceholder?: string;
|
|
7
|
+
rangeYearPlaceholder?: [string, string];
|
|
8
|
+
rangeMonthPlaceholder?: [string, string];
|
|
9
|
+
rangeWeekPlaceholder?: [string, string];
|
|
10
|
+
rangePlaceholder?: [string, string];
|
|
11
|
+
};
|
|
12
|
+
export type AdditionalPickerLocaleProps = {
|
|
13
|
+
dateFormat?: string;
|
|
14
|
+
dateTimeFormat?: string;
|
|
15
|
+
weekFormat?: string;
|
|
16
|
+
monthFormat?: string;
|
|
17
|
+
};
|
|
18
|
+
export type Locale = {
|
|
19
|
+
locale: string;
|
|
20
|
+
/** Display month before year in date panel header */
|
|
21
|
+
monthBeforeYear?: boolean;
|
|
22
|
+
yearFormat: string;
|
|
23
|
+
monthFormat?: string;
|
|
24
|
+
quarterFormat?: string;
|
|
25
|
+
today: string;
|
|
26
|
+
now: string;
|
|
27
|
+
backToToday: string;
|
|
28
|
+
ok: string;
|
|
29
|
+
timeSelect: string;
|
|
30
|
+
dateSelect: string;
|
|
31
|
+
weekSelect?: string;
|
|
32
|
+
clear: string;
|
|
33
|
+
month: string;
|
|
34
|
+
year: string;
|
|
35
|
+
previousMonth: string;
|
|
36
|
+
nextMonth: string;
|
|
37
|
+
monthSelect: string;
|
|
38
|
+
yearSelect: string;
|
|
39
|
+
decadeSelect: string;
|
|
40
|
+
dayFormat: string;
|
|
41
|
+
dateFormat: string;
|
|
42
|
+
dateTimeFormat: string;
|
|
43
|
+
previousYear: string;
|
|
44
|
+
nextYear: string;
|
|
45
|
+
previousDecade: string;
|
|
46
|
+
nextDecade: string;
|
|
47
|
+
previousCentury: string;
|
|
48
|
+
nextCentury: string;
|
|
49
|
+
shortWeekDays?: string[];
|
|
50
|
+
shortMonths?: string[];
|
|
51
|
+
};
|
|
52
|
+
export type PickerLocale = {
|
|
53
|
+
lang: Locale & AdditionalPickerLocaleLangProps;
|
|
54
|
+
} & AdditionalPickerLocaleProps;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|