UNPKG

3.41 kBJavaScriptView Raw
1import _extends from 'babel-runtime/helpers/extends';
2import _typeof from 'babel-runtime/helpers/typeof';
3import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';
4
5var _MODE2FORMAT;
6
7import React from 'react';
8import ConfigProvider from '../config-provider';
9import Picker from './picker';
10import { DATE_PICKER_MODE } from './constant';
11
12var DATE = DATE_PICKER_MODE.DATE,
13 WEEK = DATE_PICKER_MODE.WEEK,
14 MONTH = DATE_PICKER_MODE.MONTH,
15 QUARTER = DATE_PICKER_MODE.QUARTER,
16 YEAR = DATE_PICKER_MODE.YEAR;
17
18var MODE2FORMAT = (_MODE2FORMAT = {}, _MODE2FORMAT[DATE] = 'YYYY-MM-DD', _MODE2FORMAT[WEEK] = 'YYYY-wo', _MODE2FORMAT[MONTH] = 'YYYY-MM', _MODE2FORMAT[QUARTER] = 'YYYY-[Q]Q', _MODE2FORMAT[YEAR] = 'YYYY', _MODE2FORMAT);
19
20/* istanbul ignore next */
21var transform = function transform(props, deprecated) {
22 var footerRender = props.footerRender,
23 onVisibleMonthChange = props.onVisibleMonthChange,
24 defaultVisibleMonth = props.defaultVisibleMonth,
25 ranges = props.ranges,
26 newProps = _objectWithoutProperties(props, ['footerRender', 'onVisibleMonthChange', 'defaultVisibleMonth', 'ranges']);
27
28 var mode = props.mode || DATE;
29
30 if ('footerRender' in props) {
31 deprecated('footerRender', 'extraFooterRender', 'DatePicker');
32 newProps.extraFooterRender = footerRender;
33 }
34
35 if (onVisibleMonthChange) {
36 deprecated('onVisibleMonthChange', 'onPanelChange', 'DatePicker');
37 newProps.onPanelChange = onVisibleMonthChange;
38 }
39
40 if (defaultVisibleMonth) {
41 deprecated('defaultVisibleMonth', 'defaultPanelValue', 'DatePicker');
42 newProps.defaultPanelValue = onVisibleMonthChange;
43 }
44
45 if ('ranges' in props) {
46 deprecated('ranges', 'preset: PT.oneOfType([PT.array, PT.object])', 'DatePicker');
47 newProps.preset = ranges;
48 }
49
50 if ([WEEK, MONTH, QUARTER, YEAR].includes(mode)) {
51 delete newProps.showTime;
52 } else if (_typeof(props.showTime) === 'object') {
53 deprecated('showTime: object', 'showTime && timePanelProps', 'DatePicker');
54 newProps.timePanelProps = props.showTime;
55 newProps.showTime = true;
56 }
57
58 if (!newProps.format) {
59 newProps.format = MODE2FORMAT[mode] + (newProps.showTime ? ' HH:mm:ss' : '');
60 }
61
62 return newProps;
63};
64
65var ConfigPicker = ConfigProvider.config(Picker, {
66 componentName: 'DatePicker2',
67 transform: transform
68});
69var generatePicker = function generatePicker(mode) {
70 return React.forwardRef(function (props, ref) {
71 return React.createElement(ConfigPicker, _extends({ ref: ref }, props, { mode: mode }));
72 });
73};
74
75var DatePicker2 = generatePicker();
76DatePicker2.displayName = 'DatePicker2';
77
78DatePicker2.MonthPicker = generatePicker(MONTH);
79DatePicker2.MonthPicker.displayName = 'MonthPicker2';
80
81DatePicker2.YearPicker = generatePicker(YEAR);
82DatePicker2.YearPicker.displayName = 'YearPicker2';
83
84DatePicker2.WeekPicker = generatePicker(WEEK);
85DatePicker2.WeekPicker.displayName = 'WeekPicker2';
86
87DatePicker2.QuarterPicker = generatePicker(QUARTER);
88DatePicker2.QuarterPicker.displayName = 'QuarterPicker2';
89
90DatePicker2.RangePicker = React.forwardRef(function (props, ref) {
91 return React.createElement(ConfigPicker, _extends({ ref: ref }, props, { type: 'range' }));
92});
93DatePicker2.RangePicker.displayName = 'RangePicker2';
94
95export default DatePicker2;
\No newline at end of file