index.js 2.6 KB

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