@seafile/seafile-calendar 0.0.30-beta.2 → 0.0.30-beta.3

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 (167) hide show
  1. package/assets/index.css +1177 -0
  2. package/dist/rc-calendar.css +1179 -0
  3. package/dist/rc-calendar.css.map +1 -0
  4. package/dist/rc-calendar.js +7500 -0
  5. package/dist/rc-calendar.js.map +1 -0
  6. package/dist/rc-calendar.min.css +1179 -0
  7. package/dist/rc-calendar.min.css.map +1 -0
  8. package/dist/rc-calendar.min.js +1 -0
  9. package/es/Calendar.js +454 -0
  10. package/es/FullCalendar.js +182 -0
  11. package/es/MonthCalendar.js +135 -0
  12. package/es/Picker.js +245 -0
  13. package/es/RangeCalendar.js +876 -0
  14. package/es/calendar/CalendarFooter.js +93 -0
  15. package/es/calendar/CalendarHeader.js +257 -0
  16. package/es/calendar/CalendarRightPanel.js +135 -0
  17. package/es/calendar/OkButton.js +22 -0
  18. package/es/calendar/TimePickerButton.js +28 -0
  19. package/es/calendar/TodayButton.js +28 -0
  20. package/es/date/DateConstants.js +19 -0
  21. package/es/date/DateInput.js +444 -0
  22. package/es/date/DateTBody.js +280 -0
  23. package/es/date/DateTHead.js +86 -0
  24. package/es/date/DateTable.js +32 -0
  25. package/es/decade/DecadePanel.js +181 -0
  26. package/es/full-calendar/CalendarHeader.js +180 -0
  27. package/es/index.js +3 -0
  28. package/es/locale/ar_EG.js +27 -0
  29. package/es/locale/bg_BG.js +27 -0
  30. package/es/locale/ca_ES.js +27 -0
  31. package/es/locale/cs_CZ.js +27 -0
  32. package/es/locale/da_DK.js +27 -0
  33. package/es/locale/de_DE.js +27 -0
  34. package/es/locale/el_GR.js +27 -0
  35. package/es/locale/en_GB.js +27 -0
  36. package/es/locale/en_US.js +28 -0
  37. package/es/locale/es_ES.js +27 -0
  38. package/es/locale/et_EE.js +27 -0
  39. package/es/locale/fa_IR.js +27 -0
  40. package/es/locale/fi_FI.js +27 -0
  41. package/es/locale/fr_BE.js +27 -0
  42. package/es/locale/fr_FR.js +27 -0
  43. package/es/locale/he_IL.js +28 -0
  44. package/es/locale/hi_IN.js +28 -0
  45. package/es/locale/hr_HR.js +28 -0
  46. package/es/locale/hu_HU.js +27 -0
  47. package/es/locale/id_ID.js +28 -0
  48. package/es/locale/is_IS.js +27 -0
  49. package/es/locale/it_IT.js +27 -0
  50. package/es/locale/ja_JP.js +26 -0
  51. package/es/locale/kn_IN.js +28 -0
  52. package/es/locale/ko_KR.js +27 -0
  53. package/es/locale/ku_IQ.js +27 -0
  54. package/es/locale/lv_LV.js +27 -0
  55. package/es/locale/mm_MM.js +28 -0
  56. package/es/locale/mn_MN.js +28 -0
  57. package/es/locale/ms_MY.js +27 -0
  58. package/es/locale/nb_NO.js +27 -0
  59. package/es/locale/nl_BE.js +27 -0
  60. package/es/locale/nl_NL.js +27 -0
  61. package/es/locale/pl_PL.js +27 -0
  62. package/es/locale/pt_BR.js +27 -0
  63. package/es/locale/pt_PT.js +27 -0
  64. package/es/locale/ro_RO.js +28 -0
  65. package/es/locale/ru_RU.js +27 -0
  66. package/es/locale/sk_SK.js +27 -0
  67. package/es/locale/sl_SI.js +27 -0
  68. package/es/locale/sr_RS.js +27 -0
  69. package/es/locale/sv_SE.js +27 -0
  70. package/es/locale/ta_IN.js +28 -0
  71. package/es/locale/th_TH.js +27 -0
  72. package/es/locale/tr_TR.js +27 -0
  73. package/es/locale/ug_CN.js +26 -0
  74. package/es/locale/uk_UA.js +27 -0
  75. package/es/locale/vi_VN.js +28 -0
  76. package/es/locale/zh_CN.js +27 -0
  77. package/es/locale/zh_TW.js +26 -0
  78. package/es/mixin/CalendarMixin.js +123 -0
  79. package/es/mixin/CommonMixin.js +85 -0
  80. package/es/month/MonthPanel.js +154 -0
  81. package/es/month/MonthTable.js +156 -0
  82. package/es/picker/placements.js +35 -0
  83. package/es/range-calendar/CalendarPart.js +151 -0
  84. package/es/util/dayjs.js +17 -0
  85. package/es/util/index.js +272 -0
  86. package/es/util/toTime.js +21 -0
  87. package/es/year/YearPanel.js +194 -0
  88. package/lib/Calendar.js +517 -0
  89. package/lib/FullCalendar.js +221 -0
  90. package/lib/MonthCalendar.js +172 -0
  91. package/lib/Picker.js +282 -0
  92. package/lib/RangeCalendar.js +925 -0
  93. package/lib/calendar/CalendarFooter.js +134 -0
  94. package/lib/calendar/CalendarHeader.js +290 -0
  95. package/lib/calendar/CalendarRightPanel.js +160 -0
  96. package/lib/calendar/OkButton.js +32 -0
  97. package/lib/calendar/TimePickerButton.js +41 -0
  98. package/lib/calendar/TodayButton.js +39 -0
  99. package/lib/date/DateConstants.js +23 -0
  100. package/lib/date/DateInput.js +476 -0
  101. package/lib/date/DateTBody.js +307 -0
  102. package/lib/date/DateTHead.js +106 -0
  103. package/lib/date/DateTable.js +54 -0
  104. package/lib/decade/DecadePanel.js +207 -0
  105. package/lib/full-calendar/CalendarHeader.js +201 -0
  106. package/lib/index.js +12 -0
  107. package/lib/locale/ar_EG.js +31 -0
  108. package/lib/locale/bg_BG.js +31 -0
  109. package/lib/locale/ca_ES.js +31 -0
  110. package/lib/locale/cs_CZ.js +31 -0
  111. package/lib/locale/da_DK.js +31 -0
  112. package/lib/locale/de_DE.js +31 -0
  113. package/lib/locale/el_GR.js +31 -0
  114. package/lib/locale/en_GB.js +31 -0
  115. package/lib/locale/en_US.js +32 -0
  116. package/lib/locale/es_ES.js +31 -0
  117. package/lib/locale/et_EE.js +31 -0
  118. package/lib/locale/fa_IR.js +31 -0
  119. package/lib/locale/fi_FI.js +31 -0
  120. package/lib/locale/fr_BE.js +31 -0
  121. package/lib/locale/fr_FR.js +31 -0
  122. package/lib/locale/he_IL.js +32 -0
  123. package/lib/locale/hi_IN.js +32 -0
  124. package/lib/locale/hr_HR.js +32 -0
  125. package/lib/locale/hu_HU.js +31 -0
  126. package/lib/locale/id_ID.js +32 -0
  127. package/lib/locale/is_IS.js +31 -0
  128. package/lib/locale/it_IT.js +31 -0
  129. package/lib/locale/ja_JP.js +30 -0
  130. package/lib/locale/kn_IN.js +32 -0
  131. package/lib/locale/ko_KR.js +31 -0
  132. package/lib/locale/ku_IQ.js +31 -0
  133. package/lib/locale/lv_LV.js +31 -0
  134. package/lib/locale/mm_MM.js +32 -0
  135. package/lib/locale/mn_MN.js +32 -0
  136. package/lib/locale/ms_MY.js +31 -0
  137. package/lib/locale/nb_NO.js +31 -0
  138. package/lib/locale/nl_BE.js +31 -0
  139. package/lib/locale/nl_NL.js +31 -0
  140. package/lib/locale/pl_PL.js +31 -0
  141. package/lib/locale/pt_BR.js +31 -0
  142. package/lib/locale/pt_PT.js +31 -0
  143. package/lib/locale/ro_RO.js +32 -0
  144. package/lib/locale/ru_RU.js +31 -0
  145. package/lib/locale/sk_SK.js +31 -0
  146. package/lib/locale/sl_SI.js +31 -0
  147. package/lib/locale/sr_RS.js +31 -0
  148. package/lib/locale/sv_SE.js +31 -0
  149. package/lib/locale/ta_IN.js +32 -0
  150. package/lib/locale/th_TH.js +31 -0
  151. package/lib/locale/tr_TR.js +31 -0
  152. package/lib/locale/ug_CN.js +30 -0
  153. package/lib/locale/uk_UA.js +31 -0
  154. package/lib/locale/vi_VN.js +32 -0
  155. package/lib/locale/zh_CN.js +31 -0
  156. package/lib/locale/zh_TW.js +30 -0
  157. package/lib/mixin/CalendarMixin.js +153 -0
  158. package/lib/mixin/CommonMixin.js +106 -0
  159. package/lib/month/MonthPanel.js +179 -0
  160. package/lib/month/MonthTable.js +181 -0
  161. package/lib/picker/placements.js +39 -0
  162. package/lib/range-calendar/CalendarPart.js +184 -0
  163. package/lib/util/dayjs.js +46 -0
  164. package/lib/util/index.js +307 -0
  165. package/lib/util/toTime.js +28 -0
  166. package/lib/year/YearPanel.js +219 -0
  167. package/package.json +2 -1
