{"version":3,"sources":["glider.js","homepage.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"homepage.js","sourcesContent":["/* @preserve\r\n _____ __ _ __ _\r\n / ___// /(_)___/ /___ ____ (_)___\r\n / (_ // // // _ // -_)/ __/_ / /(_-<\r\n \\___//_//_/ \\_,_/ \\__//_/ (_)__/ //___/\r\n |___/\r\n\r\n Version: 1.7.1\r\n Author: Nick Piscitelli (pickykneee)\r\n Website: https://nickpiscitelli.com\r\n Documentation: http://nickpiscitelli.github.io/Glider.js\r\n License: MIT License\r\n Release Date: October 25th, 2018\r\n\r\n*/\r\n\r\n/* global define */\r\n\r\n(function (factory) {\r\n typeof define === 'function' && define.amd\r\n ? define(factory)\r\n : typeof exports === 'object'\r\n ? (module.exports = factory())\r\n : factory()\r\n})(function () {\r\n ('use strict') // eslint-disable-line no-unused-expressions\r\n\r\n /* globals window:true */\r\n var _window = typeof window !== 'undefined' ? window : this\r\n\r\n var Glider = (_window.Glider = function (element, settings) {\r\n var _ = this\r\n\r\n if (element._glider) return element._glider\r\n\r\n _.ele = element\r\n _.ele.classList.add('glider')\r\n\r\n // expose glider object to its DOM element\r\n _.ele._glider = _\r\n\r\n // merge user setting with defaults\r\n _.opt = Object.assign(\r\n {},\r\n {\r\n slidesToScroll: 1,\r\n slidesToShow: 1,\r\n resizeLock: true,\r\n duration: 0.5,\r\n // easeInQuad\r\n easing: function (x, t, b, c, d) {\r\n return c * (t /= d) * t + b\r\n }\r\n },\r\n settings\r\n )\r\n\r\n // set defaults\r\n _.animate_id = _.page = _.slide = 0\r\n _.arrows = {}\r\n\r\n // preserve original options to\r\n // extend breakpoint settings\r\n _._opt = _.opt\r\n\r\n if (_.opt.skipTrack) {\r\n // first and only child is the track\r\n _.track = _.ele.children[0]\r\n } else {\r\n // create track and wrap slides\r\n _.track = document.createElement('div')\r\n _.ele.appendChild(_.track)\r\n while (_.ele.children.length !== 1) {\r\n _.track.appendChild(_.ele.children[0])\r\n }\r\n }\r\n\r\n _.track.classList.add('glider-track')\r\n\r\n // start glider\r\n _.init()\r\n\r\n // set events\r\n _.resize = _.init.bind(_, true)\r\n _.event(_.ele, 'add', {\r\n scroll: _.updateControls.bind(_)\r\n })\r\n _.event(_window, 'add', {\r\n resize: _.resize\r\n })\r\n })\r\n\r\n var gliderPrototype = Glider.prototype\r\n gliderPrototype.init = function (refresh, paging) {\r\n var _ = this\r\n\r\n var width = 0\r\n\r\n var height = 0\r\n\r\n _.slides = _.track.children;\r\n\r\n [].forEach.call(_.slides, function (_) {\r\n _.classList.add('glider-slide')\r\n })\r\n\r\n _.containerWidth = _.ele.clientWidth\r\n\r\n var breakpointChanged = _.settingsBreakpoint()\r\n if (!paging) paging = breakpointChanged\r\n\r\n if (_.opt.slidesToShow === 'auto' || _.opt._autoSlide) {\r\n var slideCount = _.containerWidth / _.opt.itemWidth\r\n\r\n _.opt._autoSlide = _.opt.slidesToShow = _.opt.exactWidth\r\n ? slideCount\r\n : Math.floor(slideCount)\r\n }\r\n if (_.opt.slidesToScroll === 'auto') {\r\n _.opt.slidesToScroll = Math.floor(_.opt.slidesToShow)\r\n }\r\n\r\n _.itemWidth = _.opt.exactWidth\r\n ? _.opt.itemWidth\r\n : _.containerWidth / _.opt.slidesToShow;\r\n\r\n // set slide dimensions\r\n [].forEach.call(_.slides, function (__) {\r\n __.style.height = 'auto'\r\n __.style.width = _.itemWidth + 'px'\r\n width += _.itemWidth\r\n height = Math.max(__.offsetHeight, height)\r\n })\r\n\r\n _.track.style.width = width + 'px'\r\n _.trackWidth = width\r\n\r\n _.opt.resizeLock && _.scrollTo(_.slide * _.itemWidth, 0)\r\n\r\n if (breakpointChanged || paging) {\r\n _.bindArrows()\r\n _.buildDots()\r\n _.bindDrag()\r\n }\r\n\r\n _.updateControls()\r\n\r\n _.emit(refresh ? 'refresh' : 'loaded')\r\n }\r\n\r\n gliderPrototype.bindDrag = function () {\r\n var _ = this\r\n _.mouse = _.mouse || _.handleMouse.bind(_)\r\n\r\n var mouseup = function () {\r\n _.mouseDown = undefined\r\n _.ele.classList.remove('drag')\r\n }\r\n\r\n var events = {\r\n mouseup: mouseup,\r\n mouseleave: mouseup,\r\n mousedown: function (e) {\r\n _.mouseDown = e.clientX\r\n _.ele.classList.add('drag')\r\n },\r\n mousemove: _.mouse\r\n }\r\n\r\n _.ele.classList.toggle('draggable', _.opt.draggable === true)\r\n _.event(_.ele, 'remove', events)\r\n if (_.opt.draggable) _.event(_.ele, 'add', events)\r\n }\r\n\r\n gliderPrototype.buildDots = function () {\r\n var _ = this\r\n\r\n if (!_.opt.dots) {\r\n if (_.dots) _.dots.innerHTML = ''\r\n return\r\n }\r\n\r\n if (typeof _.opt.dots === 'string') {\r\n _.dots = document.querySelector(_.opt.dots)\r\n } else _.dots = _.opt.dots\r\n if (!_.dots) return\r\n\r\n _.dots.innerHTML = ''\r\n _.dots.className += ' glider-dots'\r\n\r\n for (var i = 0; i < Math.ceil(_.slides.length / _.opt.slidesToShow); ++i) {\r\n var dot = document.createElement('button')\r\n dot.dataset.index = i\r\n dot.setAttribute('aria-label', 'Page ' + (i + 1))\r\n dot.className = 'glider-dot ' + (i ? '' : 'active')\r\n _.event(dot, 'add', {\r\n click: _.scrollItem.bind(_, i, true)\r\n })\r\n _.dots.appendChild(dot)\r\n }\r\n }\r\n\r\n gliderPrototype.bindArrows = function () {\r\n var _ = this\r\n if (!_.opt.arrows) {\r\n Object.keys(_.arrows).forEach(function (direction) {\r\n var element = _.arrows[direction]\r\n _.event(element, 'remove', { click: element._func })\r\n })\r\n return\r\n }\r\n ['prev', 'next'].forEach(function (direction) {\r\n var arrow = _.opt.arrows[direction]\r\n if (arrow) {\r\n if (typeof arrow === 'string') arrow = document.querySelector(arrow)\r\n arrow._func = arrow._func || _.scrollItem.bind(_, direction)\r\n _.event(arrow, 'remove', {\r\n click: arrow._func\r\n })\r\n _.event(arrow, 'add', {\r\n click: arrow._func\r\n })\r\n _.arrows[direction] = arrow\r\n }\r\n })\r\n }\r\n\r\n gliderPrototype.updateControls = function (event) {\r\n var _ = this\r\n\r\n if (event && !_.opt.scrollPropagate) {\r\n event.stopPropagation()\r\n }\r\n\r\n var disableArrows = _.containerWidth >= _.trackWidth\r\n\r\n if (!_.opt.rewind) {\r\n if (_.arrows.prev) {\r\n _.arrows.prev.classList.toggle(\r\n 'disabled',\r\n _.ele.scrollLeft <= 0 || disableArrows\r\n )\r\n }\r\n if (_.arrows.next) {\r\n _.arrows.next.classList.toggle(\r\n 'disabled',\r\n _.ele.scrollLeft + _.containerWidth >= Math.floor(_.trackWidth) ||\r\n disableArrows\r\n )\r\n }\r\n }\r\n\r\n _.slide = Math.round(_.ele.scrollLeft / _.itemWidth)\r\n _.page = Math.round(_.ele.scrollLeft / _.containerWidth)\r\n\r\n var middle = _.slide + Math.floor(Math.floor(_.opt.slidesToShow) / 2)\r\n\r\n var extraMiddle = Math.floor(_.opt.slidesToShow) % 2 ? 0 : middle + 1\r\n if (Math.floor(_.opt.slidesToShow) === 1) {\r\n extraMiddle = 0\r\n }\r\n\r\n // the last page may be less than one half of a normal page width so\r\n // the page is rounded down. when at the end, force the page to turn\r\n if (_.ele.scrollLeft + _.containerWidth >= Math.floor(_.trackWidth)) {\r\n _.page = _.dots ? _.dots.children.length - 1 : 0\r\n }\r\n\r\n [].forEach.call(_.slides, function (slide, index) {\r\n var slideClasses = slide.classList\r\n\r\n var wasVisible = slideClasses.contains('visible')\r\n\r\n var start = _.ele.scrollLeft\r\n\r\n var end = _.ele.scrollLeft + _.containerWidth\r\n\r\n var itemStart = _.itemWidth * index\r\n\r\n var itemEnd = itemStart + _.itemWidth;\r\n\r\n [].forEach.call(slideClasses, function (className) {\r\n /^left|right/.test(className) && slideClasses.remove(className)\r\n })\r\n slideClasses.toggle('active', _.slide === index)\r\n if (middle === index || (extraMiddle && extraMiddle === index)) {\r\n slideClasses.add('center')\r\n } else {\r\n slideClasses.remove('center')\r\n slideClasses.add(\r\n [\r\n index < middle ? 'left' : 'right',\r\n Math.abs(index - (index < middle ? middle : extraMiddle || middle))\r\n ].join('-')\r\n )\r\n }\r\n\r\n var isVisible =\r\n Math.ceil(itemStart) >= start && Math.floor(itemEnd) <= end\r\n slideClasses.toggle('visible', isVisible)\r\n if (isVisible !== wasVisible) {\r\n _.emit('slide-' + (isVisible ? 'visible' : 'hidden'), {\r\n slide: index\r\n })\r\n }\r\n })\r\n if (_.dots) {\r\n [].forEach.call(_.dots.children, function (dot, index) {\r\n dot.classList.toggle('active', _.page === index)\r\n })\r\n }\r\n\r\n if (event && _.opt.scrollLock) {\r\n clearTimeout(_.scrollLock)\r\n _.scrollLock = setTimeout(function () {\r\n clearTimeout(_.scrollLock)\r\n // dont attempt to scroll less than a pixel fraction - causes looping\r\n if (Math.abs(_.ele.scrollLeft / _.itemWidth - _.slide) > 0.02) {\r\n if (!_.mouseDown) {\r\n _.scrollItem(_.round(_.ele.scrollLeft / _.itemWidth))\r\n }\r\n }\r\n }, _.opt.scrollLockDelay || 250)\r\n }\r\n }\r\n\r\n gliderPrototype.scrollItem = function (slide, dot, e) {\r\n if (e) e.preventDefault()\r\n\r\n var _ = this\r\n\r\n var originalSlide = slide\r\n ++_.animate_id\r\n\r\n if (dot === true) {\r\n slide = slide * _.containerWidth\r\n slide = Math.round(slide / _.itemWidth) * _.itemWidth\r\n } else {\r\n if (typeof slide === 'string') {\r\n var backwards = slide === 'prev'\r\n\r\n // use precise location if fractional slides are on\r\n if (_.opt.slidesToScroll % 1 || _.opt.slidesToShow % 1) {\r\n slide = _.round(_.ele.scrollLeft / _.itemWidth)\r\n } else {\r\n slide = _.slide\r\n }\r\n\r\n if (backwards) slide -= _.opt.slidesToScroll\r\n else slide += _.opt.slidesToScroll\r\n\r\n if (_.opt.rewind) {\r\n var scrollLeft = _.ele.scrollLeft\r\n slide =\r\n backwards && !scrollLeft\r\n ? _.slides.length\r\n : !backwards &&\r\n scrollLeft + _.containerWidth >= Math.floor(_.trackWidth)\r\n ? 0\r\n : slide\r\n }\r\n }\r\n\r\n slide = Math.max(Math.min(slide, _.slides.length), 0)\r\n\r\n _.slide = slide\r\n slide = _.itemWidth * slide\r\n }\r\n\r\n _.scrollTo(\r\n slide,\r\n _.opt.duration * Math.abs(_.ele.scrollLeft - slide),\r\n function () {\r\n _.updateControls()\r\n _.emit('animated', {\r\n value: originalSlide,\r\n type:\r\n typeof originalSlide === 'string' ? 'arrow' : dot ? 'dot' : 'slide'\r\n })\r\n }\r\n )\r\n\r\n return false\r\n }\r\n\r\n gliderPrototype.settingsBreakpoint = function () {\r\n var _ = this\r\n\r\n var resp = _._opt.responsive\r\n\r\n if (resp) {\r\n // Sort the breakpoints in mobile first order\r\n resp.sort(function (a, b) {\r\n return b.breakpoint - a.breakpoint\r\n })\r\n\r\n for (var i = 0; i < resp.length; ++i) {\r\n var size = resp[i]\r\n if (_window.innerWidth >= size.breakpoint) {\r\n if (_.breakpoint !== size.breakpoint) {\r\n _.opt = Object.assign({}, _._opt, size.settings)\r\n _.breakpoint = size.breakpoint\r\n return true\r\n }\r\n return false\r\n }\r\n }\r\n }\r\n // set back to defaults in case they were overriden\r\n var breakpointChanged = _.breakpoint !== 0\r\n _.opt = Object.assign({}, _._opt)\r\n _.breakpoint = 0\r\n return breakpointChanged\r\n }\r\n\r\n gliderPrototype.scrollTo = function (scrollTarget, scrollDuration, callback) {\r\n var _ = this\r\n\r\n var start = new Date().getTime()\r\n\r\n var animateIndex = _.animate_id\r\n\r\n var animate = function () {\r\n var now = new Date().getTime() - start\r\n _.ele.scrollLeft =\r\n _.ele.scrollLeft +\r\n (scrollTarget - _.ele.scrollLeft) *\r\n _.opt.easing(0, now, 0, 1, scrollDuration)\r\n if (now < scrollDuration && animateIndex === _.animate_id) {\r\n _window.requestAnimationFrame(animate)\r\n } else {\r\n _.ele.scrollLeft = scrollTarget\r\n callback && callback.call(_)\r\n }\r\n }\r\n\r\n _window.requestAnimationFrame(animate)\r\n }\r\n\r\n gliderPrototype.removeItem = function (index) {\r\n var _ = this\r\n\r\n if (_.slides.length) {\r\n _.track.removeChild(_.slides[index])\r\n _.refresh(true)\r\n _.emit('remove')\r\n }\r\n }\r\n\r\n gliderPrototype.addItem = function (ele) {\r\n var _ = this\r\n\r\n _.track.appendChild(ele)\r\n _.refresh(true)\r\n _.emit('add')\r\n }\r\n\r\n gliderPrototype.handleMouse = function (e) {\r\n var _ = this\r\n if (_.mouseDown) {\r\n _.ele.scrollLeft +=\r\n (_.mouseDown - e.clientX) * (_.opt.dragVelocity || 3.3)\r\n _.mouseDown = e.clientX\r\n }\r\n }\r\n\r\n // used to round to the nearest 0.XX fraction\r\n gliderPrototype.round = function (double) {\r\n var _ = this\r\n var step = _.opt.slidesToScroll % 1 || 1\r\n var inv = 1.0 / step\r\n return Math.round(double * inv) / inv\r\n }\r\n\r\n gliderPrototype.refresh = function (paging) {\r\n var _ = this\r\n _.init(true, paging)\r\n }\r\n\r\n gliderPrototype.setOption = function (opt, global) {\r\n var _ = this\r\n\r\n if (_.breakpoint && !global) {\r\n _._opt.responsive.forEach(function (v) {\r\n if (v.breakpoint === _.breakpoint) {\r\n v.settings = Object.assign({}, v.settings, opt)\r\n }\r\n })\r\n } else {\r\n _._opt = Object.assign({}, _._opt, opt)\r\n }\r\n\r\n _.breakpoint = 0\r\n _.settingsBreakpoint()\r\n }\r\n\r\n gliderPrototype.destroy = function () {\r\n var _ = this\r\n\r\n var replace = _.ele.cloneNode(true)\r\n\r\n var clear = function (ele) {\r\n ele.removeAttribute('style');\r\n [].forEach.call(ele.classList, function (className) {\r\n /^glider/.test(className) && ele.classList.remove(className)\r\n })\r\n }\r\n // remove track\r\n replace.children[0].outerHTML = replace.children[0].innerHTML\r\n clear(replace);\r\n [].forEach.call(replace.getElementsByTagName('*'), clear)\r\n _.ele.parentNode.replaceChild(replace, _.ele)\r\n _.event(_window, 'remove', {\r\n resize: _.resize\r\n })\r\n _.emit('destroy')\r\n }\r\n\r\n gliderPrototype.emit = function (name, arg) {\r\n var _ = this\r\n\r\n var e = new _window.CustomEvent('glider-' + name, {\r\n bubbles: !_.opt.eventPropagate,\r\n detail: arg\r\n })\r\n _.ele.dispatchEvent(e)\r\n }\r\n\r\n gliderPrototype.event = function (ele, type, args) {\r\n var eventHandler = ele[type + 'EventListener'].bind(ele)\r\n Object.keys(args).forEach(function (k) {\r\n eventHandler(k, args[k])\r\n })\r\n }\r\n\r\n return Glider\r\n})\r\n","\"use strict\";\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n //Homepage Banner\r\n new Glider(document.querySelector('.tiny-slider-banner'), {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n scrollLock: true,\r\n dots: '.banner-pager',\r\n draggable: false,\r\n rewind: true,\r\n arrows: {\r\n prev: '.prev-next-pager .prev',\r\n next: '.prev-next-pager .next'\r\n }\r\n });\r\n\r\n var newsPager = document.getElementsByClassName('view-all-news');\r\n\r\n if (newsPager[0] !== undefined) {\r\n\r\n newsPager[0].insertAdjacentHTML('beforebegin',\r\n '
');\r\n\r\n new Glider(document.querySelector('.news-items'), {\r\n slidesToShow: 1,\r\n slidesToShow: 1.25,\r\n slidesToScroll: 1,\r\n scrollLock: true,\r\n dots: '.news-pager',\r\n draggable: true,\r\n rewind: true,\r\n arrows: {\r\n prev: '.news-prev-next-pager .prev',\r\n next: '.news-prev-next-pager .next'\r\n }\r\n });\r\n }\r\n});"]}