{"version":3,"file":"/js/agenda.js","mappings":"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","sources":["webpack:///./resources/js/agenda.js"],"sourcesContent":["!function() {\n\n var today = moment();\n\n function Calendar(el) {\n this.el = el;\n if (!el.classList.contains('calendar--initialized')) {\n el.classList.add('calendar--initialized');\n this.category = this.el.getAttribute('data-category');\n this.emptyText = this.el.getAttribute('data-day-empty');\n this.weekendText = this.el.getAttribute('data-day-weekend');\n this.events = JSON.parse(this.el.getAttribute('data-events'));\n\n this.events.forEach(function (ev) {\n ev.date = moment(ev.date);\n });\n\n this.current = moment().date(1);\n console.log(el);\n this.draw();\n var current = el.querySelector('.today');\n if (current) {\n var self = this;\n window.setTimeout(function () {\n self.openDay(current, el);\n }, 500);\n }\n }\n }\n\n Calendar.prototype.draw = function() {\n //Create Header\n this.drawHeader();\n\n //Draw Month\n this.drawMonth();\n }\n\n Calendar.prototype.drawHeader = function() {\n var self = this;\n if(!this.header) {\n //Create the header elements\n this.header = createElement('div', 'calendar__header');\n this.title = createElement('div', 'calendar__header__month');\n\n var right = createElement('div', 'calendar__header__right');\n right.addEventListener('click', function() { self.nextMonth(); });\n\n var left = createElement('div', 'calendar__header__left');\n left.addEventListener('click', function() { self.prevMonth(); });\n\n //Append the Elements\n this.header.appendChild(this.title);\n this.header.appendChild(right);\n this.header.appendChild(left);\n this.el.appendChild(this.header);\n }\n\n this.title.innerHTML = this.current.locale('nl').format('MMMM YYYY');\n }\n\n Calendar.prototype.drawMonth = function() {\n var self = this;\n\n if(this.month) {\n this.oldMonth = this.month;\n this.oldMonth.className = 'calendar__month out ' + (self.next ? 'next' : 'prev');\n this.oldMonth.addEventListener('webkitAnimationEnd', function() {\n self.oldMonth.parentNode.removeChild(self.oldMonth);\n self.month = createElement('div', 'calendar__month');\n self.backFill();\n self.currentMonth();\n self.forwardFill();\n self.el.appendChild(self.month);\n window.setTimeout(function() {\n self.month.className = 'calendar__month in ' + (self.next ? 'next' : 'prev');\n }, 16);\n });\n } else {\n this.month = createElement('div', 'calendar__month');\n this.el.appendChild(this.month);\n this.backFill();\n this.currentMonth();\n this.forwardFill();\n this.month.className = 'calendar__month new';\n }\n }\n\n Calendar.prototype.backFill = function() {\n var clone = this.current.clone();\n var dayOfWeek = clone.day();\n\n if(!dayOfWeek) { return; }\n\n clone.subtract(dayOfWeek+1, 'days');\n\n for(var i = dayOfWeek; i > 0 ; i--) {\n this.drawDay(clone.add(1, 'days'));\n }\n }\n\n Calendar.prototype.forwardFill = function() {\n var clone = this.current.clone().add(1, 'months').subtract(1, 'days');\n var dayOfWeek = clone.day();\n\n if(dayOfWeek === 6) { return; }\n\n for(var i = dayOfWeek; i < 6 ; i++) {\n this.drawDay(clone.add(1, 'days'));\n }\n }\n\n Calendar.prototype.currentMonth = function() {\n var clone = this.current.clone();\n\n while(clone.month() === this.current.month()) {\n this.drawDay(clone);\n clone.add(1, 'days');\n }\n }\n\n Calendar.prototype.getWeek = function(day) {\n if(!this.week || day.day() === 0) {\n this.week = createElement('div', 'calendar__week');\n this.month.appendChild(this.week);\n }\n }\n\n Calendar.prototype.drawDay = function(day) {\n var self = this;\n this.getWeek(day);\n\n //Outer Day\n var outer = createElement('div', this.getDayClass(day));\n outer.addEventListener('click', function() {\n self.openDay(this, self.el);\n });\n\n //Day Name\n var name = createElement('div', 'calendar__day__name', day.locale('nl').format('ddd'));\n\n //Day Number\n var number = createElement('div', 'calendar__day__number', day.format('DD'));\n\n //Events\n var events = createElement('div', 'calendar__day__events');\n this.drawEvents(day, events);\n\n outer.appendChild(name);\n outer.appendChild(number);\n outer.appendChild(events);\n this.week.appendChild(outer);\n }\n\n Calendar.prototype.drawEvents = function(day, element) {\n if(day.month() === this.current.month()) {\n var todaysEvents = this.events.reduce(function(memo, ev) {\n if(ev.date.isSame(day, 'day')) {\n memo.push(ev);\n }\n return memo;\n }, []);\n\n todaysEvents.forEach(function(ev) {\n var evSpan = createElement('span');\n element.appendChild(evSpan);\n });\n }\n }\n\n Calendar.prototype.getDayClass = function(day) {\n classes = ['calendar__day'];\n if(day.month() !== this.current.month()) {\n classes.push('other');\n } else if (today.isSame(day, 'day')) {\n classes.push('today');\n }\n return classes.join(' ');\n }\n\n Calendar.prototype.openDay = function(el, calendarElement) {\n var details, arrow;\n var dayNumber = +el.querySelectorAll('.calendar__day__number')[0].innerText || +el.querySelectorAll('.calendar__day__number')[0].textContent;\n var day = this.current.clone().date(dayNumber);\n var currentOpened = calendarElement.querySelector('.calendar__details');\n\n //Check to see if there is an open detais box on the current row\n if(currentOpened && currentOpened.parentNode === el.parentNode) {\n details = currentOpened;\n arrow = calendarElement.querySelector('.arrow');\n } else {\n //Close the open events on differnt week row\n //currentOpened && currentOpened.parentNode.removeChild(currentOpened);\n if(currentOpened) {\n currentOpened.addEventListener('webkitAnimationEnd', function() {\n currentOpened.parentNode.removeChild(currentOpened);\n });\n currentOpened.addEventListener('oanimationend', function() {\n currentOpened.parentNode.removeChild(currentOpened);\n });\n currentOpened.addEventListener('msAnimationEnd', function() {\n currentOpened.parentNode.removeChild(currentOpened);\n });\n currentOpened.addEventListener('animationend', function() {\n currentOpened.parentNode.removeChild(currentOpened);\n });\n currentOpened.className = 'calendar__details out';\n }\n\n //Create the Details Container\n details = createElement('div', 'calendar__details in');\n\n //Create the arrow\n var arrow = createElement('div', 'arrow');\n\n //Create the event wrapper\n details.appendChild(arrow);\n el.parentNode.appendChild(details);\n }\n\n var todaysEvents = this.events.reduce(function(memo, ev) {\n if(ev.date.isSame(day, 'day')) {\n memo.push(ev);\n }\n return memo;\n }, []);\n\n const isWeekend = this.category == 'teamuitjes-supermarkt' ? day.day() >= 5 : !(day.day() == 1 || day.day() == 3);\n this.renderEvents(todaysEvents, details, isWeekend);\n\n arrow.style.left = el.offsetLeft - el.parentNode.offsetLeft + 27 + 'px';\n }\n\n Calendar.prototype.renderEvents = function(events, ele, isWeekend) {\n //Remove any events in the current details element\n var currentWrapper = ele.querySelector('.calendar__details__events');\n var wrapper = createElement('ul', 'calendar__details__events in' + (currentWrapper ? ' new' : ''));\n\n events.forEach(function(ev) {\n var div = createElement('li', 'calendar__details__events__event');\n var name = createElement('strong', '', ev.eventName);\n var description = createElement('div', 'calendar__details__events__event__description');\n description.innerHTML = ev.eventDescription;\n\n div.appendChild(name);\n div.appendChild(description);\n wrapper.appendChild(div);\n });\n\n if(!events.length) {\n var div = createElement('li', 'calendar__details__events__event empty');\n var span = createElement('span', '', isWeekend ? this.weekendText : this.emptyText);\n\n div.appendChild(span);\n wrapper.appendChild(div);\n }\n\n if(currentWrapper) {\n currentWrapper.className = 'calendar__details__events out';\n currentWrapper.addEventListener('webkitAnimationEnd', function() {\n currentWrapper.parentNode.removeChild(currentWrapper);\n ele.appendChild(wrapper);\n });\n currentWrapper.addEventListener('oanimationend', function() {\n currentWrapper.parentNode.removeChild(currentWrapper);\n ele.appendChild(wrapper);\n });\n currentWrapper.addEventListener('msAnimationEnd', function() {\n currentWrapper.parentNode.removeChild(currentWrapper);\n ele.appendChild(wrapper);\n });\n currentWrapper.addEventListener('animationend', function() {\n currentWrapper.parentNode.removeChild(currentWrapper);\n ele.appendChild(wrapper);\n });\n } else {\n ele.appendChild(wrapper);\n }\n }\n\n Calendar.prototype.nextMonth = function() {\n this.current.add(1, 'months');\n this.next = true;\n this.draw();\n }\n\n Calendar.prototype.prevMonth = function() {\n this.current.subtract(1, 'months');\n this.next = false;\n this.draw();\n }\n\n window.Calendar = Calendar;\n\n function createElement(tagName, className, innerText) {\n var ele = document.createElement(tagName);\n if(className) {\n ele.className = className;\n }\n if(innerText) {\n ele.innderText = ele.textContent = innerText;\n }\n return ele;\n }\n}();\n\n!function() {\n document.querySelectorAll('.calendar').forEach((calendar) => new Calendar(calendar));\n}();\n"],"names":["today","moment","Calendar","el","this","classList","contains","add","category","getAttribute","emptyText","weekendText","events","JSON","parse","forEach","ev","date","current","console","log","draw","querySelector","self","window","setTimeout","openDay","createElement","tagName","className","innerText","ele","document","innderText","textContent","prototype","drawHeader","drawMonth","header","title","right","addEventListener","nextMonth","left","prevMonth","appendChild","innerHTML","locale","format","month","oldMonth","next","parentNode","removeChild","backFill","currentMonth","forwardFill","clone","dayOfWeek","day","subtract","i","drawDay","getWeek","week","outer","getDayClass","name","number","drawEvents","element","reduce","memo","isSame","push","evSpan","classes","join","calendarElement","details","dayNumber","querySelectorAll","currentOpened","arrow","todaysEvents","isWeekend","renderEvents","style","offsetLeft","currentWrapper","wrapper","div","eventName","description","eventDescription","length","span","calendar"],"sourceRoot":""}