{"version":3,"file":"js/72.js","mappings":"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","sources":["webpack:///./node_modules/simplelightbox/dist/simple-lightbox.modules.js"],"sourcesContent":["/*!\r\n\tBy AndrĂ© Rinas, www.andrerinas.de\r\n\tDocumentation, www.simplelightbox.com\r\n\tAvailable for use under the MIT License\r\n\tVersion 2.14.3\r\n*/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nvar SimpleLightbox = /*#__PURE__*/function () {\n function SimpleLightbox(elements, options) {\n var _this = this;\n _classCallCheck(this, SimpleLightbox);\n _defineProperty(this, \"defaultOptions\", {\n sourceAttr: 'href',\n overlay: true,\n overlayOpacity: 0.7,\n spinner: true,\n nav: true,\n navText: ['‹', '›'],\n captions: true,\n captionDelay: 0,\n captionSelector: 'img',\n captionType: 'attr',\n captionsData: 'title',\n captionPosition: 'bottom',\n captionClass: '',\n captionHTML: true,\n close: true,\n closeText: '×',\n swipeClose: true,\n showCounter: true,\n fileExt: 'png|jpg|jpeg|gif|webp|avif',\n animationSlide: true,\n animationSpeed: 250,\n preloading: true,\n enableKeyboard: true,\n loop: true,\n rel: false,\n docClose: true,\n swipeTolerance: 50,\n className: 'simple-lightbox',\n widthRatio: 0.8,\n heightRatio: 0.9,\n scaleImageToRatio: false,\n disableRightClick: false,\n disableScroll: true,\n alertError: true,\n alertErrorMessage: 'Image not found, next image will be loaded',\n additionalHtml: false,\n history: true,\n throttleInterval: 0,\n doubleTapZoom: 2,\n maxZoom: 10,\n htmlClass: 'has-lightbox',\n rtl: false,\n fixedClass: 'sl-fixed',\n fadeSpeed: 300,\n uniqueImages: true,\n focus: true,\n scrollZoom: true,\n scrollZoomFactor: 0.5,\n download: false\n });\n _defineProperty(this, \"transitionPrefix\", void 0);\n _defineProperty(this, \"isPassiveEventsSupported\", void 0);\n _defineProperty(this, \"transitionCapable\", false);\n _defineProperty(this, \"isTouchDevice\", 'ontouchstart' in window);\n _defineProperty(this, \"isAppleDevice\", /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform));\n _defineProperty(this, \"initialLocationHash\", void 0);\n _defineProperty(this, \"pushStateSupport\", 'pushState' in history);\n _defineProperty(this, \"isOpen\", false);\n _defineProperty(this, \"isAnimating\", false);\n _defineProperty(this, \"isClosing\", false);\n _defineProperty(this, \"isFadeIn\", false);\n _defineProperty(this, \"urlChangedOnce\", false);\n _defineProperty(this, \"hashReseted\", false);\n _defineProperty(this, \"historyHasChanges\", false);\n _defineProperty(this, \"historyUpdateTimeout\", null);\n _defineProperty(this, \"currentImage\", void 0);\n _defineProperty(this, \"eventNamespace\", 'simplelightbox');\n _defineProperty(this, \"domNodes\", {});\n _defineProperty(this, \"loadedImages\", []);\n _defineProperty(this, \"initialImageIndex\", 0);\n _defineProperty(this, \"currentImageIndex\", 0);\n _defineProperty(this, \"initialSelector\", null);\n _defineProperty(this, \"globalScrollbarWidth\", 0);\n _defineProperty(this, \"controlCoordinates\", {\n swipeDiff: 0,\n swipeYDiff: 0,\n swipeStart: 0,\n swipeEnd: 0,\n swipeYStart: 0,\n swipeYEnd: 0,\n mousedown: false,\n imageLeft: 0,\n zoomed: false,\n containerHeight: 0,\n containerWidth: 0,\n containerOffsetX: 0,\n containerOffsetY: 0,\n imgHeight: 0,\n imgWidth: 0,\n capture: false,\n initialOffsetX: 0,\n initialOffsetY: 0,\n initialPointerOffsetX: 0,\n initialPointerOffsetY: 0,\n initialPointerOffsetX2: 0,\n initialPointerOffsetY2: 0,\n initialScale: 1,\n initialPinchDistance: 0,\n pointerOffsetX: 0,\n pointerOffsetY: 0,\n pointerOffsetX2: 0,\n pointerOffsetY2: 0,\n targetOffsetX: 0,\n targetOffsetY: 0,\n targetScale: 0,\n pinchOffsetX: 0,\n pinchOffsetY: 0,\n limitOffsetX: 0,\n limitOffsetY: 0,\n scaleDifference: 0,\n targetPinchDistance: 0,\n touchCount: 0,\n doubleTapped: false,\n touchmoveCount: 0\n });\n this.options = Object.assign(this.defaultOptions, options);\n this.isPassiveEventsSupported = this.checkPassiveEventsSupport();\n if (typeof elements === 'string') {\n this.initialSelector = elements;\n this.elements = Array.from(document.querySelectorAll(elements));\n } else {\n this.elements = typeof elements.length !== 'undefined' && elements.length > 0 ? Array.from(elements) : [elements];\n }\n this.relatedElements = [];\n this.transitionPrefix = this.calculateTransitionPrefix();\n this.transitionCapable = this.transitionPrefix !== false;\n this.initialLocationHash = this.hash;\n\n // this should be handled by attribute selector IMHO! => 'a[rel=bla]'...\n if (this.options.rel) {\n this.elements = this.getRelated(this.options.rel);\n }\n if (this.options.uniqueImages) {\n var imgArr = [];\n this.elements = Array.from(this.elements).filter(function (element) {\n var src = element.getAttribute(_this.options.sourceAttr);\n if (imgArr.indexOf(src) === -1) {\n imgArr.push(src);\n return true;\n }\n return false;\n });\n }\n this.createDomNodes();\n if (this.options.close) {\n this.domNodes.wrapper.appendChild(this.domNodes.closeButton);\n }\n if (this.options.nav) {\n this.domNodes.wrapper.appendChild(this.domNodes.navigation);\n }\n if (this.options.spinner) {\n this.domNodes.wrapper.appendChild(this.domNodes.spinner);\n }\n this.addEventListener(this.elements, 'click.' + this.eventNamespace, function (event) {\n if (_this.isValidLink(event.currentTarget)) {\n event.preventDefault();\n if (_this.isAnimating) {\n return false;\n }\n _this.initialImageIndex = _this.elements.indexOf(event.currentTarget);\n _this.openImage(event.currentTarget);\n }\n });\n\n // close addEventListener click addEventListener doc\n if (this.options.docClose) {\n this.addEventListener(this.domNodes.wrapper, ['click.' + this.eventNamespace, 'touchstart.' + this.eventNamespace], function (event) {\n if (_this.isOpen && event.target === event.currentTarget) {\n _this.close();\n }\n });\n }\n\n // disable rightclick\n if (this.options.disableRightClick) {\n this.addEventListener(document.body, 'contextmenu.' + this.eventNamespace, function (event) {\n if (event.target.parentElement.classList.contains(\"sl-image\")) {\n event.preventDefault();\n }\n });\n }\n\n // keyboard-control\n if (this.options.enableKeyboard) {\n this.addEventListener(document.body, 'keyup.' + this.eventNamespace, this.throttle(function (event) {\n _this.controlCoordinates.swipeDiff = 0;\n // keyboard control only if lightbox is open\n\n if (_this.isAnimating && event.key === 'Escape') {\n _this.currentImage.setAttribute('src', '');\n _this.isAnimating = false;\n _this.close();\n return;\n }\n if (_this.isOpen) {\n event.preventDefault();\n if (event.key === 'Escape') {\n _this.close();\n }\n if (!_this.isAnimating && ['ArrowLeft', 'ArrowRight'].indexOf(event.key) > -1) {\n _this.loadImage(event.key === 'ArrowRight' ? 1 : -1);\n }\n }\n }, this.options.throttleInterval));\n }\n this.addEvents();\n }\n _createClass(SimpleLightbox, [{\n key: \"checkPassiveEventsSupport\",\n value: function checkPassiveEventsSupport() {\n // https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\n // Test via a getter in the options object to see if the passive property is accessed\n var supportsPassive = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener(\"testPassive\", null, opts);\n window.removeEventListener(\"testPassive\", null, opts);\n } catch (e) {}\n return supportsPassive;\n }\n }, {\n key: \"getCaptionElement\",\n value: function getCaptionElement(elem) {\n // look at sibling selector\n if (this.options.captionSelector.startsWith('+')) {\n var selector = this.options.captionSelector.replace(/^\\+/, '').trimStart();\n var sibling = elem.nextElementSibling;\n if (sibling && sibling.matches(selector)) {\n return sibling;\n }\n return false;\n } else if (this.options.captionSelector.startsWith('>')) {\n var _selector = this.options.captionSelector.replace(/^>/, '').trimStart();\n return elem.querySelector(_selector);\n } else {\n return elem.querySelector(this.options.captionSelector);\n }\n }\n }, {\n key: \"generateQuerySelector\",\n value: function generateQuerySelector(elem) {\n var tagName = elem.tagName,\n id = elem.id,\n className = elem.className,\n parentNode = elem.parentNode;\n if (tagName === 'HTML') return 'HTML';\n var str = tagName;\n str += id !== '' ? \"#\".concat(id) : '';\n if (className) {\n var classes = className.trim().split(/\\s/);\n for (var i = 0; i < classes.length; i++) {\n str += \".\".concat(classes[i]);\n }\n }\n var childIndex = 1;\n for (var e = elem; e.previousElementSibling; e = e.previousElementSibling) {\n childIndex += 1;\n }\n str += \":nth-child(\".concat(childIndex, \")\");\n return \"\".concat(this.generateQuerySelector(parentNode), \" > \").concat(str);\n }\n }, {\n key: \"createDomNodes\",\n value: function createDomNodes() {\n this.domNodes.overlay = document.createElement('div');\n this.domNodes.overlay.classList.add('sl-overlay');\n this.domNodes.overlay.dataset.opacityTarget = this.options.overlayOpacity;\n this.domNodes.closeButton = document.createElement('button');\n this.domNodes.closeButton.classList.add('sl-close');\n this.domNodes.closeButton.innerHTML = this.options.closeText;\n this.domNodes.spinner = document.createElement('div');\n this.domNodes.spinner.classList.add('sl-spinner');\n this.domNodes.spinner.innerHTML = '
';\n this.domNodes.navigation = document.createElement('div');\n this.domNodes.navigation.classList.add('sl-navigation');\n this.domNodes.navigation.innerHTML = \"\");\n this.domNodes.counter = document.createElement('div');\n this.domNodes.counter.classList.add('sl-counter');\n this.domNodes.counter.innerHTML = '/';\n this.domNodes.download = document.createElement('div');\n this.domNodes.download.classList.add('sl-download');\n this.domNodes.downloadLink = document.createElement('a');\n this.domNodes.downloadLink.setAttribute('download', '');\n this.domNodes.downloadLink.textContent = this.options.download;\n this.domNodes.download.appendChild(this.domNodes.downloadLink);\n this.domNodes.caption = document.createElement('div');\n this.domNodes.caption.classList.add('sl-caption', 'pos-' + this.options.captionPosition);\n if (this.options.captionClass) {\n var _this$domNodes$captio;\n var captionClasses = this.options.captionClass.split(/[\\s,]+/);\n (_this$domNodes$captio = this.domNodes.caption.classList).add.apply(_this$domNodes$captio, _toConsumableArray(captionClasses));\n }\n this.domNodes.image = document.createElement('div');\n this.domNodes.image.classList.add('sl-image');\n this.domNodes.wrapper = document.createElement('div');\n this.domNodes.wrapper.classList.add('sl-wrapper');\n this.domNodes.wrapper.setAttribute('tabindex', -1);\n this.domNodes.wrapper.setAttribute('role', 'dialog');\n this.domNodes.wrapper.setAttribute('aria-hidden', false);\n if (this.options.className) {\n this.domNodes.wrapper.classList.add(this.options.className);\n }\n if (this.options.rtl) {\n this.domNodes.wrapper.classList.add('sl-dir-rtl');\n }\n }\n }, {\n key: \"throttle\",\n value: function throttle(func, limit) {\n var inThrottle;\n return function () {\n if (!inThrottle) {\n func.apply(this, arguments);\n inThrottle = true;\n setTimeout(function () {\n return inThrottle = false;\n }, limit);\n }\n };\n }\n }, {\n key: \"isValidLink\",\n value: function isValidLink(element) {\n return !this.options.fileExt || element.getAttribute(this.options.sourceAttr) && new RegExp('(' + this.options.fileExt + ')($|\\\\?.*$)', 'i').test(element.getAttribute(this.options.sourceAttr));\n }\n }, {\n key: \"calculateTransitionPrefix\",\n value: function calculateTransitionPrefix() {\n var s = (document.body || document.documentElement).style;\n return 'transition' in s ? '' : 'WebkitTransition' in s ? '-webkit-' : 'MozTransition' in s ? '-moz-' : 'OTransition' in s ? '-o' : false;\n }\n }, {\n key: \"getScrollbarWidth\",\n value: function getScrollbarWidth() {\n var scrollbarWidth = 0;\n var scrollDiv = document.createElement('div');\n scrollDiv.classList.add('sl-scrollbar-measure');\n document.body.appendChild(scrollDiv);\n scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n }\n }, {\n key: \"toggleScrollbar\",\n value: function toggleScrollbar(type) {\n var scrollbarWidth = 0;\n var fixedElements = [].slice.call(document.querySelectorAll('.' + this.options.fixedClass));\n if (type === 'hide') {\n var fullWindowWidth = window.innerWidth;\n if (!fullWindowWidth) {\n var documentElementRect = document.documentElement.getBoundingClientRect();\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left);\n }\n if (document.body.clientWidth < fullWindowWidth || this.isAppleDevice) {\n var paddingRight = parseInt(window.getComputedStyle(document.body).paddingRight || 0, 10);\n scrollbarWidth = this.getScrollbarWidth();\n document.body.dataset.originalPaddingRight = paddingRight;\n if (scrollbarWidth > 0 || scrollbarWidth == 0 && this.isAppleDevice) {\n document.body.classList.add('hidden-scroll');\n document.body.style.paddingRight = paddingRight + scrollbarWidth + 'px';\n fixedElements.forEach(function (element) {\n var actualPadding = element.style.paddingRight;\n var calculatedPadding = window.getComputedStyle(element)['padding-right'];\n element.dataset.originalPaddingRight = actualPadding;\n element.style.paddingRight = \"\".concat(parseFloat(calculatedPadding) + scrollbarWidth, \"px\");\n });\n }\n }\n } else {\n document.body.classList.remove('hidden-scroll');\n document.body.style.paddingRight = document.body.dataset.originalPaddingRight + 'px';\n fixedElements.forEach(function (element) {\n var padding = element.dataset.originalPaddingRight;\n if (typeof padding !== 'undefined') {\n element.style.paddingRight = padding;\n }\n });\n }\n return scrollbarWidth;\n }\n }, {\n key: \"close\",\n value: function close() {\n var _this2 = this;\n if (!this.isOpen || this.isAnimating || this.isClosing) {\n return false;\n }\n this.isClosing = true;\n var element = this.relatedElements[this.currentImageIndex];\n element.dispatchEvent(new Event('close.simplelightbox'));\n if (this.options.history) {\n this.historyHasChanges = false;\n if (!this.hashReseted) {\n this.resetHash();\n }\n }\n this.removeEventListener(document, 'focusin.' + this.eventNamespace);\n this.fadeOut(this.domNodes.overlay, this.options.fadeSpeed);\n this.fadeOut(document.querySelectorAll('.sl-image img, .sl-close, .sl-navigation, .sl-image .sl-caption, .sl-counter'), this.options.fadeSpeed, function () {\n if (_this2.options.disableScroll) {\n _this2.toggleScrollbar('show');\n }\n if (_this2.options.htmlClass && _this2.options.htmlClass !== '') {\n document.querySelector('html').classList.remove(_this2.options.htmlClass);\n }\n document.body.removeChild(_this2.domNodes.wrapper);\n if (_this2.options.overlay) {\n document.body.removeChild(_this2.domNodes.overlay);\n }\n _this2.domNodes.additionalHtml = null;\n _this2.domNodes.download = null;\n element.dispatchEvent(new Event('closed.simplelightbox'));\n _this2.isClosing = false;\n });\n this.currentImage = null;\n this.isOpen = false;\n this.isAnimating = false;\n\n // reset touchcontrol coordinates\n for (var key in this.controlCoordinates) {\n this.controlCoordinates[key] = 0;\n }\n this.controlCoordinates.mousedown = false;\n this.controlCoordinates.zoomed = false;\n this.controlCoordinates.capture = false;\n this.controlCoordinates.initialScale = this.minMax(1, 1, this.options.maxZoom);\n this.controlCoordinates.doubleTapped = false;\n }\n }, {\n key: \"hash\",\n get: function get() {\n return window.location.hash.substring(1);\n }\n }, {\n key: \"preload\",\n value: function preload() {\n var _this3 = this;\n var index = this.currentImageIndex,\n length = this.relatedElements.length,\n next = index + 1 < 0 ? length - 1 : index + 1 >= length - 1 ? 0 : index + 1,\n prev = index - 1 < 0 ? length - 1 : index - 1 >= length - 1 ? 0 : index - 1,\n nextImage = new Image(),\n prevImage = new Image();\n nextImage.addEventListener('load', function (event) {\n var src = event.target.getAttribute('src');\n if (_this3.loadedImages.indexOf(src) === -1) {\n //is this condition even required... setting multiple times will not change usage...\n _this3.loadedImages.push(src);\n }\n _this3.relatedElements[index].dispatchEvent(new Event('nextImageLoaded.' + _this3.eventNamespace));\n });\n nextImage.setAttribute('src', this.relatedElements[next].getAttribute(this.options.sourceAttr));\n prevImage.addEventListener('load', function (event) {\n var src = event.target.getAttribute('src');\n if (_this3.loadedImages.indexOf(src) === -1) {\n _this3.loadedImages.push(src);\n }\n _this3.relatedElements[index].dispatchEvent(new Event('prevImageLoaded.' + _this3.eventNamespace));\n });\n prevImage.setAttribute('src', this.relatedElements[prev].getAttribute(this.options.sourceAttr));\n }\n }, {\n key: \"loadImage\",\n value: function loadImage(direction) {\n var _this4 = this;\n var slideDirection = direction;\n if (this.options.rtl) {\n direction = -direction;\n }\n this.relatedElements[this.currentImageIndex].dispatchEvent(new Event('change.' + this.eventNamespace));\n this.relatedElements[this.currentImageIndex].dispatchEvent(new Event((direction === 1 ? 'next' : 'prev') + '.' + this.eventNamespace));\n var newIndex = this.currentImageIndex + direction;\n if (this.isAnimating || (newIndex < 0 || newIndex >= this.relatedElements.length) && this.options.loop === false) {\n return false;\n }\n this.currentImageIndex = newIndex < 0 ? this.relatedElements.length - 1 : newIndex > this.relatedElements.length - 1 ? 0 : newIndex;\n this.domNodes.counter.querySelector('.sl-current').innerHTML = this.currentImageIndex + 1;\n if (this.options.animationSlide) {\n this.slide(this.options.animationSpeed / 1000, -100 * slideDirection - this.controlCoordinates.swipeDiff + 'px');\n }\n this.fadeOut(this.domNodes.image, this.options.fadeSpeed, function () {\n _this4.isAnimating = true;\n if (!_this4.isClosing) {\n setTimeout(function () {\n var element = _this4.relatedElements[_this4.currentImageIndex];\n if (!_this4.currentImage) return;\n _this4.currentImage.setAttribute('src', element.getAttribute(_this4.options.sourceAttr));\n if (_this4.loadedImages.indexOf(element.getAttribute(_this4.options.sourceAttr)) === -1) {\n _this4.show(_this4.domNodes.spinner);\n }\n if (_this4.domNodes.image.contains(_this4.domNodes.caption)) {\n _this4.domNodes.image.removeChild(_this4.domNodes.caption);\n }\n _this4.adjustImage(slideDirection);\n if (_this4.options.preloading) _this4.preload();\n }, 100);\n } else {\n _this4.isAnimating = false;\n }\n });\n }\n }, {\n key: \"adjustImage\",\n value: function adjustImage(direction) {\n var _this5 = this;\n if (!this.currentImage) {\n return false;\n }\n var tmpImage = new Image(),\n windowWidth = window.innerWidth * this.options.widthRatio,\n windowHeight = window.innerHeight * this.options.heightRatio;\n tmpImage.setAttribute('src', this.currentImage.getAttribute('src'));\n this.currentImage.dataset.scale = 1;\n this.currentImage.dataset.translateX = 0;\n this.currentImage.dataset.translateY = 0;\n this.zoomPanElement(0, 0, 1);\n tmpImage.addEventListener('error', function (event) {\n _this5.relatedElements[_this5.currentImageIndex].dispatchEvent(new Event('error.' + _this5.eventNamespace));\n _this5.isAnimating = false;\n _this5.isOpen = true;\n _this5.domNodes.spinner.style.display = 'none';\n var dirIsDefined = direction === 1 || direction === -1;\n if (_this5.initialImageIndex === _this5.currentImageIndex && dirIsDefined) {\n return _this5.close();\n }\n if (_this5.options.alertError) {\n alert(_this5.options.alertErrorMessage);\n }\n _this5.loadImage(dirIsDefined ? direction : 1);\n });\n tmpImage.addEventListener('load', function (event) {\n if (typeof direction !== 'undefined') {\n _this5.relatedElements[_this5.currentImageIndex].dispatchEvent(new Event('changed.' + _this5.eventNamespace));\n _this5.relatedElements[_this5.currentImageIndex].dispatchEvent(new Event((direction === 1 ? 'nextDone' : 'prevDone') + '.' + _this5.eventNamespace));\n }\n\n // history\n if (_this5.options.history) {\n _this5.updateURL();\n }\n if (_this5.loadedImages.indexOf(_this5.currentImage.getAttribute('src')) === -1) {\n _this5.loadedImages.push(_this5.currentImage.getAttribute('src'));\n }\n var imageWidth = event.target.width,\n imageHeight = event.target.height;\n if (_this5.options.scaleImageToRatio || imageWidth > windowWidth || imageHeight > windowHeight) {\n var ratio = imageWidth / imageHeight > windowWidth / windowHeight ? imageWidth / windowWidth : imageHeight / windowHeight;\n imageWidth /= ratio;\n imageHeight /= ratio;\n }\n _this5.domNodes.image.style.top = (window.innerHeight - imageHeight) / 2 + 'px';\n _this5.domNodes.image.style.left = (window.innerWidth - imageWidth - _this5.globalScrollbarWidth) / 2 + 'px';\n _this5.domNodes.image.style.width = imageWidth + 'px';\n _this5.domNodes.image.style.height = imageHeight + 'px';\n _this5.domNodes.spinner.style.display = 'none';\n if (_this5.options.focus) {\n _this5.forceFocus();\n }\n _this5.fadeIn(_this5.currentImage, _this5.options.fadeSpeed, function () {\n if (_this5.options.focus) {\n _this5.domNodes.wrapper.focus();\n }\n });\n _this5.isOpen = true;\n var captionContainer, captionText;\n if (typeof _this5.options.captionSelector === 'string') {\n captionContainer = _this5.options.captionSelector === 'self' ? _this5.relatedElements[_this5.currentImageIndex] : _this5.getCaptionElement(_this5.relatedElements[_this5.currentImageIndex]);\n } else if (typeof _this5.options.captionSelector === 'function') {\n captionContainer = _this5.options.captionSelector(_this5.relatedElements[_this5.currentImageIndex]);\n }\n if (_this5.options.captions && captionContainer) {\n if (_this5.options.captionType === 'data') {\n captionText = captionContainer.dataset[_this5.options.captionsData];\n } else if (_this5.options.captionType === 'text') {\n captionText = captionContainer.innerHTML;\n } else {\n captionText = captionContainer.getAttribute(_this5.options.captionsData);\n }\n }\n if (!_this5.options.loop) {\n if (_this5.currentImageIndex === 0) {\n _this5.hide(_this5.domNodes.navigation.querySelector('.sl-prev'));\n }\n if (_this5.currentImageIndex >= _this5.relatedElements.length - 1) {\n _this5.hide(_this5.domNodes.navigation.querySelector('.sl-next'));\n }\n if (_this5.currentImageIndex > 0) {\n _this5.show(_this5.domNodes.navigation.querySelector('.sl-prev'));\n }\n if (_this5.currentImageIndex < _this5.relatedElements.length - 1) {\n _this5.show(_this5.domNodes.navigation.querySelector('.sl-next'));\n }\n } else {\n if (_this5.relatedElements.length === 1) {\n _this5.hide(_this5.domNodes.navigation.querySelectorAll('.sl-prev, .sl-next'));\n } else {\n _this5.show(_this5.domNodes.navigation.querySelectorAll('.sl-prev, .sl-next'));\n }\n }\n if (direction === 1 || direction === -1) {\n if (_this5.options.animationSlide) {\n _this5.slide(0, 100 * direction + 'px');\n setTimeout(function () {\n _this5.slide(_this5.options.animationSpeed / 1000, 0 + 'px');\n }, 50);\n }\n _this5.fadeIn(_this5.domNodes.image, _this5.options.fadeSpeed, function () {\n _this5.isAnimating = false;\n _this5.setCaption(captionText, imageWidth);\n });\n } else {\n _this5.isAnimating = false;\n _this5.setCaption(captionText, imageWidth);\n }\n if (_this5.options.additionalHtml && !_this5.domNodes.additionalHtml) {\n _this5.domNodes.additionalHtml = document.createElement('div');\n _this5.domNodes.additionalHtml.classList.add('sl-additional-html');\n _this5.domNodes.additionalHtml.innerHTML = _this5.options.additionalHtml;\n _this5.domNodes.image.appendChild(_this5.domNodes.additionalHtml);\n }\n if (_this5.options.download) {\n _this5.domNodes.downloadLink.setAttribute('href', _this5.currentImage.getAttribute('src'));\n }\n });\n }\n }, {\n key: \"zoomPanElement\",\n value: function zoomPanElement(targetOffsetX, targetOffsetY, targetScale) {\n this.currentImage.style[this.transitionPrefix + 'transform'] = 'translate(' + targetOffsetX + ',' + targetOffsetY + ') scale(' + targetScale + ')';\n }\n }, {\n key: \"minMax\",\n value: function minMax(value, min, max) {\n return value < min ? min : value > max ? max : value;\n }\n }, {\n key: \"setZoomData\",\n value: function setZoomData(initialScale, targetOffsetX, targetOffsetY) {\n this.currentImage.dataset.scale = initialScale;\n this.currentImage.dataset.translateX = targetOffsetX;\n this.currentImage.dataset.translateY = targetOffsetY;\n }\n }, {\n key: \"hashchangeHandler\",\n value: function hashchangeHandler() {\n if (this.isOpen && this.hash === this.initialLocationHash) {\n this.hashReseted = true;\n this.close();\n }\n }\n }, {\n key: \"addEvents\",\n value: function addEvents() {\n var _this6 = this;\n // resize/responsive\n this.addEventListener(window, 'resize.' + this.eventNamespace, function (event) {\n //this.adjustImage.bind(this)\n if (_this6.isOpen) {\n _this6.adjustImage();\n }\n });\n this.addEventListener(this.domNodes.closeButton, ['click.' + this.eventNamespace, 'touchstart.' + this.eventNamespace], this.close.bind(this));\n if (this.options.history) {\n setTimeout(function () {\n _this6.addEventListener(window, 'hashchange.' + _this6.eventNamespace, function (event) {\n if (_this6.isOpen) {\n _this6.hashchangeHandler();\n }\n });\n }, 40);\n }\n this.addEventListener(this.domNodes.navigation.getElementsByTagName('button'), 'click.' + this.eventNamespace, function (event) {\n if (!event.currentTarget.tagName.match(/button/i)) {\n return true;\n }\n event.preventDefault();\n _this6.controlCoordinates.swipeDiff = 0;\n _this6.loadImage(event.currentTarget.classList.contains('sl-next') ? 1 : -1);\n });\n if (this.options.scrollZoom) {\n var scale = 1;\n this.addEventListener(this.domNodes.image, ['mousewheel', 'DOMMouseScroll'], function (event) {\n if (_this6.controlCoordinates.mousedown || _this6.isAnimating || _this6.isClosing || !_this6.isOpen) {\n return true;\n }\n if (_this6.controlCoordinates.containerHeight == 0) {\n _this6.controlCoordinates.containerHeight = _this6.getDimensions(_this6.domNodes.image).height;\n _this6.controlCoordinates.containerWidth = _this6.getDimensions(_this6.domNodes.image).width;\n _this6.controlCoordinates.imgHeight = _this6.getDimensions(_this6.currentImage).height;\n _this6.controlCoordinates.imgWidth = _this6.getDimensions(_this6.currentImage).width;\n _this6.controlCoordinates.containerOffsetX = _this6.domNodes.image.offsetLeft;\n _this6.controlCoordinates.containerOffsetY = _this6.domNodes.image.offsetTop;\n _this6.controlCoordinates.initialOffsetX = parseFloat(_this6.currentImage.dataset.translateX);\n _this6.controlCoordinates.initialOffsetY = parseFloat(_this6.currentImage.dataset.translateY);\n }\n // event.preventDefault();\n\n var delta = event.delta || event.wheelDelta;\n if (delta === undefined) {\n //we are on firefox\n delta = event.detail;\n }\n delta = Math.max(-1, Math.min(1, delta)); // cap the delta to [-1,1] for cross browser consistency\n\n // apply zoom\n scale += delta * _this6.options.scrollZoomFactor * scale;\n scale = Math.max(1, Math.min(_this6.options.maxZoom, scale));\n _this6.controlCoordinates.targetScale = scale;\n var scrollTopPos = document.documentElement.scrollTop || document.body.scrollTop;\n _this6.controlCoordinates.pinchOffsetX = event.pageX;\n _this6.controlCoordinates.pinchOffsetY = event.pageY - scrollTopPos || 0; // need to substract the scroll position\n\n _this6.controlCoordinates.limitOffsetX = (_this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerWidth) / 2;\n _this6.controlCoordinates.limitOffsetY = (_this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerHeight) / 2;\n _this6.controlCoordinates.scaleDifference = _this6.controlCoordinates.targetScale - _this6.controlCoordinates.initialScale;\n _this6.controlCoordinates.targetOffsetX = _this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerWidth ? 0 : _this6.minMax(_this6.controlCoordinates.initialOffsetX - (_this6.controlCoordinates.pinchOffsetX - _this6.controlCoordinates.containerOffsetX - _this6.controlCoordinates.containerWidth / 2 - _this6.controlCoordinates.initialOffsetX) / (_this6.controlCoordinates.targetScale - _this6.controlCoordinates.scaleDifference) * _this6.controlCoordinates.scaleDifference, _this6.controlCoordinates.limitOffsetX * -1, _this6.controlCoordinates.limitOffsetX);\n _this6.controlCoordinates.targetOffsetY = _this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerHeight ? 0 : _this6.minMax(_this6.controlCoordinates.initialOffsetY - (_this6.controlCoordinates.pinchOffsetY - _this6.controlCoordinates.containerOffsetY - _this6.controlCoordinates.containerHeight / 2 - _this6.controlCoordinates.initialOffsetY) / (_this6.controlCoordinates.targetScale - _this6.controlCoordinates.scaleDifference) * _this6.controlCoordinates.scaleDifference, _this6.controlCoordinates.limitOffsetY * -1, _this6.controlCoordinates.limitOffsetY);\n _this6.zoomPanElement(_this6.controlCoordinates.targetOffsetX + \"px\", _this6.controlCoordinates.targetOffsetY + \"px\", _this6.controlCoordinates.targetScale);\n if (_this6.controlCoordinates.targetScale > 1) {\n _this6.controlCoordinates.zoomed = true;\n if ((!_this6.domNodes.caption.style.opacity || _this6.domNodes.caption.style.opacity > 0) && _this6.domNodes.caption.style.display !== 'none') {\n _this6.fadeOut(_this6.domNodes.caption, _this6.options.fadeSpeed);\n }\n } else {\n if (_this6.controlCoordinates.initialScale === 1) {\n _this6.controlCoordinates.zoomed = false;\n if (_this6.domNodes.caption.style.display === 'none') {\n _this6.fadeIn(_this6.domNodes.caption, _this6.options.fadeSpeed);\n }\n }\n _this6.controlCoordinates.initialPinchDistance = null;\n _this6.controlCoordinates.capture = false;\n }\n _this6.controlCoordinates.initialPinchDistance = _this6.controlCoordinates.targetPinchDistance;\n _this6.controlCoordinates.initialScale = _this6.controlCoordinates.targetScale;\n _this6.controlCoordinates.initialOffsetX = _this6.controlCoordinates.targetOffsetX;\n _this6.controlCoordinates.initialOffsetY = _this6.controlCoordinates.targetOffsetY;\n _this6.setZoomData(_this6.controlCoordinates.targetScale, _this6.controlCoordinates.targetOffsetX, _this6.controlCoordinates.targetOffsetY);\n _this6.zoomPanElement(_this6.controlCoordinates.targetOffsetX + \"px\", _this6.controlCoordinates.targetOffsetY + \"px\", _this6.controlCoordinates.targetScale);\n });\n }\n this.addEventListener(this.domNodes.image, ['touchstart.' + this.eventNamespace, 'mousedown.' + this.eventNamespace], function (event) {\n if (event.target.tagName === 'A' && event.type === 'touchstart') {\n return true;\n }\n if (event.type === 'mousedown') {\n event.preventDefault();\n _this6.controlCoordinates.initialPointerOffsetX = event.clientX;\n _this6.controlCoordinates.initialPointerOffsetY = event.clientY;\n _this6.controlCoordinates.containerHeight = _this6.getDimensions(_this6.domNodes.image).height;\n _this6.controlCoordinates.containerWidth = _this6.getDimensions(_this6.domNodes.image).width;\n _this6.controlCoordinates.imgHeight = _this6.getDimensions(_this6.currentImage).height;\n _this6.controlCoordinates.imgWidth = _this6.getDimensions(_this6.currentImage).width;\n _this6.controlCoordinates.containerOffsetX = _this6.domNodes.image.offsetLeft;\n _this6.controlCoordinates.containerOffsetY = _this6.domNodes.image.offsetTop;\n _this6.controlCoordinates.initialOffsetX = parseFloat(_this6.currentImage.dataset.translateX);\n _this6.controlCoordinates.initialOffsetY = parseFloat(_this6.currentImage.dataset.translateY);\n _this6.controlCoordinates.capture = true;\n } else {\n _this6.controlCoordinates.touchCount = event.touches.length;\n _this6.controlCoordinates.initialPointerOffsetX = event.touches[0].clientX;\n _this6.controlCoordinates.initialPointerOffsetY = event.touches[0].clientY;\n _this6.controlCoordinates.containerHeight = _this6.getDimensions(_this6.domNodes.image).height;\n _this6.controlCoordinates.containerWidth = _this6.getDimensions(_this6.domNodes.image).width;\n _this6.controlCoordinates.imgHeight = _this6.getDimensions(_this6.currentImage).height;\n _this6.controlCoordinates.imgWidth = _this6.getDimensions(_this6.currentImage).width;\n _this6.controlCoordinates.containerOffsetX = _this6.domNodes.image.offsetLeft;\n _this6.controlCoordinates.containerOffsetY = _this6.domNodes.image.offsetTop;\n if (_this6.controlCoordinates.touchCount === 1) /* Single touch */{\n if (!_this6.controlCoordinates.doubleTapped) {\n _this6.controlCoordinates.doubleTapped = true;\n setTimeout(function () {\n _this6.controlCoordinates.doubleTapped = false;\n }, 300);\n } else {\n _this6.currentImage.classList.add('sl-transition');\n if (!_this6.controlCoordinates.zoomed) {\n _this6.controlCoordinates.initialScale = _this6.options.doubleTapZoom;\n _this6.setZoomData(_this6.controlCoordinates.initialScale, 0, 0);\n _this6.zoomPanElement(0 + \"px\", 0 + \"px\", _this6.controlCoordinates.initialScale);\n if ((!_this6.domNodes.caption.style.opacity || _this6.domNodes.caption.style.opacity > 0) && _this6.domNodes.caption.style.display !== 'none') {\n _this6.fadeOut(_this6.domNodes.caption, _this6.options.fadeSpeed);\n }\n _this6.controlCoordinates.zoomed = true;\n } else {\n _this6.controlCoordinates.initialScale = 1;\n _this6.setZoomData(_this6.controlCoordinates.initialScale, 0, 0);\n _this6.zoomPanElement(0 + \"px\", 0 + \"px\", _this6.controlCoordinates.initialScale);\n _this6.controlCoordinates.zoomed = false;\n }\n setTimeout(function () {\n if (_this6.currentImage) {\n _this6.currentImage.classList.remove('sl-transition');\n }\n }, 200);\n return false;\n }\n _this6.controlCoordinates.initialOffsetX = parseFloat(_this6.currentImage.dataset.translateX);\n _this6.controlCoordinates.initialOffsetY = parseFloat(_this6.currentImage.dataset.translateY);\n } else if (_this6.controlCoordinates.touchCount === 2) /* Pinch */{\n _this6.controlCoordinates.initialPointerOffsetX2 = event.touches[1].clientX;\n _this6.controlCoordinates.initialPointerOffsetY2 = event.touches[1].clientY;\n _this6.controlCoordinates.initialOffsetX = parseFloat(_this6.currentImage.dataset.translateX);\n _this6.controlCoordinates.initialOffsetY = parseFloat(_this6.currentImage.dataset.translateY);\n _this6.controlCoordinates.pinchOffsetX = (_this6.controlCoordinates.initialPointerOffsetX + _this6.controlCoordinates.initialPointerOffsetX2) / 2;\n _this6.controlCoordinates.pinchOffsetY = (_this6.controlCoordinates.initialPointerOffsetY + _this6.controlCoordinates.initialPointerOffsetY2) / 2;\n _this6.controlCoordinates.initialPinchDistance = Math.sqrt((_this6.controlCoordinates.initialPointerOffsetX - _this6.controlCoordinates.initialPointerOffsetX2) * (_this6.controlCoordinates.initialPointerOffsetX - _this6.controlCoordinates.initialPointerOffsetX2) + (_this6.controlCoordinates.initialPointerOffsetY - _this6.controlCoordinates.initialPointerOffsetY2) * (_this6.controlCoordinates.initialPointerOffsetY - _this6.controlCoordinates.initialPointerOffsetY2));\n }\n _this6.controlCoordinates.capture = true;\n }\n if (_this6.controlCoordinates.mousedown) return true;\n if (_this6.transitionCapable) {\n _this6.controlCoordinates.imageLeft = parseInt(_this6.domNodes.image.style.left, 10);\n }\n _this6.controlCoordinates.mousedown = true;\n _this6.controlCoordinates.swipeDiff = 0;\n _this6.controlCoordinates.swipeYDiff = 0;\n _this6.controlCoordinates.swipeStart = event.pageX || event.touches[0].pageX;\n _this6.controlCoordinates.swipeYStart = event.pageY || event.touches[0].pageY;\n return false;\n });\n this.addEventListener(this.domNodes.image, ['touchmove.' + this.eventNamespace, 'mousemove.' + this.eventNamespace, 'MSPointerMove'], function (event) {\n if (!_this6.controlCoordinates.mousedown) {\n return true;\n }\n if (event.type === 'touchmove') {\n if (_this6.controlCoordinates.capture === false) {\n return false;\n }\n _this6.controlCoordinates.pointerOffsetX = event.touches[0].clientX;\n _this6.controlCoordinates.pointerOffsetY = event.touches[0].clientY;\n _this6.controlCoordinates.touchCount = event.touches.length;\n _this6.controlCoordinates.touchmoveCount++;\n if (_this6.controlCoordinates.touchCount > 1) /* Pinch */{\n _this6.controlCoordinates.pointerOffsetX2 = event.touches[1].clientX;\n _this6.controlCoordinates.pointerOffsetY2 = event.touches[1].clientY;\n _this6.controlCoordinates.targetPinchDistance = Math.sqrt((_this6.controlCoordinates.pointerOffsetX - _this6.controlCoordinates.pointerOffsetX2) * (_this6.controlCoordinates.pointerOffsetX - _this6.controlCoordinates.pointerOffsetX2) + (_this6.controlCoordinates.pointerOffsetY - _this6.controlCoordinates.pointerOffsetY2) * (_this6.controlCoordinates.pointerOffsetY - _this6.controlCoordinates.pointerOffsetY2));\n if (_this6.controlCoordinates.initialPinchDistance === null) {\n _this6.controlCoordinates.initialPinchDistance = _this6.controlCoordinates.targetPinchDistance;\n }\n if (Math.abs(_this6.controlCoordinates.initialPinchDistance - _this6.controlCoordinates.targetPinchDistance) >= 1) {\n /* Initialize helpers */\n _this6.controlCoordinates.targetScale = _this6.minMax(_this6.controlCoordinates.targetPinchDistance / _this6.controlCoordinates.initialPinchDistance * _this6.controlCoordinates.initialScale, 1, _this6.options.maxZoom);\n _this6.controlCoordinates.limitOffsetX = (_this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerWidth) / 2;\n _this6.controlCoordinates.limitOffsetY = (_this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerHeight) / 2;\n _this6.controlCoordinates.scaleDifference = _this6.controlCoordinates.targetScale - _this6.controlCoordinates.initialScale;\n _this6.controlCoordinates.targetOffsetX = _this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerWidth ? 0 : _this6.minMax(_this6.controlCoordinates.initialOffsetX - (_this6.controlCoordinates.pinchOffsetX - _this6.controlCoordinates.containerOffsetX - _this6.controlCoordinates.containerWidth / 2 - _this6.controlCoordinates.initialOffsetX) / (_this6.controlCoordinates.targetScale - _this6.controlCoordinates.scaleDifference) * _this6.controlCoordinates.scaleDifference, _this6.controlCoordinates.limitOffsetX * -1, _this6.controlCoordinates.limitOffsetX);\n _this6.controlCoordinates.targetOffsetY = _this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerHeight ? 0 : _this6.minMax(_this6.controlCoordinates.initialOffsetY - (_this6.controlCoordinates.pinchOffsetY - _this6.controlCoordinates.containerOffsetY - _this6.controlCoordinates.containerHeight / 2 - _this6.controlCoordinates.initialOffsetY) / (_this6.controlCoordinates.targetScale - _this6.controlCoordinates.scaleDifference) * _this6.controlCoordinates.scaleDifference, _this6.controlCoordinates.limitOffsetY * -1, _this6.controlCoordinates.limitOffsetY);\n _this6.zoomPanElement(_this6.controlCoordinates.targetOffsetX + \"px\", _this6.controlCoordinates.targetOffsetY + \"px\", _this6.controlCoordinates.targetScale);\n if (_this6.controlCoordinates.targetScale > 1) {\n _this6.controlCoordinates.zoomed = true;\n if ((!_this6.domNodes.caption.style.opacity || _this6.domNodes.caption.style.opacity > 0) && _this6.domNodes.caption.style.display !== 'none') {\n _this6.fadeOut(_this6.domNodes.caption, _this6.options.fadeSpeed);\n }\n }\n _this6.controlCoordinates.initialPinchDistance = _this6.controlCoordinates.targetPinchDistance;\n _this6.controlCoordinates.initialScale = _this6.controlCoordinates.targetScale;\n _this6.controlCoordinates.initialOffsetX = _this6.controlCoordinates.targetOffsetX;\n _this6.controlCoordinates.initialOffsetY = _this6.controlCoordinates.targetOffsetY;\n }\n } else {\n _this6.controlCoordinates.targetScale = _this6.controlCoordinates.initialScale;\n _this6.controlCoordinates.limitOffsetX = (_this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerWidth) / 2;\n _this6.controlCoordinates.limitOffsetY = (_this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerHeight) / 2;\n _this6.controlCoordinates.targetOffsetX = _this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerWidth ? 0 : _this6.minMax(_this6.controlCoordinates.pointerOffsetX - (_this6.controlCoordinates.initialPointerOffsetX - _this6.controlCoordinates.initialOffsetX), _this6.controlCoordinates.limitOffsetX * -1, _this6.controlCoordinates.limitOffsetX);\n _this6.controlCoordinates.targetOffsetY = _this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerHeight ? 0 : _this6.minMax(_this6.controlCoordinates.pointerOffsetY - (_this6.controlCoordinates.initialPointerOffsetY - _this6.controlCoordinates.initialOffsetY), _this6.controlCoordinates.limitOffsetY * -1, _this6.controlCoordinates.limitOffsetY);\n if (Math.abs(_this6.controlCoordinates.targetOffsetX) === Math.abs(_this6.controlCoordinates.limitOffsetX)) {\n _this6.controlCoordinates.initialOffsetX = _this6.controlCoordinates.targetOffsetX;\n _this6.controlCoordinates.initialPointerOffsetX = _this6.controlCoordinates.pointerOffsetX;\n }\n if (Math.abs(_this6.controlCoordinates.targetOffsetY) === Math.abs(_this6.controlCoordinates.limitOffsetY)) {\n _this6.controlCoordinates.initialOffsetY = _this6.controlCoordinates.targetOffsetY;\n _this6.controlCoordinates.initialPointerOffsetY = _this6.controlCoordinates.pointerOffsetY;\n }\n _this6.setZoomData(_this6.controlCoordinates.initialScale, _this6.controlCoordinates.targetOffsetX, _this6.controlCoordinates.targetOffsetY);\n _this6.zoomPanElement(_this6.controlCoordinates.targetOffsetX + \"px\", _this6.controlCoordinates.targetOffsetY + \"px\", _this6.controlCoordinates.targetScale);\n }\n }\n\n /* Mouse Move implementation */\n if (event.type === 'mousemove' && _this6.controlCoordinates.mousedown) {\n if (event.type == 'touchmove') return true;\n event.preventDefault();\n if (_this6.controlCoordinates.capture === false) return false;\n _this6.controlCoordinates.pointerOffsetX = event.clientX;\n _this6.controlCoordinates.pointerOffsetY = event.clientY;\n _this6.controlCoordinates.targetScale = _this6.controlCoordinates.initialScale;\n _this6.controlCoordinates.limitOffsetX = (_this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerWidth) / 2;\n _this6.controlCoordinates.limitOffsetY = (_this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale - _this6.controlCoordinates.containerHeight) / 2;\n _this6.controlCoordinates.targetOffsetX = _this6.controlCoordinates.imgWidth * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerWidth ? 0 : _this6.minMax(_this6.controlCoordinates.pointerOffsetX - (_this6.controlCoordinates.initialPointerOffsetX - _this6.controlCoordinates.initialOffsetX), _this6.controlCoordinates.limitOffsetX * -1, _this6.controlCoordinates.limitOffsetX);\n _this6.controlCoordinates.targetOffsetY = _this6.controlCoordinates.imgHeight * _this6.controlCoordinates.targetScale <= _this6.controlCoordinates.containerHeight ? 0 : _this6.minMax(_this6.controlCoordinates.pointerOffsetY - (_this6.controlCoordinates.initialPointerOffsetY - _this6.controlCoordinates.initialOffsetY), _this6.controlCoordinates.limitOffsetY * -1, _this6.controlCoordinates.limitOffsetY);\n if (Math.abs(_this6.controlCoordinates.targetOffsetX) === Math.abs(_this6.controlCoordinates.limitOffsetX)) {\n _this6.controlCoordinates.initialOffsetX = _this6.controlCoordinates.targetOffsetX;\n _this6.controlCoordinates.initialPointerOffsetX = _this6.controlCoordinates.pointerOffsetX;\n }\n if (Math.abs(_this6.controlCoordinates.targetOffsetY) === Math.abs(_this6.controlCoordinates.limitOffsetY)) {\n _this6.controlCoordinates.initialOffsetY = _this6.controlCoordinates.targetOffsetY;\n _this6.controlCoordinates.initialPointerOffsetY = _this6.controlCoordinates.pointerOffsetY;\n }\n _this6.setZoomData(_this6.controlCoordinates.initialScale, _this6.controlCoordinates.targetOffsetX, _this6.controlCoordinates.targetOffsetY);\n _this6.zoomPanElement(_this6.controlCoordinates.targetOffsetX + \"px\", _this6.controlCoordinates.targetOffsetY + \"px\", _this6.controlCoordinates.targetScale);\n }\n if (!_this6.controlCoordinates.zoomed) {\n _this6.controlCoordinates.swipeEnd = event.pageX || event.touches[0].pageX;\n _this6.controlCoordinates.swipeYEnd = event.pageY || event.touches[0].pageY;\n _this6.controlCoordinates.swipeDiff = _this6.controlCoordinates.swipeStart - _this6.controlCoordinates.swipeEnd;\n _this6.controlCoordinates.swipeYDiff = _this6.controlCoordinates.swipeYStart - _this6.controlCoordinates.swipeYEnd;\n if (_this6.options.animationSlide) {\n _this6.slide(0, -_this6.controlCoordinates.swipeDiff + 'px');\n }\n }\n });\n this.addEventListener(this.domNodes.image, ['touchend.' + this.eventNamespace, 'mouseup.' + this.eventNamespace, 'touchcancel.' + this.eventNamespace, 'mouseleave.' + this.eventNamespace, 'pointerup', 'pointercancel', 'MSPointerUp', 'MSPointerCancel'], function (event) {\n if (_this6.isTouchDevice && event.type === 'touchend') {\n _this6.controlCoordinates.touchCount = event.touches.length;\n if (_this6.controlCoordinates.touchCount === 0) /* No touch */{\n /* Set attributes */\n if (_this6.currentImage) {\n _this6.setZoomData(_this6.controlCoordinates.initialScale, _this6.controlCoordinates.targetOffsetX, _this6.controlCoordinates.targetOffsetY);\n }\n if (_this6.controlCoordinates.initialScale === 1) {\n _this6.controlCoordinates.zoomed = false;\n if (_this6.domNodes.caption.style.display === 'none') {\n _this6.fadeIn(_this6.domNodes.caption, _this6.options.fadeSpeed);\n }\n }\n _this6.controlCoordinates.initialPinchDistance = null;\n _this6.controlCoordinates.capture = false;\n } else if (_this6.controlCoordinates.touchCount === 1) /* Single touch */{\n _this6.controlCoordinates.initialPointerOffsetX = event.touches[0].clientX;\n _this6.controlCoordinates.initialPointerOffsetY = event.touches[0].clientY;\n } else if (_this6.controlCoordinates.touchCount > 1) /* Pinch */{\n _this6.controlCoordinates.initialPinchDistance = null;\n }\n }\n if (_this6.controlCoordinates.mousedown) {\n _this6.controlCoordinates.mousedown = false;\n var possibleDir = true;\n if (!_this6.options.loop) {\n if (_this6.currentImageIndex === 0 && _this6.controlCoordinates.swipeDiff < 0) {\n possibleDir = false;\n }\n if (_this6.currentImageIndex >= _this6.relatedElements.length - 1 && _this6.controlCoordinates.swipeDiff > 0) {\n possibleDir = false;\n }\n }\n if (Math.abs(_this6.controlCoordinates.swipeDiff) > _this6.options.swipeTolerance && possibleDir) {\n _this6.loadImage(_this6.controlCoordinates.swipeDiff > 0 ? 1 : -1);\n } else if (_this6.options.animationSlide) {\n _this6.slide(_this6.options.animationSpeed / 1000, 0 + 'px');\n }\n if (_this6.options.swipeClose && Math.abs(_this6.controlCoordinates.swipeYDiff) > 50 && Math.abs(_this6.controlCoordinates.swipeDiff) < _this6.options.swipeTolerance) {\n _this6.close();\n }\n }\n });\n this.addEventListener(this.domNodes.image, ['dblclick'], function (event) {\n if (_this6.isTouchDevice) return;\n _this6.controlCoordinates.initialPointerOffsetX = event.clientX;\n _this6.controlCoordinates.initialPointerOffsetY = event.clientY;\n _this6.controlCoordinates.containerHeight = _this6.getDimensions(_this6.domNodes.image).height;\n _this6.controlCoordinates.containerWidth = _this6.getDimensions(_this6.domNodes.image).width;\n _this6.controlCoordinates.imgHeight = _this6.getDimensions(_this6.currentImage).height;\n _this6.controlCoordinates.imgWidth = _this6.getDimensions(_this6.currentImage).width;\n _this6.controlCoordinates.containerOffsetX = _this6.domNodes.image.offsetLeft;\n _this6.controlCoordinates.containerOffsetY = _this6.domNodes.image.offsetTop;\n _this6.currentImage.classList.add('sl-transition');\n if (!_this6.controlCoordinates.zoomed) {\n _this6.controlCoordinates.initialScale = _this6.options.doubleTapZoom;\n _this6.setZoomData(_this6.controlCoordinates.initialScale, 0, 0);\n _this6.zoomPanElement(0 + \"px\", 0 + \"px\", _this6.controlCoordinates.initialScale);\n if ((!_this6.domNodes.caption.style.opacity || _this6.domNodes.caption.style.opacity > 0) && _this6.domNodes.caption.style.display !== 'none') {\n _this6.fadeOut(_this6.domNodes.caption, _this6.options.fadeSpeed);\n }\n _this6.controlCoordinates.zoomed = true;\n } else {\n _this6.controlCoordinates.initialScale = 1;\n _this6.setZoomData(_this6.controlCoordinates.initialScale, 0, 0);\n _this6.zoomPanElement(0 + \"px\", 0 + \"px\", _this6.controlCoordinates.initialScale);\n _this6.controlCoordinates.zoomed = false;\n if (_this6.domNodes.caption.style.display === 'none') {\n _this6.fadeIn(_this6.domNodes.caption, _this6.options.fadeSpeed);\n }\n }\n setTimeout(function () {\n if (_this6.currentImage) {\n _this6.currentImage.classList.remove('sl-transition');\n _this6.currentImage.style[_this6.transitionPrefix + 'transform-origin'] = null;\n }\n }, 200);\n _this6.controlCoordinates.capture = true;\n return false;\n });\n }\n }, {\n key: \"getDimensions\",\n value: function getDimensions(element) {\n var styles = window.getComputedStyle(element),\n height = element.offsetHeight,\n width = element.offsetWidth,\n borderTopWidth = parseFloat(styles.borderTopWidth),\n borderBottomWidth = parseFloat(styles.borderBottomWidth),\n paddingTop = parseFloat(styles.paddingTop),\n paddingBottom = parseFloat(styles.paddingBottom),\n borderLeftWidth = parseFloat(styles.borderLeftWidth),\n borderRightWidth = parseFloat(styles.borderRightWidth),\n paddingLeft = parseFloat(styles.paddingLeft),\n paddingRight = parseFloat(styles.paddingRight);\n return {\n height: height - borderBottomWidth - borderTopWidth - paddingTop - paddingBottom,\n width: width - borderLeftWidth - borderRightWidth - paddingLeft - paddingRight\n };\n }\n }, {\n key: \"updateHash\",\n value: function updateHash() {\n var newHash = 'pid=' + (this.currentImageIndex + 1),\n newURL = window.location.href.split('#')[0] + '#' + newHash;\n this.hashReseted = false;\n if (this.pushStateSupport) {\n window.history[this.historyHasChanges ? 'replaceState' : 'pushState']('', document.title, newURL);\n } else {\n // what is the browser target of this?\n if (this.historyHasChanges) {\n window.location.replace(newURL);\n } else {\n window.location.hash = newHash;\n }\n }\n if (!this.historyHasChanges) {\n this.urlChangedOnce = true;\n }\n this.historyHasChanges = true;\n }\n }, {\n key: \"resetHash\",\n value: function resetHash() {\n this.hashReseted = true;\n if (this.urlChangedOnce) {\n history.back();\n } else {\n if (this.pushStateSupport) {\n history.pushState('', document.title, window.location.pathname + window.location.search);\n } else {\n window.location.hash = '';\n }\n }\n //\n //in case an history operation is still pending\n clearTimeout(this.historyUpdateTimeout);\n }\n }, {\n key: \"updateURL\",\n value: function updateURL() {\n clearTimeout(this.historyUpdateTimeout);\n if (!this.historyHasChanges) {\n this.updateHash(); // first time\n } else {\n this.historyUpdateTimeout = setTimeout(this.updateHash.bind(this), 800);\n }\n }\n }, {\n key: \"setCaption\",\n value: function setCaption(captionText, imageWidth, allowHTML) {\n var _this7 = this;\n if (this.options.captions && captionText && captionText !== '' && typeof captionText !== \"undefined\") {\n var _ref;\n var property = ((_ref = allowHTML !== null && allowHTML !== void 0 ? allowHTML : this.options.captionHTML) !== null && _ref !== void 0 ? _ref : true) ? 'innerHTML' : 'innerText';\n this.hide(this.domNodes.caption);\n this.domNodes.caption.style.width = imageWidth + 'px';\n this.domNodes.caption[property] = captionText;\n this.domNodes.image.appendChild(this.domNodes.caption);\n setTimeout(function () {\n _this7.fadeIn(_this7.domNodes.caption, _this7.options.fadeSpeed);\n }, this.options.captionDelay);\n }\n }\n }, {\n key: \"slide\",\n value: function slide(speed, pos) {\n if (!this.transitionCapable) {\n return this.domNodes.image.style.left = pos;\n }\n this.domNodes.image.style[this.transitionPrefix + 'transform'] = 'translateX(' + pos + ')';\n this.domNodes.image.style[this.transitionPrefix + 'transition'] = this.transitionPrefix + 'transform ' + speed + 's linear';\n }\n }, {\n key: \"getRelated\",\n value: function getRelated(rel) {\n var elems;\n if (rel && rel !== false && rel !== 'nofollow') {\n elems = Array.from(this.elements).filter(function (element) {\n return element.getAttribute('rel') === rel;\n });\n } else {\n elems = this.elements;\n }\n return elems;\n }\n }, {\n key: \"openImage\",\n value: function openImage(element) {\n var _this8 = this;\n element.dispatchEvent(new Event('show.' + this.eventNamespace));\n this.globalScrollbarWidth = this.getScrollbarWidth();\n if (this.options.disableScroll) {\n this.toggleScrollbar('hide');\n this.globalScrollbarWidth = 0;\n }\n if (this.options.htmlClass && this.options.htmlClass !== '') {\n document.querySelector('html').classList.add(this.options.htmlClass);\n }\n document.body.appendChild(this.domNodes.wrapper);\n this.domNodes.wrapper.appendChild(this.domNodes.image);\n if (this.options.overlay) {\n document.body.appendChild(this.domNodes.overlay);\n }\n this.relatedElements = this.getRelated(element.rel);\n if (this.options.showCounter) {\n if (this.relatedElements.length == 1 && this.domNodes.wrapper.contains(this.domNodes.counter)) {\n this.domNodes.wrapper.removeChild(this.domNodes.counter);\n } else if (this.relatedElements.length > 1 && !this.domNodes.wrapper.contains(this.domNodes.counter)) {\n this.domNodes.wrapper.appendChild(this.domNodes.counter);\n }\n }\n if (this.options.download && this.domNodes.download) {\n this.domNodes.wrapper.appendChild(this.domNodes.download);\n }\n this.isAnimating = true;\n this.currentImageIndex = this.relatedElements.indexOf(element);\n var targetURL = element.getAttribute(this.options.sourceAttr);\n this.currentImage = document.createElement('img');\n this.currentImage.style.display = 'none';\n this.currentImage.setAttribute('src', targetURL);\n this.currentImage.dataset.scale = 1;\n this.currentImage.dataset.translateX = 0;\n this.currentImage.dataset.translateY = 0;\n if (this.loadedImages.indexOf(targetURL) === -1) {\n this.loadedImages.push(targetURL);\n }\n this.domNodes.image.innerHTML = '';\n this.domNodes.image.setAttribute('style', '');\n this.domNodes.image.appendChild(this.currentImage);\n this.fadeIn(this.domNodes.overlay, this.options.fadeSpeed);\n this.fadeIn([this.domNodes.counter, this.domNodes.navigation, this.domNodes.closeButton, this.domNodes.download], this.options.fadeSpeed);\n this.show(this.domNodes.spinner);\n this.domNodes.counter.querySelector('.sl-current').innerHTML = this.currentImageIndex + 1;\n this.domNodes.counter.querySelector('.sl-total').innerHTML = this.relatedElements.length;\n this.adjustImage();\n if (this.options.preloading) {\n this.preload();\n }\n setTimeout(function () {\n element.dispatchEvent(new Event('shown.' + _this8.eventNamespace));\n }, this.options.animationSpeed);\n }\n }, {\n key: \"forceFocus\",\n value: function forceFocus() {\n var _this9 = this;\n this.removeEventListener(document, 'focusin.' + this.eventNamespace);\n this.addEventListener(document, 'focusin.' + this.eventNamespace, function (event) {\n if (document !== event.target && _this9.domNodes.wrapper !== event.target && !_this9.domNodes.wrapper.contains(event.target)) {\n _this9.domNodes.wrapper.focus();\n }\n });\n }\n\n // utility\n }, {\n key: \"addEventListener\",\n value: function addEventListener(elements, events, callback, opts) {\n elements = this.wrap(elements);\n events = this.wrap(events);\n var _iterator = _createForOfIteratorHelper(elements),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var element = _step.value;\n if (!element.namespaces) {\n element.namespaces = {};\n } // save the namespaces addEventListener the DOM element itself\n var _iterator2 = _createForOfIteratorHelper(events),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var event = _step2.value;\n var options = opts || false;\n var needsPassiveFix = ['touchstart', 'touchmove', 'mousewheel', 'DOMMouseScroll'].indexOf(event.split('.')[0]) >= 0;\n if (needsPassiveFix && this.isPassiveEventsSupported) {\n if (_typeof(options) === 'object') {\n options.passive = true;\n } else {\n options = {\n passive: true\n };\n }\n }\n element.namespaces[event] = callback;\n element.addEventListener(event.split('.')[0], callback, options);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(elements, events) {\n elements = this.wrap(elements);\n events = this.wrap(events);\n var _iterator3 = _createForOfIteratorHelper(elements),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var element = _step3.value;\n var _iterator4 = _createForOfIteratorHelper(events),\n _step4;\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var event = _step4.value;\n if (element.namespaces && element.namespaces[event]) {\n element.removeEventListener(event.split('.')[0], element.namespaces[event]);\n delete element.namespaces[event];\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n }, {\n key: \"fadeOut\",\n value: function fadeOut(elements, duration, callback) {\n var _this10 = this;\n elements = this.wrap(elements);\n var _iterator5 = _createForOfIteratorHelper(elements),\n _step5;\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var element = _step5.value;\n element.style.opacity = parseFloat(element) || window.getComputedStyle(element).getPropertyValue(\"opacity\");\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n this.isFadeIn = false;\n var step = 16.66666 / (duration || this.options.fadeSpeed),\n fade = function fade() {\n var currentOpacity = parseFloat(elements[0].style.opacity);\n if ((currentOpacity -= step) < 0) {\n var _iterator6 = _createForOfIteratorHelper(elements),\n _step6;\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var element = _step6.value;\n element.style.display = \"none\";\n // element.style.opacity = '';\n element.style.opacity = 1;\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n callback && callback.call(_this10, elements);\n } else {\n var _iterator7 = _createForOfIteratorHelper(elements),\n _step7;\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var _element = _step7.value;\n _element.style.opacity = currentOpacity;\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n requestAnimationFrame(fade);\n }\n };\n fade();\n }\n }, {\n key: \"fadeIn\",\n value: function fadeIn(elements, duration, callback, display) {\n var _this11 = this;\n elements = this.wrap(elements);\n var _iterator8 = _createForOfIteratorHelper(elements),\n _step8;\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var element = _step8.value;\n if (element) {\n element.style.opacity = 0;\n element.style.display = display || \"block\";\n }\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n this.isFadeIn = true;\n var opacityTarget = parseFloat(elements[0].dataset.opacityTarget || 1),\n step = 16.66666 * opacityTarget / (duration || this.options.fadeSpeed),\n fade = function fade() {\n var currentOpacity = parseFloat(elements[0].style.opacity);\n if (!((currentOpacity += step) > opacityTarget)) {\n var _iterator9 = _createForOfIteratorHelper(elements),\n _step9;\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var element = _step9.value;\n if (element) {\n element.style.opacity = currentOpacity;\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n if (!_this11.isFadeIn) return;\n requestAnimationFrame(fade);\n } else {\n var _iterator10 = _createForOfIteratorHelper(elements),\n _step10;\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var _element2 = _step10.value;\n if (_element2) {\n _element2.style.opacity = opacityTarget;\n }\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n callback && callback.call(_this11, elements);\n }\n };\n fade();\n }\n }, {\n key: \"hide\",\n value: function hide(elements) {\n elements = this.wrap(elements);\n var _iterator11 = _createForOfIteratorHelper(elements),\n _step11;\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n var element = _step11.value;\n if (element.style.display != 'none') {\n element.dataset.initialDisplay = element.style.display;\n }\n element.style.display = 'none';\n }\n } catch (err) {\n _iterator11.e(err);\n } finally {\n _iterator11.f();\n }\n }\n }, {\n key: \"show\",\n value: function show(elements, display) {\n elements = this.wrap(elements);\n var _iterator12 = _createForOfIteratorHelper(elements),\n _step12;\n try {\n for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n var element = _step12.value;\n element.style.display = element.dataset.initialDisplay || display || 'block';\n }\n } catch (err) {\n _iterator12.e(err);\n } finally {\n _iterator12.f();\n }\n }\n }, {\n key: \"wrap\",\n value: function wrap(input) {\n return typeof input[Symbol.iterator] === 'function' && typeof input !== 'string' ? input : [input];\n }\n }, {\n key: \"on\",\n value: function on(events, callback) {\n events = this.wrap(events);\n var _iterator13 = _createForOfIteratorHelper(this.elements),\n _step13;\n try {\n for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n var element = _step13.value;\n if (!element.fullyNamespacedEvents) {\n element.fullyNamespacedEvents = {};\n }\n var _iterator14 = _createForOfIteratorHelper(events),\n _step14;\n try {\n for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n var event = _step14.value;\n element.fullyNamespacedEvents[event] = callback;\n element.addEventListener(event, callback);\n }\n } catch (err) {\n _iterator14.e(err);\n } finally {\n _iterator14.f();\n }\n }\n } catch (err) {\n _iterator13.e(err);\n } finally {\n _iterator13.f();\n }\n return this;\n }\n }, {\n key: \"off\",\n value: function off(events) {\n events = this.wrap(events);\n var _iterator15 = _createForOfIteratorHelper(this.elements),\n _step15;\n try {\n for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n var element = _step15.value;\n var _iterator16 = _createForOfIteratorHelper(events),\n _step16;\n try {\n for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {\n var event = _step16.value;\n if (typeof element.fullyNamespacedEvents !== 'undefined' && event in element.fullyNamespacedEvents) {\n element.removeEventListener(event, element.fullyNamespacedEvents[event]);\n }\n }\n } catch (err) {\n _iterator16.e(err);\n } finally {\n _iterator16.f();\n }\n }\n } catch (err) {\n _iterator15.e(err);\n } finally {\n _iterator15.f();\n }\n return this;\n }\n\n // api\n }, {\n key: \"open\",\n value: function open(elem) {\n var position = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n elem = elem || this.elements[0];\n if (typeof jQuery !== \"undefined\" && elem instanceof jQuery) {\n elem = elem.get(0);\n }\n if (position > 0) {\n elem = this.elements[position];\n }\n this.initialImageIndex = this.elements.indexOf(elem);\n if (this.initialImageIndex > -1) {\n this.openImage(elem);\n }\n }\n }, {\n key: \"openPosition\",\n value: function openPosition(position) {\n var elem = this.elements[position];\n this.open(elem, position);\n }\n }, {\n key: \"next\",\n value: function next() {\n this.loadImage(1);\n }\n }, {\n key: \"prev\",\n value: function prev() {\n this.loadImage(-1);\n }\n\n // get some useful data\n }, {\n key: \"getLighboxData\",\n value: function getLighboxData() {\n return {\n currentImageIndex: this.currentImageIndex,\n currentImage: this.currentImage,\n globalScrollbarWidth: this.globalScrollbarWidth\n };\n }\n\n //close is exposed anyways..\n }, {\n key: \"destroy\",\n value: function destroy() {\n //remove all custom event listeners from elements\n this.off(['close.' + this.eventNamespace, 'closed.' + this.eventNamespace, 'nextImageLoaded.' + this.eventNamespace, 'prevImageLoaded.' + this.eventNamespace, 'change.' + this.eventNamespace, 'nextDone.' + this.eventNamespace, 'prevDone.' + this.eventNamespace, 'error.' + this.eventNamespace, 'changed.' + this.eventNamespace, 'next.' + this.eventNamespace, 'prev.' + this.eventNamespace, 'show.' + this.eventNamespace, 'shown.' + this.eventNamespace]);\n this.removeEventListener(this.elements, 'click.' + this.eventNamespace);\n this.removeEventListener(document, 'focusin.' + this.eventNamespace);\n this.removeEventListener(document.body, 'contextmenu.' + this.eventNamespace);\n this.removeEventListener(document.body, 'keyup.' + this.eventNamespace);\n this.removeEventListener(this.domNodes.navigation.getElementsByTagName('button'), 'click.' + this.eventNamespace);\n this.removeEventListener(this.domNodes.closeButton, 'click.' + this.eventNamespace);\n this.removeEventListener(window, 'resize.' + this.eventNamespace);\n this.removeEventListener(window, 'hashchange.' + this.eventNamespace);\n this.close();\n if (this.isOpen) {\n document.body.removeChild(this.domNodes.wrapper);\n document.body.removeChild(this.domNodes.overlay);\n }\n this.elements = null;\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n if (!this.initialSelector) {\n throw 'refreshing only works when you initialize using a selector!';\n }\n var options = this.options,\n selector = this.initialSelector;\n this.destroy();\n this.constructor(selector, options);\n return this;\n }\n }]);\n return SimpleLightbox;\n}();\nvar _default = SimpleLightbox;\nexports[\"default\"] = _default;\nglobal.SimpleLightbox = SimpleLightbox;"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","_createForOfIteratorHelper","o","allowArrayLike","it","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","err","normalCompletion","didErr","call","step","next","_e2","_toConsumableArray","arr","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","_nonIterableSpread","minLen","Object","toString","slice","name","test","len","arr2","_defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","key","_defineProperty","exports","SimpleLightbox","elements","options","_this","this","instance","Constructor","_classCallCheck","sourceAttr","overlay","overlayOpacity","spinner","nav","navText","captions","captionDelay","captionSelector","captionType","captionsData","captionPosition","captionClass","captionHTML","close","closeText","swipeClose","showCounter","fileExt","animationSlide","animationSpeed","preloading","enableKeyboard","loop","rel","docClose","swipeTolerance","className","widthRatio","heightRatio","scaleImageToRatio","disableRightClick","disableScroll","alertError","alertErrorMessage","additionalHtml","history","throttleInterval","doubleTapZoom","maxZoom","htmlClass","rtl","fixedClass","fadeSpeed","uniqueImages","focus","scrollZoom","scrollZoomFactor","download","window","navigator","platform","swipeDiff","swipeYDiff","swipeStart","swipeEnd","swipeYStart","swipeYEnd","mousedown","imageLeft","zoomed","containerHeight","containerWidth","containerOffsetX","containerOffsetY","imgHeight","imgWidth","capture","initialOffsetX","initialOffsetY","initialPointerOffsetX","initialPointerOffsetY","initialPointerOffsetX2","initialPointerOffsetY2","initialScale","initialPinchDistance","pointerOffsetX","pointerOffsetY","pointerOffsetX2","pointerOffsetY2","targetOffsetX","targetOffsetY","targetScale","pinchOffsetX","pinchOffsetY","limitOffsetX","limitOffsetY","scaleDifference","targetPinchDistance","touchCount","doubleTapped","touchmoveCount","assign","defaultOptions","isPassiveEventsSupported","checkPassiveEventsSupport","initialSelector","document","querySelectorAll","relatedElements","transitionPrefix","calculateTransitionPrefix","transitionCapable","initialLocationHash","hash","getRelated","imgArr","filter","element","src","getAttribute","indexOf","push","createDomNodes","domNodes","wrapper","appendChild","closeButton","navigation","addEventListener","eventNamespace","event","isValidLink","currentTarget","preventDefault","isAnimating","initialImageIndex","openImage","isOpen","body","parentElement","classList","contains","throttle","controlCoordinates","currentImage","setAttribute","loadImage","addEvents","protoProps","staticProps","supportsPassive","opts","get","removeEventListener","elem","startsWith","selector","replace","trimStart","sibling","nextElementSibling","matches","_selector","querySelector","tagName","id","parentNode","str","concat","classes","trim","split","childIndex","previousElementSibling","generateQuerySelector","createElement","add","dataset","opacityTarget","innerHTML","counter","downloadLink","textContent","caption","_this$domNodes$captio","captionClasses","apply","image","func","limit","inThrottle","arguments","setTimeout","RegExp","documentElement","style","scrollbarWidth","scrollDiv","offsetWidth","clientWidth","removeChild","type","fixedElements","fullWindowWidth","innerWidth","documentElementRect","getBoundingClientRect","right","Math","abs","left","isAppleDevice","paddingRight","parseInt","getComputedStyle","getScrollbarWidth","originalPaddingRight","forEach","actualPadding","calculatedPadding","parseFloat","remove","padding","_this2","isClosing","currentImageIndex","dispatchEvent","Event","historyHasChanges","hashReseted","resetHash","fadeOut","toggleScrollbar","minMax","location","substring","_this3","index","prev","nextImage","Image","prevImage","loadedImages","direction","_this4","slideDirection","newIndex","slide","show","adjustImage","preload","_this5","tmpImage","windowWidth","windowHeight","innerHeight","scale","translateX","translateY","zoomPanElement","display","dirIsDefined","alert","updateURL","captionContainer","captionText","imageWidth","width","imageHeight","height","ratio","top","globalScrollbarWidth","forceFocus","fadeIn","getCaptionElement","hide","setCaption","min","max","_this6","bind","hashchangeHandler","getElementsByTagName","match","getDimensions","offsetLeft","offsetTop","delta","wheelDelta","undefined","detail","scrollTopPos","scrollTop","pageX","pageY","opacity","setZoomData","clientX","clientY","touches","sqrt","isTouchDevice","possibleDir","styles","offsetHeight","borderTopWidth","borderBottomWidth","paddingTop","paddingBottom","borderLeftWidth","borderRightWidth","paddingLeft","newHash","newURL","href","pushStateSupport","title","urlChangedOnce","back","pushState","pathname","search","clearTimeout","historyUpdateTimeout","updateHash","allowHTML","_this7","_ref","property","speed","pos","_this8","targetURL","_this9","events","callback","wrap","_step","_iterator","namespaces","_step2","_iterator2","passive","_step3","_iterator3","_step4","_iterator4","duration","_step5","_this10","_iterator5","getPropertyValue","isFadeIn","fade","currentOpacity","_step6","_iterator6","_step7","_iterator7","requestAnimationFrame","_step8","_this11","_iterator8","_step10","_iterator10","_element2","_step9","_iterator9","_step11","_iterator11","initialDisplay","_step12","_iterator12","input","_step13","_iterator13","fullyNamespacedEvents","_step14","_iterator14","_step15","_iterator15","_step16","_iterator16","position","jQuery","open","off","destroy","_default","g"],"sourceRoot":""}