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