{"version":3,"file":"slider-images.js","names":["a1ImagesSlider","SesoSlider","constructor","selector","this","el","container","HTMLElement","document","getElementById","querySelector","slider","undefined","animator","childAnimator","nextElementSibling","activeslide","slides","querySelectorAll","anchors","buttonNext","buttonPrev","itemImages","paginationTotalCounter","paginationSlideCounter","events","params","sliderVisibleWidth","slideWidth","slideTotal","position","positionMax","trackingStartX","trackingEndX","trackingDirection","translateX","posX","lastPosX","amplitude","velocity","firstTimestamp","lastTimestamp","ticker","isClick","hasMoved","isEasing","isInitialized","classNoTransition","dataInitialSlide","initialSlideSet","noSliderClass","sliderInitializedClass","dataAutoplay","dataDelay","length","init","bindEvents","destroy","resize","classList","remove","autoplaySlides","textContent","preventDefault","event","dispatchEvent","typeArg","customEventInit","bubbles","cancelable","detail","window","CustomEvent","on","touchStart","touchEnd","goToNext","goToPrev","that","i","item","delayLocationChange","_target","href","imageHeight","offsetHeight","style","top","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","transform","targetX","requestAnimation","snapPosition","exp","xMin","snap","myX","ceil","floor","firstElementChild","innerText","dataset","active","requestAnimationFrame","setTimeout","location","element","getComputedStyle","matrix","webkitTransform","mozTransform","y","z","matrixType","includes","matrixValues","match","split","parseInt","indexOf","touch","targetTouches","changedTouches","clientX","clientY","xTarget","setAttribute","removeAttribute","autoplayStatus","getAttribute","autoplayDelay","autoplayInterval","btnNext","btnPrev","orientation","hasFocus","click","splitLast","s","sep","right","pop","getBoundingClientRect","width","slideVisibleTotal","sliderNeeded","initialSlide","queryString","search","urlParams","URLSearchParams","get","slidesArray","forEach","left","id","create","add","fragment","a1ImagesSliderText","parentSlide","previousElementSibling","parentAnimator","lastActive"],"sources":["slider-images.js"],"mappings":"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","sourcesContent":["/* Based on https://github.com/jabes/snap-touch */\nif (typeof a1ImagesSlider === '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.childAnimator = this.el.container ? this.el.container.nextElementSibling.nextElementSibling\n : undefined;\n this.el.activeslide = this.el.container ? this.el.container.nextElementSibling : 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]')\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.itemImages = this.el.animator ? this.el.animator.querySelectorAll('.item-image')\n : [];\n\n this.el.paginationTotalCounter = this.el.container.nextElementSibling.querySelector('.slider-pagination-all');\n this.el.paginationSlideCounter = this.el.container.nextElementSibling.querySelector('.slider-pagination-active');\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 classNoTransition: 'no-transition-wrapper',\n dataInitialSlide: 'data-initial-slide',\n initialSlideSet: false,\n noSliderClass: 'no-slider',\n sliderInitializedClass: 'slider-initialized',\n dataAutoplay: 'data-autoplay',\n dataDelay: 'data-delay'\n };\n\n if (this.el.container && this.el.slides.length >= 0) {\n this.init();\n }\n }\n\n init () {\n this.bindEvents();\n // reset on init\n this.destroy();\n this.resize();\n\n // remove class after initial-slide set\n this.el.animator.classList.remove(this.params.classNoTransition);\n // autoplay\n this.autoplaySlides();\n\n this.el.paginationSlideCounter.textContent = 1;\n this.el.paginationTotalCounter.textContent = this.params.slideTotal;\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.childAnimator, 'dragstart', this.preventDefault);\n this.on(this.el.childAnimator, 'touchstart', this.touchStart);\n this.on(this.el.childAnimator, 'mousedown', this.touchStart);\n this.on(this.el.childAnimator, 'touchend', this.touchEnd);\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\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 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 var imageHeight = this.el.itemImages.item(0).offsetHeight; // get height of the first image (all the slides has the same image ratio)\n imageHeight = (imageHeight / 2) - 28; // 28 is the half height of the arrow buttons\n\n this.el.buttonNext.style.top = imageHeight + 'px';\n this.el.buttonPrev.style.top = imageHeight + 'px';\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 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\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\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\n if (this.events[key][type].listeners.length === 0) {\n delete this.events[key][type];\n }\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\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\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 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\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\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.slideWidth) * -1;\n if (moveTo < rightBorder) {\n moveTo = rightBorder;\n }\n\n // move slider left/right\n this.el.animator.style.transform = 'translate(' + moveTo + 'px, 0)';\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\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\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\n this.setPosition(position, 'snapPosition');\n\n if (this.params.slideTotal > 1) {\n this.el.activeslide.firstElementChild.innerText = this.el.container.dataset.active;\n }\n }\n\n requestAnimation(callback) {\n callback = callback.bind(this);\n\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\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\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.slideTotal - 1) {\n this.params.position = this.params.slideTotal - 1;\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 = 'translate(' + xTarget + 'px, 0)';\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\n if (position == this.params.slideTotal - 1) {\n this.el.buttonNext.setAttribute('disabled', 'disabled');\n } else {\n this.el.buttonNext.removeAttribute('disabled');\n }\n\n if (this.params.slideTotal > 1) {\n this.el.slider.dataset.active = this.params.position + 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 autoplaySlides() {\n let autoplayStatus = this.el.slider.getAttribute(this.params.dataAutoplay);\n let autoplayDelay = this.el.slider.getAttribute(this.params.dataDelay);\n let autoplayInterval = null;\n\n if (autoplayStatus == 'true') {\n let btnNext = this.el.buttonNext;\n let btnPrev = this.el.buttonPrev;\n let that = this;\n let orientation = 'right';\n\n autoplayInterval = setInterval(function() {\n if (document.hasFocus()) {\n if (that.params.position + 1 < that.el.slides.length && orientation == 'right') {\n btnNext.click();\n } else {\n orientation = 'left';\n btnPrev.click();\n\n if (that.params.position == 0) {\n orientation = 'right';\n }\n }\n }\n }, autoplayDelay);\n\n this.el.slider.addEventListener('mouseover', function() {\n clearInterval(autoplayInterval);\n autoplayInterval = null;\n });\n\n this.el.slider.addEventListener('touchstart', function() {\n clearInterval(autoplayInterval);\n autoplayInterval = null;\n });\n\n this.el.slider.addEventListener('mouseleave', function() {\n autoplayInterval = setInterval(function() {\n if (document.hasFocus()) {\n if (that.params.position + 1 < that.el.slides.length && orientation == 'right') {\n btnNext.click();\n } else {\n orientation = 'left';\n btnPrev.click();\n\n if (that.params.position == 0) {\n orientation = 'right';\n }\n }\n }\n }, autoplayDelay);\n });\n\n this.el.slider.addEventListener('touchend', function() {\n autoplayInterval = setInterval(function() {\n if (document.hasFocus()) {\n if (that.params.position + 1 < that.el.slides.length && orientation == 'right') {\n btnNext.click();\n } else {\n orientation = 'left';\n btnPrev.click();\n\n if (that.params.position == 0) {\n orientation = 'right';\n }\n }\n }\n }, autoplayDelay);\n });\n }\n }\n\n splitLast(s, sep = ' ') {\n // spilt the string to 2 parts\n let right = s.split(sep).pop();\n let left = s.substring(0, s.length - right.length - sep.length);\n return [left, right];\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 (this.params.slideTotal === 1) {\n // single item\n this.destroy();\n } else 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 parameter exist\n var initialSlide;\n var queryString = window.location.search;\n var urlParams = new URLSearchParams(queryString);\n if (urlParams.get('slide') !== null) {\n var slidesArray = urlParams.get('slide');\n slidesArray = slidesArray.split(',');\n\n slidesArray.forEach(item => {\n let [left, right] = this.splitLast(item, '_');\n if (this.el.container.dataset.id === left && parseInt(right) <= this.el.slides.length) {\n this.params.position = (parseInt(right) - 1) >= 0 ? (parseInt(right) - 1) : 0;\n this.params.initialSlideSet = true;\n } else {\n 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 }\n });\n } else {\n 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 }\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 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 var imageHeight = this.el.itemImages.item(0).offsetHeight; // get height of the first image (all the slides has the same image ratio)\n imageHeight = (imageHeight / 2) - 28; // 28 is the half height of the arrow buttons\n\n this.el.buttonNext.style.top = imageHeight + 'px';\n this.el.buttonPrev.style.top = imageHeight + 'px';\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 = 'translate(0, 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\n if (typeof window !== 'undefined') {\n window.a1ImagesSlider = SesoSlider;\n }\n\n window.addEventListener('load', () => {\n // slider images\n document.querySelectorAll('a1-fragment[name=\"slider-images\"]').forEach(function (fragment) {\n window.a1ImagesSlider = new SesoSlider(fragment.querySelector('.slider'));\n });\n });\n}\n\nif (typeof a1ImagesSliderText === '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.parentSlide = this.el.container ? this.el.container.previousElementSibling.previousElementSibling\n : [];\n this.el.buttonNext = this.el.container ? this.el.parentSlide.querySelector('button.next')\n : undefined;\n this.el.buttonPrev = this.el.container ? this.el.parentSlide.querySelector('button.prev')\n : undefined;\n this.el.activeslide = this.el.container ? this.el.container.previousElementSibling\n : undefined;\n this.el.parentAnimator = this.el.container ? this.el.parentSlide.querySelector('.animator')\n : undefined;\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 noSliderClass: 'no-slider',\n sliderInitializedClass: 'slider-initialized',\n lastActive: 0,\n dataInitialSlide: 'data-initial-slide',\n initialSlideSet: false\n };\n\n if (this.el.container && this.el.slides.length >= 0) {\n this.init();\n }\n }\n\n init () {\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.parentAnimator, 'dragstart', this.preventDefault);\n this.on(this.el.parentAnimator, 'touchstart', this.touchStart);\n this.on(this.el.parentAnimator, 'mousedown', this.touchStart);\n this.on(this.el.parentAnimator, 'touchend', this.touchEnd);\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\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 this.on(window, 'resize', this.resize);\n }\n\n goToNext(event) {\n event.preventDefault();\n this.setPosition(this.params.position + 1);\n //animation fade in\n this.el.slides.forEach((item) => {\n item.classList.remove('slide-fade-in-out');\n setTimeout(function() {\n item.classList.add('slide-fade-in-out');\n }, 520);\n });\n // set active slide number\n this.el.activeslide.firstElementChild.textContent = this.params.position + 1;\n }\n\n goToPrev(event) {\n event.preventDefault();\n this.setPosition(this.params.position - 1);\n //animation fade in\n this.el.slides.forEach((item) => {\n item.classList.remove('slide-fade-in-out');\n setTimeout(function(){\n item.classList.add('slide-fade-in-out');\n }, 520);\n });\n // set active slide number\n this.el.activeslide.firstElementChild.textContent = this.params.position + 1;\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 if (!this.events[key][type]) {\n this.events[key][type] = {\n target: target,\n listeners: [],\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\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.slideWidth) * -1;\n if (moveTo < rightBorder) {\n moveTo = rightBorder;\n }\n // move slider left/right\n this.el.animator.style.transform = 'translate(' + moveTo + 'px, 0)';\n\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\n if (position < this.params.slideTotal) {\n this.setPosition(position, 'snapPosition');\n }\n\n if (this.params.slideTotal > 1) {\n this.el.activeslide.firstElementChild.innerText = this.el.parentSlide.dataset.active;\n }\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.slideTotal - 1) {\n this.params.position = this.params.slideTotal - 1;\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 = 'translate(' + xTarget + 'px, 0)';\n\n this.dispatchEvent('SesoSlider.positionChanged', {\n bubbles: false,\n cancelable: false,\n detail: {\n posX: this.params.posX\n }\n });\n }\n\n splitLast(s, sep = ' ') {\n let right = s.split(sep).pop();\n let left = s.substring(0, s.length - right.length - sep.length);\n return [left, right];\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 parameter exist\n var initialSlide;\n var queryString = window.location.search;\n var urlParams = new URLSearchParams(queryString);\n if (urlParams.get('slide') !== null) {\n var slidesArray = urlParams.get('slide');\n slidesArray = slidesArray.split(',');\n\n slidesArray.forEach(item => {\n let [left, right] = this.splitLast(item, '_');\n\n if (this.el.parentSlide.dataset.id === left && parseInt(right) <= this.el.slides.length) {\n this.params.position = (parseInt(right) - 1) >= 0 ? (parseInt(right) - 1) : 0;\n this.el.activeslide.firstElementChild.textContent = parseInt(right);\n this.params.initialSlideSet = true;\n } else {\n initialSlide = this.el.parentSlide.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.el.activeslide.firstElementChild.textContent = parseInt(initialSlide);\n this.params.initialSlideSet = true;\n }\n }\n });\n } else {\n initialSlide = this.el.parentSlide.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.el.activeslide.firstElementChild.textContent = parseInt(initialSlide);\n this.params.initialSlideSet = true;\n }\n }\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 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 = 'translate(0, 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\n if (typeof window !== 'undefined') {\n window.a1ImagesSliderText = SesoSlider;\n }\n\n window.addEventListener('load', () => {\n // slider article\n document.querySelectorAll('a1-fragment[name=\"slider-images\"]').forEach(function (fragment) {\n window.a1ImagesSliderText = new SesoSlider(fragment.querySelector('.slider-text'));\n });\n });\n}\n"]}