index.js 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
  2. import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
  3. import { createVNode as _createVNode } from "vue";
  4. import DateBody from './DateBody';
  5. import DateHeader from './DateHeader';
  6. import { WEEK_DAY_COUNT } from '../../utils/dateUtil';
  7. import { createKeydownHandler } from '../../utils/uiUtil';
  8. import classNames from '../../../_util/classNames';
  9. import useMergeProps from '../../hooks/useMergeProps';
  10. var DATE_ROW_COUNT = 6;
  11. function DatePanel(_props) {
  12. var props = useMergeProps(_props);
  13. var prefixCls = props.prefixCls,
  14. _props$panelName = props.panelName,
  15. panelName = _props$panelName === void 0 ? 'date' : _props$panelName,
  16. keyboardConfig = props.keyboardConfig,
  17. active = props.active,
  18. operationRef = props.operationRef,
  19. generateConfig = props.generateConfig,
  20. value = props.value,
  21. viewDate = props.viewDate,
  22. onViewDateChange = props.onViewDateChange,
  23. onPanelChange = props.onPanelChange,
  24. _onSelect = props.onSelect;
  25. var panelPrefixCls = "".concat(prefixCls, "-").concat(panelName, "-panel");
  26. // ======================= Keyboard =======================
  27. operationRef.value = {
  28. onKeydown: function onKeydown(event) {
  29. return createKeydownHandler(event, _objectSpread({
  30. onLeftRight: function onLeftRight(diff) {
  31. _onSelect(generateConfig.addDate(value || viewDate, diff), 'key');
  32. },
  33. onCtrlLeftRight: function onCtrlLeftRight(diff) {
  34. _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');
  35. },
  36. onUpDown: function onUpDown(diff) {
  37. _onSelect(generateConfig.addDate(value || viewDate, diff * WEEK_DAY_COUNT), 'key');
  38. },
  39. onPageUpDown: function onPageUpDown(diff) {
  40. _onSelect(generateConfig.addMonth(value || viewDate, diff), 'key');
  41. }
  42. }, keyboardConfig));
  43. }
  44. };
  45. // ==================== View Operation ====================
  46. var onYearChange = function onYearChange(diff) {
  47. var newDate = generateConfig.addYear(viewDate, diff);
  48. onViewDateChange(newDate);
  49. onPanelChange(null, newDate);
  50. };
  51. var onMonthChange = function onMonthChange(diff) {
  52. var newDate = generateConfig.addMonth(viewDate, diff);
  53. onViewDateChange(newDate);
  54. onPanelChange(null, newDate);
  55. };
  56. return _createVNode("div", {
  57. "class": classNames(panelPrefixCls, _defineProperty({}, "".concat(panelPrefixCls, "-active"), active))
  58. }, [_createVNode(DateHeader, _objectSpread(_objectSpread({}, props), {}, {
  59. "prefixCls": prefixCls,
  60. "value": value,
  61. "viewDate": viewDate,
  62. "onPrevYear": function onPrevYear() {
  63. onYearChange(-1);
  64. },
  65. "onNextYear": function onNextYear() {
  66. onYearChange(1);
  67. },
  68. "onPrevMonth": function onPrevMonth() {
  69. onMonthChange(-1);
  70. },
  71. "onNextMonth": function onNextMonth() {
  72. onMonthChange(1);
  73. },
  74. "onMonthClick": function onMonthClick() {
  75. onPanelChange('month', viewDate);
  76. },
  77. "onYearClick": function onYearClick() {
  78. onPanelChange('year', viewDate);
  79. }
  80. }), null), _createVNode(DateBody, _objectSpread(_objectSpread({}, props), {}, {
  81. "onSelect": function onSelect(date) {
  82. return _onSelect(date, 'mouse');
  83. },
  84. "prefixCls": prefixCls,
  85. "value": value,
  86. "viewDate": viewDate,
  87. "rowCount": DATE_ROW_COUNT
  88. }), null)]);
  89. }
  90. DatePanel.displayName = 'DatePanel';
  91. DatePanel.inheritAttrs = false;
  92. export default DatePanel;