@seafile/seafile-calendar 1.0.28 → 1.0.30

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/assets/index.css CHANGED
@@ -300,51 +300,41 @@
300
300
  line-height: 1.5;
301
301
  overflow: hidden;
302
302
  /* Layout wrappers */
303
- /* Top inputs row */
304
303
  /* Date grid area */
305
304
  /* Right time panel */
306
305
  /* Footer */
307
306
  }
308
307
  .rc-calendar-with-time-panel {
309
- width: 367px;
308
+ width: 404px;
310
309
  }
311
310
  .rc-calendar-panel {
312
311
  display: -ms-flexbox;
313
312
  display: flex;
314
- -ms-flex-direction: column;
315
- flex-direction: column;
316
- }
317
- .rc-calendar-date-panel-container {
318
- display: -ms-flexbox;
319
- display: flex;
313
+ -ms-flex-align: stretch;
314
+ align-items: stretch;
320
315
  }
321
316
  .rc-calendar-date-panel {
322
317
  display: block;
323
- width: 276px;
318
+ -ms-flex: none;
319
+ flex: none;
320
+ width: 273px;
324
321
  }
325
- .rc-calendar-inputs {
322
+ .rc-calendar-date-input {
326
323
  display: -ms-flexbox;
327
324
  display: flex;
328
- -ms-flex-align: stretch;
329
- align-items: stretch;
330
- }
331
- .rc-calendar-date-input-col {
332
- -ms-flex: 1 1 auto;
333
- flex: 1 1 auto;
334
- }
335
- .rc-calendar-time-input-col {
336
- width: 89px;
337
- border-left: 1px solid var(--rc-calendar-divider-color, #eee);
325
+ -ms-flex-align: center;
326
+ align-items: center;
327
+ box-sizing: border-box;
328
+ padding: 12px 12px 0;
338
329
  }
339
- .rc-calendar-date-input,
340
330
  .rc-calendar-time-input {
341
331
  display: -ms-flexbox;
342
332
  display: flex;
343
333
  -ms-flex-align: center;
344
334
  align-items: center;
345
- height: 100%;
346
- padding: 12px 12px 0 12px;
347
- margin-bottom: 4px;
335
+ box-sizing: border-box;
336
+ padding: 12px;
337
+ border-bottom: 1px solid var(--rc-calendar-divider-color, #eee);
348
338
  }
349
339
  .rc-calendar-date-input input,
350
340
  .rc-calendar-time-input input {
@@ -368,7 +358,7 @@
368
358
  outline: none;
369
359
  }
370
360
  .rc-calendar-header {
371
- padding: 0 12px;
361
+ padding: 0 18px;
372
362
  height: 48px;
373
363
  line-height: 24px;
374
364
  text-align: center;
@@ -376,6 +366,7 @@
376
366
  -ms-user-select: none;
377
367
  user-select: none;
378
368
  -webkit-user-select: none;
369
+ margin-top: 4px;
379
370
  }
380
371
  .rc-calendar-header-nav-wrap {
381
372
  position: relative;
@@ -465,7 +456,7 @@
465
456
  left: 0;
466
457
  }
467
458
  .rc-calendar-body {
468
- padding: 0 12px;
459
+ padding: 0 12px 12px;
469
460
  height: 260px;
470
461
  }
471
462
  .rc-calendar table {
@@ -556,43 +547,53 @@
556
547
  color: var(--rc-calendar-out-range-color);
557
548
  }
558
549
  .rc-calendar-today .rc-calendar-date {
550
+ line-height: 30px;
559
551
  border: 1px solid var(--rc-calendar-sf-orange, #ff8000);
560
552
  border-radius: 50%;
561
553
  }
562
554
  .rc-calendar-right-panel {
563
- height: inherit;
564
- border-left: 1px solid var(--rc-calendar-divider-color, #eee);
565
- }
566
- .rc-calendar-right-panel-header {
567
555
  display: -ms-flexbox;
568
556
  display: flex;
569
- -ms-flex-pack: center;
570
- justify-content: center;
571
- -ms-flex-align: center;
572
- align-items: center;
573
- color: var(--rc-calendar-body-color, #212529);
574
- font-weight: 600;
557
+ -ms-flex-direction: column;
558
+ flex-direction: column;
559
+ -ms-flex: 1;
560
+ flex: 1;
561
+ min-width: 0;
562
+ height: 356px;
563
+ border-left: 1px solid var(--rc-calendar-divider-color, #eee);
575
564
  }
576
565
  .rc-calendar-right-panel-body {
577
- height: 260px;
566
+ -ms-flex: 1;
567
+ flex: 1;
568
+ min-height: 0;
578
569
  display: -ms-flexbox;
579
570
  display: flex;
580
- padding: 0 4px 16px;
581
- scrollbar-color: auto;
582
571
  }
583
572
  .rc-calendar-right-panel-col {
573
+ -ms-flex: 1;
574
+ flex: 1;
575
+ min-width: 0;
584
576
  overflow-y: auto;
577
+ overflow-x: hidden;
578
+ scrollbar-gutter: stable;
579
+ }
580
+ .rc-calendar-right-panel-col + .rc-calendar-right-panel-col {
581
+ border-left: 1px solid var(--rc-calendar-divider-color, #eee);
585
582
  }
586
583
  .rc-calendar-right-panel-col ul {
587
584
  list-style: none;
588
585
  margin: 0;
589
- padding: 4px;
586
+ padding: 4px 16px;
590
587
  }
591
588
  .rc-calendar-right-panel-item {
592
589
  width: 32px;
593
590
  height: 32px;
594
591
  padding: 4px 0;
595
592
  cursor: pointer;
593
+ margin-top: 4px;
594
+ }
595
+ .rc-calendar-right-panel-item:first-child {
596
+ margin-top: -2px;
596
597
  }
597
598
  .rc-calendar-right-panel-item-text {
598
599
  width: 100%;
@@ -614,10 +615,6 @@
614
615
  border-radius: 4px;
615
616
  color: #fff;
616
617
  }
617
- .rc-calendar-right-panel-col::-webkit-scrollbar {
618
- width: 0;
619
- height: 0;
620
- }
621
618
  .rc-calendar-right-panel-item-current {
622
619
  border: 1px solid var(--rc-calendar-sf-orange, #ff8000);
623
620
  border-radius: 4px;
package/es/Calendar.js CHANGED
@@ -171,109 +171,89 @@ var Calendar = function (_React$Component) {
171
171
  { className: prefixCls + '-panel', key: 'panel' },
172
172
  React.createElement(
173
173
  'div',
174
- { className: prefixCls + '-inputs' },
174
+ {
175
+ tabIndex: this.props.focusablePanel ? 0 : undefined,
176
+ className: prefixCls + '-date-panel'
177
+ },
175
178
  React.createElement(
176
179
  'div',
177
- { className: prefixCls + '-date-input-col' },
178
- React.createElement(
179
- 'div',
180
- { className: prefixCls + '-date-input' },
181
- dateInputElement
182
- )
180
+ { className: prefixCls + '-date-input' },
181
+ dateInputElement
183
182
  ),
184
- showTimeControls && React.createElement(
183
+ React.createElement(CalendarHeader, {
184
+ locale: locale,
185
+ mode: mode,
186
+ value: value,
187
+ onValueChange: this.setValue,
188
+ onPanelChange: this.onPanelChange,
189
+ renderFooter: renderFooter,
190
+ showTimePicker: showTimePicker,
191
+ prefixCls: prefixCls,
192
+ showHourAndMinute: showHourAndMinute
193
+ }),
194
+ timePicker && showTimePicker ? React.createElement(
185
195
  'div',
186
- { className: prefixCls + '-time-input-col' },
196
+ { className: prefixCls + '-time-picker' },
187
197
  React.createElement(
188
198
  'div',
189
- { className: prefixCls + '-time-input' },
190
- timeInputTopElement
199
+ { className: prefixCls + '-time-picker-panel' },
200
+ timePickerEle
191
201
  )
192
- )
193
- ),
194
- React.createElement(
195
- 'div',
196
- { className: prefixCls + '-date-panel-container' },
202
+ ) : null,
197
203
  React.createElement(
198
204
  'div',
199
- {
200
- tabIndex: this.props.focusablePanel ? 0 : undefined,
201
- className: prefixCls + '-date-panel'
202
- },
203
- React.createElement(CalendarHeader, {
205
+ { className: prefixCls + '-body' },
206
+ React.createElement(DateTable, {
204
207
  locale: locale,
205
- mode: mode,
206
208
  value: value,
207
- onValueChange: this.setValue,
208
- onPanelChange: this.onPanelChange,
209
- renderFooter: renderFooter,
210
- showTimePicker: showTimePicker,
209
+ selectedValue: selectedValue,
211
210
  prefixCls: prefixCls,
212
- showHourAndMinute: showHourAndMinute
213
- }),
214
- timePicker && showTimePicker ? React.createElement(
215
- 'div',
216
- { className: prefixCls + '-time-picker' },
217
- React.createElement(
218
- 'div',
219
- { className: prefixCls + '-time-picker-panel' },
220
- timePickerEle
221
- )
222
- ) : null,
223
- React.createElement(
224
- 'div',
225
- { className: prefixCls + '-body' },
226
- React.createElement(DateTable, {
227
- locale: locale,
228
- value: value,
229
- selectedValue: selectedValue,
230
- prefixCls: prefixCls,
231
- dateRender: props.dateRender,
232
- onSelect: this.onDateTableSelect,
233
- disabledDate: disabledDate,
234
- showWeekNumber: showWeekNumber,
235
- firstDayOfWeek: firstDayOfWeek,
236
- currentStatus: currentStatus
237
- })
238
- )
239
- ),
240
- showTimeControls && React.createElement(CalendarRightPanel, {
241
- prefixCls: prefixCls,
242
- value: value,
243
- selectedValue: selectedValue,
244
- locale: locale,
245
- onSelect: this.onDateTableSelect,
246
- onClickRightPanelTime: onClickRightPanelTime,
247
- defaultMinutesTime: this.props.defaultMinutesTime,
248
- format: inputFormat
249
- })
211
+ dateRender: props.dateRender,
212
+ onSelect: this.onDateTableSelect,
213
+ disabledDate: disabledDate,
214
+ showWeekNumber: showWeekNumber,
215
+ firstDayOfWeek: firstDayOfWeek,
216
+ currentStatus: currentStatus
217
+ })
218
+ )
250
219
  ),
251
- React.createElement(CalendarFooter, {
252
- showOk: props.showOk,
253
- mode: mode,
254
- renderFooter: props.renderFooter,
255
- locale: locale,
220
+ showTimeControls && React.createElement(CalendarRightPanel, {
256
221
  prefixCls: prefixCls,
257
- showToday: props.showToday,
258
- disabledTime: disabledTime,
259
- showTimePicker: showTimePicker,
260
- showDateInput: props.showDateInput,
261
- timePicker: timePicker,
262
- selectedValue: selectedValue,
263
222
  value: value,
264
- disabledDate: disabledDate,
265
- okDisabled: props.showOk !== false && (!selectedValue || !this.isAllowedDate(selectedValue)),
266
- onOk: this.onOk,
267
- onSelect: this.onSelect,
268
- onToday: this.onToday,
269
- onOpenTimePicker: this.openTimePicker,
270
- onCloseTimePicker: this.closeTimePicker
223
+ selectedValue: selectedValue,
224
+ locale: locale,
225
+ onSelect: this.onDateTableSelect,
226
+ onClickRightPanelTime: onClickRightPanelTime,
227
+ defaultMinutesTime: this.props.defaultMinutesTime,
228
+ format: inputFormat,
229
+ timeInput: timeInputTopElement
271
230
  })
272
231
  ));
232
+ children.push(React.createElement(CalendarFooter, {
233
+ showOk: props.showOk,
234
+ mode: mode,
235
+ renderFooter: props.renderFooter,
236
+ locale: locale,
237
+ prefixCls: prefixCls,
238
+ showToday: props.showToday,
239
+ disabledTime: disabledTime,
240
+ showTimePicker: showTimePicker,
241
+ showDateInput: props.showDateInput,
242
+ timePicker: timePicker,
243
+ selectedValue: selectedValue,
244
+ value: value,
245
+ disabledDate: disabledDate,
246
+ okDisabled: props.showOk !== false && (!selectedValue || !this.isAllowedDate(selectedValue)),
247
+ onOk: this.onOk,
248
+ onSelect: this.onSelect,
249
+ onToday: this.onToday,
250
+ onOpenTimePicker: this.openTimePicker,
251
+ onCloseTimePicker: this.closeTimePicker
252
+ }));
273
253
 
274
254
  return this.renderRoot({
275
255
  children: children,
276
- className: ((props.showWeekNumber ? prefixCls + '-week-number' : '') + ' ' + (showHourAndMinute ? prefixCls + '-with-time-panel' : '')).trim()
256
+ className: ((props.showWeekNumber ? prefixCls + '-week-number' : '') + ' ' + (showTimeControls ? prefixCls + '-with-time-panel' : '')).trim()
277
257
  });
278
258
  };
279
259
 
@@ -183,18 +183,13 @@ var CalendarRightPanel = function (_React$Component) {
183
183
  var selectedMinute = this.getSelectedMinute();
184
184
  var currentHour = dayjs().format('HH');
185
185
  var currentMinute = dayjs().format('mm');
186
- var displayHour = selectedHour || currentHour;
187
- var displayMinute = selectedMinute || currentMinute;
188
-
189
186
  return React.createElement(
190
187
  'div',
191
188
  { className: prefixCls + '-right-panel' },
192
189
  React.createElement(
193
190
  'div',
194
- { className: prefixCls + '-right-panel-header ' + prefixCls + '-header' },
195
- displayHour,
196
- ':',
197
- displayMinute
191
+ { className: prefixCls + '-time-input' },
192
+ this.props.timeInput
198
193
  ),
199
194
  React.createElement(
200
195
  'div',
@@ -272,6 +267,7 @@ CalendarRightPanel.propTypes = {
272
267
  onClickRightPanelTime: PropTypes.func,
273
268
  locale: PropTypes.object,
274
269
  defaultMinutesTime: PropTypes.string,
275
- format: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)])
270
+ format: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),
271
+ timeInput: PropTypes.node
276
272
  };
277
273
  export default CalendarRightPanel;
package/lib/Calendar.js CHANGED
@@ -235,109 +235,89 @@ var Calendar = function (_React$Component) {
235
235
  { className: prefixCls + '-panel', key: 'panel' },
236
236
  _react2['default'].createElement(
237
237
  'div',
238
- { className: prefixCls + '-inputs' },
238
+ {
239
+ tabIndex: this.props.focusablePanel ? 0 : undefined,
240
+ className: prefixCls + '-date-panel'
241
+ },
239
242
  _react2['default'].createElement(
240
243
  'div',
241
- { className: prefixCls + '-date-input-col' },
242
- _react2['default'].createElement(
243
- 'div',
244
- { className: prefixCls + '-date-input' },
245
- dateInputElement
246
- )
244
+ { className: prefixCls + '-date-input' },
245
+ dateInputElement
247
246
  ),
248
- showTimeControls && _react2['default'].createElement(
247
+ _react2['default'].createElement(_CalendarHeader2['default'], {
248
+ locale: locale,
249
+ mode: mode,
250
+ value: value,
251
+ onValueChange: this.setValue,
252
+ onPanelChange: this.onPanelChange,
253
+ renderFooter: renderFooter,
254
+ showTimePicker: showTimePicker,
255
+ prefixCls: prefixCls,
256
+ showHourAndMinute: showHourAndMinute
257
+ }),
258
+ timePicker && showTimePicker ? _react2['default'].createElement(
249
259
  'div',
250
- { className: prefixCls + '-time-input-col' },
260
+ { className: prefixCls + '-time-picker' },
251
261
  _react2['default'].createElement(
252
262
  'div',
253
- { className: prefixCls + '-time-input' },
254
- timeInputTopElement
263
+ { className: prefixCls + '-time-picker-panel' },
264
+ timePickerEle
255
265
  )
256
- )
257
- ),
258
- _react2['default'].createElement(
259
- 'div',
260
- { className: prefixCls + '-date-panel-container' },
266
+ ) : null,
261
267
  _react2['default'].createElement(
262
268
  'div',
263
- {
264
- tabIndex: this.props.focusablePanel ? 0 : undefined,
265
- className: prefixCls + '-date-panel'
266
- },
267
- _react2['default'].createElement(_CalendarHeader2['default'], {
269
+ { className: prefixCls + '-body' },
270
+ _react2['default'].createElement(_DateTable2['default'], {
268
271
  locale: locale,
269
- mode: mode,
270
272
  value: value,
271
- onValueChange: this.setValue,
272
- onPanelChange: this.onPanelChange,
273
- renderFooter: renderFooter,
274
- showTimePicker: showTimePicker,
273
+ selectedValue: selectedValue,
275
274
  prefixCls: prefixCls,
276
- showHourAndMinute: showHourAndMinute
277
- }),
278
- timePicker && showTimePicker ? _react2['default'].createElement(
279
- 'div',
280
- { className: prefixCls + '-time-picker' },
281
- _react2['default'].createElement(
282
- 'div',
283
- { className: prefixCls + '-time-picker-panel' },
284
- timePickerEle
285
- )
286
- ) : null,
287
- _react2['default'].createElement(
288
- 'div',
289
- { className: prefixCls + '-body' },
290
- _react2['default'].createElement(_DateTable2['default'], {
291
- locale: locale,
292
- value: value,
293
- selectedValue: selectedValue,
294
- prefixCls: prefixCls,
295
- dateRender: props.dateRender,
296
- onSelect: this.onDateTableSelect,
297
- disabledDate: disabledDate,
298
- showWeekNumber: showWeekNumber,
299
- firstDayOfWeek: firstDayOfWeek,
300
- currentStatus: currentStatus
301
- })
302
- )
303
- ),
304
- showTimeControls && _react2['default'].createElement(_CalendarRightPanel2['default'], {
305
- prefixCls: prefixCls,
306
- value: value,
307
- selectedValue: selectedValue,
308
- locale: locale,
309
- onSelect: this.onDateTableSelect,
310
- onClickRightPanelTime: onClickRightPanelTime,
311
- defaultMinutesTime: this.props.defaultMinutesTime,
312
- format: inputFormat
313
- })
275
+ dateRender: props.dateRender,
276
+ onSelect: this.onDateTableSelect,
277
+ disabledDate: disabledDate,
278
+ showWeekNumber: showWeekNumber,
279
+ firstDayOfWeek: firstDayOfWeek,
280
+ currentStatus: currentStatus
281
+ })
282
+ )
314
283
  ),
315
- _react2['default'].createElement(_CalendarFooter2['default'], {
316
- showOk: props.showOk,
317
- mode: mode,
318
- renderFooter: props.renderFooter,
319
- locale: locale,
284
+ showTimeControls && _react2['default'].createElement(_CalendarRightPanel2['default'], {
320
285
  prefixCls: prefixCls,
321
- showToday: props.showToday,
322
- disabledTime: disabledTime,
323
- showTimePicker: showTimePicker,
324
- showDateInput: props.showDateInput,
325
- timePicker: timePicker,
326
- selectedValue: selectedValue,
327
286
  value: value,
328
- disabledDate: disabledDate,
329
- okDisabled: props.showOk !== false && (!selectedValue || !this.isAllowedDate(selectedValue)),
330
- onOk: this.onOk,
331
- onSelect: this.onSelect,
332
- onToday: this.onToday,
333
- onOpenTimePicker: this.openTimePicker,
334
- onCloseTimePicker: this.closeTimePicker
287
+ selectedValue: selectedValue,
288
+ locale: locale,
289
+ onSelect: this.onDateTableSelect,
290
+ onClickRightPanelTime: onClickRightPanelTime,
291
+ defaultMinutesTime: this.props.defaultMinutesTime,
292
+ format: inputFormat,
293
+ timeInput: timeInputTopElement
335
294
  })
336
295
  ));
296
+ children.push(_react2['default'].createElement(_CalendarFooter2['default'], {
297
+ showOk: props.showOk,
298
+ mode: mode,
299
+ renderFooter: props.renderFooter,
300
+ locale: locale,
301
+ prefixCls: prefixCls,
302
+ showToday: props.showToday,
303
+ disabledTime: disabledTime,
304
+ showTimePicker: showTimePicker,
305
+ showDateInput: props.showDateInput,
306
+ timePicker: timePicker,
307
+ selectedValue: selectedValue,
308
+ value: value,
309
+ disabledDate: disabledDate,
310
+ okDisabled: props.showOk !== false && (!selectedValue || !this.isAllowedDate(selectedValue)),
311
+ onOk: this.onOk,
312
+ onSelect: this.onSelect,
313
+ onToday: this.onToday,
314
+ onOpenTimePicker: this.openTimePicker,
315
+ onCloseTimePicker: this.closeTimePicker
316
+ }));
337
317
 
338
318
  return this.renderRoot({
339
319
  children: children,
340
- className: ((props.showWeekNumber ? prefixCls + '-week-number' : '') + ' ' + (showHourAndMinute ? prefixCls + '-with-time-panel' : '')).trim()
320
+ className: ((props.showWeekNumber ? prefixCls + '-week-number' : '') + ' ' + (showTimeControls ? prefixCls + '-with-time-panel' : '')).trim()
341
321
  });
342
322
  };
343
323
 
@@ -206,18 +206,13 @@ var CalendarRightPanel = function (_React$Component) {
206
206
  var selectedMinute = this.getSelectedMinute();
207
207
  var currentHour = (0, _dayjs2['default'])().format('HH');
208
208
  var currentMinute = (0, _dayjs2['default'])().format('mm');
209
- var displayHour = selectedHour || currentHour;
210
- var displayMinute = selectedMinute || currentMinute;
211
-
212
209
  return _react2['default'].createElement(
213
210
  'div',
214
211
  { className: prefixCls + '-right-panel' },
215
212
  _react2['default'].createElement(
216
213
  'div',
217
- { className: prefixCls + '-right-panel-header ' + prefixCls + '-header' },
218
- displayHour,
219
- ':',
220
- displayMinute
214
+ { className: prefixCls + '-time-input' },
215
+ this.props.timeInput
221
216
  ),
222
217
  _react2['default'].createElement(
223
218
  'div',
@@ -295,7 +290,8 @@ CalendarRightPanel.propTypes = {
295
290
  onClickRightPanelTime: _propTypes2['default'].func,
296
291
  locale: _propTypes2['default'].object,
297
292
  defaultMinutesTime: _propTypes2['default'].string,
298
- format: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].arrayOf(_propTypes2['default'].string)])
293
+ format: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].arrayOf(_propTypes2['default'].string)]),
294
+ timeInput: _propTypes2['default'].node
299
295
  };
300
296
  exports['default'] = CalendarRightPanel;
301
297
  module.exports = exports['default'];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/seafile-calendar",
3
- "version": "1.0.28",
3
+ "version": "1.0.30",
4
4
  "description": "React Calendar",
5
5
  "keywords": [
6
6
  "react",