index.js 2.5 KB

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