index.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
  2. import { createVNode as _createVNode } from "vue";
  3. import MonthHeader from './MonthHeader';
  4. import MonthBody, { MONTH_COL_COUNT } from './MonthBody';
  5. import { createKeydownHandler } from '../../utils/uiUtil';
  6. import useMergeProps from '../../hooks/useMergeProps';
  7. function MonthPanel(_props) {
  8. var props = useMergeProps(_props);
  9. var prefixCls = props.prefixCls,
  10. operationRef = props.operationRef,
  11. onViewDateChange = props.onViewDateChange,
  12. generateConfig = props.generateConfig,
  13. value = props.value,
  14. viewDate = props.viewDate,
  15. onPanelChange = props.onPanelChange,
  16. _onSelect = props.onSelect;
  17. var panelPrefixCls = "".concat(prefixCls, "-month-panel");
  18. // ======================= Keyboard =======================
  19. operationRef.value = {
  20. onKeydown: function onKeydown(event) {
  21. return createKeydownHandler(event, {
  22. onLeftRight: function onLeftRight(diff) {
  23. _onSelect(generateConfig.addMonth(value || viewDate, diff), 'key');
  24. },
  25. onCtrlLeftRight: function onCtrlLeftRight(diff) {
  26. _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');
  27. },
  28. onUpDown: function onUpDown(diff) {
  29. _onSelect(generateConfig.addMonth(value || viewDate, diff * MONTH_COL_COUNT), 'key');
  30. },
  31. onEnter: function onEnter() {
  32. onPanelChange('date', value || viewDate);
  33. }
  34. });
  35. }
  36. };
  37. // ==================== View Operation ====================
  38. var onYearChange = function onYearChange(diff) {
  39. var newDate = generateConfig.addYear(viewDate, diff);
  40. onViewDateChange(newDate);
  41. onPanelChange(null, newDate);
  42. };
  43. return _createVNode("div", {
  44. "class": panelPrefixCls
  45. }, [_createVNode(MonthHeader, _objectSpread(_objectSpread({}, props), {}, {
  46. "prefixCls": prefixCls,
  47. "onPrevYear": function onPrevYear() {
  48. onYearChange(-1);
  49. },
  50. "onNextYear": function onNextYear() {
  51. onYearChange(1);
  52. },
  53. "onYearClick": function onYearClick() {
  54. onPanelChange('year', viewDate);
  55. }
  56. }), null), _createVNode(MonthBody, _objectSpread(_objectSpread({}, props), {}, {
  57. "prefixCls": prefixCls,
  58. "onSelect": function onSelect(date) {
  59. _onSelect(date, 'mouse');
  60. onPanelChange('date', date);
  61. }
  62. }), null)]);
  63. }
  64. MonthPanel.displayName = 'MonthPanel';
  65. MonthPanel.inheritAttrs = false;
  66. export default MonthPanel;