@@ -0,0 +1,307 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
6
+
7
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
8
+
9
+ var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
10
+
11
+ var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
12
+
13
+ var _inherits2 = require('babel-runtime/helpers/inherits');
14
+
15
+ var _inherits3 = _interopRequireDefault(_inherits2);
16
+
17
+ var _react = require('react');
18
+
19
+ var _react2 = _interopRequireDefault(_react);
20
+
21
+ var _propTypes = require('prop-types');
22
+
23
+ var _propTypes2 = _interopRequireDefault(_propTypes);
24
+
25
+ var _classnames = require('classnames');
26
+
27
+ var _classnames2 = _interopRequireDefault(_classnames);
28
+
29
+ var _DateConstants = require('./DateConstants');
30
+
31
+ var _DateConstants2 = _interopRequireDefault(_DateConstants);
32
+
33
+ var _util = require('../util/');
34
+
35
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
36
+
37
+ var DATE_ROW_COLUMN_COUNT = _DateConstants2['default'].DATE_ROW_COLUMN_COUNT,
38
+ DAY_NAME_TO_INDEX = _DateConstants2['default'].DAY_NAME_TO_INDEX;
39
+
40
+
41
+ function isSameDay(one, two) {
42
+ return one && two && one.isSame(two, 'day');
43
+ }
44
+
45
+ function beforeCurrentMonthYear(current, today) {
46
+ if (current.year() < today.year()) {
47
+ return 1;
48
+ }
49
+ return current.year() === today.year() && current.month() < today.month();
50
+ }
51
+
52
+ function afterCurrentMonthYear(current, today) {
53
+ if (current.year() > today.year()) {
54
+ return 1;
55
+ }
56
+ return current.year() === today.year() && current.month() > today.month();
57
+ }
58
+
59
+ function getIdFromDate(date) {
60
+ return 'rc-calendar-' + date.year() + '-' + date.month() + '-' + date.date();
61
+ }
62
+
63
+ var DateTBody = function (_React$Component) {
64
+ (0, _inherits3['default'])(DateTBody, _React$Component);
65
+
66
+ function DateTBody() {
67
+ (0, _classCallCheck3['default'])(this, DateTBody);
68
+ return (0, _possibleConstructorReturn3['default'])(this, _React$Component.apply(this, arguments));
69
+ }
70
+
71
+ DateTBody.prototype.render = function render() {
72
+ var props = this.props;
73
+ var contentRender = props.contentRender,
74
+ prefixCls = props.prefixCls,
75
+ selectedValue = props.selectedValue,
76
+ value = props.value,
77
+ showWeekNumber = props.showWeekNumber,
78
+ dateRender = props.dateRender,
79
+ disabledDate = props.disabledDate,
80
+ hoverValue = props.hoverValue,
81
+ firstDayOfWeek = props.firstDayOfWeek;
82
+
83
+ var iIndex = void 0;
84
+ var jIndex = void 0;
85
+ var current = void 0;
86
+ var dateTable = [];
87
+ var today = (0, _util.getTodayTime)(value);
88
+ var cellClass = prefixCls + '-cell';
89
+ var weekNumberCellClass = prefixCls + '-week-number-cell';
90
+ var dateClass = prefixCls + '-date';
91
+ var todayClass = prefixCls + '-today';
92
+ var selectedClass = prefixCls + '-selected-day';
93
+ var selectedDateClass = prefixCls + '-selected-date'; // do not move with mouse operation
94
+ var selectedStartDateClass = prefixCls + '-selected-start-date';
95
+ var selectedEndDateClass = prefixCls + '-selected-end-date';
96
+ var inRangeClass = prefixCls + '-in-range-cell';
97
+ var lastMonthDayClass = prefixCls + '-last-month-cell';
98
+ var nextMonthDayClass = prefixCls + '-next-month-btn-day';
99
+ var disabledClass = prefixCls + '-disabled-cell';
100
+ var firstDisableClass = prefixCls + '-disabled-cell-first-of-row';
101
+ var lastDisableClass = prefixCls + '-disabled-cell-last-of-row';
102
+ var lastDayOfMonthClass = prefixCls + '-last-day-of-month';
103
+ var month1 = value.clone();
104
+ month1 = month1.date(1);
105
+ var day = month1.day();
106
+ var firstDayName = typeof firstDayOfWeek === 'string' ? firstDayOfWeek[0].toUpperCase() + firstDayOfWeek.slice(1) : 'Sunday';
107
+ var firstDayIndex = DAY_NAME_TO_INDEX[firstDayName] ? DAY_NAME_TO_INDEX[firstDayName] : 0;
108
+ var lastMonthDiffDay = (day + 7 - firstDayIndex) % 7;
109
+ // calculate last month
110
+ var lastMonth1 = month1.clone();
111
+ lastMonth1 = lastMonth1.add(0 - lastMonthDiffDay, 'days');
112
+ var passed = 0;
113
+
114
+ for (iIndex = 0; iIndex < DATE_ROW_COLUMN_COUNT.DATE_ROW_COUNT; iIndex++) {
115
+ for (jIndex = 0; jIndex < DATE_ROW_COLUMN_COUNT.DATE_COL_COUNT; jIndex++) {
116
+ current = lastMonth1;
117
+ if (passed) {
118
+ current = current.clone();
119
+ current = current.add(passed, 'days');
120
+ }
121
+ dateTable.push(current);
122
+ passed++;
123
+ }
124
+ }
125
+ var tableHtml = [];
126
+ passed = 0;
127
+
128
+ for (iIndex = 0; iIndex < DATE_ROW_COLUMN_COUNT.DATE_ROW_COUNT; iIndex++) {
129
+ var _cx;
130
+
131
+ var isCurrentWeek = void 0;
132
+ var weekNumberCell = void 0;
133
+ var isActiveWeek = false;
134
+ var dateCells = [];
135
+ if (showWeekNumber) {
136
+ weekNumberCell = _react2['default'].createElement(
137
+ 'td',
138
+ {
139
+ key: dateTable[passed].week(),
140
+ role: 'gridcell',
141
+ className: weekNumberCellClass
142
+ },
143
+ dateTable[passed].week()
144
+ );
145
+ }
146
+ for (jIndex = 0; jIndex < DATE_ROW_COLUMN_COUNT.DATE_COL_COUNT; jIndex++) {
147
+ var next = null;
148
+ var last = null;
149
+ current = dateTable[passed];
150
+ if (jIndex < DATE_ROW_COLUMN_COUNT.DATE_COL_COUNT - 1) {
151
+ next = dateTable[passed + 1];
152
+ }
153
+ if (jIndex > 0) {
154
+ last = dateTable[passed - 1];
155
+ }
156
+ var cls = cellClass;
157
+ var disabled = false;
158
+ var selected = false;
159
+
160
+ if (isSameDay(current, today)) {
161
+ cls += ' ' + todayClass;
162
+ isCurrentWeek = true;
163
+ }
164
+
165
+ var isBeforeCurrentMonthYear = beforeCurrentMonthYear(current, value);
166
+ var isAfterCurrentMonthYear = afterCurrentMonthYear(current, value);
167
+
168
+ if (selectedValue && Array.isArray(selectedValue)) {
169
+ var rangeValue = hoverValue.length ? hoverValue : selectedValue;
170
+ if (!isBeforeCurrentMonthYear && !isAfterCurrentMonthYear) {
171
+ var startValue = rangeValue[0];
172
+ var endValue = rangeValue[1];
173
+ if (startValue) {
174
+ if (isSameDay(current, startValue)) {
175
+ selected = true;
176
+ isActiveWeek = true;
177
+ cls += ' ' + selectedStartDateClass;
178
+ }
179
+ }
180
+ if (startValue || endValue) {
181
+ if (isSameDay(current, endValue)) {
182
+ selected = true;
183
+ isActiveWeek = true;
184
+ cls += ' ' + selectedEndDateClass;
185
+ } else if ((startValue === null || startValue === undefined) && current.isBefore(endValue, 'day')) {
186
+ cls += ' ' + inRangeClass;
187
+ } else if ((endValue === null || endValue === undefined) && current.isAfter(startValue, 'day')) {
188
+ cls += ' ' + inRangeClass;
189
+ } else if (current.isAfter(startValue, 'day') && current.isBefore(endValue, 'day')) {
190
+ cls += ' ' + inRangeClass;
191
+ }
192
+ }
193
+ }
194
+ } else if (isSameDay(current, value)) {
195
+ // keyboard change value, highlight works
196
+ selected = true;
197
+ isActiveWeek = true;
198
+ }
199
+
200
+ if (isSameDay(current, selectedValue)) {
201
+ cls += ' ' + selectedDateClass;
202
+ }
203
+
204
+ if (isBeforeCurrentMonthYear) {
205
+ cls += ' ' + lastMonthDayClass;
206
+ }
207
+
208
+ if (isAfterCurrentMonthYear) {
209
+ cls += ' ' + nextMonthDayClass;
210
+ }
211
+
212
+ if (current.clone().endOf('month').date() === current.date()) {
213
+ cls += ' ' + lastDayOfMonthClass;
214
+ }
215
+
216
+ if (disabledDate) {
217
+ if (disabledDate(current, value)) {
218
+ disabled = true;
219
+
220
+ if (!last || !disabledDate(last, value)) {
221
+ cls += ' ' + firstDisableClass;
222
+ }
223
+
224
+ if (!next || !disabledDate(next, value)) {
225
+ cls += ' ' + lastDisableClass;
226
+ }
227
+ }
228
+ }
229
+
230
+ if (selected) {
231
+ cls += ' ' + selectedClass;
232
+ }
233
+
234
+ if (disabled) {
235
+ cls += ' ' + disabledClass;
236
+ }
237
+
238
+ var dateHtml = void 0;
239
+ if (dateRender) {
240
+ dateHtml = dateRender(current, value);
241
+ } else {
242
+ var content = contentRender ? contentRender(current, value) : current.date();
243
+ dateHtml = _react2['default'].createElement(
244
+ 'div',
245
+ {
246
+ key: getIdFromDate(current),
247
+ className: dateClass,
248
+ 'aria-selected': selected,
249
+ 'aria-disabled': disabled
250
+ },
251
+ content
252
+ );
253
+ }
254
+
255
+ dateCells.push(_react2['default'].createElement(
256
+ 'td',
257
+ {
258
+ key: passed,
259
+ onClick: disabled ? undefined : props.onSelect.bind(null, current),
260
+ onMouseEnter: disabled ? undefined : props.onDayHover && props.onDayHover.bind(null, current) || undefined,
261
+ role: 'gridcell',
262
+ title: (0, _util.getTitleString)(current),
263
+ className: cls
264
+ },
265
+ dateHtml
266
+ ));
267
+
268
+ passed++;
269
+ }
270
+
271
+ tableHtml.push(_react2['default'].createElement(
272
+ 'tr',
273
+ {
274
+ key: iIndex,
275
+ role: 'row',
276
+ className: (0, _classnames2['default'])((_cx = {}, _cx[prefixCls + '-current-week'] = isCurrentWeek, _cx[prefixCls + '-active-week'] = isActiveWeek, _cx))
277
+ },
278
+ weekNumberCell,
279
+ dateCells
280
+ ));
281
+ }
282
+ return _react2['default'].createElement(
283
+ 'tbody',
284
+ { className: prefixCls + '-tbody' },
285
+ tableHtml
286
+ );
287
+ };
288
+
289
+ return DateTBody;
290
+ }(_react2['default'].Component);
291
+
292
+ DateTBody.propTypes = {
293
+ contentRender: _propTypes2['default'].func,
294
+ dateRender: _propTypes2['default'].func,
295
+ disabledDate: _propTypes2['default'].func,
296
+ prefixCls: _propTypes2['default'].string,
297
+ selectedValue: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].arrayOf(_propTypes2['default'].object)]),
298
+ value: _propTypes2['default'].object,
299
+ hoverValue: _propTypes2['default'].any,
300
+ showWeekNumber: _propTypes2['default'].bool,
301
+ firstDayOfWeek: _propTypes2['default'].string
302
+ };
303
+ DateTBody.defaultProps = {
304
+ hoverValue: []
305
+ };
306
+ exports['default'] = DateTBody;
307
+ module.exports = exports['default'];
@@ -0,0 +1,106 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
6
+
7
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
8
+
9
+ var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
10
+
11
+ var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
12
+
13
+ var _inherits2 = require('babel-runtime/helpers/inherits');
14
+
15
+ var _inherits3 = _interopRequireDefault(_inherits2);
16
+
17
+ var _react = require('react');
18
+
19
+ var _react2 = _interopRequireDefault(_react);
20
+
21
+ var _DateConstants = require('./DateConstants');
22
+
23
+ var _DateConstants2 = _interopRequireDefault(_DateConstants);
24
+
25
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
26
+
27
+ var DAY_NAME_TO_INDEX = _DateConstants2['default'].DAY_NAME_TO_INDEX,
28
+ DATE_ROW_COLUMN_COUNT = _DateConstants2['default'].DATE_ROW_COLUMN_COUNT;
29
+
30
+ var DateTHead = function (_React$Component) {
31
+ (0, _inherits3['default'])(DateTHead, _React$Component);
32
+
33
+ function DateTHead() {
34
+ (0, _classCallCheck3['default'])(this, DateTHead);
35
+ return (0, _possibleConstructorReturn3['default'])(this, _React$Component.apply(this, arguments));
36
+ }
37
+
38
+ DateTHead.prototype.render = function render() {
39
+ var props = this.props;
40
+ var value = props.value;
41
+ var localeData = value.localeData();
42
+ var prefixCls = props.prefixCls;
43
+ var veryShortWeekdays = [];
44
+ var weekDays = [];
45
+
46
+ var allWeekdaysMin = localeData.weekdaysMin();
47
+ var allWeekdaysShort = localeData.weekdaysShort();
48
+
49
+ var firstDayName = typeof props.firstDayOfWeek === 'string' ? props.firstDayOfWeek[0].toUpperCase() + props.firstDayOfWeek.slice(1) : 'Sunday';
50
+ var firstDay = DAY_NAME_TO_INDEX[firstDayName] ? DAY_NAME_TO_INDEX[firstDayName] : 0;
51
+
52
+ var showWeekNumberEl = void 0;
53
+ var dateColumnCount = DATE_ROW_COLUMN_COUNT.DATE_COL_COUNT;
54
+ for (var dateColIndex = 0; dateColIndex < dateColumnCount; dateColIndex++) {
55
+ var index = (firstDay + dateColIndex) % dateColumnCount;
56
+ veryShortWeekdays[dateColIndex] = allWeekdaysMin[index];
57
+ weekDays[dateColIndex] = allWeekdaysShort[index];
58
+ }
59
+
60
+ if (props.showWeekNumber) {
61
+ showWeekNumberEl = _react2['default'].createElement(
62
+ 'th',
63
+ {
64
+ role: 'columnheader',
65
+ className: prefixCls + '-column-header ' + prefixCls + '-week-number-header'
66
+ },
67
+ _react2['default'].createElement(
68
+ 'span',
69
+ { className: prefixCls + '-column-header-inner' },
70
+ 'x'
71
+ )
72
+ );
73
+ }
74
+ var weekDaysEls = weekDays.map(function (day, xindex) {
75
+ return _react2['default'].createElement(
76
+ 'th',
77
+ {
78
+ key: xindex,
79
+ role: 'columnheader',
80
+ title: day,
81
+ className: prefixCls + '-column-header'
82
+ },
83
+ _react2['default'].createElement(
84
+ 'span',
85
+ { className: prefixCls + '-column-header-inner' },
86
+ veryShortWeekdays[xindex]
87
+ )
88
+ );
89
+ });
90
+ return _react2['default'].createElement(
91
+ 'thead',
92
+ null,
93
+ _react2['default'].createElement(
94
+ 'tr',
95
+ { role: 'row' },
96
+ showWeekNumberEl,
97
+ weekDaysEls
98
+ )
99
+ );
100
+ };
101
+
102
+ return DateTHead;
103
+ }(_react2['default'].Component);
104
+
105
+ exports['default'] = DateTHead;
106
+ module.exports = exports['default'];
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
6
+
7
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
8
+
9
+ var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
10
+
11
+ var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
12
+
13
+ var _inherits2 = require('babel-runtime/helpers/inherits');
14
+
15
+ var _inherits3 = _interopRequireDefault(_inherits2);
16
+
17
+ var _react = require('react');
18
+
19
+ var _react2 = _interopRequireDefault(_react);
20
+
21
+ var _DateTHead = require('./DateTHead');
22
+
23
+ var _DateTHead2 = _interopRequireDefault(_DateTHead);
24
+
25
+ var _DateTBody = require('./DateTBody');
26
+
27
+ var _DateTBody2 = _interopRequireDefault(_DateTBody);
28
+
29
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
30
+
31
+ var DateTable = function (_React$Component) {
32
+ (0, _inherits3['default'])(DateTable, _React$Component);
33
+
34
+ function DateTable() {
35
+ (0, _classCallCheck3['default'])(this, DateTable);
36
+ return (0, _possibleConstructorReturn3['default'])(this, _React$Component.apply(this, arguments));
37
+ }
38
+
39
+ DateTable.prototype.render = function render() {
40
+ var props = this.props;
41
+ var prefixCls = props.prefixCls;
42
+ return _react2['default'].createElement(
43
+ 'table',
44
+ { className: prefixCls + '-table', cellSpacing: '0', role: 'grid' },
45
+ _react2['default'].createElement(_DateTHead2['default'], props),
46
+ _react2['default'].createElement(_DateTBody2['default'], props)
47
+ );
48
+ };
49
+
50
+ return DateTable;
51
+ }(_react2['default'].Component);
52
+
53
+ exports['default'] = DateTable;
54
+ module.exports = exports['default'];
@@ -0,0 +1,207 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
6
+
7
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
8
+
9
+ var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
10
+
11
+ var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
12
+
13
+ var _inherits2 = require('babel-runtime/helpers/inherits');
14
+
15
+ var _inherits3 = _interopRequireDefault(_inherits2);
16
+
17
+ var _react = require('react');
18
+
19
+ var _react2 = _interopRequireDefault(_react);
20
+
21
+ var _propTypes = require('prop-types');
22
+
23
+ var _propTypes2 = _interopRequireDefault(_propTypes);
24
+
25
+ var _classnames = require('classnames');
26
+
27
+ var _classnames2 = _interopRequireDefault(_classnames);
28
+
29
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
30
+
31
+ var ROW = 4;
32
+ var COL = 3;
33
+
34
+
35
+ function goYear(direction) {
36
+ var next = this.state.value.clone();
37
+ next = next.add(direction, 'years');
38
+ this.setState({
39
+ value: next
40
+ });
41
+ }
42
+
43
+ function chooseDecade(year, event) {
44
+ var next = this.state.value.clone();
45
+ next = next.year(year);
46
+ next = next.month(this.state.value.month());
47
+ this.props.onSelect(next);
48
+ event.preventDefault();
49
+ }
50
+
51
+ var DecadePanel = function (_React$Component) {
52
+ (0, _inherits3['default'])(DecadePanel, _React$Component);
53
+
54
+ function DecadePanel(props) {
55
+ (0, _classCallCheck3['default'])(this, DecadePanel);
56
+
57
+ var _this = (0, _possibleConstructorReturn3['default'])(this, _React$Component.call(this, props));
58
+
59
+ _this.state = {
60
+ value: props.value || props.defaultValue
61
+ };
62
+
63
+ // bind methods
64
+ _this.prefixCls = props.rootPrefixCls + '-decade-panel';
65
+ _this.nextCentury = goYear.bind(_this, 100);
66
+ _this.previousCentury = goYear.bind(_this, -100);
67
+ return _this;
68
+ }
69
+
70
+ DecadePanel.prototype.render = function render() {
71
+ var _this2 = this;
72
+
73
+ var value = this.state.value;
74
+ var _props = this.props,
75
+ locale = _props.locale,
76
+ renderFooter = _props.renderFooter;
77
+
78
+ var currentYear = value.year();
79
+ var startYear = parseInt(currentYear / 100, 10) * 100;
80
+ var preYear = startYear - 10;
81
+ var endYear = startYear + 99;
82
+ var decades = [];
83
+ var index = 0;
84
+ var prefixCls = this.prefixCls;
85
+
86
+ for (var rowIndex = 0; rowIndex < ROW; rowIndex++) {
87
+ decades[rowIndex] = [];
88
+ for (var colIndex = 0; colIndex < COL; colIndex++) {
89
+ var startDecade = preYear + index * 10;
90
+ var endDecade = preYear + index * 10 + 9;
91
+ decades[rowIndex][colIndex] = {
92
+ startDecade: startDecade,
93
+ endDecade: endDecade
94
+ };
95
+ index++;
96
+ }
97
+ }
98
+
99
+ var footer = renderFooter && renderFooter('decade');
100
+
101
+ var decadesEls = decades.map(function (row, decadeIndex) {
102
+ var tds = row.map(function (decadeData) {
103
+ var _classNameMap;
104
+
105
+ var dStartDecade = decadeData.startDecade;
106
+ var dEndDecade = decadeData.endDecade;
107
+ var isLast = dStartDecade < startYear;
108
+ var isNext = dEndDecade > endYear;
109
+ var classNameMap = (_classNameMap = {}, _classNameMap[prefixCls + '-cell'] = 1, _classNameMap[prefixCls + '-selected-cell'] = dStartDecade <= currentYear && currentYear <= dEndDecade, _classNameMap[prefixCls + '-last-century-cell'] = isLast, _classNameMap[prefixCls + '-next-century-cell'] = isNext, _classNameMap);
110
+ var content = dStartDecade + '-' + dEndDecade;
111
+ var clickHandler = void 0;
112
+ if (isLast) {
113
+ clickHandler = _this2.previousCentury;
114
+ } else if (isNext) {
115
+ clickHandler = _this2.nextCentury;
116
+ } else {
117
+ clickHandler = chooseDecade.bind(_this2, dStartDecade);
118
+ }
119
+ return _react2['default'].createElement(
120
+ 'td',
121
+ {
122
+ key: dStartDecade,
123
+ onClick: clickHandler,
124
+ role: 'gridcell',
125
+ className: (0, _classnames2['default'])(classNameMap)
126
+ },
127
+ _react2['default'].createElement(
128
+ 'a',
129
+ {
130
+ className: prefixCls + '-decade'
131
+ },
132
+ content
133
+ )
134
+ );
135
+ });
136
+ return _react2['default'].createElement(
137
+ 'tr',
138
+ { key: decadeIndex, role: 'row' },
139
+ tds
140
+ );
141
+ });
142
+
143
+ return _react2['default'].createElement(
144
+ 'div',
145
+ { className: this.prefixCls },
146
+ _react2['default'].createElement(
147
+ 'div',
148
+ { className: prefixCls + '-header' },
149
+ _react2['default'].createElement('a', {
150
+ className: prefixCls + '-prev-century-btn',
151
+ role: 'button',
152
+ onClick: this.previousCentury,
153
+ title: locale.previousCentury
154
+ }),
155
+ _react2['default'].createElement(
156
+ 'div',
157
+ { className: prefixCls + '-century' },
158
+ startYear,
159
+ '-',
160
+ endYear
161
+ ),
162
+ _react2['default'].createElement('a', {
163
+ className: prefixCls + '-next-century-btn',
164
+ role: 'button',
165
+ onClick: this.nextCentury,
166
+ title: locale.nextCentury
167
+ })
168
+ ),
169
+ _react2['default'].createElement(
170
+ 'div',
171
+ { className: prefixCls + '-body' },
172
+ _react2['default'].createElement(
173
+ 'table',
174
+ { className: prefixCls + '-table', cellSpacing: '0', role: 'grid' },
175
+ _react2['default'].createElement(
176
+ 'tbody',
177
+ { className: prefixCls + '-tbody' },
178
+ decadesEls
179
+ )
180
+ )
181
+ ),
182
+ footer && _react2['default'].createElement(
183
+ 'div',
184
+ { className: prefixCls + '-footer' },
185
+ footer
186
+ )
187
+ );
188
+ };
189
+
190
+ return DecadePanel;
191
+ }(_react2['default'].Component);
192
+
193
+ exports['default'] = DecadePanel;
194
+
195
+
196
+ DecadePanel.propTypes = {
197
+ locale: _propTypes2['default'].object,
198
+ value: _propTypes2['default'].object,
199
+ defaultValue: _propTypes2['default'].object,
200
+ rootPrefixCls: _propTypes2['default'].string,
201
+ renderFooter: _propTypes2['default'].func
202
+ };
203
+
204
+ DecadePanel.defaultProps = {
205
+ onSelect: function onSelect() {}
206
+ };
207
+ module.exports = exports['default'];