{"version":3,"file":"slider-quotes.js","names":["a1QuotesSlider","SesoSlider","constructor","selector","this","el","container","HTMLElement","document","getElementById","querySelector","slider","undefined","animator","slides","querySelectorAll","anchors","buttonNext","buttonPrev","scrollIndicator","sliderHeaderWrapper","closest","sliderHeaderAnimator","sliderHeaderItems","sliderHeaderIndicator","sliderHeaderBtnNext","sliderHeaderBtnPrev","expandableWrapper","expandables","expandablesController","expandablesContent","events","params","sliderVisibleWidth","slideWidth","slideTotal","position","positionMax","trackingStartX","trackingEndX","trackingDirection","translateX","posX","lastPosX","amplitude","velocity","firstTimestamp","lastTimestamp","ticker","isClick","hasMoved","isEasing","isInitialized","dataInitialSlide","initialSlideSet","noSliderClass","singleItemClass","sliderInitializedClass","dataSlideNumber","visibleSlideIds","hasHeader","ticking","sliderHeaderIsMoving","sliderHeaderMovingDirection","sliderHeaderMoveDistance","sliderHeaderAnimationDuration","classNoTransition","classActive","hasExpandables","classExpandableItem","classExpandableContent","classExpandableOpen","dataAttrExpandableId","dataAttrExpandableHeight","expandableIds","length","initSlider","initSliderHeader","initExpandables","classList","add","i","setAttribute","bindEvents","destroy","resize","preventDefault","event","dispatchEvent","typeArg","customEventInit","bubbles","cancelable","detail","window","CustomEvent","on","touchStart","touchEnd","goToNext","goToPrev","that","item","delayLocationChange","_target","href","setPosition","target","type","callback","key","_key","Math","random","toString","substring","listeners","_listener","call","push","addEventListener","off","_removeByType","removeEventListener","splice","Object","keys","startTracking","stopTracking","setInterval","track","bind","eventCoords","x","translateValues","touchMove","clearInterval","now","Date","timeElapsed","delta","v","moveTo","rightBorder","style","transform","targetX","requestAnimation","snapPosition","exp","xMin","snap","myX","ceil","floor","requestAnimationFrame","setTimeout","location","element","getComputedStyle","matrix","webkitTransform","mozTransform","y","z","matrixType","includes","matrixValues","match","split","parseInt","indexOf","touch","targetTouches","changedTouches","clientX","clientY","xTarget","removeAttribute","getVisibleSlides","setSliderHeaderHandleActiveItems","left","getBoundingClientRect","width","slideVisibleTotal","sliderNeeded","initialSlide","getAttribute","create","resizeSliderHeader","detectExpanderHeights","remove","cutoff","parseFloat","replace","firstVisibleSlide","offsetLeft","containerWidth","visibleSlideCount","slideIds","j","cutoffHeader","itemPadding","getPropertyValue","isNaN","headerWidth","actItemPos","click","sliderHeaderHandleEvents","destroySliderHeader","sliderNav","headerSliderOverflow","detectSliderHeaderOverflow","toggleSliderHeaderControls","sliderOverflow","navBarRightEdge","right","navBarScrollerRightEdge","availableScrollRight","availableScrollLeft","scrollLeft","styleOfTransform","tr","amount","abs","slidePosition","createSliderHeader","updateSliderHeader","activeItemIds","firstActive","indicatorWidth","k","l","m","contains","distance","scroll","overflowDirection","sliderPadding","containerDimensions","containerDimensionsRight","containerDimensionsLeft","tabsDimensions","tabsDimensionsRight","tabsDimensionsLeft","sliderHeaderOverflow","disabled","padding","visibleWidth","totalWidth","sliderHeaderIsInitialized","getExpanderIds","dataId","closeExpanderGroup","openExpanderGroup","groupId","height","heightHelper","expanderHeight","clientHeight","dataIds","id","forEach","fragment"],"sources":["slider-quotes.js"],"mappings":"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","sourcesContent":["// features:\n// slide left/right width buttons/arrows, or swipe\n// optional: scroll indicator\n// optional: slider header navigation\n// optional: expandables\n/* Based on https://github.com/jabes/snap-touch */\n\nif(typeof a1QuotesSlider === 'undefined'){\n const SesoSlider = class {\n\n constructor(selector) {\n this.el = {};\n this.el.container = selector instanceof HTMLElement\n ? selector\n : (\n document.getElementById(selector) ||\n document.querySelector(selector)\n );\n\n this.el.slider = this.el.container ? this.el.container\n : undefined;\n this.el.animator = this.el.container ? this.el.container.querySelector('.animator')\n : undefined;\n this.el.slides = this.el.animator ? this.el.animator.querySelectorAll('.item')\n : [];\n this.el.anchors = this.el.animator ? this.el.animator.querySelectorAll('a[href]:not([href*=\"?openoverlay\"]')\n : [];\n this.el.buttonNext = this.el.container ? this.el.container.querySelector('button.next')\n : undefined;\n this.el.buttonPrev = this.el.container ? this.el.container.querySelector('button.prev')\n : undefined;\n this.el.scrollIndicator = this.el.container.querySelector('.scroll-indicator .indicator')\n ? this.el.container.querySelector('.scroll-indicator .indicator')\n : undefined;\n\n // slider header\n this.el.sliderHeaderWrapper = this.el.container.closest('a1-fragment').querySelector('.slider-header')\n ? this.el.container.closest('a1-fragment').querySelector('.slider-header')\n : undefined;\n this.el.sliderHeaderAnimator = this.el.sliderHeaderWrapper\n ? this.el.sliderHeaderWrapper.querySelector('.animator')\n : undefined;\n this.el.sliderHeaderItems = this.el.sliderHeaderWrapper\n ? this.el.sliderHeaderWrapper.querySelectorAll('.slider-header-controller')\n : undefined;\n this.el.sliderHeaderIndicator = this.el.sliderHeaderWrapper\n ? this.el.sliderHeaderWrapper.querySelector('.indicator')\n : undefined;\n this.el.sliderHeaderBtnNext = this.el.sliderHeaderWrapper\n ? this.el.sliderHeaderWrapper.querySelector('.slider-header-button.next')\n : undefined;\n this.el.sliderHeaderBtnPrev = this.el.sliderHeaderWrapper\n ? this.el.sliderHeaderWrapper.querySelector('.slider-header-button.prev')\n : undefined;\n\n // expandables\n this.el.expandableWrapper = this.el.container.querySelector('.item .expandable')\n ? this.el.container.querySelector('.item .expandable')\n : undefined;\n this.el.expandables = this.el.container.querySelectorAll('.item .expandable-item')\n ? this.el.container.querySelectorAll('.item .expandable-item')\n : [];\n this.el.expandablesController = this.el.container.querySelectorAll('.item .expandable-controller')\n ? this.el.container.querySelectorAll('.item .expandable-controller')\n : [];\n this.el.expandablesContent = this.el.container.querySelectorAll('.item .expandable-content')\n ? this.el.container.querySelectorAll('.item .expandable-content')\n : [];\n\n this.events = {};\n\n this.params = {\n sliderVisibleWidth: undefined,\n slideWidth: undefined,\n slideTotal: undefined,\n position: 0,\n positionMax: undefined,\n trackingStartX: undefined,\n trackingEndX: undefined,\n trackingDirection: undefined,\n translateX: 0,\n posX: 0,\n lastPosX: 0,\n amplitude: undefined,\n velocity: undefined,\n firstTimestamp: undefined,\n lastTimestamp: undefined,\n ticker: undefined,\n isClick: undefined,\n hasMoved: undefined,\n isEasing: undefined,\n isInitialized: undefined,\n dataInitialSlide: 'data-initial-slide',\n initialSlideSet: false,\n noSliderClass: 'no-slider',\n singleItemClass: 'single-item',\n sliderInitializedClass: 'slider-initialized',\n dataSlideNumber: 'data-slide',\n visibleSlideIds: [],\n hasHeader: false,\n ticking: false,\n sliderHeaderIsMoving: false,\n sliderHeaderMovingDirection: '',\n sliderHeaderMoveDistance: 180,\n sliderHeaderAnimationDuration: 200,\n classNoTransition: 'no-transition',\n classActive: 'active',\n hasExpandables: false,\n classExpandableItem: 'expandable-item',\n classExpandableContent: 'expandable-content-inner',\n classExpandableOpen: 'is-open',\n dataAttrExpandableId: 'data-expandable-id',\n dataAttrExpandableHeight: 'data-expandable-height',\n expandableIds: []\n };\n\n if (this.el.container && this.el.slides.length >= 0) {\n this.initSlider();\n }\n }\n\n initSlider () {\n // check if there is an optional slider header\n if(typeof this.el.sliderHeaderWrapper !== 'undefined') {\n this.params.hasHeader = true;\n this.initSliderHeader();\n }\n\n // check if there are optinal expandables\n if(typeof this.el.expandableWrapper !== 'undefined') {\n this.params.hasExpandables = true;\n this.initExpandables();\n }\n\n // manage single item\n if(this.el.slides.length === 1) {\n this.el.container.classList.add(this.params.singleItemClass);\n }\n\n // init\n // set numberation to items\n for (let i = 0; i < this.el.slides.length; i++) {\n this.el.slides[i].setAttribute(this.params.dataSlideNumber, i + 1);\n }\n\n this.bindEvents();\n // reset on init\n this.destroy();\n this.resize();\n }\n\n preventDefault(event) {\n event.preventDefault();\n return false;\n }\n\n dispatchEvent(typeArg, customEventInit = { bubbles: false, cancelable: false, detail: null }) {\n const event = new window.CustomEvent(typeArg, customEventInit);\n this.el.container.dispatchEvent(event);\n return event;\n }\n\n bindEvents() {\n this.on(this.el.animator, 'dragstart', this.preventDefault);\n this.on(this.el.animator, 'touchstart', this.touchStart);\n this.on(this.el.animator, 'mousedown', this.touchStart);\n this.on(this.el.animator, 'touchend', this.touchEnd);\n //this.on(this.el.animator, 'mouseup', this.stopTracking);\n\n // Add event listeners to buttons (next/prev)\n this.on(this.el.buttonNext, 'click', this.goToNext);\n this.on(this.el.buttonPrev, 'click', this.goToPrev);\n\n // Add event listener for keydown (arrow left/right moves)\n // this.on(this.el.container.closest('.a1-slider-product'), 'keydown', this.keyboardMove);\n\n let that = this;\n for (var i = 0; i < this.el.anchors.length; i++) {\n this.on(this.el.anchors.item(i), 'click', function (event) {\n that.preventDefault(event);\n if (that.params.isClick) {\n that.delayLocationChange(event._target.href);\n }\n });\n }\n\n this.on(window, 'resize', this.resize);\n }\n\n goToNext(event) {\n event.preventDefault();\n this.setPosition(this.params.position + 1);\n }\n\n goToPrev(event) {\n event.preventDefault();\n this.setPosition(this.params.position - 1);\n }\n\n /*\n keyboardMove(event) {\n if (event.code == 'ArrowRight' && this.params.position < this.params.positionMax) {\n this.goToNext(event);\n } else if (event.code == 'ArrowLeft' && this.params.position > 0) {\n this.goToPrev(event);\n }\n }\n */\n\n on(target, type, callback) {\n const key = target._key || Math.random().toString(36).substring(7);\n target._key = key;\n if (!this.events[key]) {\n this.events[key] = {};\n }\n\n if (!this.events[key][type]) {\n this.events[key][type] = {\n target: target,\n listeners: [],\n };\n }\n\n const _listener = (event) => {\n event._key = key;\n event._target = target;\n callback.call(this, event);\n };\n this.events[key][type].listeners.push(_listener);\n target.addEventListener(type, _listener);\n }\n\n off(target, type = null) {\n const key = target._key;\n const _removeByType = (key, type) => {\n const target = this.events[key][type].target;\n const listeners = this.events[key][type].listeners;\n for (let i = 0; i < listeners.length; i++) {\n target.removeEventListener(type, listeners[i]);\n this.events[key][type].listeners.splice(i, 1);\n }\n if (this.events[key][type].listeners.length === 0) {\n delete this.events[key][type];\n }\n if (Object.keys(this.events[key]).length === 0) {\n delete this.events[key];\n }\n };\n\n if (this.events[key]) {\n if (type) {\n _removeByType(key, type);\n } else {\n const events = this.events[key];\n for (let type in events) {\n if (events[type]) {\n _removeByType(key, type);\n }\n }\n }\n }\n }\n\n startTracking(event) {\n if (this.params.ticker) {\n this.stopTracking();\n }\n this.params.ticker = window.setInterval(this.track.bind(this), 100);\n\n this.params.trackingStartX = this.eventCoords(event, 'startTracking').x;\n this.params.translateX = this.translateValues(this.el.animator).x;\n\n this.on(document, 'touchmove', this.touchMove);\n this.on(document, 'mousemove', this.touchMove);\n this.on(document, 'touchend', this.touchEnd);\n this.on(document, 'mouseup', this.touchEnd);\n this.dispatchEvent('SesoSlider.trackingStart');\n }\n\n stopTracking() {\n window.clearInterval(this.params.ticker);\n delete this.params.ticker;\n\n this.off(document);\n this.dispatchEvent('SesoSlider.trackingEnd');\n }\n\n track() {\n var now = Date.now();\n var timeElapsed = now - this.params.lastTimestamp;\n var delta = this.params.posX - this.params.lastPosX;\n var v = 1000 * delta / (1 + timeElapsed);\n this.params.velocity = 0.8 * (v + 0.2) * this.params.velocity;\n this.dispatchEvent('SesoSlider.tracking', {\n bubbles: false,\n cancelable: false,\n detail: {\n now: now,\n delta: delta,\n velocity: this.params.velocity,\n posX: this.params.posX,\n lastPosX: this.params.lastPosX,\n lastTimestamp: this.params.lastTimestamp\n }\n });\n this.params.lastPosX = this.params.posX;\n this.params.lastTimestamp = now;\n }\n\n touchStart(event) {\n this.params.velocity = 0;\n this.params.amplitude = 0;\n this.params.posX = this.params.posX || 0;\n this.params.lastPosX = this.params.posX;\n this.params.firstTimestamp = Date.now();\n this.params.lastTimestamp = this.params.firstTimestamp;\n this.params.trackingStartX = this.eventCoords(event, 'touchStart').x;\n this.params.isEasing = false;\n this.params.isClick = false;\n this.params.hasMoved = false;\n this.startTracking(event);\n }\n\n touchMove(event) {\n if (this.params.isInitialized) {\n const delta = this.eventCoords(event, 'toucheMove').x - this.params.trackingStartX;\n this.params.trackingDirection = (delta >= 0) ? 'right' : 'left';\n\n // move left/right\n if (delta > 20 || delta < -20) {\n // check left and right border\n let moveTo = delta + this.params.translateX;\n if (moveTo > 0) {\n moveTo = 0;\n }\n const rightBorder = (this.params.trackingEndX - this.params.sliderVisibleWidth) * -1;\n if (moveTo < rightBorder) {\n moveTo = rightBorder;\n }\n\n // move slider left/right\n this.el.animator.style.transform = 'translateX(' + moveTo + 'px)';\n }\n }\n }\n\n touchEnd() {\n this.stopTracking();\n this.params.amplitude = this.params.targetX - this.params.posX;\n this.params.lastTimestamp = Date.now();\n\n if (this.params.isInitialized) {\n this.requestAnimation(this.snapPosition);\n }\n // IE and FF fire click events on drag/swipe, so we need to decide if click behaviour should be honoured\n var timeElapsed = this.params.lastTimestamp - this.params.firstTimestamp;\n this.params.isClick = !this.params.hasMoved && timeElapsed < 300;\n }\n\n snapPosition() {\n var timeConstant = 325;\n var timeElapsed = Date.now() - this.params.lastTimestamp;\n var delta = -this.params.amplitude * Math.exp(-timeElapsed / timeConstant);\n var xMin = this.params.slideWidth * -(this.params.slideTotal - 1);\n var xMax = 0;\n this.params.isEasing = this.params.posX > xMin && this.params.posX < xMax && (delta > 20 || delta < -20);\n\n const snap = this.params.slideWidth;\n const myX = this.translateValues(this.el.animator).x * -1;\n let position = 0;\n if (this.params.trackingDirection == 'left') {\n position = (Math.ceil(myX / snap) * snap) / this.params.slideWidth;\n } else {\n position = (Math.floor(myX / snap) * snap) / this.params.slideWidth;\n }\n this.setPosition(position, 'snapPosition');\n }\n\n requestAnimation(callback) {\n callback = callback.bind(this);\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(callback);\n } else {\n window.setTimeout(callback, 10);\n }\n }\n\n delayLocationChange(href) {\n var setLocation = function setLocation(href) {\n if (this.params.isEasing) {\n this.delayLocationChange(href);\n } else {\n window.location.href = href;\n }\n };\n window.setTimeout(setLocation.bind(this, href), 50);\n }\n\n translateValues(element) {\n const style = window.getComputedStyle(element);\n const matrix = style['transform'] || style.webkitTransform || style.mozTransform\n\n // No transform property. Simply return 0 values.\n if (matrix === 'none' || typeof matrix === 'undefined') {\n return {\n x: 0,\n y: 0,\n z: 0\n }\n }\n\n // Can either be 2d or 3d transform\n const matrixType = matrix.includes('3d') ? '3d' : '2d'\n const matrixValues = matrix.match(/matrix.*\\((.+)\\)/)[1].split(', ')\n\n // 2d matrices have 6 values\n // Last 2 values are X and Y.\n // 2d matrices does not have Z value.\n if (matrixType === '2d') {\n return {\n x: parseInt(matrixValues[4]),\n y: parseInt(matrixValues[5]),\n z: 0\n }\n }\n\n // 3d matrices have 16 values\n // The 13th, 14th, and 15th values are X, Y, and Z\n if (matrixType === '3d') {\n return {\n x: parseInt(matrixValues[12]),\n y: parseInt(matrixValues[13]),\n z: parseInt(matrixValues[14])\n }\n }\n\n return {\n x: 0,\n y: 0,\n z: 0\n }\n }\n\n eventCoords(event) {\n const touchEvents = ['touchmove', 'touchstart', 'touchend'];\n const isTouchEvent = touchEvents.indexOf(event.type) > -1;\n if (isTouchEvent) {\n let touch = event.targetTouches[0] || event.changedTouches[0];\n return {\n x: touch.clientX,\n y: touch.clientY,\n };\n } else {\n return {\n x: event.clientX,\n y: event.clientY,\n };\n }\n }\n\n setPosition(position) {\n if (position > this.params.positionMax) {\n this.params.position = this.params.positionMax;\n } else {\n this.params.position = (position < 0) ? 0 : position;\n }\n\n const xTarget = this.params.position * this.params.slideWidth * -1;\n this.el.animator.style.transform = 'translateX(' + xTarget + 'px)';\n this.params.hasMoved = true;\n\n // Take care of buttons\n if (position == 0) {\n this.el.buttonPrev.setAttribute('disabled', 'disabled');\n } else {\n this.el.buttonPrev.removeAttribute('disabled');\n }\n if (position >= this.params.positionMax) {\n this.el.buttonNext.setAttribute('disabled', 'disabled');\n } else {\n this.el.buttonNext.removeAttribute('disabled');\n }\n\n // take care of slider header\n if(this.params.hasHeader) {\n this.getVisibleSlides();\n this.setSliderHeaderHandleActiveItems();\n }\n\n // Take care of scroll indicator\n if(typeof this.el.scrollIndicator !== 'undefined') {\n this.el.scrollIndicator.style.left = position * (100 / (this.params.positionMax + 1)) + '%';\n }\n\n this.dispatchEvent('SesoSlider.positionChanged', {\n bubbles: false,\n cancelable: false,\n detail: {\n posX: this.params.posX\n }\n });\n }\n\n resize() {\n this.params.sliderVisibleWidth = this.el.slider.getBoundingClientRect().width;\n this.params.slideWidth = this.el.slides.item(0).getBoundingClientRect().width;\n this.params.slideTotal = this.el.slides.length;\n this.params.slideVisibleTotal = Math.floor(this.el.animator.getBoundingClientRect().width / this.params.slideWidth);\n this.params.positionMax = this.params.slideTotal - this.params.slideVisibleTotal;\n this.params.trackingEndX = this.params.slideWidth * this.params.slideTotal;\n\n let sliderNeeded = this.params.sliderVisibleWidth >= (this.params.slideWidth * this.params.slideTotal) ? true : false;\n\n // check if slider is needed\n if (sliderNeeded && this.params.isInitialized) {\n // if all slides are visible and slider was created -> destroy slider\n this.destroy();\n } else if (!sliderNeeded && !this.params.isInitialized) {\n // if not all slides are visible and slider is not created -> create\n // check if initial slide is set, if not -> set to first\n var initialSlide = this.el.slider.getAttribute(this.params.dataInitialSlide);\n if(this.params.initialSlideSet === false && typeof initialSlide !== 'undefined') {\n this.params.position = (parseInt(initialSlide) - 1) >= 0 ? (parseInt(initialSlide) - 1) : 0;\n this.params.initialSlideSet = true;\n }\n this.create();\n this.params.initialSlideSet = true;\n } else if (this.params.isInitialized) {\n // if not all slides are visible and slider is created -> reposition\n this.setPosition(this.params.position, 'resize');\n }\n\n // get visible slides\n this.getVisibleSlides();\n\n // if there is a slider header\n if(this.params.hasHeader) {\n this.resizeSliderHeader();\n }\n\n // if there are expanders - set correct content height\n if(this.params.hasExpandables) {\n this.detectExpanderHeights();\n }\n\n // Set scroll indicator width\n if(typeof this.el.scrollIndicator !== 'undefined') {\n this.el.scrollIndicator.style.width = 100 / (this.params.positionMax + 1) + '%';\n }\n\n this.dispatchEvent('SesoSlider.resized', {\n bubbles: false,\n cancelable: false,\n detail: {\n slideWidth: this.params.slideWidth,\n slideTotal: this.params.slideTotal,\n }\n });\n }\n\n create() {\n // show controls\n this.el.container.classList.remove(this.params.noSliderClass);\n\n // set slider position\n this.setPosition(this.params.position, 'resize');\n\n // initialze\n this.params.isInitialized = true;\n this.el.slider.classList.add(this.params.sliderInitializedClass);\n this.dispatchEvent('SesoSlider.created');\n }\n\n destroy() {\n // hide controls\n this.el.container.classList.add(this.params.noSliderClass);\n\n // reset slider position\n this.el.animator.style.transform = 'translateX(0)';\n\n // destroy\n this.params.isInitialized = false;\n this.el.slider.classList.remove(this.params.sliderInitializedClass);\n this.dispatchEvent('SesoSlider.destroyed');\n }\n\n getVisibleSlides() {\n var cutoff = parseFloat(this.el.animator.style.transform.replace(/[a-z()-]/gi, ''));\n var firstVisibleSlide = '';\n\n // get first visible slide\n for (let i = 0; i < this.el.slides.length; i++) {\n if (this.el.slides[i].offsetLeft >= cutoff) {\n firstVisibleSlide = parseInt(this.el.slides[i].getAttribute('data-slide'));\n break;\n }\n };\n\n // get amount of visible elements\n var containerWidth = this.el.slider.getBoundingClientRect().width;\n var slideWidth = this.el.slides[0].getBoundingClientRect().width;\n var visibleSlideCount = Math.floor(containerWidth / slideWidth);\n\n\n // get visible slide ids\n var slideIds = [];\n for (let j = 0; j < visibleSlideCount; j++) {\n slideIds.push(firstVisibleSlide + j);\n }\n\n // set visible slide ids\n this.params.visibleSlideIds = slideIds;\n\n if(this.params.hasHeader) {\n // get dimensions of visible area\n var cutoffHeader = parseFloat(this.el.sliderHeaderAnimator.style.transform.replace(/[a-z()-]/gi, ''));\n var itemPadding = parseFloat(window.getComputedStyle(this.el.sliderHeaderWrapper, null).getPropertyValue('padding-left'));\n cutoffHeader = !isNaN(cutoffHeader) ? (cutoffHeader + itemPadding) : itemPadding;\n var headerWidth = this.el.sliderHeaderAnimator.getBoundingClientRect().width;\n\n // get position of active element\n var actItemPos = this.el.sliderHeaderItems[this.params.position].getBoundingClientRect().left;\n\n // check if active element is visible\n if(actItemPos < cutoffHeader) {\n // not visible -> scroll to left\n this.el.sliderHeaderBtnPrev.click();\n } else if (actItemPos > headerWidth) {\n // not visible -> scroll to right\n this.el.sliderHeaderBtnNext.click();\n }\n }\n }\n\n initSliderHeader() {\n // set numberations to slider header items\n for (let i = 0; i < this.el.sliderHeaderItems.length; i++) {\n this.el.sliderHeaderItems[i].setAttribute(this.params.dataSlideNumber, i + 1);\n }\n\n this.sliderHeaderHandleEvents();\n\n // destroy slider header initial\n this.destroySliderHeader();\n }\n\n sliderHeaderHandleEvents() {\n let that = this;\n\n var sliderNav = this.el.sliderHeaderWrapper.querySelector('nav');\n\n // scrolling\n this.el.sliderHeaderAnimator.addEventListener('scroll', function() {\n\n if (!that.params.ticking) {\n window.requestAnimationFrame(function() {\n var headerSliderOverflow = that.detectSliderHeaderOverflow();\n that.el.sliderHeaderWrapper.setAttribute('data-overflowing', headerSliderOverflow);\n that.toggleSliderHeaderControls(headerSliderOverflow);\n that.params.ticking = false;\n });\n }\n that.params.ticking = true;\n });\n\n // slider header control next\n this.el.sliderHeaderBtnNext.addEventListener('click', function(event) {\n // if slider is already moving - return\n if(that.params.sliderHeaderIsMoving === true) {\n event.preventDefault();\n }\n\n var sliderOverflow = that.detectSliderHeaderOverflow();\n // if there is space to scroll on the right side\n if (sliderOverflow === 'right' || sliderOverflow === 'both') {\n // get the right edge\n var navBarRightEdge = sliderNav.getBoundingClientRect().right;\n var navBarScrollerRightEdge = that.el.sliderHeaderAnimator.getBoundingClientRect().right;\n // detect how much space is available to scroll\n var availableScrollRight = Math.floor(navBarRightEdge - navBarScrollerRightEdge);\n\n // make transition available (set in CSS) when moving\n sliderNav.classList.remove(that.params.classNoTransition);\n\n // if the space thats available is less than our defined distance -> move to the right end\n // otherwise, move defined distance\n if (availableScrollRight < that.params.sliderHeaderMoveDistance) {\n sliderNav.style.transform = 'translateX(-' + (availableScrollRight) + 'px)';\n } else {\n sliderNav.style.transform = 'translateX(-' + (that.params.sliderHeaderMoveDistance) + 'px)';\n }\n\n // update params\n that.params.sliderHeaderMovingDirection = 'right';\n that.params.sliderHeaderIsMoving = true;\n }\n\n // set data overflow\n that.el.sliderHeaderWrapper.setAttribute('data-overflowing', that.detectSliderHeaderOverflow());\n });\n\n // slider header control prev\n this.el.sliderHeaderBtnPrev.addEventListener('click', function(event) {\n // if slider is already moving - return\n if(that.params.sliderHeaderIsMoving === true) {\n event.preventDefault();\n }\n\n var sliderOverflow = that.detectSliderHeaderOverflow();\n // if there is space to scroll on the right side\n if (sliderOverflow === 'left' || sliderOverflow === 'both') {\n // get how far this panel has been scrolled\n var availableScrollLeft = that.el.sliderHeaderAnimator.scrollLeft;\n\n // make transition available (set in CSS) when moving\n sliderNav.classList.remove(that.params.classNoTransition);\n\n // if the space thats available is less than our defined distance -> move to the left end\n // otherwise, move defined distance\n if (availableScrollLeft < that.params.sliderHeaderMoveDistance) {\n sliderNav.style.transform = 'translateX(' + (availableScrollLeft) + 'px)';\n } else {\n sliderNav.style.transform = 'translateX(' + (that.params.sliderHeaderMoveDistance) + 'px)';\n }\n\n // update params\n that.params.sliderHeaderMovingDirection = 'left';\n that.params.sliderHeaderIsMoving = true;\n }\n\n // set data overflow\n that.el.sliderHeaderWrapper.setAttribute('data-overflowing', that.detectSliderHeaderOverflow());\n });\n\n // transitioning\n sliderNav.addEventListener('transitionend',\n function() {\n // get the value of the transform, apply that to the current scroll position (so get the scroll pos first)\n // and remove the transform\n var styleOfTransform = window.getComputedStyle(sliderNav, null);\n var tr = styleOfTransform.getPropertyValue('-webkit-transform') || styleOfTransform.getPropertyValue('transform');\n\n // if there is no transition -> to default 0\n var amount = Math.abs(parseInt(tr.split(',')[4]) || 0);\n sliderNav.style.transform = 'none';\n sliderNav.classList.add(that.params.classNoTransition);\n\n // get the scroll position\n if (that.params.sliderHeaderMovingDirection === 'left') {\n that.el.sliderHeaderAnimator.scrollLeft = that.el.sliderHeaderAnimator.scrollLeft - amount;\n } else {\n that.el.sliderHeaderAnimator.scrollLeft = that.el.sliderHeaderAnimator.scrollLeft + amount;\n }\n that.params.sliderHeaderIsMoving = false;\n },\n false\n );\n\n // react on slider header item click\n for (var i = 0; i < this.el.sliderHeaderItems.length; i++) {\n this.el.sliderHeaderItems[i].addEventListener('click', function (event) {\n event.preventDefault();\n var slidePosition = this.getAttribute(that.params.dataSlideNumber);\n that.params.position = parseInt(slidePosition) -1;\n that.setPosition(that.params.position);\n });\n }\n }\n\n createSliderHeader() {\n var sliderOverflow = this.detectSliderHeaderOverflow();\n this.el.sliderHeaderWrapper.setAttribute('data-overflowing', sliderOverflow);\n this.toggleSliderHeaderControls(sliderOverflow);\n\n // remove no-slider class\n this.el.sliderHeaderWrapper.classList.remove(this.params.noSliderClass);\n\n // set initialized value\n this.el.sliderHeaderWrapper.setAttribute('data-is-initialized', 'true');\n }\n\n updateSliderHeader() {\n var sliderOverflow = this.detectSliderHeaderOverflow();\n this.el.sliderHeaderWrapper.setAttribute('data-overflowing', sliderOverflow);\n this.toggleSliderHeaderControls(sliderOverflow);\n }\n\n destroySliderHeader() {\n var sliderOverflow = this.detectSliderHeaderOverflow();\n this.el.sliderHeaderWrapper.setAttribute('data-overflowing', sliderOverflow);\n this.toggleSliderHeaderControls(sliderOverflow);\n\n // add no-slider class\n this.el.sliderHeaderWrapper.classList.add(this.params.noSliderClass);\n\n // set initialized value\n this.el.sliderHeaderWrapper.setAttribute('data-is-initialized', 'false');\n }\n\n setSliderHeaderHandleActiveItems() {\n // get active items\n var activeItemIds = this.params.visibleSlideIds;\n let that = this;\n var indicatorWidth = 0;\n var firstActive = undefined;\n\n // unset inactive items\n for(var k = 0; k < this.el.sliderHeaderItems.length; k++) {\n for (var l = 0; l < activeItemIds.length; l++) {\n if(parseInt(this.el.sliderHeaderItems[k].getAttribute(this.params.dataSlideNumber)) !== activeItemIds[l]) {\n this.el.sliderHeaderItems[k].classList.remove(this.params.classActive);\n }\n }\n }\n\n // set active items\n for (var i = 0; i < activeItemIds.length; i++) {\n for(var j = 0; j < this.el.sliderHeaderItems.length; j++) {\n if(parseInt(this.el.sliderHeaderItems[j].getAttribute(this.params.dataSlideNumber)) === activeItemIds[i]) {\n this.el.sliderHeaderItems[j].classList.add(this.params.classActive);\n }\n }\n }\n\n // set indicator\n setTimeout(function() {\n for (var m = 0; m < that.el.sliderHeaderItems.length; m++) {\n if(that.el.sliderHeaderItems[m].classList.contains(that.params.classActive)) {\n indicatorWidth += parseFloat(that.el.sliderHeaderItems[m].getBoundingClientRect().width);\n }\n }\n\n var itemPadding = parseFloat(window.getComputedStyle(that.el.sliderHeaderItems[0].closest('li'), null).getPropertyValue('padding-right')) *2;\n itemPadding = (itemPadding * activeItemIds.length) - itemPadding;\n indicatorWidth = indicatorWidth + itemPadding;\n\n firstActive = that.el.sliderHeaderItems[parseInt(activeItemIds[0]) - 1];\n\n if(typeof firstActive !== 'undefined') {\n var firstActivePosition = firstActive.getBoundingClientRect().left;\n var headerContainerPosition = that.el.sliderHeaderWrapper.querySelector('nav').getBoundingClientRect().left;\n var distance = firstActivePosition - headerContainerPosition;\n var scroll = that.el.sliderHeaderWrapper.querySelector('nav').scrollLeft;\n that.el.sliderHeaderIndicator.classList.add('active');\n that.el.sliderHeaderIndicator.style.transform = 'translateX(' + (distance + scroll) + 'px) scaleX(' + (indicatorWidth * 0.01) +')';\n }\n\n }, that.params.sliderHeaderAnimationDuration);\n\n }\n\n detectSliderHeaderOverflow() {\n var overflowDirection;\n var sliderPadding = parseFloat(window.getComputedStyle(this.el.sliderHeaderWrapper, null).getPropertyValue('padding-left'));\n var containerDimensions = this.el.sliderHeaderWrapper.getBoundingClientRect();\n var containerDimensionsRight = Math.floor(containerDimensions.right) - sliderPadding;\n var containerDimensionsLeft = Math.floor(containerDimensions.left) + sliderPadding;\n var tabsDimensions = this.el.sliderHeaderAnimator.querySelector('ul').getBoundingClientRect();\n var tabsDimensionsRight = Math.floor(tabsDimensions.right);\n var tabsDimensionsLeft = Math.floor(tabsDimensions.left);\n\n if (containerDimensionsLeft > tabsDimensionsLeft && containerDimensionsRight < tabsDimensionsRight) {\n overflowDirection = 'both';\n } else if (tabsDimensionsLeft < containerDimensionsLeft) {\n overflowDirection = 'left';\n } else if (tabsDimensionsRight > containerDimensionsRight) {\n overflowDirection = 'right';\n } else {\n overflowDirection = 'none';\n }\n\n return overflowDirection;\n }\n\n toggleSliderHeaderControls(sliderHeaderOverflow) {\n if (sliderHeaderOverflow === 'both') {\n // both controls\n this.el.sliderHeaderBtnPrev.disabled = false;\n this.el.sliderHeaderBtnNext.disabled = false;\n } else if (sliderHeaderOverflow === 'left') {\n // only left control\n this.el.sliderHeaderBtnPrev.disabled = false;\n this.el.sliderHeaderBtnNext.disabled = true;\n } else if(sliderHeaderOverflow === 'right') {\n // only right control\n this.el.sliderHeaderBtnPrev.disabled = true;\n this.el.sliderHeaderBtnNext.disabled = false;\n } else {\n // no controls\n this.el.sliderHeaderBtnPrev.disabled = true;\n this.el.sliderHeaderBtnNext.disabled = true;\n }\n }\n\n resizeSliderHeader() {\n // manage active items\n this.setSliderHeaderHandleActiveItems();\n\n // manage slider header\n var padding = parseFloat(window.getComputedStyle(this.el.sliderHeaderWrapper, null).getPropertyValue('padding-left')) * 2;\n var visibleWidth = this.el.sliderHeaderWrapper.getBoundingClientRect().width - padding;\n var totalWidth = this.el.sliderHeaderAnimator.querySelector('ul').getBoundingClientRect().width;\n\n var sliderHeaderIsInitialized = this.el.sliderHeaderWrapper.getAttribute('data-is-initialized');\n var sliderNeeded = visibleWidth > totalWidth ? false : true;\n\n if(sliderNeeded && sliderHeaderIsInitialized === 'true') {\n // slider header is needed and is already initialized -> update slider header\n this.updateSliderHeader();\n } else if(sliderNeeded && sliderHeaderIsInitialized === 'false') {\n // slider header is needed but not initialized -> init slider header\n this.createSliderHeader();\n } else if(!sliderNeeded && sliderHeaderIsInitialized === 'true') {\n // no slider header needed but initialized -> destroy slider header\n this.destroySliderHeader();\n }\n }\n\n initExpandables() {\n // init expandables\n let that = this;\n\n // set expandable ids\n this.params.expandableIds = this.getExpanderIds();\n\n // react on click\n for (var i = 0; i < this.el.expandablesController.length; i++) {\n this.el.expandablesController[i].addEventListener('click', function () {\n var dataId = this.closest('.' + that.params.classExpandableItem).getAttribute(that.params.dataAttrExpandableId);\n if(this.classList.contains(that.params.classExpandableOpen)) {\n // if expander group is open -> close it\n that.closeExpanderGroup(dataId);\n } else {\n // if expander group is closed -> open it\n that.openExpanderGroup(dataId);\n }\n });\n }\n }\n\n openExpanderGroup(groupId) {\n for (var i = 0; i < this.el.expandablesController.length; i++) {\n\n if(this.el.expandablesController[i].getAttribute(this.params.dataAttrExpandableId) === groupId) {\n this.el.expandablesController[i].classList.add(this.params.classExpandableOpen);\n this.el.expandables[i].classList.add(this.params.classExpandableOpen);\n this.el.expandablesContent[i].style.height = (this.el.expandablesContent[i].getAttribute(this.params.dataAttrExpandableHeight)) + 'px';\n }\n }\n }\n\n closeExpanderGroup(groupId) {\n for (var i = 0; i < this.el.expandablesController.length; i++) {\n if(this.el.expandablesController[i].getAttribute(this.params.dataAttrExpandableId) === groupId &&\n this.el.expandablesController[i].classList.contains(this.params.classExpandableOpen)) {\n this.el.expandablesController[i].classList.remove(this.params.classExpandableOpen);\n this.el.expandables[i].classList.remove(this.params.classExpandableOpen);\n this.el.expandablesContent[i].style.height = '0px';\n }\n }\n }\n\n detectExpanderHeights() {\n var dataId = '';\n let that = this;\n var heightHelper = [];\n var expanderHeight = 0;\n\n // for each expander id group\n for (var i = 0; i < this.params.expandableIds.length; i++) {\n dataId = that.params.expandableIds[i];\n // get belonging expandable groups\n heightHelper[dataId] = 0;\n for (var j = 0; j < that.el.expandablesContent.length; j++) {\n if(that.el.expandablesContent[j].getAttribute(that.params.dataAttrExpandableId) === dataId) {\n // get heights and take highest for id group\n expanderHeight = that.el.expandablesContent[j].querySelector('.' + that.params.classExpandableContent).clientHeight;\n heightHelper[dataId] = (heightHelper[dataId] < expanderHeight) ? expanderHeight\n : heightHelper[dataId];\n }\n }\n }\n\n // set height to expander content\n for (var k = 0; k < that.el.expandablesContent.length; k++) {\n dataId = that.el.expandablesContent[k].getAttribute(that.params.dataAttrExpandableId);\n that.el.expandablesContent[k].setAttribute(that.params.dataAttrExpandableHeight, heightHelper[dataId]);\n // if there are open expanders - update the height\n if(that.el.expandables[k].classList.contains(that.params.classExpandableOpen)) {\n that.el.expandablesContent[k].style.height = (heightHelper[dataId]) + 'px';\n }\n }\n }\n\n getExpanderIds () {\n var dataIds = [];\n var id = '';\n for (var i = 0; i < this.el.expandablesContent.length; i++) {\n id= this.el.expandablesContent[i].getAttribute(this.params.dataAttrExpandableId);\n if(dataIds.indexOf(id) === -1) {\n dataIds.push(id);\n }\n }\n\n return dataIds;\n }\n }\n\n if (typeof window !== 'undefined') {\n window.a1QuotesSlider = SesoSlider;\n }\n\n window.addEventListener('load', () => {\n // slider tariff mobile\n document.querySelectorAll('a1-fragment[name=\"slider-quotes\"]').forEach(function (fragment) {\n window.a1QuotesSlider = new SesoSlider(fragment.querySelector('.slider'));\n });\n });\n}\n"]}