{"version":3,"sources":["webpack:///webpack/bootstrap 78617eaf1294f59efddc","webpack:///./src/app.js"],"names":["window","formatGoogleCalendar","config","renderList","data","settings","result","items","filter","item","hasOwnProperty","status","sort","comp","reverse","pastCounter","upcomingCounter","pastResult","upcomingResult","upcomingResultTemp","upcomingElem","document","querySelector","upcomingSelector","pastElem","pastSelector","i","pastTopN","length","upcomingTopN","past","upcoming","isPast","end","dateTime","date","push","insertAdjacentHTML","transformationList","itemsTagName","format","firstChild","upcomingHeading","pastHeading","init","finalURL","calendarUrl","recurringEvents","concat","timeMin","timeMax","request","XMLHttpRequest","open","onload","JSON","parse","responseText","console","error","err","onerror","send","mergeOptions","defaultSettings","overrideSettings","newObject","isAllDay","dateStart","dateEnd","dateEndTemp","subtractOneDay","isAll","isSameDay","isSame","tagName","getDateInfo","start","dayNames","moreDaysEvent","isAllDayEvent","dateFormatted","getFormattedDate","output","summary","description","location","toString","compareDate","Date","now","getTime","getDate","getMonth","getFullYear","getHours","getMinutes","getMonthName","monthNames","month","getDayName","day","calculateDate","dateInfo","amount","getDateFormatted","setTime","getDayNameFormatted","getDay","a","b","addOneDay","subtractOneMinute","formatDateSameDay","formattedTime","dayNameStart","sameDayTimes","getFormattedTime","formatDateOneDay","dayName","formatDateDifferentDay","dayNameEnd","formatDateDifferentMonth","formatDateDifferentYear","formattedDate","period","hour","minute","settingsOverride","undefined"],"mappings":"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","file":"format-google-calendar.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 78617eaf1294f59efddc","/**\r\n * Format Google Calendar JSON output into human readable list\r\n *\r\n * Copyright 2017, Milan Lund\r\n *\r\n */\r\n\r\nwindow.formatGoogleCalendar = (() => {\r\n\r\n 'use strict';\r\n\r\n var config;\r\n\r\n const renderList = (data, settings) => {\r\n var result = [];\r\n\r\n //Remove cancelled events, sort by date\r\n result = data.items.filter(item => item && item.hasOwnProperty('status') && item.status !== 'cancelled').sort(comp).reverse();\r\n\r\n var pastCounter = 0,\r\n upcomingCounter = 0,\r\n pastResult = [],\r\n upcomingResult = [],\r\n upcomingResultTemp = [],\r\n upcomingElem = document.querySelector(settings.upcomingSelector),\r\n pastElem = document.querySelector(settings.pastSelector),\r\n i;\r\n\r\n if (settings.pastTopN === -1) {\r\n settings.pastTopN = result.length;\r\n }\r\n\r\n if (settings.upcomingTopN === -1) {\r\n settings.upcomingTopN = result.length;\r\n }\r\n\r\n if (settings.past === false) {\r\n settings.pastTopN = 0;\r\n }\r\n\r\n if (settings.upcoming === false) {\r\n settings.upcomingTopN = 0;\r\n }\r\n\r\n for (i in result) {\r\n\r\n if (isPast(result[i].end.dateTime || result[i].end.date)) {\r\n if (pastCounter < settings.pastTopN) {\r\n pastResult.push(result[i]);\r\n pastCounter++;\r\n }\r\n } else {\r\n upcomingResultTemp.push(result[i]);\r\n }\r\n }\r\n\r\n upcomingResultTemp.reverse();\r\n\r\n for (i in upcomingResultTemp) {\r\n if (upcomingCounter < settings.upcomingTopN) {\r\n upcomingResult.push(upcomingResultTemp[i]);\r\n upcomingCounter++;\r\n }\r\n }\r\n\r\n for (i in pastResult) {\r\n pastElem.insertAdjacentHTML('beforeend', transformationList(pastResult[i], settings.itemsTagName, settings.format));\r\n }\r\n\r\n for (i in upcomingResult) {\r\n upcomingElem.insertAdjacentHTML('beforeend', transformationList(upcomingResult[i], settings.itemsTagName, settings.format));\r\n }\r\n\r\n if (upcomingElem.firstChild) {\r\n upcomingElem.insertAdjacentHTML('beforebegin', settings.upcomingHeading);\r\n }\r\n\r\n if (pastElem.firstChild) {\r\n pastElem.insertAdjacentHTML('beforebegin', settings.pastHeading);\r\n }\r\n };\r\n\r\n //Gets JSON from Google Calendar and transfroms it into html list items and appends it to past or upcoming events list\r\n const init = (settings) => {\r\n config = settings;\r\n\r\n var finalURL = settings.calendarUrl;\r\n\r\n if (settings.recurringEvents) {\r\n finalURL = finalURL.concat('&singleEvents=true&orderBy=starttime');\r\n }\r\n\r\n if (settings.timeMin) {\r\n finalURL = finalURL.concat('&timeMin=' + settings.timeMin);\r\n };\r\n \r\n if (settings.timeMax) {\r\n finalURL = finalURL.concat('&timeMax=' + settings.timeMax);\r\n };\r\n\r\n //Get JSON, parse it, transform into list items and append it to past or upcoming events list\r\n var request = new XMLHttpRequest();\r\n request.open('GET', finalURL, true);\r\n \r\n request.onload = () => {\r\n if (request.status >= 200 && request.status < 400) {\r\n var data = JSON.parse(request.responseText);\r\n renderList(data, settings);\r\n } else {\r\n console.error(err);\r\n }\r\n };\r\n \r\n request.onerror = () => {\r\n console.error(err);\r\n };\r\n \r\n request.send();\r\n };\r\n\r\n //Overwrites defaultSettings values with overrideSettings and adds overrideSettings if non existent in defaultSettings\r\n const mergeOptions = (defaultSettings, overrideSettings) => {\r\n var newObject = {},\r\n i;\r\n for (i in defaultSettings) {\r\n newObject[i] = defaultSettings[i];\r\n }\r\n for (i in overrideSettings) {\r\n newObject[i] = overrideSettings[i];\r\n }\r\n return newObject;\r\n };\r\n\r\n const isAllDay = (dateStart, dateEnd) => {\r\n var dateEndTemp = subtractOneDay(dateEnd);\r\n var isAll = true;\r\n \r\n for (var i = 0; i < 3; i++) {\r\n if (dateStart[i] !== dateEndTemp[i]) {\r\n isAll = false;\r\n }\r\n } \r\n\r\n return isAll;\r\n };\r\n\r\n const isSameDay = (dateStart, dateEnd) => {\r\n var isSame = true;\r\n\r\n for (var i = 0; i < 3; i++) {\r\n if (dateStart[i] !== dateEnd[i]) {\r\n isSame = false;\r\n }\r\n } \r\n\r\n return isSame;\r\n }\r\n\r\n //Get all necessary data (dates, location, summary, description) and creates a list item\r\n const transformationList = (result, tagName, format) => {\r\n var dateStart = getDateInfo(result.start.dateTime || result.start.date),\r\n dateEnd = getDateInfo(result.end.dateTime || result.end.date),\r\n dayNames = config.dayNames,\r\n moreDaysEvent = true,\r\n isAllDayEvent = isAllDay(dateStart, dateEnd);\r\n\r\n if (typeof result.end.date !== 'undefined') {\r\n dateEnd = subtractOneDay(dateEnd);\r\n }\r\n\r\n if (isSameDay(dateStart, dateEnd)) {\r\n moreDaysEvent = false;\r\n }\r\n\r\n var dateFormatted = getFormattedDate(dateStart, dateEnd, dayNames, moreDaysEvent, isAllDayEvent),\r\n output = '<' + tagName + '>',\r\n summary = result.summary || '',\r\n description = result.description || '',\r\n location = result.location || '',\r\n i;\r\n\r\n for (i = 0; i < format.length; i++) {\r\n format[i] = format[i].toString();\r\n\r\n if (format[i] === '*summary*') {\r\n output = output.concat(`${summary}`);\r\n } else if (format[i] === '*date*') {\r\n output = output.concat(`${dateFormatted}`);\r\n } else if (format[i] === '*description*') {\r\n output = output.concat(`${description}`);\r\n } else if (format[i] === '*location*') {\r\n output = output.concat(`${location}`);\r\n } else {\r\n if ((format[i + 1] === '*location*' && location !== '') ||\r\n (format[i + 1] === '*summary*' && summary !== '') ||\r\n (format[i + 1] === '*date*' && dateFormatted !== '') ||\r\n (format[i + 1] === '*description*' && description !== '')) {\r\n\r\n output = output.concat(format[i]);\r\n }\r\n }\r\n }\r\n\r\n return output + '' + tagName + '>';\r\n };\r\n\r\n //Check if date is later then now\r\n const isPast = date => {\r\n var compareDate = new Date(date),\r\n now = new Date();\r\n\r\n if (now.getTime() > compareDate.getTime()) {\r\n return true;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n //Get temp array with information abou day in followin format: [day number, month number, year, hours, minutes]\r\n const getDateInfo = date => {\r\n date = new Date(date);\r\n return [date.getDate(), date.getMonth(), date.getFullYear(), date.getHours(), date.getMinutes(), 0, 0];\r\n };\r\n\r\n //Get month name according to index\r\n const getMonthName = month => {\r\n var monthNames = [\r\n 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'\r\n ];\r\n\r\n return monthNames[month];\r\n };\r\n\r\n const getDayName = day => {\r\n var dayNames = [\r\n 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'\r\n ];\r\n\r\n return dayNames[day];\r\n };\r\n\r\n const calculateDate = (dateInfo, amount) => {\r\n var date = getDateFormatted(dateInfo);\r\n date.setTime(date.getTime() + amount);\r\n return getDateInfo(date);\r\n };\r\n\r\n const getDayNameFormatted = dateFormatted => getDayName(getDateFormatted(dateFormatted).getDay()) + ' ';\r\n \r\n const getDateFormatted = dateInfo => new Date(dateInfo[2], dateInfo[1], dateInfo[0], dateInfo[3], dateInfo[4] + 0, 0);\r\n\r\n //Compare dates\r\n const comp = (a, b) => new Date(a.start.dateTime || a.start.date).getTime() - new Date(b.start.dateTime || b.start.date).getTime(); \r\n\r\n //Add one day\r\n const addOneDay = (dateInfo) => calculateDate(dateInfo, 86400000);\r\n \r\n //Subtract one day\r\n const subtractOneDay = (dateInfo) => calculateDate(dateInfo, -86400000);\r\n\r\n //Subtract one minute\r\n const subtractOneMinute = (dateInfo) => calculateDate(dateInfo, -60000);\r\n\r\n\r\n //Transformations for formatting date into human readable format\r\n const formatDateSameDay = (dateStart, dateEnd, dayNames, moreDaysEvent, isAllDayEvent) => {\r\n var formattedTime = '',\r\n dayNameStart = '';\r\n\r\n if (dayNames) {\r\n dayNameStart = getDayNameFormatted(dateStart);\r\n }\r\n\r\n if (config.sameDayTimes && !moreDaysEvent && !isAllDayEvent) {\r\n formattedTime = ' from ' + getFormattedTime(dateStart) + ' - ' + getFormattedTime(dateEnd);\r\n }\r\n\r\n //month day, year time-time\r\n return dayNameStart + getMonthName(dateStart[1]) + ' ' + dateStart[0] + ', ' + dateStart[2] + formattedTime;\r\n };\r\n\r\n const formatDateOneDay = (dateStart, dayNames) => {\r\n var dayName = '';\r\n\r\n if (dayNames) {\r\n dayName = getDayNameFormatted(dateStart);\r\n }\r\n //month day, year\r\n return dayName + getMonthName(dateStart[1]) + ' ' + dateStart[0] + ', ' + dateStart[2];\r\n };\r\n\r\n const formatDateDifferentDay = (dateStart, dateEnd, dayNames) => {\r\n var dayNameStart = '',\r\n dayNameEnd = '';\r\n\r\n if (dayNames) {\r\n dayNameStart = getDayNameFormatted(dateStart);\r\n dayNameEnd = getDayNameFormatted(dateEnd);\r\n }\r\n //month day-day, year\r\n return dayNameStart + getMonthName(dateStart[1]) + ' ' + dateStart[0] + '-' + dayNameEnd + dateEnd[0] + ', ' + dateStart[2];\r\n };\r\n\r\n const formatDateDifferentMonth = (dateStart, dateEnd, dayNames) => {\r\n var dayNameStart = '',\r\n dayNameEnd = '';\r\n\r\n if (dayNames) {\r\n dayNameStart = getDayNameFormatted(dateStart);\r\n dayNameEnd = getDayNameFormatted(dateEnd);\r\n }\r\n //month day - month day, year\r\n return dayNameStart + getMonthName(dateStart[1]) + ' ' + dateStart[0] + '-' + dayNameEnd + getMonthName(dateEnd[1]) + ' ' + dateEnd[0] + ', ' + dateStart[2];\r\n };\r\n\r\n const formatDateDifferentYear = (dateStart, dateEnd, dayNames) => {\r\n var dayNameStart = '',\r\n dayNameEnd = '';\r\n\r\n if (dayNames) {\r\n dayNameStart = getDayNameFormatted(dateStart);\r\n dayNameEnd = getDayNameFormatted(dateEnd);\r\n }\r\n //month day, year - month day, year\r\n return dayNameStart + getMonthName(dateStart[1]) + ' ' + dateStart[0] + ', ' + dateStart[2] + '-' + dayNameEnd + getMonthName(dateEnd[1]) + ' ' + dateEnd[0] + ', ' + dateEnd[2];\r\n };\r\n\r\n //Check differences between dates and format them\r\n const getFormattedDate = (dateStart, dateEnd, dayNames, moreDaysEvent, isAllDayEvent) => {\r\n var formattedDate = '';\r\n\r\n if (dateStart[0] === dateEnd[0]) {\r\n if (dateStart[1] === dateEnd[1]) {\r\n if (dateStart[2] === dateEnd[2]) {\r\n //month day, year\r\n formattedDate = formatDateSameDay(dateStart, dateEnd, dayNames, moreDaysEvent, isAllDayEvent);\r\n } else {\r\n //month day, year - month day, year\r\n formattedDate = formatDateDifferentYear(dateStart, dateEnd, dayNames);\r\n }\r\n } else {\r\n if (dateStart[2] === dateEnd[2]) {\r\n //month day - month day, year\r\n formattedDate = formatDateDifferentMonth(dateStart, dateEnd, dayNames);\r\n } else {\r\n //month day, year - month day, year\r\n formattedDate = formatDateDifferentYear(dateStart, dateEnd, dayNames);\r\n }\r\n }\r\n } else {\r\n if (dateStart[1] === dateEnd[1]) {\r\n if (dateStart[2] === dateEnd[2]) {\r\n //month day-day, year\r\n formattedDate = formatDateDifferentDay(dateStart, dateEnd, dayNames);\r\n } else {\r\n //month day, year - month day, year\r\n formattedDate = formatDateDifferentYear(dateStart, dateEnd, dayNames);\r\n }\r\n } else {\r\n if (dateStart[2] === dateEnd[2]) {\r\n //month day - month day, year\r\n formattedDate = formatDateDifferentMonth(dateStart, dateEnd, dayNames);\r\n } else {\r\n //month day, year - month day, year\r\n formattedDate = formatDateDifferentYear(dateStart, dateEnd, dayNames);\r\n }\r\n }\r\n }\r\n\r\n return formattedDate;\r\n };\r\n\r\n const getFormattedTime = (date) => {\r\n var formattedTime = '',\r\n period = 'AM',\r\n hour = date[3],\r\n minute = date[4];\r\n\r\n // Handle afternoon.\r\n if (hour >= 12) {\r\n period = 'PM';\r\n\r\n if (hour >= 13) {\r\n hour -= 12;\r\n }\r\n }\r\n\r\n // Handle midnight.\r\n if (hour === 0) {\r\n hour = 12;\r\n }\r\n\r\n // Ensure 2-digit minute value.\r\n minute = (minute < 10 ? '0' : '') + minute;\r\n\r\n // Format time.\r\n formattedTime = hour + ':' + minute + period;\r\n return formattedTime;\r\n };\r\n\r\n return { \r\n init: function (settingsOverride) {\r\n var settings = {\r\n calendarUrl: 'https://www.googleapis.com/calendar/v3/calendars/milan.kacurak@gmail.com/events?key=AIzaSyCR3-ptjHE-_douJsn8o20oRwkxt-zHStY',\r\n past: true,\r\n upcoming: true,\r\n sameDayTimes: true,\r\n dayNames: true,\r\n pastTopN: -1,\r\n upcomingTopN: -1,\r\n recurringEvents: true,\r\n itemsTagName: 'li',\r\n upcomingSelector: '#events-upcoming',\r\n pastSelector: '#events-past',\r\n upcomingHeading: '