useRangeDisabled.js 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = useRangeDisabled;
  6. var _miscUtil = require("../utils/miscUtil");
  7. var _dateUtil = require("../utils/dateUtil");
  8. var _vue = require("vue");
  9. function useRangeDisabled(_ref, openRecordsRef) {
  10. var picker = _ref.picker,
  11. locale = _ref.locale,
  12. selectedValue = _ref.selectedValue,
  13. disabledDate = _ref.disabledDate,
  14. disabled = _ref.disabled,
  15. generateConfig = _ref.generateConfig;
  16. var startDate = (0, _vue.computed)(function () {
  17. return (0, _miscUtil.getValue)(selectedValue.value, 0);
  18. });
  19. var endDate = (0, _vue.computed)(function () {
  20. return (0, _miscUtil.getValue)(selectedValue.value, 1);
  21. });
  22. function weekFirstDate(date) {
  23. return generateConfig.value.locale.getWeekFirstDate(locale.value.locale, date);
  24. }
  25. function monthNumber(date) {
  26. var year = generateConfig.value.getYear(date);
  27. var month = generateConfig.value.getMonth(date);
  28. return year * 100 + month;
  29. }
  30. function quarterNumber(date) {
  31. var year = generateConfig.value.getYear(date);
  32. var quarter = (0, _dateUtil.getQuarter)(generateConfig.value, date);
  33. return year * 10 + quarter;
  34. }
  35. var disabledStartDate = function disabledStartDate(date) {
  36. var _disabledDate$value;
  37. if (disabledDate && disabledDate !== null && disabledDate !== void 0 && (_disabledDate$value = disabledDate.value) !== null && _disabledDate$value !== void 0 && _disabledDate$value.call(disabledDate, date)) {
  38. return true;
  39. }
  40. // Disabled range
  41. if (disabled[1] && endDate) {
  42. return !(0, _dateUtil.isSameDate)(generateConfig.value, date, endDate.value) && generateConfig.value.isAfter(date, endDate.value);
  43. }
  44. // Disabled part
  45. if (openRecordsRef.value[1] && endDate.value) {
  46. switch (picker.value) {
  47. case 'quarter':
  48. return quarterNumber(date) > quarterNumber(endDate.value);
  49. case 'month':
  50. return monthNumber(date) > monthNumber(endDate.value);
  51. case 'week':
  52. return weekFirstDate(date) > weekFirstDate(endDate.value);
  53. default:
  54. return !(0, _dateUtil.isSameDate)(generateConfig.value, date, endDate.value) && generateConfig.value.isAfter(date, endDate.value);
  55. }
  56. }
  57. return false;
  58. };
  59. var disabledEndDate = function disabledEndDate(date) {
  60. var _disabledDate$value2;
  61. if ((_disabledDate$value2 = disabledDate.value) !== null && _disabledDate$value2 !== void 0 && _disabledDate$value2.call(disabledDate, date)) {
  62. return true;
  63. }
  64. // Disabled range
  65. if (disabled[0] && startDate) {
  66. return !(0, _dateUtil.isSameDate)(generateConfig.value, date, endDate.value) && generateConfig.value.isAfter(startDate.value, date);
  67. }
  68. // Disabled part
  69. if (openRecordsRef.value[0] && startDate.value) {
  70. switch (picker.value) {
  71. case 'quarter':
  72. return quarterNumber(date) < quarterNumber(startDate.value);
  73. case 'month':
  74. return monthNumber(date) < monthNumber(startDate.value);
  75. case 'week':
  76. return weekFirstDate(date) < weekFirstDate(startDate.value);
  77. default:
  78. return !(0, _dateUtil.isSameDate)(generateConfig.value, date, startDate.value) && generateConfig.value.isAfter(startDate.value, date);
  79. }
  80. }
  81. return false;
  82. };
  83. return [disabledStartDate, disabledEndDate];
  84. }