UNPKG

jiku-ui

Version:

A Component Library for Vue.js.

44 lines (35 loc) 1.19 kB
import isBefore from 'date-fns/isBefore'; import startOfDay from 'date-fns/startOfDay'; import * as dateUtils from './utils/date-utils'; const square = (selectionStart, selectionEnd, dateList) => { let selected = []; if (selectionEnd == null) { if (selectionStart) selected = [selectionStart]; } else if (selectionStart) { const dateIsReversed = isBefore(startOfDay(selectionEnd), startOfDay(selectionStart)); const timeIsReversed = selectionStart.getHours() > selectionEnd.getHours(); selected = dateList.reduce( (acc, dayOfTimes) => acc.concat( dayOfTimes.filter( t => selectionStart && selectionEnd && dateUtils.dateIsBetween( dateIsReversed ? selectionEnd : selectionStart, t, dateIsReversed ? selectionStart : selectionEnd ) && dateUtils.timeIsBetween( timeIsReversed ? selectionEnd : selectionStart, t, timeIsReversed ? selectionStart : selectionEnd ) ) ), [] ); } return selected; }; export default square;