jiku-ui
Version:
A Component Library for Vue.js.
44 lines (35 loc) • 1.19 kB
JavaScript
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;