useRangeDisabled.js 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. let {
  11. picker,
  12. locale,
  13. selectedValue,
  14. disabledDate,
  15. disabled,
  16. generateConfig
  17. } = _ref;
  18. const startDate = (0, _vue.computed)(() => (0, _miscUtil.getValue)(selectedValue.value, 0));
  19. const endDate = (0, _vue.computed)(() => (0, _miscUtil.getValue)(selectedValue.value, 1));
  20. function weekFirstDate(date) {
  21. return generateConfig.value.locale.getWeekFirstDate(locale.value.locale, date);
  22. }
  23. function monthNumber(date) {
  24. const year = generateConfig.value.getYear(date);
  25. const month = generateConfig.value.getMonth(date);
  26. return year * 100 + month;
  27. }
  28. function quarterNumber(date) {
  29. const year = generateConfig.value.getYear(date);
  30. const quarter = (0, _dateUtil.getQuarter)(generateConfig.value, date);
  31. return year * 10 + quarter;
  32. }
  33. const disabledStartDate = date => {
  34. var _a;
  35. if (disabledDate && ((_a = disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate.value) === null || _a === void 0 ? void 0 : _a.call(disabledDate, date))) {
  36. return true;
  37. }
  38. // Disabled range
  39. if (disabled[1] && endDate) {
  40. return !(0, _dateUtil.isSameDate)(generateConfig.value, date, endDate.value) && generateConfig.value.isAfter(date, endDate.value);
  41. }
  42. // Disabled part
  43. if (openRecordsRef.value[1] && endDate.value) {
  44. switch (picker.value) {
  45. case 'quarter':
  46. return quarterNumber(date) > quarterNumber(endDate.value);
  47. case 'month':
  48. return monthNumber(date) > monthNumber(endDate.value);
  49. case 'week':
  50. return weekFirstDate(date) > weekFirstDate(endDate.value);
  51. default:
  52. return !(0, _dateUtil.isSameDate)(generateConfig.value, date, endDate.value) && generateConfig.value.isAfter(date, endDate.value);
  53. }
  54. }
  55. return false;
  56. };
  57. const disabledEndDate = date => {
  58. var _a;
  59. if ((_a = disabledDate.value) === null || _a === void 0 ? void 0 : _a.call(disabledDate, date)) {
  60. return true;
  61. }
  62. // Disabled range
  63. if (disabled[0] && startDate) {
  64. return !(0, _dateUtil.isSameDate)(generateConfig.value, date, endDate.value) && generateConfig.value.isAfter(startDate.value, date);
  65. }
  66. // Disabled part
  67. if (openRecordsRef.value[0] && startDate.value) {
  68. switch (picker.value) {
  69. case 'quarter':
  70. return quarterNumber(date) < quarterNumber(startDate.value);
  71. case 'month':
  72. return monthNumber(date) < monthNumber(startDate.value);
  73. case 'week':
  74. return weekFirstDate(date) < weekFirstDate(startDate.value);
  75. default:
  76. return !(0, _dateUtil.isSameDate)(generateConfig.value, date, startDate.value) && generateConfig.value.isAfter(startDate.value, date);
  77. }
  78. }
  79. return false;
  80. };
  81. return [disabledStartDate, disabledEndDate];
  82. }