UNPKG

vuikit

Version:

A responsive Vue UI library for web site interfaces based on UIkit

54 lines (49 loc) 1.37 kB
/** * 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;