TransFlow/node_modules/js-calendar/dist/jsCalendar.js

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'
}
};
/***/ })
/******/ ]);