vuikit
Version:
A responsive Vue UI library for web site interfaces based on UIkit
54 lines (49 loc) • 1.37 kB
JavaScript
/**
* Vuikit 0.8.10
* (c) 2018 Miljan Aleksic
* @license MIT
**/
/* Substantial part of the code is adapted from UIkit,
Copyright (c) 2013-2018 YOOtheme GmbH, getuikit.com */
import { range } from '../util/misc';
import getDate from 'date-fns/get_date';
import addDays from 'date-fns/add_days';
import getYear from 'date-fns/get_year';
import getMonth from 'date-fns/get_month';
import isSameMonth from 'date-fns/is_same_month';
import startOfWeek from 'date-fns/start_of_week';
var rows = range(6);
var cols = range(7);
function dateMatrix (ref, plain) {
if ( ref === void 0 ) ref = {
year: getYear(Date.now()),
month: getMonth(Date.now()),
weekStartsOn: 0
};
var year = ref.year;
var month = ref.month;
var weekStartsOn = ref.weekStartsOn;
if ( plain === void 0 ) plain = false;
var matrix = [];
var date = arguments[0] instanceof Date
? arguments[0]
: new Date(year, month);
var curDate = startOfWeek(date, { weekStartsOn: weekStartsOn });
rows.forEach(function (row) {
var week = [];
cols.forEach(function (col) {
if (plain) {
week.push(isSameMonth(curDate, date)
? getDate(curDate)
: -getDate(curDate)
);
} else {
week.push(curDate);
}
curDate = addDays(curDate, 1);
});
matrix.push(week);
});
return matrix
}
export default dateMatrix;