343 lines
9.0 KiB
JavaScript
343 lines
9.0 KiB
JavaScript
/******/ (function(modules) { // webpackBootstrap
|
|
/******/ // The module cache
|
|
/******/ var installedModules = {};
|
|
/******/
|
|
/******/ // The require function
|
|
/******/ function __webpack_require__(moduleId) {
|
|
/******/
|
|
/******/ // Check if module is in cache
|
|
/******/ if(installedModules[moduleId])
|
|
/******/ return installedModules[moduleId].exports;
|
|
/******/
|
|
/******/ // Create a new module (and put it into the cache)
|
|
/******/ var module = installedModules[moduleId] = {
|
|
/******/ i: moduleId,
|
|
/******/ l: false,
|
|
/******/ exports: {}
|
|
/******/ };
|
|
/******/
|
|
/******/ // Execute the module function
|
|
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
|
/******/
|
|
/******/ // Flag the module as loaded
|
|
/******/ module.l = true;
|
|
/******/
|
|
/******/ // Return the exports of the module
|
|
/******/ return module.exports;
|
|
/******/ }
|
|
/******/
|
|
/******/
|
|
/******/ // expose the modules object (__webpack_modules__)
|
|
/******/ __webpack_require__.m = modules;
|
|
/******/
|
|
/******/ // expose the module cache
|
|
/******/ __webpack_require__.c = installedModules;
|
|
/******/
|
|
/******/ // identity function for calling harmony imports with the correct context
|
|
/******/ __webpack_require__.i = function(value) { return value; };
|
|
/******/
|
|
/******/ // define getter function for harmony exports
|
|
/******/ __webpack_require__.d = function(exports, name, getter) {
|
|
/******/ if(!__webpack_require__.o(exports, name)) {
|
|
/******/ Object.defineProperty(exports, name, {
|
|
/******/ configurable: false,
|
|
/******/ enumerable: true,
|
|
/******/ get: getter
|
|
/******/ });
|
|
/******/ }
|
|
/******/ };
|
|
/******/
|
|
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
/******/ __webpack_require__.n = function(module) {
|
|
/******/ var getter = module && module.__esModule ?
|
|
/******/ function getDefault() { return module['default']; } :
|
|
/******/ function getModuleExports() { return module; };
|
|
/******/ __webpack_require__.d(getter, 'a', getter);
|
|
/******/ return getter;
|
|
/******/ };
|
|
/******/
|
|
/******/ // Object.prototype.hasOwnProperty.call
|
|
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
|
/******/
|
|
/******/ // __webpack_public_path__
|
|
/******/ __webpack_require__.p = "";
|
|
/******/
|
|
/******/ // Load entry module and return exports
|
|
/******/ return __webpack_require__(__webpack_require__.s = 2);
|
|
/******/ })
|
|
/************************************************************************/
|
|
/******/ ([
|
|
/* 0 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
// calendar with 8 column x 7 rows
|
|
|
|
var labels = __webpack_require__(3);
|
|
|
|
function isIterable(variable){
|
|
if (variable == null) return false;
|
|
if (variable.constructor === Array) return true;
|
|
if (variable.constructor === Object) return true;
|
|
return false;
|
|
}
|
|
|
|
function merge(_new, _old){
|
|
for (var prop in _new){
|
|
if (!_old[prop]) _old[prop] = _new[prop];
|
|
else if (isIterable(_new[prop])) merge(_new[prop], _old[prop]);
|
|
}
|
|
}
|
|
|
|
function addLabels(dayObject, lang){
|
|
var cssClass = [labels.classes[dayObject.type]];
|
|
|
|
if (dayObject.class) dayObject.class = (typeof dayObject.class == 'string' ? [dayObject.class] : dayObject.class).concat(cssClass);
|
|
else dayObject.class = cssClass;
|
|
|
|
if (dayObject.type.indexOf('Label') > 0){
|
|
if (dayObject.index == 0 && labels.weekPlaceholder) dayObject.desc = labels.weekPlaceholder;
|
|
else if (dayObject.index < 8) dayObject.desc = labels.columnNames[lang][dayObject.index];
|
|
else if (dayObject.index % 8 == 0) dayObject.desc = dayObject.week;
|
|
}
|
|
|
|
if (dayObject.date) dayObject.monthName = labels.monthNames[lang][dayObject.date.getMonth()];
|
|
if (!this.monthName) this.monthName = labels.monthNames[lang][this.month];
|
|
if (!this.labels) this.labels = {
|
|
monthNames: labels.monthNames[lang],
|
|
columnNames: labels.columnNames[lang],
|
|
classes: labels.classes
|
|
}
|
|
|
|
return dayObject;
|
|
}
|
|
addLabels.setLabels = function(newOptions){
|
|
merge(newOptions, labels);
|
|
};
|
|
|
|
module.exports = addLabels;
|
|
|
|
|
|
/***/ }),
|
|
/* 1 */
|
|
/***/ (function(module, exports) {
|
|
|
|
// calendar with 8 column x 7 rows
|
|
|
|
var oneDay = 1000 * 60 * 60 * 24;
|
|
|
|
function daysInMonth(year, month) {
|
|
return new Date(year, month + 1, 0).getDate();
|
|
}
|
|
|
|
function getYear(year, month, weekNr){
|
|
if (month == 0 && weekNr > 50) return year - 1;
|
|
else if(month == 11 && weekNr < 10) return year + 1;
|
|
else return year;
|
|
}
|
|
|
|
function getDateInfo(y, m, d, iso) {
|
|
if (m > 11){
|
|
m = 0;
|
|
y++;
|
|
}
|
|
var currentDay = new Date(y, m, d);
|
|
if (iso) currentDay.setDate(currentDay.getDate() + 4 - (currentDay.getDay() || 7));
|
|
var year = iso ? currentDay.getFullYear() : y;
|
|
var firstOfJanuary = new Date(year, 0, 1);
|
|
var numberOfDays = 1 + Math.round((currentDay - firstOfJanuary) / oneDay);
|
|
|
|
if (!iso) numberOfDays += firstOfJanuary.getDay();
|
|
var w = Math.ceil(numberOfDays / 7);
|
|
if (!iso) {
|
|
var initialDay = new Date(y, m, d);
|
|
var beginOfNextYear = new Date(y + 1, 0, 1);
|
|
var startDayOfNextYear = beginOfNextYear.getDay();
|
|
if (initialDay.getTime() >= beginOfNextYear.getTime() - (oneDay * startDayOfNextYear)) w = 1;
|
|
}
|
|
return w;
|
|
}
|
|
|
|
function getMonthCalender(year, month, iteratorFns){
|
|
|
|
// config passed by binding
|
|
var lang = this.lang || 'en';
|
|
var onlyDays = this.onlyDays;
|
|
var weekStart = typeof this.weekStart == 'undefined' ? 1 : this.weekStart;
|
|
var iso = weekStart == 1;
|
|
var cells = [];
|
|
var monthStartDate = new Date(year, month, 1); // make a date object
|
|
var dayOfWeek = monthStartDate.getDay() || (iso ? 7 : 0); // month week day for day 1
|
|
var currentDay = weekStart - dayOfWeek; // starting position of first day in the week
|
|
var weekNr = getDateInfo(year, month, 1, iso); // get week number of month start
|
|
var maxDays = daysInMonth(year, month); // total days in current month
|
|
var lastMonthMaxDays = daysInMonth(year, month - 1);
|
|
var currentMonth, day, dayBefore;
|
|
var currentYear = getYear(year, month, weekNr);
|
|
|
|
var returnObject = {
|
|
month: month,
|
|
year: year,
|
|
daysInMonth: maxDays
|
|
};
|
|
|
|
for (var i = 0; i < 7; i++){ // 7 rows in the calendar
|
|
dayBefore = currentDay;
|
|
for (var j = 0; j < 8; j++){ // 8 columns: week nr + 7 days p/ week
|
|
if (i > 0 && j > 0) currentDay++; // not first row, not week nr column
|
|
|
|
if (currentDay > maxDays || currentDay < 1){ // day belongs to sibling month
|
|
// calculate day in sibling month
|
|
day = currentDay > maxDays ? currentDay - maxDays : lastMonthMaxDays + currentDay;
|
|
currentMonth = currentDay > maxDays ? month + 1 : month - 1;
|
|
} else {
|
|
day = currentDay;
|
|
currentMonth = month;
|
|
}
|
|
|
|
var type = (function(){
|
|
if (j == 0) return 'weekLabel';
|
|
else if (i == 0) return 'dayLabel';
|
|
else if (currentDay < 1) return 'prevMonth';
|
|
else if (currentDay > maxDays) return 'nextMonth';
|
|
else return 'monthDay';
|
|
})();
|
|
var isDay = dayBefore != currentDay && i > 0;
|
|
|
|
var dayData = {
|
|
desc: isDay ? day : weekNr,
|
|
week: weekNr,
|
|
type: type,
|
|
format: iso ? 'ISO 8601' : 'US',
|
|
date: isDay ? new Date(Date.UTC(year, currentMonth, day)) : false,
|
|
year: currentYear,
|
|
index: cells.length
|
|
};
|
|
|
|
if (iteratorFns){
|
|
if (typeof iteratorFns === "function") dayData = iteratorFns.call(returnObject, dayData, lang);
|
|
else iteratorFns.forEach(function(fn){
|
|
dayData = fn.call(returnObject, dayData, lang);
|
|
});
|
|
}
|
|
if (onlyDays && isDay) cells.push(dayData); // add only days
|
|
else if (!onlyDays) cells.push(dayData); // add also week numbers and labels
|
|
}
|
|
if (i > 0) weekNr = getDateInfo(year, currentMonth, day + 1, iso);
|
|
currentYear = getYear(year, month, weekNr);
|
|
}
|
|
|
|
returnObject.cells = cells;
|
|
return returnObject;
|
|
}
|
|
|
|
module.exports = function (config){
|
|
return getMonthCalender.bind(config);
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
/* 2 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
|
|
module.exports = {
|
|
Generator: __webpack_require__(1),
|
|
addLabels: __webpack_require__(0)
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
/* 3 */
|
|
/***/ (function(module, exports) {
|
|
|
|
|
|
module.exports = {
|
|
weekPlaceholder: '',
|
|
columnNames: {
|
|
en: {
|
|
0: 'w',
|
|
1: 'monday',
|
|
2: 'tuesday',
|
|
3: 'wednesday',
|
|
4: 'thursday',
|
|
5: 'friday',
|
|
6: 'saturday',
|
|
7: 'sunday'
|
|
},
|
|
sv: {
|
|
0: 'v',
|
|
1: 'mondag',
|
|
2: 'tisdag',
|
|
3: 'onsdag',
|
|
4: 'torsdag',
|
|
5: 'fredag',
|
|
6: 'lördag',
|
|
7: 'söndag'
|
|
},
|
|
pt: {
|
|
0: 's',
|
|
1: 'segunda',
|
|
2: 'terça',
|
|
3: 'quarta',
|
|
4: 'quinta',
|
|
5: 'sexta',
|
|
6: 'sabado',
|
|
7: 'domingo'
|
|
}
|
|
},
|
|
monthNames: {
|
|
en: [
|
|
"January",
|
|
"February",
|
|
"March",
|
|
"April",
|
|
"May",
|
|
"June",
|
|
"July",
|
|
"August",
|
|
"September",
|
|
"October",
|
|
"November",
|
|
"December"
|
|
],
|
|
sv: [
|
|
"januari",
|
|
"februari",
|
|
"mars",
|
|
"april",
|
|
"maj",
|
|
"june",
|
|
"juli",
|
|
"augusti",
|
|
"september",
|
|
"oktober",
|
|
"november",
|
|
"december"
|
|
],
|
|
pt: [
|
|
"Janeiro",
|
|
"Fevereiro",
|
|
"Março",
|
|
"Abril",
|
|
"Maio",
|
|
"Junho",
|
|
"Julho",
|
|
"Agosto",
|
|
"Setembro",
|
|
"Outubro",
|
|
"Novembro",
|
|
"Dezembro"
|
|
]
|
|
},
|
|
classes: {
|
|
dayLabel: 'day-of-week',
|
|
weekLabel: 'week-number',
|
|
prevMonth: 'inactive',
|
|
nextMonth: 'inactive',
|
|
monthDay: 'day-in-month'
|
|
}
|
|
};
|
|
|
|
|
|
/***/ })
|
|
/******/ ]); |