{"version":3,"sources":["timeline.js"],"names":["numberOfCards","cards","cardOffsets","timeline","document","querySelector","timelineHolder","timelineYears","cardWidth","offsetWidth","currentCard","years","NodeList","prototype","forEach","Array","debounce","arguments","clearTimeout","setTimeout","apply","easeOutCubic","Math","pow","setOffsets","querySelectorAll","push","offsetLeft","window","innerWidth","setActive","reduce","abs","indexOf","classList","remove","blur","add","parentNode","scrollLeft","setUpTimeline","userAgent","body","style","display","width","length","click","addEventListener","target","newScrollPosition","start","momentum","currentIteration","animate","requestAnimationFrame","contains","slice","call","every","charCode","keyCode","currentTarget","some","checked","preventDefault","value","debounced"],"mappings":"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","file":"timeline.js","sourcesContent":["'use strict';\n\nvar timeline = document.querySelector('.timeline_cardHolder');\nvar timelineHolder = document.querySelector('.timeline_cardHolder ul');\nvar timelineYears = document.querySelector('.timeline_years');\nvar numberOfCards;\nvar cardWidth = document.querySelector('.timeline_card').offsetWidth;\n\nvar cards,\n cardOffsets,\n currentCard = 1,\n years = [];\n\n// ForEach polyfill for IE\n(function () {\n\tif (typeof NodeList.prototype.forEach === 'function') return false;\n\tNodeList.prototype.forEach = Array.prototype.forEach;\n})();\n\n// Debounce\nfunction debounce(func, wait, immediate) {\n\tvar timeout;\n\treturn function () {\n\t\tvar context = this,\n\t\t args = arguments;\n\t\tvar later = function later() {\n\t\t\ttimeout = null;\n\t\t\tif (!immediate) func.apply(context, args);\n\t\t};\n\t\tvar callNow = immediate && !timeout;\n\t\tclearTimeout(timeout);\n\t\ttimeout = setTimeout(later, wait);\n\t\tif (callNow) func.apply(context, args);\n\t};\n}\n\n// Ease out cubic\nfunction easeOutCubic(currentIteration, startValue, changeInValue, totalIterations) {\n\treturn changeInValue * (Math.pow(currentIteration / totalIterations - 1, 3) + 1) + startValue;\n}\n\nfunction setOffsets() {\n\tcards = [];\n\tcardOffsets = [];\n\ttimeline.querySelectorAll('.timeline_card').forEach(function (ele) {\n\t\tcards.push(ele);\n\t\tcardOffsets.push(ele.offsetLeft - window.innerWidth / 2 + cardWidth);\n\t});\n}\n\nfunction setActive(scrollEvent) {\n\tvar activeCard = document.querySelector('.timeline_card-active');\n\n\tif (typeof scrollEvent == 'undefined' && activeCard == null) {\n\t\tscrollEvent = 0;\n\t} else if (typeof scrollEvent == 'undefined' && activeCard != null) {\n\t\tscrollEvent = document.querySelector('.timeline_card-active').offsetLeft;\n\t}\n\n\tvar scrollLeft = scrollEvent + cardWidth / 2;\n\n\t// Gets what card is closest in position to the center!\n\tvar cardNumber = cardOffsets.reduce(function (prev, curr) {\n\t\treturn Math.abs(curr - scrollLeft) < Math.abs(prev - scrollLeft) ? curr : prev;\n\t});\n\n\tif (cardOffsets.indexOf(cardNumber) !== currentCard) {\n\t\tcards.forEach(function (card) {\n\t\t\tcard.classList.remove('timeline_card-active');\n\t\t\tcard.blur();\n\t\t});\n\t\tyears.forEach(function (year) {\n\t\t\tyear.classList.remove('timeline_years_decade_year-active');\n\t\t\tyear.blur();\n\t\t});\n\n\t\tdocument.querySelectorAll('.timeline_years_decade').forEach(function (decade) {\n\t\t\tdecade.classList.remove('timeline_years_decade-active');decade.blur();\n\t\t});\n\n\t\tcurrentCard = cardOffsets.indexOf(cardNumber);\n\n\t\tcards[currentCard].classList.add('timeline_card-active');\n\n\t\t// Add to parent node.\n\t\tyears[currentCard].parentNode.parentNode.classList.add('timeline_years_decade-active');\n\t\tyears[currentCard].classList.add('timeline_years_decade_year-active');\n\n\t\tif (window.innerWidth < 1025) {\n\t\t\tdocument.querySelector('.timeline_years_wrapper').scrollLeft = document.querySelector('.timeline_years_decade_year-active').offsetLeft - (window.innerWidth - 70) / 2;\n\t\t}\n\t}\n}\n\nfunction setUpTimeline() {\n\tvar isChrome = navigator.userAgent.indexOf('Chrome') > -1;\n\tvar isSafari = navigator.userAgent.indexOf('Safari') > -1;\n\n\tif (!(isChrome && isSafari)) {\n\t\tdocument.body.classList.add('safari');\n\t}\n\n\tcardWidth = document.querySelector('.timeline_card').offsetWidth;\n\n\tnumberOfCards = 0;\n\tdocument.querySelectorAll('.timeline_cardHolder li').forEach(function (e) {\n\t\tif (!e.style.display) {\n\t\t\tnumberOfCards++;\n\t\t}\n\t});\n\n\ttimelineHolder.style.width = cardWidth * numberOfCards + 'px';\n\n\tif (window.innerWidth < 1025) {\n\t\ttimelineYears.style.width = 70 * numberOfCards + 'px';\n\t} else {\n\t\ttimelineYears.style.width = 'auto';\n\t}\n\n\tsetOffsets();\n\tsetActive();\n\n\tcards[cards.length - 1].click();\n}\n\ndocument.querySelectorAll('.timeline_years_decade_year').forEach(function (year) {\n\tyears.push(year);\n});\n\ntimeline.addEventListener('scroll', function (event) {\n\tsetActive(event.target.scrollLeft);\n});\n\nvar newScrollPosition;\nvar start, momentum;\n\nvar currentIteration = 1;\n\nfunction animate() {\n\t// Animate timeline.\n\tif (currentIteration < 100) {\n\t\ttimeline.scrollLeft = easeOutCubic(currentIteration, start, newScrollPosition - start + momentum, 100);\n\t\tcurrentIteration++;\n\t}\n\twindow.requestAnimationFrame(animate);\n}\n\nwindow.requestAnimationFrame(animate);\n\ndocument.querySelectorAll('.timeline_years_decade').forEach(function (decade) {\n\tdecade.addEventListener('click', function (e) {\n\t\tif (this.classList.contains('timeline_years_decade') && !this.classList.contains('timeline_years_decade-active') && window.innerWidth > 1024) {\n\t\t\tdocument.querySelectorAll('.timeline_years_decade').forEach(function (decade) {\n\t\t\t\tdecade.classList.remove('timeline_years_decade-active');\n\t\t\t});\n\t\t\t[].slice.call(this.querySelectorAll('.timeline_years_decade_year')).every(function (el) {\n\t\t\t\tif (!el.style.display) {\n\t\t\t\t\tel.click();\n\t\t\t\t}\n\t\t\t\treturn el.style.display;\n\t\t\t});\n\t\t}\n\t\tthis.classList.add('timeline_years_decade-active');\n\t});\n});\n\ndocument.querySelectorAll('.timeline_years_decade_year').forEach(function (year) {\n\tyear.addEventListener('click', function () {\n\t\tmomentum = 0;\n\t\tstart = timeline.scrollLeft;\n\t\tnewScrollPosition = document.querySelectorAll('.timeline_card')[years.indexOf(this)].offsetLeft - window.innerWidth / 2 + cardWidth - cardWidth / 2;\n\t\tcurrentIteration = 0;\n\t});\n\tyear.addEventListener('keypress', function (event) {\n\t\tvar code = event.charCode || event.keyCode;\n\t\tif (code === 32 || code === 13) {\n\t\t\tmomentum = 0;\n\t\t\tstart = timeline.scrollLeft;\n\t\t\tnewScrollPosition = document.querySelectorAll('.timeline_card')[years.indexOf(this)].offsetLeft - window.innerWidth / 2 + cardWidth - cardWidth / 2;\n\t\t\tcurrentIteration = 0;\n\t\t}\n\t});\n});\n\ndocument.querySelectorAll('.timeline_card').forEach(function (card) {\n\tcard.addEventListener('click', function (e) {\n\t\tmomentum = 0;\n\t\tstart = timeline.scrollLeft;\n\t\tnewScrollPosition = e.currentTarget.offsetLeft - window.innerWidth / 2 + cardWidth - cardWidth / 2;\n\t\tcurrentIteration = 0;\n\t});\n\tcard.addEventListener('focus', function (e) {\n\t\tmomentum = 0;\n\t\tstart = timeline.scrollLeft;\n\t\tnewScrollPosition = e.currentTarget.offsetLeft - window.innerWidth / 2 + cardWidth - cardWidth / 2;\n\t\tcurrentIteration = 0;\n\t});\n});\n\ndocument.querySelectorAll('.timeline_checkBoxes input').forEach(function (ele) {\n\tele.addEventListener('change', function (e) {\n\t\tvar checkboxes = document.querySelectorAll('input[type=\"checkbox\"]');\n\t\tvar checkedOne = Array.prototype.slice.call(checkboxes).some(function (x) {\n\t\t\treturn x.checked;\n\t\t});\n\t\tif (!checkedOne) {\n\t\t\tthis.checked = true;\n\t\t\te.preventDefault();\n\t\t\treturn false;\n\t\t}\n\t\tvar checkboxValue = this.value;\n\t\tif (!this.checked) {\n\t\t\tdocument.querySelectorAll('[data-type=\\'' + checkboxValue + '\\']').forEach(function (e) {\n\t\t\t\te.style.display = 'none';\n\t\t\t});\n\t\t} else {\n\t\t\tdocument.querySelectorAll('[data-type=\\'' + checkboxValue + '\\']').forEach(function (e) {\n\t\t\t\te.style.display = '';\n\t\t\t});\n\t\t}\n\n\t\tsetUpTimeline();\n\n\t\tstart = timeline.scrollLeft;\n\t\tnewScrollPosition = cardOffsets[currentCard] - (window.innerWidth / 2 - cardWidth / 2);\n\t});\n});\n\nsetUpTimeline();\n\nvar debounced = debounce(function () {\n\tsetUpTimeline();\n}, 250);\n\nwindow.addEventListener('resize', debounced);"]}