{"version":3,"sources":["webpack:///./modules/tracker/index.js","webpack:////gll_better/node_modules/lodash/defaults.js","webpack:////gll_better/node_modules/lodash/_isIterateeCall.js","webpack:///./modules/content_carousel/index.js"],"names":["vpDetect","ViewportDetect","mobile","min","max","tablet","desktop","track","cb","addCallback","getDevice","getWidth","touchAvailable","baseRest","eq","isIterateeCall","keysIn","objectProto","Object","prototype","hasOwnProperty","defaults","object","sources","index","length","guard","undefined","source","props","propsIndex","propsLength","key","value","call","module","exports","viewport","Tracker","ContentCarouselClass","config","init","this","innerClass","itemClass","nextButtonClass","previousButtonClass","_initViewport","_init","animating","carouselInner","element","querySelector","currentItem","moveModifier","parseInt","getAttribute","nextButton","position","previousButton","_render","device","_trackSize","bind","_getItems","_addNextListener","_addPreviousListener","_setCarouselInnerClass","_toggleDisabledClass","_checkAutoPlay","addEventListener","_stopAutoPlay","_restartTimer","_next","_previous","_addFocusListeners","items","querySelectorAll","_setVisibleItems","width","clientWidth","visible","direction","adjusted","moveAmount","_setPosition","style","left","e","preventDefault","_getVisible","_moveCarousel","itemWidth","_getItemWidth","overBy","parseFloat","timer","window","setInterval","_startAutoPlay","className","replace","visibleMobile","visibleTablet","visibleDesktop","clearInterval","nextButtonClassName","previousButtonClassName","_resize"],"mappings":"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","file":"content_carousel-f60a336f.chunk.js","sourcesContent":["import ViewportDetect from '@djforth/viewport-detection-fp';\n\nconst newBreakpoints = {\n mobile: { min: 0, max: 767 },\n tablet: { min: 768, max: 1023 },\n desktop: { min: 1024, max: null },\n};\n\n/*\n////// This Tracks for viewport (screen) changes //////\n*/\n\nconst vpDetect = ViewportDetect(newBreakpoints);\nvpDetect.track();\n\nexport default cb => {\n if (cb) {\n vpDetect.addCallback(cb);\n cb(vpDetect.getDevice(), vpDetect.getWidth(), vpDetect.touchAvailable());\n }\n\n return vpDetect;\n};\n","var baseRest = require('./_baseRest'),\n eq = require('./eq'),\n isIterateeCall = require('./_isIterateeCall'),\n keysIn = require('./keysIn');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n\nvar defaults = baseRest(function (object, sources) {\n object = Object(object);\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined || eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\nmodule.exports = defaults;","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;","/* eslint-disable max-len */\nimport _ from 'lodash';\nimport Tracker from '../tracker';\n// import ViewportDetectionClass from 'viewport-detection-es6';\n\nconst viewport = Tracker();\n\nclass ContentCarouselClass {\n constructor(config = {}, init = true) {\n this.config = _.defaults(config, {\n innerClass: 'carousel-content-inner',\n itemClass: 'content-carousel-item',\n nextButtonClass: 'content-carousel-next',\n previousButtonClass: 'content-carousel-previous',\n });\n\n if (init) {\n this._initViewport();\n this._init();\n }\n }\n\n _init() {\n this.animating = false;\n this.carouselInner = this.config.element.querySelector(`.${this.config.innerClass}`);\n this.currentItem = 0;\n this.moveModifier = parseInt(this.config.element.getAttribute('data-move-modifier'), 10);\n this.nextButton = this.config.element.querySelector(`.${this.config.nextButtonClass}`);\n this.position = 0;\n this.previousButton = this.config.element.querySelector(`.${this.config.previousButtonClass}`);\n this._render();\n }\n\n _initViewport() {\n this.device = viewport.getDevice();\n // this.size = viewport.getWidth();\n Tracker(this._trackSize.bind(this));\n }\n\n _render() {\n this._getItems();\n this._addNextListener();\n this._addPreviousListener();\n this._setCarouselInnerClass();\n this._toggleDisabledClass();\n this._checkAutoPlay();\n }\n\n _addFocusListeners() {\n this.config.element.addEventListener('mouseenter', this._stopAutoPlay.bind(this), false);\n this.config.element.addEventListener('mouseleave', this._restartTimer.bind(this), false);\n }\n\n _addNextListener() {\n this.nextButton.addEventListener('click', this._next.bind(this), false);\n }\n\n _addPreviousListener() {\n this.previousButton.addEventListener('click', this._previous.bind(this), false);\n }\n\n _checkAutoPlay() {\n const autoPlay = this.config.element.getAttribute('data-autoplay');\n\n if (autoPlay === 'true') {\n this._addFocusListeners();\n this._restartTimer();\n }\n }\n\n _getItems() {\n this.items = this.config.element.querySelectorAll(`.${this.config.itemClass}`);\n\n this._setVisibleItems();\n }\n\n _getItemWidth() {\n const width = this.config.element.clientWidth;\n const itemWidth = (width / this.visible[this.device] / width) * 100;\n\n return itemWidth;\n }\n\n _getVisible() {\n const visible = this.visible[this.device];\n\n return visible;\n }\n\n _moveCarousel(direction, adjusted = false, moveAmount = null) {\n const position = this._setPosition(direction, adjusted, moveAmount);\n\n this.position += position;\n this.carouselInner.style.left = `${this.position}%`;\n this._toggleDisabledClass();\n }\n\n _next(e) {\n e.preventDefault();\n\n const visible = this._getVisible();\n\n if (this.currentItem < this.items.length && this.currentItem + visible < this.items.length) {\n if (this.moveModifier && !(this.items.length - (this.currentItem + visible) < visible)) {\n this.currentItem += this.moveModifier;\n\n this._moveCarousel('next', true, this.moveModifier);\n } else if (this.items.length - (this.currentItem + visible) < visible) {\n const moveAmount = this.items.length - (this.currentItem + visible);\n\n this.currentItem += moveAmount;\n\n this._moveCarousel('next', true, moveAmount);\n } else {\n this.currentItem += visible;\n\n this._moveCarousel('next');\n }\n }\n }\n\n _previous(e) {\n e.preventDefault();\n\n const visible = this._getVisible();\n\n if (this.currentItem > 0) {\n if (this.moveModifier && !(this.currentItem - visible < visible)) {\n this.currentItem -= this.moveModifier;\n\n this._moveCarousel('previous', true, this.moveModifier);\n } else if (this.currentItem - visible < visible) {\n const moveAmount = this.currentItem;\n\n this.currentItem -= moveAmount;\n this._moveCarousel('previous', true, moveAmount);\n } else {\n this.currentItem -= visible;\n this._moveCarousel('previous');\n }\n }\n }\n\n _resize() {\n const itemWidth = this._getItemWidth();\n const visible = this._getVisible();\n\n if (this.currentItem + visible > this.items.length) {\n const overBy = this.currentItem + visible - this.items.length;\n this.currentItem -= overBy;\n }\n\n this.position = parseFloat(`-${this.currentItem * itemWidth}`);\n this.carouselInner.style.left = `${this.position}%`;\n\n this._setCarouselInnerClass();\n this._toggleDisabledClass();\n }\n\n _restartTimer() {\n if (this.items.length > 1) {\n this._stopAutoPlay();\n this.timer = window.setInterval(this._startAutoPlay.bind(this), 5000);\n }\n }\n\n _setCarouselInnerClass() {\n const { className } = this.carouselInner;\n const visible = this._getVisible();\n\n if (_.includes(className, 'showing')) {\n this.carouselInner.className = className.replace(/(?:^|\\s)showing-[0-9]*/g, ` showing-${visible}`);\n } else {\n this.carouselInner.className += ` showing-${visible}`;\n }\n }\n\n _setPosition(direction, adjusted, moveAmount) {\n let position;\n const itemWidth = this._getItemWidth();\n const visible = this._getVisible();\n\n if (adjusted) {\n position = parseFloat(direction === 'next' ? `-${itemWidth * moveAmount}` : itemWidth * moveAmount);\n } else {\n position = parseFloat(direction === 'next' ? `-${itemWidth * visible}` : itemWidth * visible);\n }\n\n return position;\n }\n\n _setVisibleItems() {\n const visibleMobile = this.config.element.getAttribute('data-visible-mobile');\n const visibleTablet = this.config.element.getAttribute('data-visible-tablet');\n const visibleDesktop = this.config.element.getAttribute('data-visible-desktop');\n\n this.visible = {\n mobile: visibleMobile <= this.items.length ? parseInt(visibleMobile, 10) : 1,\n tablet: visibleTablet <= this.items.length ? parseInt(visibleTablet, 10) : 2,\n desktop: visibleDesktop <= this.items.length ? parseInt(visibleDesktop, 10) : this.items.length,\n };\n }\n\n _startAutoPlay() {\n const visible = this._getVisible();\n\n if (this.currentItem < this.items.length && this.currentItem + visible < this.items.length) {\n if (this.moveModifier) {\n this.currentItem += this.moveModifier;\n\n this._moveCarousel('next', true, this.moveModifier);\n } else if (this.items.length - (this.currentItem + visible) < visible) {\n const moveAmount = this.items.length - (this.currentItem + visible);\n\n this.currentItem += moveAmount;\n\n this._moveCarousel('next', true, moveAmount);\n } else {\n this.currentItem += visible;\n\n this._moveCarousel('next');\n }\n }\n }\n\n _stopAutoPlay() {\n if (!_.isUndefined(this.timer)) {\n window.clearInterval(this.timer);\n\n this.timer = undefined;\n }\n }\n\n _toggleDisabledClass() {\n const nextButtonClassName = this.nextButton.className;\n const previousButtonClassName = this.previousButton.className;\n const visible = this._getVisible();\n\n if (this.currentItem < this.items.length && this.currentItem + visible < this.items.length) {\n if (_.includes(this.nextButton.className, 'disabled')) {\n this.nextButton.className = nextButtonClassName.replace(/(?:^|\\s)disabled(?!\\S)/g, '');\n }\n } else if (!_.includes(this.nextButton.className, 'disabled')) {\n this.nextButton.className += ' disabled';\n }\n\n if (this.currentItem > 0) {\n if (_.includes(this.previousButton.className, 'disabled')) {\n this.previousButton.className = previousButtonClassName.replace(/(?:^|\\s)disabled(?!\\S)/g, '');\n }\n } else if (!_.includes(this.previousButton.className, 'disabled')) {\n this.previousButton.className += ' disabled';\n }\n }\n\n _trackSize(device) {\n if (this.device !== device) {\n this.device = device;\n this._resize();\n }\n\n // this.size = size;\n }\n}\n\nexport default ContentCarouselClass;\n/* eslint-enable */\n"],"sourceRoot":""}