index.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
  3. import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
  4. import * as React from 'react';
  5. import { formatValue } from "../../utils/dateUtil";
  6. import { PanelContext, useInfo } from "../context";
  7. import PanelBody from "../PanelBody";
  8. import PanelHeader from "../PanelHeader";
  9. export default function QuarterPanel(props) {
  10. var prefixCls = props.prefixCls,
  11. locale = props.locale,
  12. generateConfig = props.generateConfig,
  13. pickerValue = props.pickerValue,
  14. onPickerValueChange = props.onPickerValueChange,
  15. onModeChange = props.onModeChange;
  16. var panelPrefixCls = "".concat(prefixCls, "-quarter-panel");
  17. // ========================== Base ==========================
  18. var _useInfo = useInfo(props, 'quarter'),
  19. _useInfo2 = _slicedToArray(_useInfo, 1),
  20. info = _useInfo2[0];
  21. var baseDate = generateConfig.setMonth(pickerValue, 0);
  22. // ========================= Cells ==========================
  23. var getCellDate = function getCellDate(date, offset) {
  24. return generateConfig.addMonth(date, offset * 3);
  25. };
  26. var getCellText = function getCellText(date) {
  27. return formatValue(date, {
  28. locale: locale,
  29. format: locale.cellQuarterFormat,
  30. generateConfig: generateConfig
  31. });
  32. };
  33. var getCellClassName = function getCellClassName() {
  34. return _defineProperty({}, "".concat(prefixCls, "-cell-in-view"), true);
  35. };
  36. // ========================= Header =========================
  37. var yearNode = /*#__PURE__*/React.createElement("button", {
  38. type: "button",
  39. key: "year",
  40. "aria-label": locale.yearSelect,
  41. onClick: function onClick() {
  42. onModeChange('year');
  43. },
  44. tabIndex: -1,
  45. className: "".concat(prefixCls, "-year-btn")
  46. }, formatValue(pickerValue, {
  47. locale: locale,
  48. format: locale.yearFormat,
  49. generateConfig: generateConfig
  50. }));
  51. // ========================= Render =========================
  52. return /*#__PURE__*/React.createElement(PanelContext.Provider, {
  53. value: info
  54. }, /*#__PURE__*/React.createElement("div", {
  55. className: panelPrefixCls
  56. }, /*#__PURE__*/React.createElement(PanelHeader, {
  57. superOffset: function superOffset(distance) {
  58. return generateConfig.addYear(pickerValue, distance);
  59. },
  60. onChange: onPickerValueChange
  61. // Limitation
  62. ,
  63. getStart: function getStart(date) {
  64. return generateConfig.setMonth(date, 0);
  65. },
  66. getEnd: function getEnd(date) {
  67. return generateConfig.setMonth(date, 11);
  68. }
  69. }, yearNode), /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {
  70. titleFormat: locale.fieldQuarterFormat,
  71. colNum: 4,
  72. rowNum: 1,
  73. baseDate: baseDate
  74. // Body
  75. ,
  76. getCellDate: getCellDate,
  77. getCellText: getCellText,
  78. getCellClassName: getCellClassName
  79. }))));
  80. }