BasicViewDateProfileGenerator.ts 1.0 KB

123456789101112131415161718192021222324252627282930
  1. import DateProfileGenerator from '../DateProfileGenerator'
  2. import { addWeeks } from '../datelib/marker'
  3. import { DateRange } from '../datelib/date-range'
  4. export default class BasicViewDateProfileGenerator extends DateProfileGenerator {
  5. // Computes the date range that will be rendered.
  6. buildRenderRange(currentUnzonedRange, currentRangeUnit, isRangeAllDay): DateRange {
  7. let dateEnv = this._view.calendar.dateEnv
  8. let renderUnzonedRange = super.buildRenderRange(currentUnzonedRange, currentRangeUnit, isRangeAllDay)
  9. let start = renderUnzonedRange.start
  10. let end = renderUnzonedRange.end
  11. let endOfWeek
  12. // year and month views should be aligned with weeks. this is already done for week
  13. if (/^(year|month)$/.test(currentRangeUnit)) {
  14. start = dateEnv.startOfWeek(start)
  15. // make end-of-week if not already
  16. endOfWeek = dateEnv.startOfWeek(end)
  17. if (endOfWeek.valueOf() !== end.valueOf()) {
  18. end = addWeeks(endOfWeek, 1)
  19. }
  20. }
  21. return { start, end }
  22. }
  23. }