{"version":3,"file":"js/7734-1e51a6c1edde1189bda7.js","mappings":"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","sources":["webpack://trails/./node_modules/lightgallery/lightgallery.es5.js","webpack://trails/./node_modules/lightgallery/plugins/thumbnail/lg-thumbnail.es5.js","webpack://trails/./node_modules/lightgallery/plugins/zoom/lg-zoom.es5.js"],"sourcesContent":["/*!\n * lightgallery | 2.7.2 | September 20th 2023\n * http://www.lightgalleryjs.com/\n * Copyright (c) 2020 Sachin Neravath;\n * @license GPLv3\n */\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\n\n/**\r\n * List of lightGallery events\r\n * All events should be documented here\r\n * Below interfaces are used to build the website documentations\r\n * */\r\nvar lGEvents = {\r\n afterAppendSlide: 'lgAfterAppendSlide',\r\n init: 'lgInit',\r\n hasVideo: 'lgHasVideo',\r\n containerResize: 'lgContainerResize',\r\n updateSlides: 'lgUpdateSlides',\r\n afterAppendSubHtml: 'lgAfterAppendSubHtml',\r\n beforeOpen: 'lgBeforeOpen',\r\n afterOpen: 'lgAfterOpen',\r\n slideItemLoad: 'lgSlideItemLoad',\r\n beforeSlide: 'lgBeforeSlide',\r\n afterSlide: 'lgAfterSlide',\r\n posterClick: 'lgPosterClick',\r\n dragStart: 'lgDragStart',\r\n dragMove: 'lgDragMove',\r\n dragEnd: 'lgDragEnd',\r\n beforeNextSlide: 'lgBeforeNextSlide',\r\n beforePrevSlide: 'lgBeforePrevSlide',\r\n beforeClose: 'lgBeforeClose',\r\n afterClose: 'lgAfterClose',\r\n rotateLeft: 'lgRotateLeft',\r\n rotateRight: 'lgRotateRight',\r\n flipHorizontal: 'lgFlipHorizontal',\r\n flipVertical: 'lgFlipVertical',\r\n autoplay: 'lgAutoplay',\r\n autoplayStart: 'lgAutoplayStart',\r\n autoplayStop: 'lgAutoplayStop',\r\n};\n\nvar lightGalleryCoreSettings = {\r\n mode: 'lg-slide',\r\n easing: 'ease',\r\n speed: 400,\r\n licenseKey: '0000-0000-000-0000',\r\n height: '100%',\r\n width: '100%',\r\n addClass: '',\r\n startClass: 'lg-start-zoom',\r\n backdropDuration: 300,\r\n container: '',\r\n startAnimationDuration: 400,\r\n zoomFromOrigin: true,\r\n hideBarsDelay: 0,\r\n showBarsAfter: 10000,\r\n slideDelay: 0,\r\n supportLegacyBrowser: true,\r\n allowMediaOverlap: false,\r\n videoMaxSize: '1280-720',\r\n loadYouTubePoster: true,\r\n defaultCaptionHeight: 0,\r\n ariaLabelledby: '',\r\n ariaDescribedby: '',\r\n resetScrollPosition: true,\r\n hideScrollbar: false,\r\n closable: true,\r\n swipeToClose: true,\r\n closeOnTap: true,\r\n showCloseIcon: true,\r\n showMaximizeIcon: false,\r\n loop: true,\r\n escKey: true,\r\n keyPress: true,\r\n trapFocus: true,\r\n controls: true,\r\n slideEndAnimation: true,\r\n hideControlOnEnd: false,\r\n mousewheel: false,\r\n getCaptionFromTitleOrAlt: true,\r\n appendSubHtmlTo: '.lg-sub-html',\r\n subHtmlSelectorRelative: false,\r\n preload: 2,\r\n numberOfSlideItemsInDom: 10,\r\n selector: '',\r\n selectWithin: '',\r\n nextHtml: '',\r\n prevHtml: '',\r\n index: 0,\r\n iframeWidth: '100%',\r\n iframeHeight: '100%',\r\n iframeMaxWidth: '100%',\r\n iframeMaxHeight: '100%',\r\n download: true,\r\n counter: true,\r\n appendCounterTo: '.lg-toolbar',\r\n swipeThreshold: 50,\r\n enableSwipe: true,\r\n enableDrag: true,\r\n dynamic: false,\r\n dynamicEl: [],\r\n extraProps: [],\r\n exThumbImage: '',\r\n isMobile: undefined,\r\n mobileSettings: {\r\n controls: false,\r\n showCloseIcon: false,\r\n download: false,\r\n },\r\n plugins: [],\r\n strings: {\r\n closeGallery: 'Close gallery',\r\n toggleMaximize: 'Toggle maximize',\r\n previousSlide: 'Previous slide',\r\n nextSlide: 'Next slide',\r\n download: 'Download',\r\n playVideo: 'Play video',\r\n mediaLoadingFailed: 'Oops... Failed to load content...',\r\n },\r\n};\n\nfunction initLgPolyfills() {\r\n (function () {\r\n if (typeof window.CustomEvent === 'function')\r\n return false;\r\n function CustomEvent(event, params) {\r\n params = params || {\r\n bubbles: false,\r\n cancelable: false,\r\n detail: null,\r\n };\r\n var evt = document.createEvent('CustomEvent');\r\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\r\n return evt;\r\n }\r\n window.CustomEvent = CustomEvent;\r\n })();\r\n (function () {\r\n if (!Element.prototype.matches) {\r\n Element.prototype.matches =\r\n Element.prototype.msMatchesSelector ||\r\n Element.prototype.webkitMatchesSelector;\r\n }\r\n })();\r\n}\r\nvar lgQuery = /** @class */ (function () {\r\n function lgQuery(selector) {\r\n this.cssVenderPrefixes = [\r\n 'TransitionDuration',\r\n 'TransitionTimingFunction',\r\n 'Transform',\r\n 'Transition',\r\n ];\r\n this.selector = this._getSelector(selector);\r\n this.firstElement = this._getFirstEl();\r\n return this;\r\n }\r\n lgQuery.generateUUID = function () {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n };\r\n lgQuery.prototype._getSelector = function (selector, context) {\r\n if (context === void 0) { context = document; }\r\n if (typeof selector !== 'string') {\r\n return selector;\r\n }\r\n context = context || document;\r\n var fl = selector.substring(0, 1);\r\n if (fl === '#') {\r\n return context.querySelector(selector);\r\n }\r\n else {\r\n return context.querySelectorAll(selector);\r\n }\r\n };\r\n lgQuery.prototype._each = function (func) {\r\n if (!this.selector) {\r\n return this;\r\n }\r\n if (this.selector.length !== undefined) {\r\n [].forEach.call(this.selector, func);\r\n }\r\n else {\r\n func(this.selector, 0);\r\n }\r\n return this;\r\n };\r\n lgQuery.prototype._setCssVendorPrefix = function (el, cssProperty, value) {\r\n // prettier-ignore\r\n var property = cssProperty.replace(/-([a-z])/gi, function (s, group1) {\r\n return group1.toUpperCase();\r\n });\r\n if (this.cssVenderPrefixes.indexOf(property) !== -1) {\r\n el.style[property.charAt(0).toLowerCase() + property.slice(1)] = value;\r\n el.style['webkit' + property] = value;\r\n el.style['moz' + property] = value;\r\n el.style['ms' + property] = value;\r\n el.style['o' + property] = value;\r\n }\r\n else {\r\n el.style[property] = value;\r\n }\r\n };\r\n lgQuery.prototype._getFirstEl = function () {\r\n if (this.selector && this.selector.length !== undefined) {\r\n return this.selector[0];\r\n }\r\n else {\r\n return this.selector;\r\n }\r\n };\r\n lgQuery.prototype.isEventMatched = function (event, eventName) {\r\n var eventNamespace = eventName.split('.');\r\n return event\r\n .split('.')\r\n .filter(function (e) { return e; })\r\n .every(function (e) {\r\n return eventNamespace.indexOf(e) !== -1;\r\n });\r\n };\r\n lgQuery.prototype.attr = function (attr, value) {\r\n if (value === undefined) {\r\n if (!this.firstElement) {\r\n return '';\r\n }\r\n return this.firstElement.getAttribute(attr);\r\n }\r\n this._each(function (el) {\r\n el.setAttribute(attr, value);\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.find = function (selector) {\r\n return $LG(this._getSelector(selector, this.selector));\r\n };\r\n lgQuery.prototype.first = function () {\r\n if (this.selector && this.selector.length !== undefined) {\r\n return $LG(this.selector[0]);\r\n }\r\n else {\r\n return $LG(this.selector);\r\n }\r\n };\r\n lgQuery.prototype.eq = function (index) {\r\n return $LG(this.selector[index]);\r\n };\r\n lgQuery.prototype.parent = function () {\r\n return $LG(this.selector.parentElement);\r\n };\r\n lgQuery.prototype.get = function () {\r\n return this._getFirstEl();\r\n };\r\n lgQuery.prototype.removeAttr = function (attributes) {\r\n var attrs = attributes.split(' ');\r\n this._each(function (el) {\r\n attrs.forEach(function (attr) { return el.removeAttribute(attr); });\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.wrap = function (className) {\r\n if (!this.firstElement) {\r\n return this;\r\n }\r\n var wrapper = document.createElement('div');\r\n wrapper.className = className;\r\n this.firstElement.parentNode.insertBefore(wrapper, this.firstElement);\r\n this.firstElement.parentNode.removeChild(this.firstElement);\r\n wrapper.appendChild(this.firstElement);\r\n return this;\r\n };\r\n lgQuery.prototype.addClass = function (classNames) {\r\n if (classNames === void 0) { classNames = ''; }\r\n this._each(function (el) {\r\n // IE doesn't support multiple arguments\r\n classNames.split(' ').forEach(function (className) {\r\n if (className) {\r\n el.classList.add(className);\r\n }\r\n });\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.removeClass = function (classNames) {\r\n this._each(function (el) {\r\n // IE doesn't support multiple arguments\r\n classNames.split(' ').forEach(function (className) {\r\n if (className) {\r\n el.classList.remove(className);\r\n }\r\n });\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.hasClass = function (className) {\r\n if (!this.firstElement) {\r\n return false;\r\n }\r\n return this.firstElement.classList.contains(className);\r\n };\r\n lgQuery.prototype.hasAttribute = function (attribute) {\r\n if (!this.firstElement) {\r\n return false;\r\n }\r\n return this.firstElement.hasAttribute(attribute);\r\n };\r\n lgQuery.prototype.toggleClass = function (className) {\r\n if (!this.firstElement) {\r\n return this;\r\n }\r\n if (this.hasClass(className)) {\r\n this.removeClass(className);\r\n }\r\n else {\r\n this.addClass(className);\r\n }\r\n return this;\r\n };\r\n lgQuery.prototype.css = function (property, value) {\r\n var _this = this;\r\n this._each(function (el) {\r\n _this._setCssVendorPrefix(el, property, value);\r\n });\r\n return this;\r\n };\r\n // Need to pass separate namespaces for separate elements\r\n lgQuery.prototype.on = function (events, listener) {\r\n var _this = this;\r\n if (!this.selector) {\r\n return this;\r\n }\r\n events.split(' ').forEach(function (event) {\r\n if (!Array.isArray(lgQuery.eventListeners[event])) {\r\n lgQuery.eventListeners[event] = [];\r\n }\r\n lgQuery.eventListeners[event].push(listener);\r\n _this.selector.addEventListener(event.split('.')[0], listener);\r\n });\r\n return this;\r\n };\r\n // @todo - test this\r\n lgQuery.prototype.once = function (event, listener) {\r\n var _this = this;\r\n this.on(event, function () {\r\n _this.off(event);\r\n listener(event);\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.off = function (event) {\r\n var _this = this;\r\n if (!this.selector) {\r\n return this;\r\n }\r\n Object.keys(lgQuery.eventListeners).forEach(function (eventName) {\r\n if (_this.isEventMatched(event, eventName)) {\r\n lgQuery.eventListeners[eventName].forEach(function (listener) {\r\n _this.selector.removeEventListener(eventName.split('.')[0], listener);\r\n });\r\n lgQuery.eventListeners[eventName] = [];\r\n }\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.trigger = function (event, detail) {\r\n if (!this.firstElement) {\r\n return this;\r\n }\r\n var customEvent = new CustomEvent(event.split('.')[0], {\r\n detail: detail || null,\r\n });\r\n this.firstElement.dispatchEvent(customEvent);\r\n return this;\r\n };\r\n // Does not support IE\r\n lgQuery.prototype.load = function (url) {\r\n var _this = this;\r\n fetch(url)\r\n .then(function (res) { return res.text(); })\r\n .then(function (html) {\r\n _this.selector.innerHTML = html;\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.html = function (html) {\r\n if (html === undefined) {\r\n if (!this.firstElement) {\r\n return '';\r\n }\r\n return this.firstElement.innerHTML;\r\n }\r\n this._each(function (el) {\r\n el.innerHTML = html;\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.append = function (html) {\r\n this._each(function (el) {\r\n if (typeof html === 'string') {\r\n el.insertAdjacentHTML('beforeend', html);\r\n }\r\n else {\r\n el.appendChild(html);\r\n }\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.prepend = function (html) {\r\n this._each(function (el) {\r\n el.insertAdjacentHTML('afterbegin', html);\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.remove = function () {\r\n this._each(function (el) {\r\n el.parentNode.removeChild(el);\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.empty = function () {\r\n this._each(function (el) {\r\n el.innerHTML = '';\r\n });\r\n return this;\r\n };\r\n lgQuery.prototype.scrollTop = function (scrollTop) {\r\n if (scrollTop !== undefined) {\r\n document.body.scrollTop = scrollTop;\r\n document.documentElement.scrollTop = scrollTop;\r\n return this;\r\n }\r\n else {\r\n return (window.pageYOffset ||\r\n document.documentElement.scrollTop ||\r\n document.body.scrollTop ||\r\n 0);\r\n }\r\n };\r\n lgQuery.prototype.scrollLeft = function (scrollLeft) {\r\n if (scrollLeft !== undefined) {\r\n document.body.scrollLeft = scrollLeft;\r\n document.documentElement.scrollLeft = scrollLeft;\r\n return this;\r\n }\r\n else {\r\n return (window.pageXOffset ||\r\n document.documentElement.scrollLeft ||\r\n document.body.scrollLeft ||\r\n 0);\r\n }\r\n };\r\n lgQuery.prototype.offset = function () {\r\n if (!this.firstElement) {\r\n return {\r\n left: 0,\r\n top: 0,\r\n };\r\n }\r\n var rect = this.firstElement.getBoundingClientRect();\r\n var bodyMarginLeft = $LG('body').style().marginLeft;\r\n // Minus body margin - https://stackoverflow.com/questions/30711548/is-getboundingclientrect-left-returning-a-wrong-value\r\n return {\r\n left: rect.left - parseFloat(bodyMarginLeft) + this.scrollLeft(),\r\n top: rect.top + this.scrollTop(),\r\n };\r\n };\r\n lgQuery.prototype.style = function () {\r\n if (!this.firstElement) {\r\n return {};\r\n }\r\n return (this.firstElement.currentStyle ||\r\n window.getComputedStyle(this.firstElement));\r\n };\r\n // Width without padding and border even if box-sizing is used.\r\n lgQuery.prototype.width = function () {\r\n var style = this.style();\r\n return (this.firstElement.clientWidth -\r\n parseFloat(style.paddingLeft) -\r\n parseFloat(style.paddingRight));\r\n };\r\n // Height without padding and border even if box-sizing is used.\r\n lgQuery.prototype.height = function () {\r\n var style = this.style();\r\n return (this.firstElement.clientHeight -\r\n parseFloat(style.paddingTop) -\r\n parseFloat(style.paddingBottom));\r\n };\r\n lgQuery.eventListeners = {};\r\n return lgQuery;\r\n}());\r\nfunction $LG(selector) {\r\n initLgPolyfills();\r\n return new lgQuery(selector);\r\n}\n\nvar defaultDynamicOptions = [\r\n 'src',\r\n 'sources',\r\n 'subHtml',\r\n 'subHtmlUrl',\r\n 'html',\r\n 'video',\r\n 'poster',\r\n 'slideName',\r\n 'responsive',\r\n 'srcset',\r\n 'sizes',\r\n 'iframe',\r\n 'downloadUrl',\r\n 'download',\r\n 'width',\r\n 'facebookShareUrl',\r\n 'tweetText',\r\n 'iframeTitle',\r\n 'twitterShareUrl',\r\n 'pinterestShareUrl',\r\n 'pinterestText',\r\n 'fbHtml',\r\n 'disqusIdentifier',\r\n 'disqusUrl',\r\n];\r\n// Convert html data-attribute to camalcase\r\nfunction convertToData(attr) {\r\n // FInd a way for lgsize\r\n if (attr === 'href') {\r\n return 'src';\r\n }\r\n attr = attr.replace('data-', '');\r\n attr = attr.charAt(0).toLowerCase() + attr.slice(1);\r\n attr = attr.replace(/-([a-z])/g, function (g) { return g[1].toUpperCase(); });\r\n return attr;\r\n}\r\nvar utils = {\r\n /**\r\n * get possible width and height from the lgSize attribute. Used for ZoomFromOrigin option\r\n */\r\n getSize: function (el, container, spacing, defaultLgSize) {\r\n if (spacing === void 0) { spacing = 0; }\r\n var LGel = $LG(el);\r\n var lgSize = LGel.attr('data-lg-size') || defaultLgSize;\r\n if (!lgSize) {\r\n return;\r\n }\r\n var isResponsiveSizes = lgSize.split(',');\r\n // if at-least two viewport sizes are available\r\n if (isResponsiveSizes[1]) {\r\n var wWidth = window.innerWidth;\r\n for (var i = 0; i < isResponsiveSizes.length; i++) {\r\n var size_1 = isResponsiveSizes[i];\r\n var responsiveWidth = parseInt(size_1.split('-')[2], 10);\r\n if (responsiveWidth > wWidth) {\r\n lgSize = size_1;\r\n break;\r\n }\r\n // take last item as last option\r\n if (i === isResponsiveSizes.length - 1) {\r\n lgSize = size_1;\r\n }\r\n }\r\n }\r\n var size = lgSize.split('-');\r\n var width = parseInt(size[0], 10);\r\n var height = parseInt(size[1], 10);\r\n var cWidth = container.width();\r\n var cHeight = container.height() - spacing;\r\n var maxWidth = Math.min(cWidth, width);\r\n var maxHeight = Math.min(cHeight, height);\r\n var ratio = Math.min(maxWidth / width, maxHeight / height);\r\n return { width: width * ratio, height: height * ratio };\r\n },\r\n /**\r\n * @desc Get transform value based on the imageSize. Used for ZoomFromOrigin option\r\n * @param {jQuery Element}\r\n * @returns {String} Transform CSS string\r\n */\r\n getTransform: function (el, container, top, bottom, imageSize) {\r\n if (!imageSize) {\r\n return;\r\n }\r\n var LGel = $LG(el).find('img').first();\r\n if (!LGel.get()) {\r\n return;\r\n }\r\n var containerRect = container.get().getBoundingClientRect();\r\n var wWidth = containerRect.width;\r\n // using innerWidth to include mobile safari bottom bar\r\n var wHeight = container.height() - (top + bottom);\r\n var elWidth = LGel.width();\r\n var elHeight = LGel.height();\r\n var elStyle = LGel.style();\r\n var x = (wWidth - elWidth) / 2 -\r\n LGel.offset().left +\r\n (parseFloat(elStyle.paddingLeft) || 0) +\r\n (parseFloat(elStyle.borderLeft) || 0) +\r\n $LG(window).scrollLeft() +\r\n containerRect.left;\r\n var y = (wHeight - elHeight) / 2 -\r\n LGel.offset().top +\r\n (parseFloat(elStyle.paddingTop) || 0) +\r\n (parseFloat(elStyle.borderTop) || 0) +\r\n $LG(window).scrollTop() +\r\n top;\r\n var scX = elWidth / imageSize.width;\r\n var scY = elHeight / imageSize.height;\r\n var transform = 'translate3d(' +\r\n (x *= -1) +\r\n 'px, ' +\r\n (y *= -1) +\r\n 'px, 0) scale3d(' +\r\n scX +\r\n ', ' +\r\n scY +\r\n ', 1)';\r\n return transform;\r\n },\r\n getIframeMarkup: function (iframeWidth, iframeHeight, iframeMaxWidth, iframeMaxHeight, src, iframeTitle) {\r\n var title = iframeTitle ? 'title=\"' + iframeTitle + '\"' : '';\r\n return \"
\\n \\n
\";\r\n },\r\n getImgMarkup: function (index, src, altAttr, srcset, sizes, sources) {\r\n var srcsetAttr = srcset ? \"srcset=\\\"\" + srcset + \"\\\"\" : '';\r\n var sizesAttr = sizes ? \"sizes=\\\"\" + sizes + \"\\\"\" : '';\r\n var imgMarkup = \"\";\r\n var sourceTag = '';\r\n if (sources) {\r\n var sourceObj = typeof sources === 'string' ? JSON.parse(sources) : sources;\r\n sourceTag = sourceObj.map(function (source) {\r\n var attrs = '';\r\n Object.keys(source).forEach(function (key) {\r\n // Do not remove the first space as it is required to separate the attributes\r\n attrs += \" \" + key + \"=\\\"\" + source[key] + \"\\\"\";\r\n });\r\n return \"\";\r\n });\r\n }\r\n return \"\" + sourceTag + imgMarkup;\r\n },\r\n // Get src from responsive src\r\n getResponsiveSrc: function (srcItms) {\r\n var rsWidth = [];\r\n var rsSrc = [];\r\n var src = '';\r\n for (var i = 0; i < srcItms.length; i++) {\r\n var _src = srcItms[i].split(' ');\r\n // Manage empty space\r\n if (_src[0] === '') {\r\n _src.splice(0, 1);\r\n }\r\n rsSrc.push(_src[0]);\r\n rsWidth.push(_src[1]);\r\n }\r\n var wWidth = window.innerWidth;\r\n for (var j = 0; j < rsWidth.length; j++) {\r\n if (parseInt(rsWidth[j], 10) > wWidth) {\r\n src = rsSrc[j];\r\n break;\r\n }\r\n }\r\n return src;\r\n },\r\n isImageLoaded: function (img) {\r\n if (!img)\r\n return false;\r\n // During the onload event, IE correctly identifies any images that\r\n // weren’t downloaded as not complete. Others should too. Gecko-based\r\n // browsers act like NS4 in that they report this incorrectly.\r\n if (!img.complete) {\r\n return false;\r\n }\r\n // However, they do have two very useful properties: naturalWidth and\r\n // naturalHeight. These give the true size of the image. If it failed\r\n // to load, either of these should be zero.\r\n if (img.naturalWidth === 0) {\r\n return false;\r\n }\r\n // No other way of checking: assume it’s ok.\r\n return true;\r\n },\r\n getVideoPosterMarkup: function (_poster, dummyImg, videoContStyle, playVideoString, _isVideo) {\r\n var videoClass = '';\r\n if (_isVideo && _isVideo.youtube) {\r\n videoClass = 'lg-has-youtube';\r\n }\r\n else if (_isVideo && _isVideo.vimeo) {\r\n videoClass = 'lg-has-vimeo';\r\n }\r\n else {\r\n videoClass = 'lg-has-html5';\r\n }\r\n return \"
\\n
\\n \\n \" + playVideoString + \"\\n \\n \\n \\n \\n \\n \\n \\n
\\n \" + (dummyImg || '') + \"\\n \\n
\";\r\n },\r\n getFocusableElements: function (container) {\r\n var elements = container.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type=\"text\"]:not([disabled]), input[type=\"radio\"]:not([disabled]), input[type=\"checkbox\"]:not([disabled]), select:not([disabled])');\r\n var visibleElements = [].filter.call(elements, function (element) {\r\n var style = window.getComputedStyle(element);\r\n return style.display !== 'none' && style.visibility !== 'hidden';\r\n });\r\n return visibleElements;\r\n },\r\n /**\r\n * @desc Create dynamic elements array from gallery items when dynamic option is false\r\n * It helps to avoid frequent DOM interaction\r\n * and avoid multiple checks for dynamic elments\r\n *\r\n * @returns {Array} dynamicEl\r\n */\r\n getDynamicOptions: function (items, extraProps, getCaptionFromTitleOrAlt, exThumbImage) {\r\n var dynamicElements = [];\r\n var availableDynamicOptions = __spreadArrays(defaultDynamicOptions, extraProps);\r\n [].forEach.call(items, function (item) {\r\n var dynamicEl = {};\r\n for (var i = 0; i < item.attributes.length; i++) {\r\n var attr = item.attributes[i];\r\n if (attr.specified) {\r\n var dynamicAttr = convertToData(attr.name);\r\n var label = '';\r\n if (availableDynamicOptions.indexOf(dynamicAttr) > -1) {\r\n label = dynamicAttr;\r\n }\r\n if (label) {\r\n dynamicEl[label] = attr.value;\r\n }\r\n }\r\n }\r\n var currentItem = $LG(item);\r\n var alt = currentItem.find('img').first().attr('alt');\r\n var title = currentItem.attr('title');\r\n var thumb = exThumbImage\r\n ? currentItem.attr(exThumbImage)\r\n : currentItem.find('img').first().attr('src');\r\n dynamicEl.thumb = thumb;\r\n if (getCaptionFromTitleOrAlt && !dynamicEl.subHtml) {\r\n dynamicEl.subHtml = title || alt || '';\r\n }\r\n dynamicEl.alt = alt || title || '';\r\n dynamicElements.push(dynamicEl);\r\n });\r\n return dynamicElements;\r\n },\r\n isMobile: function () {\r\n return /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);\r\n },\r\n /**\r\n * @desc Check the given src is video\r\n * @param {String} src\r\n * @return {Object} video type\r\n * Ex:{ youtube : [\"//www.youtube.com/watch?v=c0asJgSyxcY\", \"c0asJgSyxcY\"] }\r\n *\r\n * @todo - this information can be moved to dynamicEl to avoid frequent calls\r\n */\r\n isVideo: function (src, isHTML5VIdeo, index) {\r\n if (!src) {\r\n if (isHTML5VIdeo) {\r\n return {\r\n html5: true,\r\n };\r\n }\r\n else {\r\n console.error('lightGallery :- data-src is not provided on slide item ' +\r\n (index + 1) +\r\n '. Please make sure the selector property is properly configured. More info - https://www.lightgalleryjs.com/demos/html-markup/');\r\n return;\r\n }\r\n }\r\n var youtube = src.match(/\\/\\/(?:www\\.)?youtu(?:\\.be|be\\.com|be-nocookie\\.com)\\/(?:watch\\?v=|embed\\/)?([a-z0-9\\-\\_\\%]+)([\\&|?][\\S]*)*/i);\r\n var vimeo = src.match(/\\/\\/(?:www\\.)?(?:player\\.)?vimeo.com\\/(?:video\\/)?([0-9a-z\\-_]+)(.*)?/i);\r\n var wistia = src.match(/https?:\\/\\/(.+)?(wistia\\.com|wi\\.st)\\/(medias|embed)\\/([0-9a-z\\-_]+)(.*)/);\r\n if (youtube) {\r\n return {\r\n youtube: youtube,\r\n };\r\n }\r\n else if (vimeo) {\r\n return {\r\n vimeo: vimeo,\r\n };\r\n }\r\n else if (wistia) {\r\n return {\r\n wistia: wistia,\r\n };\r\n }\r\n },\r\n};\n\n// @ref - https://stackoverflow.com/questions/3971841/how-to-resize-images-proportionally-keeping-the-aspect-ratio\r\n// @ref - https://2ality.com/2017/04/setting-up-multi-platform-packages.html\r\n// Unique id for each gallery\r\nvar lgId = 0;\r\nvar LightGallery = /** @class */ (function () {\r\n function LightGallery(element, options) {\r\n this.lgOpened = false;\r\n this.index = 0;\r\n // lightGallery modules\r\n this.plugins = [];\r\n // false when lightGallery load first slide content;\r\n this.lGalleryOn = false;\r\n // True when a slide animation is in progress\r\n this.lgBusy = false;\r\n this.currentItemsInDom = [];\r\n // Scroll top value before lightGallery is opened\r\n this.prevScrollTop = 0;\r\n this.bodyPaddingRight = 0;\r\n this.isDummyImageRemoved = false;\r\n this.dragOrSwipeEnabled = false;\r\n this.mediaContainerPosition = {\r\n top: 0,\r\n bottom: 0,\r\n };\r\n if (!element) {\r\n return this;\r\n }\r\n lgId++;\r\n this.lgId = lgId;\r\n this.el = element;\r\n this.LGel = $LG(element);\r\n this.generateSettings(options);\r\n this.buildModules();\r\n // When using dynamic mode, ensure dynamicEl is an array\r\n if (this.settings.dynamic &&\r\n this.settings.dynamicEl !== undefined &&\r\n !Array.isArray(this.settings.dynamicEl)) {\r\n throw 'When using dynamic mode, you must also define dynamicEl as an Array.';\r\n }\r\n this.galleryItems = this.getItems();\r\n this.normalizeSettings();\r\n // Gallery items\r\n this.init();\r\n this.validateLicense();\r\n return this;\r\n }\r\n LightGallery.prototype.generateSettings = function (options) {\r\n // lightGallery settings\r\n this.settings = __assign(__assign({}, lightGalleryCoreSettings), options);\r\n if (this.settings.isMobile &&\r\n typeof this.settings.isMobile === 'function'\r\n ? this.settings.isMobile()\r\n : utils.isMobile()) {\r\n var mobileSettings = __assign(__assign({}, this.settings.mobileSettings), this.settings.mobileSettings);\r\n this.settings = __assign(__assign({}, this.settings), mobileSettings);\r\n }\r\n };\r\n LightGallery.prototype.normalizeSettings = function () {\r\n if (this.settings.slideEndAnimation) {\r\n this.settings.hideControlOnEnd = false;\r\n }\r\n if (!this.settings.closable) {\r\n this.settings.swipeToClose = false;\r\n }\r\n // And reset it on close to get the correct value next time\r\n this.zoomFromOrigin = this.settings.zoomFromOrigin;\r\n // At the moment, Zoom from image doesn't support dynamic options\r\n // @todo add zoomFromOrigin support for dynamic images\r\n if (this.settings.dynamic) {\r\n this.zoomFromOrigin = false;\r\n }\r\n if (!this.settings.container) {\r\n this.settings.container = document.body;\r\n }\r\n // settings.preload should not be grater than $item.length\r\n this.settings.preload = Math.min(this.settings.preload, this.galleryItems.length);\r\n };\r\n LightGallery.prototype.init = function () {\r\n var _this = this;\r\n this.addSlideVideoInfo(this.galleryItems);\r\n this.buildStructure();\r\n this.LGel.trigger(lGEvents.init, {\r\n instance: this,\r\n });\r\n if (this.settings.keyPress) {\r\n this.keyPress();\r\n }\r\n setTimeout(function () {\r\n _this.enableDrag();\r\n _this.enableSwipe();\r\n _this.triggerPosterClick();\r\n }, 50);\r\n this.arrow();\r\n if (this.settings.mousewheel) {\r\n this.mousewheel();\r\n }\r\n if (!this.settings.dynamic) {\r\n this.openGalleryOnItemClick();\r\n }\r\n };\r\n LightGallery.prototype.openGalleryOnItemClick = function () {\r\n var _this = this;\r\n var _loop_1 = function (index) {\r\n var element = this_1.items[index];\r\n var $element = $LG(element);\r\n // Using different namespace for click because click event should not unbind if selector is same object('this')\r\n // @todo manage all event listners - should have namespace that represent element\r\n var uuid = lgQuery.generateUUID();\r\n $element\r\n .attr('data-lg-id', uuid)\r\n .on(\"click.lgcustom-item-\" + uuid, function (e) {\r\n e.preventDefault();\r\n var currentItemIndex = _this.settings.index || index;\r\n _this.openGallery(currentItemIndex, element);\r\n });\r\n };\r\n var this_1 = this;\r\n // Using for loop instead of using bubbling as the items can be any html element.\r\n for (var index = 0; index < this.items.length; index++) {\r\n _loop_1(index);\r\n }\r\n };\r\n /**\r\n * Module constructor\r\n * Modules are build incrementally.\r\n * Gallery should be opened only once all the modules are initialized.\r\n * use moduleBuildTimeout to make sure this\r\n */\r\n LightGallery.prototype.buildModules = function () {\r\n var _this = this;\r\n this.settings.plugins.forEach(function (plugin) {\r\n _this.plugins.push(new plugin(_this, $LG));\r\n });\r\n };\r\n LightGallery.prototype.validateLicense = function () {\r\n if (!this.settings.licenseKey) {\r\n console.error('Please provide a valid license key');\r\n }\r\n else if (this.settings.licenseKey === '0000-0000-000-0000') {\r\n console.warn(\"lightGallery: \" + this.settings.licenseKey + \" license key is not valid for production use\");\r\n }\r\n };\r\n LightGallery.prototype.getSlideItem = function (index) {\r\n return $LG(this.getSlideItemId(index));\r\n };\r\n LightGallery.prototype.getSlideItemId = function (index) {\r\n return \"#lg-item-\" + this.lgId + \"-\" + index;\r\n };\r\n LightGallery.prototype.getIdName = function (id) {\r\n return id + \"-\" + this.lgId;\r\n };\r\n LightGallery.prototype.getElementById = function (id) {\r\n return $LG(\"#\" + this.getIdName(id));\r\n };\r\n LightGallery.prototype.manageSingleSlideClassName = function () {\r\n if (this.galleryItems.length < 2) {\r\n this.outer.addClass('lg-single-item');\r\n }\r\n else {\r\n this.outer.removeClass('lg-single-item');\r\n }\r\n };\r\n LightGallery.prototype.buildStructure = function () {\r\n var _this = this;\r\n var container = this.$container && this.$container.get();\r\n if (container) {\r\n return;\r\n }\r\n var controls = '';\r\n var subHtmlCont = '';\r\n // Create controls\r\n if (this.settings.controls) {\r\n controls = \"\\n \";\r\n }\r\n if (this.settings.appendSubHtmlTo !== '.lg-item') {\r\n subHtmlCont =\r\n '
';\r\n }\r\n var addClasses = '';\r\n if (this.settings.allowMediaOverlap) {\r\n // Do not remove space before last single quote\r\n addClasses += 'lg-media-overlap ';\r\n }\r\n var ariaLabelledby = this.settings.ariaLabelledby\r\n ? 'aria-labelledby=\"' + this.settings.ariaLabelledby + '\"'\r\n : '';\r\n var ariaDescribedby = this.settings.ariaDescribedby\r\n ? 'aria-describedby=\"' + this.settings.ariaDescribedby + '\"'\r\n : '';\r\n var containerClassName = \"lg-container \" + this.settings.addClass + \" \" + (document.body !== this.settings.container ? 'lg-inline' : '');\r\n var closeIcon = this.settings.closable && this.settings.showCloseIcon\r\n ? \"\"\r\n : '';\r\n var maximizeIcon = this.settings.showMaximizeIcon\r\n ? \"\"\r\n : '';\r\n var template = \"\\n
\\n
\\n\\n
\\n\\n
\\n
\\n
\\n \" + controls + \"\\n
\\n
\\n \" + maximizeIcon + \"\\n \" + closeIcon + \"\\n
\\n \" + (this.settings.appendSubHtmlTo === '.lg-outer'\r\n ? subHtmlCont\r\n : '') + \"\\n
\\n \" + (this.settings.appendSubHtmlTo === '.lg-sub-html'\r\n ? subHtmlCont\r\n : '') + \"\\n
\\n
\\n
\\n \";\r\n $LG(this.settings.container).append(template);\r\n if (document.body !== this.settings.container) {\r\n $LG(this.settings.container).css('position', 'relative');\r\n }\r\n this.outer = this.getElementById('lg-outer');\r\n this.$lgComponents = this.getElementById('lg-components');\r\n this.$backdrop = this.getElementById('lg-backdrop');\r\n this.$container = this.getElementById('lg-container');\r\n this.$inner = this.getElementById('lg-inner');\r\n this.$content = this.getElementById('lg-content');\r\n this.$toolbar = this.getElementById('lg-toolbar');\r\n this.$backdrop.css('transition-duration', this.settings.backdropDuration + 'ms');\r\n var outerClassNames = this.settings.mode + \" \";\r\n this.manageSingleSlideClassName();\r\n if (this.settings.enableDrag) {\r\n outerClassNames += 'lg-grab ';\r\n }\r\n this.outer.addClass(outerClassNames);\r\n this.$inner.css('transition-timing-function', this.settings.easing);\r\n this.$inner.css('transition-duration', this.settings.speed + 'ms');\r\n if (this.settings.download) {\r\n this.$toolbar.append(\"\");\r\n }\r\n this.counter();\r\n $LG(window).on(\"resize.lg.global\" + this.lgId + \" orientationchange.lg.global\" + this.lgId, function () {\r\n _this.refreshOnResize();\r\n });\r\n this.hideBars();\r\n this.manageCloseGallery();\r\n this.toggleMaximize();\r\n this.initModules();\r\n };\r\n LightGallery.prototype.refreshOnResize = function () {\r\n if (this.lgOpened) {\r\n var currentGalleryItem = this.galleryItems[this.index];\r\n var __slideVideoInfo = currentGalleryItem.__slideVideoInfo;\r\n this.mediaContainerPosition = this.getMediaContainerPosition();\r\n var _a = this.mediaContainerPosition, top_1 = _a.top, bottom = _a.bottom;\r\n this.currentImageSize = utils.getSize(this.items[this.index], this.outer, top_1 + bottom, __slideVideoInfo && this.settings.videoMaxSize);\r\n if (__slideVideoInfo) {\r\n this.resizeVideoSlide(this.index, this.currentImageSize);\r\n }\r\n if (this.zoomFromOrigin && !this.isDummyImageRemoved) {\r\n var imgStyle = this.getDummyImgStyles(this.currentImageSize);\r\n this.outer\r\n .find('.lg-current .lg-dummy-img')\r\n .first()\r\n .attr('style', imgStyle);\r\n }\r\n this.LGel.trigger(lGEvents.containerResize);\r\n }\r\n };\r\n LightGallery.prototype.resizeVideoSlide = function (index, imageSize) {\r\n var lgVideoStyle = this.getVideoContStyle(imageSize);\r\n var currentSlide = this.getSlideItem(index);\r\n currentSlide.find('.lg-video-cont').attr('style', lgVideoStyle);\r\n };\r\n /**\r\n * Update slides dynamically.\r\n * Add, edit or delete slides dynamically when lightGallery is opened.\r\n * Modify the current gallery items and pass it via updateSlides method\r\n * @note\r\n * - Do not mutate existing lightGallery items directly.\r\n * - Always pass new list of gallery items\r\n * - You need to take care of thumbnails outside the gallery if any\r\n * - user this method only if you want to update slides when the gallery is opened. Otherwise, use `refresh()` method.\r\n * @param items Gallery items\r\n * @param index After the update operation, which slide gallery should navigate to\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery();\r\n *\r\n * // Adding slides dynamically\r\n * let galleryItems = [\r\n * // Access existing lightGallery items\r\n * // galleryItems are automatically generated internally from the gallery HTML markup\r\n * // or directly from galleryItems when dynamic gallery is used\r\n * ...plugin.galleryItems,\r\n * ...[\r\n * {\r\n * src: 'img/img-1.png',\r\n * thumb: 'img/thumb1.png',\r\n * },\r\n * ],\r\n * ];\r\n * plugin.updateSlides(\r\n * galleryItems,\r\n * plugin.index,\r\n * );\r\n *\r\n *\r\n * // Remove slides dynamically\r\n * galleryItems = JSON.parse(\r\n * JSON.stringify(updateSlideInstance.galleryItems),\r\n * );\r\n * galleryItems.shift();\r\n * updateSlideInstance.updateSlides(galleryItems, 1);\r\n * @see Demo\r\n */\r\n LightGallery.prototype.updateSlides = function (items, index) {\r\n if (this.index > items.length - 1) {\r\n this.index = items.length - 1;\r\n }\r\n if (items.length === 1) {\r\n this.index = 0;\r\n }\r\n if (!items.length) {\r\n this.closeGallery();\r\n return;\r\n }\r\n var currentSrc = this.galleryItems[index].src;\r\n this.galleryItems = items;\r\n this.updateControls();\r\n this.$inner.empty();\r\n this.currentItemsInDom = [];\r\n var _index = 0;\r\n // Find the current index based on source value of the slide\r\n this.galleryItems.some(function (galleryItem, itemIndex) {\r\n if (galleryItem.src === currentSrc) {\r\n _index = itemIndex;\r\n return true;\r\n }\r\n return false;\r\n });\r\n this.currentItemsInDom = this.organizeSlideItems(_index, -1);\r\n this.loadContent(_index, true);\r\n this.getSlideItem(_index).addClass('lg-current');\r\n this.index = _index;\r\n this.updateCurrentCounter(_index);\r\n this.LGel.trigger(lGEvents.updateSlides);\r\n };\r\n // Get gallery items based on multiple conditions\r\n LightGallery.prototype.getItems = function () {\r\n // Gallery items\r\n this.items = [];\r\n if (!this.settings.dynamic) {\r\n if (this.settings.selector === 'this') {\r\n this.items.push(this.el);\r\n }\r\n else if (this.settings.selector) {\r\n if (typeof this.settings.selector === 'string') {\r\n if (this.settings.selectWithin) {\r\n var selectWithin = $LG(this.settings.selectWithin);\r\n this.items = selectWithin\r\n .find(this.settings.selector)\r\n .get();\r\n }\r\n else {\r\n this.items = this.el.querySelectorAll(this.settings.selector);\r\n }\r\n }\r\n else {\r\n this.items = this.settings.selector;\r\n }\r\n }\r\n else {\r\n this.items = this.el.children;\r\n }\r\n return utils.getDynamicOptions(this.items, this.settings.extraProps, this.settings.getCaptionFromTitleOrAlt, this.settings.exThumbImage);\r\n }\r\n else {\r\n return this.settings.dynamicEl || [];\r\n }\r\n };\r\n LightGallery.prototype.shouldHideScrollbar = function () {\r\n return (this.settings.hideScrollbar &&\r\n document.body === this.settings.container);\r\n };\r\n LightGallery.prototype.hideScrollbar = function () {\r\n if (!this.shouldHideScrollbar()) {\r\n return;\r\n }\r\n this.bodyPaddingRight = parseFloat($LG('body').style().paddingRight);\r\n var bodyRect = document.documentElement.getBoundingClientRect();\r\n var scrollbarWidth = window.innerWidth - bodyRect.width;\r\n $LG(document.body).css('padding-right', scrollbarWidth + this.bodyPaddingRight + 'px');\r\n $LG(document.body).addClass('lg-overlay-open');\r\n };\r\n LightGallery.prototype.resetScrollBar = function () {\r\n if (!this.shouldHideScrollbar()) {\r\n return;\r\n }\r\n $LG(document.body).css('padding-right', this.bodyPaddingRight + 'px');\r\n $LG(document.body).removeClass('lg-overlay-open');\r\n };\r\n /**\r\n * Open lightGallery.\r\n * Open gallery with specific slide by passing index of the slide as parameter.\r\n * @category lGPublicMethods\r\n * @param {Number} index - index of the slide\r\n * @param {HTMLElement} element - Which image lightGallery should zoom from\r\n *\r\n * @example\r\n * const $dynamicGallery = document.getElementById('dynamic-gallery-demo');\r\n * const dynamicGallery = lightGallery($dynamicGallery, {\r\n * dynamic: true,\r\n * dynamicEl: [\r\n * {\r\n * src: 'img/1.jpg',\r\n * thumb: 'img/thumb-1.jpg',\r\n * subHtml: '

Image 1 title

Image 1 descriptions.

',\r\n * },\r\n * ...\r\n * ],\r\n * });\r\n * $dynamicGallery.addEventListener('click', function () {\r\n * // Starts with third item.(Optional).\r\n * // This is useful if you want use dynamic mode with\r\n * // custom thumbnails (thumbnails outside gallery),\r\n * dynamicGallery.openGallery(2);\r\n * });\r\n *\r\n */\r\n LightGallery.prototype.openGallery = function (index, element) {\r\n var _this = this;\r\n if (index === void 0) { index = this.settings.index; }\r\n // prevent accidental double execution\r\n if (this.lgOpened)\r\n return;\r\n this.lgOpened = true;\r\n this.outer.removeClass('lg-hide-items');\r\n this.hideScrollbar();\r\n // Add display block, but still has opacity 0\r\n this.$container.addClass('lg-show');\r\n var itemsToBeInsertedToDom = this.getItemsToBeInsertedToDom(index, index);\r\n this.currentItemsInDom = itemsToBeInsertedToDom;\r\n var items = '';\r\n itemsToBeInsertedToDom.forEach(function (item) {\r\n items = items + (\"
\");\r\n });\r\n this.$inner.append(items);\r\n this.addHtml(index);\r\n var transform = '';\r\n this.mediaContainerPosition = this.getMediaContainerPosition();\r\n var _a = this.mediaContainerPosition, top = _a.top, bottom = _a.bottom;\r\n if (!this.settings.allowMediaOverlap) {\r\n this.setMediaContainerPosition(top, bottom);\r\n }\r\n var __slideVideoInfo = this.galleryItems[index].__slideVideoInfo;\r\n if (this.zoomFromOrigin && element) {\r\n this.currentImageSize = utils.getSize(element, this.outer, top + bottom, __slideVideoInfo && this.settings.videoMaxSize);\r\n transform = utils.getTransform(element, this.outer, top, bottom, this.currentImageSize);\r\n }\r\n if (!this.zoomFromOrigin || !transform) {\r\n this.outer.addClass(this.settings.startClass);\r\n this.getSlideItem(index).removeClass('lg-complete');\r\n }\r\n var timeout = this.settings.zoomFromOrigin\r\n ? 100\r\n : this.settings.backdropDuration;\r\n setTimeout(function () {\r\n _this.outer.addClass('lg-components-open');\r\n }, timeout);\r\n this.index = index;\r\n this.LGel.trigger(lGEvents.beforeOpen);\r\n // add class lg-current to remove initial transition\r\n this.getSlideItem(index).addClass('lg-current');\r\n this.lGalleryOn = false;\r\n // Store the current scroll top value to scroll back after closing the gallery..\r\n this.prevScrollTop = $LG(window).scrollTop();\r\n setTimeout(function () {\r\n // Need to check both zoomFromOrigin and transform values as we need to set set the\r\n // default opening animation if user missed to add the lg-size attribute\r\n if (_this.zoomFromOrigin && transform) {\r\n var currentSlide_1 = _this.getSlideItem(index);\r\n currentSlide_1.css('transform', transform);\r\n setTimeout(function () {\r\n currentSlide_1\r\n .addClass('lg-start-progress lg-start-end-progress')\r\n .css('transition-duration', _this.settings.startAnimationDuration + 'ms');\r\n _this.outer.addClass('lg-zoom-from-image');\r\n });\r\n setTimeout(function () {\r\n currentSlide_1.css('transform', 'translate3d(0, 0, 0)');\r\n }, 100);\r\n }\r\n setTimeout(function () {\r\n _this.$backdrop.addClass('in');\r\n _this.$container.addClass('lg-show-in');\r\n }, 10);\r\n setTimeout(function () {\r\n if (_this.settings.trapFocus &&\r\n document.body === _this.settings.container) {\r\n _this.trapFocus();\r\n }\r\n }, _this.settings.backdropDuration + 50);\r\n // lg-visible class resets gallery opacity to 1\r\n if (!_this.zoomFromOrigin || !transform) {\r\n setTimeout(function () {\r\n _this.outer.addClass('lg-visible');\r\n }, _this.settings.backdropDuration);\r\n }\r\n // initiate slide function\r\n _this.slide(index, false, false, false);\r\n _this.LGel.trigger(lGEvents.afterOpen);\r\n });\r\n if (document.body === this.settings.container) {\r\n $LG('html').addClass('lg-on');\r\n }\r\n };\r\n /**\r\n * Note - Changing the position of the media on every slide transition creates a flickering effect.\r\n * Therefore, The height of the caption is calculated dynamically, only once based on the first slide caption.\r\n * if you have dynamic captions for each media,\r\n * you can provide an appropriate height for the captions via allowMediaOverlap option\r\n */\r\n LightGallery.prototype.getMediaContainerPosition = function () {\r\n if (this.settings.allowMediaOverlap) {\r\n return {\r\n top: 0,\r\n bottom: 0,\r\n };\r\n }\r\n var top = this.$toolbar.get().clientHeight || 0;\r\n var subHtml = this.outer.find('.lg-components .lg-sub-html').get();\r\n var captionHeight = this.settings.defaultCaptionHeight ||\r\n (subHtml && subHtml.clientHeight) ||\r\n 0;\r\n var thumbContainer = this.outer.find('.lg-thumb-outer').get();\r\n var thumbHeight = thumbContainer ? thumbContainer.clientHeight : 0;\r\n var bottom = thumbHeight + captionHeight;\r\n return {\r\n top: top,\r\n bottom: bottom,\r\n };\r\n };\r\n LightGallery.prototype.setMediaContainerPosition = function (top, bottom) {\r\n if (top === void 0) { top = 0; }\r\n if (bottom === void 0) { bottom = 0; }\r\n this.$content.css('top', top + 'px').css('bottom', bottom + 'px');\r\n };\r\n LightGallery.prototype.hideBars = function () {\r\n var _this = this;\r\n // Hide controllers if mouse doesn't move for some period\r\n setTimeout(function () {\r\n _this.outer.removeClass('lg-hide-items');\r\n if (_this.settings.hideBarsDelay > 0) {\r\n _this.outer.on('mousemove.lg click.lg touchstart.lg', function () {\r\n _this.outer.removeClass('lg-hide-items');\r\n clearTimeout(_this.hideBarTimeout);\r\n // Timeout will be cleared on each slide movement also\r\n _this.hideBarTimeout = setTimeout(function () {\r\n _this.outer.addClass('lg-hide-items');\r\n }, _this.settings.hideBarsDelay);\r\n });\r\n _this.outer.trigger('mousemove.lg');\r\n }\r\n }, this.settings.showBarsAfter);\r\n };\r\n LightGallery.prototype.initPictureFill = function ($img) {\r\n if (this.settings.supportLegacyBrowser) {\r\n try {\r\n picturefill({\r\n elements: [$img.get()],\r\n });\r\n }\r\n catch (e) {\r\n console.warn('lightGallery :- If you want srcset or picture tag to be supported for older browser please include picturefil javascript library in your document.');\r\n }\r\n }\r\n };\r\n /**\r\n * @desc Create image counter\r\n * Ex: 1/10\r\n */\r\n LightGallery.prototype.counter = function () {\r\n if (this.settings.counter) {\r\n var counterHtml = \"
\\n \" + (this.index + 1) + \" /\\n \" + this.galleryItems.length + \"
\";\r\n this.outer.find(this.settings.appendCounterTo).append(counterHtml);\r\n }\r\n };\r\n /**\r\n * @desc add sub-html into the slide\r\n * @param {Number} index - index of the slide\r\n */\r\n LightGallery.prototype.addHtml = function (index) {\r\n var subHtml;\r\n var subHtmlUrl;\r\n if (this.galleryItems[index].subHtmlUrl) {\r\n subHtmlUrl = this.galleryItems[index].subHtmlUrl;\r\n }\r\n else {\r\n subHtml = this.galleryItems[index].subHtml;\r\n }\r\n if (!subHtmlUrl) {\r\n if (subHtml) {\r\n // get first letter of sub-html\r\n // if first letter starts with . or # get the html form the jQuery object\r\n var fL = subHtml.substring(0, 1);\r\n if (fL === '.' || fL === '#') {\r\n if (this.settings.subHtmlSelectorRelative &&\r\n !this.settings.dynamic) {\r\n subHtml = $LG(this.items)\r\n .eq(index)\r\n .find(subHtml)\r\n .first()\r\n .html();\r\n }\r\n else {\r\n subHtml = $LG(subHtml).first().html();\r\n }\r\n }\r\n }\r\n else {\r\n subHtml = '';\r\n }\r\n }\r\n if (this.settings.appendSubHtmlTo !== '.lg-item') {\r\n if (subHtmlUrl) {\r\n this.outer.find('.lg-sub-html').load(subHtmlUrl);\r\n }\r\n else {\r\n this.outer.find('.lg-sub-html').html(subHtml);\r\n }\r\n }\r\n else {\r\n var currentSlide = $LG(this.getSlideItemId(index));\r\n if (subHtmlUrl) {\r\n currentSlide.load(subHtmlUrl);\r\n }\r\n else {\r\n currentSlide.append(\"
\" + subHtml + \"
\");\r\n }\r\n }\r\n // Add lg-empty-html class if title doesn't exist\r\n if (typeof subHtml !== 'undefined' && subHtml !== null) {\r\n if (subHtml === '') {\r\n this.outer\r\n .find(this.settings.appendSubHtmlTo)\r\n .addClass('lg-empty-html');\r\n }\r\n else {\r\n this.outer\r\n .find(this.settings.appendSubHtmlTo)\r\n .removeClass('lg-empty-html');\r\n }\r\n }\r\n this.LGel.trigger(lGEvents.afterAppendSubHtml, {\r\n index: index,\r\n });\r\n };\r\n /**\r\n * @desc Preload slides\r\n * @param {Number} index - index of the slide\r\n * @todo preload not working for the first slide, Also, should work for the first and last slide as well\r\n */\r\n LightGallery.prototype.preload = function (index) {\r\n for (var i = 1; i <= this.settings.preload; i++) {\r\n if (i >= this.galleryItems.length - index) {\r\n break;\r\n }\r\n this.loadContent(index + i, false);\r\n }\r\n for (var j = 1; j <= this.settings.preload; j++) {\r\n if (index - j < 0) {\r\n break;\r\n }\r\n this.loadContent(index - j, false);\r\n }\r\n };\r\n LightGallery.prototype.getDummyImgStyles = function (imageSize) {\r\n if (!imageSize)\r\n return '';\r\n return \"width:\" + imageSize.width + \"px;\\n margin-left: -\" + imageSize.width / 2 + \"px;\\n margin-top: -\" + imageSize.height / 2 + \"px;\\n height:\" + imageSize.height + \"px\";\r\n };\r\n LightGallery.prototype.getVideoContStyle = function (imageSize) {\r\n if (!imageSize)\r\n return '';\r\n return \"width:\" + imageSize.width + \"px;\\n height:\" + imageSize.height + \"px\";\r\n };\r\n LightGallery.prototype.getDummyImageContent = function ($currentSlide, index, alt) {\r\n var $currentItem;\r\n if (!this.settings.dynamic) {\r\n $currentItem = $LG(this.items).eq(index);\r\n }\r\n if ($currentItem) {\r\n var _dummyImgSrc = void 0;\r\n if (!this.settings.exThumbImage) {\r\n _dummyImgSrc = $currentItem.find('img').first().attr('src');\r\n }\r\n else {\r\n _dummyImgSrc = $currentItem.attr(this.settings.exThumbImage);\r\n }\r\n if (!_dummyImgSrc)\r\n return '';\r\n var imgStyle = this.getDummyImgStyles(this.currentImageSize);\r\n var dummyImgContent = \"\";\r\n $currentSlide.addClass('lg-first-slide');\r\n this.outer.addClass('lg-first-slide-loading');\r\n return dummyImgContent;\r\n }\r\n return '';\r\n };\r\n LightGallery.prototype.setImgMarkup = function (src, $currentSlide, index) {\r\n var currentGalleryItem = this.galleryItems[index];\r\n var alt = currentGalleryItem.alt, srcset = currentGalleryItem.srcset, sizes = currentGalleryItem.sizes, sources = currentGalleryItem.sources;\r\n // Use the thumbnail as dummy image which will be resized to actual image size and\r\n // displayed on top of actual image\r\n var imgContent = '';\r\n var altAttr = alt ? 'alt=\"' + alt + '\"' : '';\r\n if (this.isFirstSlideWithZoomAnimation()) {\r\n imgContent = this.getDummyImageContent($currentSlide, index, altAttr);\r\n }\r\n else {\r\n imgContent = utils.getImgMarkup(index, src, altAttr, srcset, sizes, sources);\r\n }\r\n var imgMarkup = \" \" + imgContent + \"\";\r\n $currentSlide.prepend(imgMarkup);\r\n };\r\n LightGallery.prototype.onSlideObjectLoad = function ($slide, isHTML5VideoWithoutPoster, onLoad, onError) {\r\n var mediaObject = $slide.find('.lg-object').first();\r\n if (utils.isImageLoaded(mediaObject.get()) ||\r\n isHTML5VideoWithoutPoster) {\r\n onLoad();\r\n }\r\n else {\r\n mediaObject.on('load.lg error.lg', function () {\r\n onLoad && onLoad();\r\n });\r\n mediaObject.on('error.lg', function () {\r\n onError && onError();\r\n });\r\n }\r\n };\r\n /**\r\n *\r\n * @param $el Current slide item\r\n * @param index\r\n * @param delay Delay is 0 except first time\r\n * @param speed Speed is same as delay, except it is 0 if gallery is opened via hash plugin\r\n * @param isFirstSlide\r\n */\r\n LightGallery.prototype.onLgObjectLoad = function (currentSlide, index, delay, speed, isFirstSlide, isHTML5VideoWithoutPoster) {\r\n var _this = this;\r\n this.onSlideObjectLoad(currentSlide, isHTML5VideoWithoutPoster, function () {\r\n _this.triggerSlideItemLoad(currentSlide, index, delay, speed, isFirstSlide);\r\n }, function () {\r\n currentSlide.addClass('lg-complete lg-complete_');\r\n currentSlide.html('' +\r\n _this.settings.strings['mediaLoadingFailed'] +\r\n '');\r\n });\r\n };\r\n LightGallery.prototype.triggerSlideItemLoad = function ($currentSlide, index, delay, speed, isFirstSlide) {\r\n var _this = this;\r\n var currentGalleryItem = this.galleryItems[index];\r\n // Adding delay for video slides without poster for better performance and user experience\r\n // Videos should start playing once once the gallery is completely loaded\r\n var _speed = isFirstSlide &&\r\n this.getSlideType(currentGalleryItem) === 'video' &&\r\n !currentGalleryItem.poster\r\n ? speed\r\n : 0;\r\n setTimeout(function () {\r\n $currentSlide.addClass('lg-complete lg-complete_');\r\n _this.LGel.trigger(lGEvents.slideItemLoad, {\r\n index: index,\r\n delay: delay || 0,\r\n isFirstSlide: isFirstSlide,\r\n });\r\n }, _speed);\r\n };\r\n LightGallery.prototype.isFirstSlideWithZoomAnimation = function () {\r\n return !!(!this.lGalleryOn &&\r\n this.zoomFromOrigin &&\r\n this.currentImageSize);\r\n };\r\n // Add video slideInfo\r\n LightGallery.prototype.addSlideVideoInfo = function (items) {\r\n var _this = this;\r\n items.forEach(function (element, index) {\r\n element.__slideVideoInfo = utils.isVideo(element.src, !!element.video, index);\r\n if (element.__slideVideoInfo &&\r\n _this.settings.loadYouTubePoster &&\r\n !element.poster &&\r\n element.__slideVideoInfo.youtube) {\r\n element.poster = \"//img.youtube.com/vi/\" + element.__slideVideoInfo.youtube[1] + \"/maxresdefault.jpg\";\r\n }\r\n });\r\n };\r\n /**\r\n * Load slide content into slide.\r\n * This is used to load content into slides that is not visible too\r\n * @param {Number} index - index of the slide.\r\n * @param {Boolean} rec - if true call loadcontent() function again.\r\n */\r\n LightGallery.prototype.loadContent = function (index, rec) {\r\n var _this = this;\r\n var currentGalleryItem = this.galleryItems[index];\r\n var $currentSlide = $LG(this.getSlideItemId(index));\r\n var poster = currentGalleryItem.poster, srcset = currentGalleryItem.srcset, sizes = currentGalleryItem.sizes, sources = currentGalleryItem.sources;\r\n var src = currentGalleryItem.src;\r\n var video = currentGalleryItem.video;\r\n var _html5Video = video && typeof video === 'string' ? JSON.parse(video) : video;\r\n if (currentGalleryItem.responsive) {\r\n var srcDyItms = currentGalleryItem.responsive.split(',');\r\n src = utils.getResponsiveSrc(srcDyItms) || src;\r\n }\r\n var videoInfo = currentGalleryItem.__slideVideoInfo;\r\n var lgVideoStyle = '';\r\n var iframe = !!currentGalleryItem.iframe;\r\n var isFirstSlide = !this.lGalleryOn;\r\n // delay for adding complete class. it is 0 except first time.\r\n var delay = 0;\r\n if (isFirstSlide) {\r\n if (this.zoomFromOrigin && this.currentImageSize) {\r\n delay = this.settings.startAnimationDuration + 10;\r\n }\r\n else {\r\n delay = this.settings.backdropDuration + 10;\r\n }\r\n }\r\n if (!$currentSlide.hasClass('lg-loaded')) {\r\n if (videoInfo) {\r\n var _a = this.mediaContainerPosition, top_2 = _a.top, bottom = _a.bottom;\r\n var videoSize = utils.getSize(this.items[index], this.outer, top_2 + bottom, videoInfo && this.settings.videoMaxSize);\r\n lgVideoStyle = this.getVideoContStyle(videoSize);\r\n }\r\n if (iframe) {\r\n var markup = utils.getIframeMarkup(this.settings.iframeWidth, this.settings.iframeHeight, this.settings.iframeMaxWidth, this.settings.iframeMaxHeight, src, currentGalleryItem.iframeTitle);\r\n $currentSlide.prepend(markup);\r\n }\r\n else if (poster) {\r\n var dummyImg = '';\r\n var hasStartAnimation = isFirstSlide &&\r\n this.zoomFromOrigin &&\r\n this.currentImageSize;\r\n if (hasStartAnimation) {\r\n dummyImg = this.getDummyImageContent($currentSlide, index, '');\r\n }\r\n var markup = utils.getVideoPosterMarkup(poster, dummyImg || '', lgVideoStyle, this.settings.strings['playVideo'], videoInfo);\r\n $currentSlide.prepend(markup);\r\n }\r\n else if (videoInfo) {\r\n var markup = \"
\";\r\n $currentSlide.prepend(markup);\r\n }\r\n else {\r\n this.setImgMarkup(src, $currentSlide, index);\r\n if (srcset || sources) {\r\n var $img = $currentSlide.find('.lg-object');\r\n this.initPictureFill($img);\r\n }\r\n }\r\n if (poster || videoInfo) {\r\n this.LGel.trigger(lGEvents.hasVideo, {\r\n index: index,\r\n src: src,\r\n html5Video: _html5Video,\r\n hasPoster: !!poster,\r\n });\r\n }\r\n this.LGel.trigger(lGEvents.afterAppendSlide, { index: index });\r\n if (this.lGalleryOn &&\r\n this.settings.appendSubHtmlTo === '.lg-item') {\r\n this.addHtml(index);\r\n }\r\n }\r\n // For first time add some delay for displaying the start animation.\r\n var _speed = 0;\r\n // Do not change the delay value because it is required for zoom plugin.\r\n // If gallery opened from direct url (hash) speed value should be 0\r\n if (delay && !$LG(document.body).hasClass('lg-from-hash')) {\r\n _speed = delay;\r\n }\r\n // Only for first slide and zoomFromOrigin is enabled\r\n if (this.isFirstSlideWithZoomAnimation()) {\r\n setTimeout(function () {\r\n $currentSlide\r\n .removeClass('lg-start-end-progress lg-start-progress')\r\n .removeAttr('style');\r\n }, this.settings.startAnimationDuration + 100);\r\n if (!$currentSlide.hasClass('lg-loaded')) {\r\n setTimeout(function () {\r\n if (_this.getSlideType(currentGalleryItem) === 'image') {\r\n var alt = currentGalleryItem.alt;\r\n var altAttr = alt ? 'alt=\"' + alt + '\"' : '';\r\n $currentSlide\r\n .find('.lg-img-wrap')\r\n .append(utils.getImgMarkup(index, src, altAttr, srcset, sizes, currentGalleryItem.sources));\r\n if (srcset || sources) {\r\n var $img = $currentSlide.find('.lg-object');\r\n _this.initPictureFill($img);\r\n }\r\n }\r\n if (_this.getSlideType(currentGalleryItem) === 'image' ||\r\n (_this.getSlideType(currentGalleryItem) === 'video' &&\r\n poster)) {\r\n _this.onLgObjectLoad($currentSlide, index, delay, _speed, true, false);\r\n // load remaining slides once the slide is completely loaded\r\n _this.onSlideObjectLoad($currentSlide, !!(videoInfo && videoInfo.html5 && !poster), function () {\r\n _this.loadContentOnFirstSlideLoad(index, $currentSlide, _speed);\r\n }, function () {\r\n _this.loadContentOnFirstSlideLoad(index, $currentSlide, _speed);\r\n });\r\n }\r\n }, this.settings.startAnimationDuration + 100);\r\n }\r\n }\r\n // SLide content has been added to dom\r\n $currentSlide.addClass('lg-loaded');\r\n if (!this.isFirstSlideWithZoomAnimation() ||\r\n (this.getSlideType(currentGalleryItem) === 'video' && !poster)) {\r\n this.onLgObjectLoad($currentSlide, index, delay, _speed, isFirstSlide, !!(videoInfo && videoInfo.html5 && !poster));\r\n }\r\n // When gallery is opened once content is loaded (second time) need to add lg-complete class for css styling\r\n if ((!this.zoomFromOrigin || !this.currentImageSize) &&\r\n $currentSlide.hasClass('lg-complete_') &&\r\n !this.lGalleryOn) {\r\n setTimeout(function () {\r\n $currentSlide.addClass('lg-complete');\r\n }, this.settings.backdropDuration);\r\n }\r\n // Content loaded\r\n // Need to set lGalleryOn before calling preload function\r\n this.lGalleryOn = true;\r\n if (rec === true) {\r\n if (!$currentSlide.hasClass('lg-complete_')) {\r\n $currentSlide\r\n .find('.lg-object')\r\n .first()\r\n .on('load.lg error.lg', function () {\r\n _this.preload(index);\r\n });\r\n }\r\n else {\r\n this.preload(index);\r\n }\r\n }\r\n };\r\n /**\r\n * @desc Remove dummy image content and load next slides\r\n * Called only for the first time if zoomFromOrigin animation is enabled\r\n * @param index\r\n * @param $currentSlide\r\n * @param speed\r\n */\r\n LightGallery.prototype.loadContentOnFirstSlideLoad = function (index, $currentSlide, speed) {\r\n var _this = this;\r\n setTimeout(function () {\r\n $currentSlide.find('.lg-dummy-img').remove();\r\n $currentSlide.removeClass('lg-first-slide');\r\n _this.outer.removeClass('lg-first-slide-loading');\r\n _this.isDummyImageRemoved = true;\r\n _this.preload(index);\r\n }, speed + 300);\r\n };\r\n LightGallery.prototype.getItemsToBeInsertedToDom = function (index, prevIndex, numberOfItems) {\r\n var _this = this;\r\n if (numberOfItems === void 0) { numberOfItems = 0; }\r\n var itemsToBeInsertedToDom = [];\r\n // Minimum 2 items should be there\r\n var possibleNumberOfItems = Math.max(numberOfItems, 3);\r\n possibleNumberOfItems = Math.min(possibleNumberOfItems, this.galleryItems.length);\r\n var prevIndexItem = \"lg-item-\" + this.lgId + \"-\" + prevIndex;\r\n if (this.galleryItems.length <= 3) {\r\n this.galleryItems.forEach(function (_element, index) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + _this.lgId + \"-\" + index);\r\n });\r\n return itemsToBeInsertedToDom;\r\n }\r\n if (index < (this.galleryItems.length - 1) / 2) {\r\n for (var idx = index; idx > index - possibleNumberOfItems / 2 && idx >= 0; idx--) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + idx);\r\n }\r\n var numberOfExistingItems = itemsToBeInsertedToDom.length;\r\n for (var idx = 0; idx < possibleNumberOfItems - numberOfExistingItems; idx++) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + (index + idx + 1));\r\n }\r\n }\r\n else {\r\n for (var idx = index; idx <= this.galleryItems.length - 1 &&\r\n idx < index + possibleNumberOfItems / 2; idx++) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + idx);\r\n }\r\n var numberOfExistingItems = itemsToBeInsertedToDom.length;\r\n for (var idx = 0; idx < possibleNumberOfItems - numberOfExistingItems; idx++) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + (index - idx - 1));\r\n }\r\n }\r\n if (this.settings.loop) {\r\n if (index === this.galleryItems.length - 1) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + 0);\r\n }\r\n else if (index === 0) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + (this.galleryItems.length - 1));\r\n }\r\n }\r\n if (itemsToBeInsertedToDom.indexOf(prevIndexItem) === -1) {\r\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + prevIndex);\r\n }\r\n return itemsToBeInsertedToDom;\r\n };\r\n LightGallery.prototype.organizeSlideItems = function (index, prevIndex) {\r\n var _this = this;\r\n var itemsToBeInsertedToDom = this.getItemsToBeInsertedToDom(index, prevIndex, this.settings.numberOfSlideItemsInDom);\r\n itemsToBeInsertedToDom.forEach(function (item) {\r\n if (_this.currentItemsInDom.indexOf(item) === -1) {\r\n _this.$inner.append(\"
\");\r\n }\r\n });\r\n this.currentItemsInDom.forEach(function (item) {\r\n if (itemsToBeInsertedToDom.indexOf(item) === -1) {\r\n $LG(\"#\" + item).remove();\r\n }\r\n });\r\n return itemsToBeInsertedToDom;\r\n };\r\n /**\r\n * Get previous index of the slide\r\n */\r\n LightGallery.prototype.getPreviousSlideIndex = function () {\r\n var prevIndex = 0;\r\n try {\r\n var currentItemId = this.outer\r\n .find('.lg-current')\r\n .first()\r\n .attr('id');\r\n prevIndex = parseInt(currentItemId.split('-')[3]) || 0;\r\n }\r\n catch (error) {\r\n prevIndex = 0;\r\n }\r\n return prevIndex;\r\n };\r\n LightGallery.prototype.setDownloadValue = function (index) {\r\n if (this.settings.download) {\r\n var currentGalleryItem = this.galleryItems[index];\r\n var hideDownloadBtn = currentGalleryItem.downloadUrl === false ||\r\n currentGalleryItem.downloadUrl === 'false';\r\n if (hideDownloadBtn) {\r\n this.outer.addClass('lg-hide-download');\r\n }\r\n else {\r\n var $download = this.getElementById('lg-download');\r\n this.outer.removeClass('lg-hide-download');\r\n $download.attr('href', currentGalleryItem.downloadUrl ||\r\n currentGalleryItem.src);\r\n if (currentGalleryItem.download) {\r\n $download.attr('download', currentGalleryItem.download);\r\n }\r\n }\r\n }\r\n };\r\n LightGallery.prototype.makeSlideAnimation = function (direction, currentSlideItem, previousSlideItem) {\r\n var _this = this;\r\n if (this.lGalleryOn) {\r\n previousSlideItem.addClass('lg-slide-progress');\r\n }\r\n setTimeout(function () {\r\n // remove all transitions\r\n _this.outer.addClass('lg-no-trans');\r\n _this.outer\r\n .find('.lg-item')\r\n .removeClass('lg-prev-slide lg-next-slide');\r\n if (direction === 'prev') {\r\n //prevslide\r\n currentSlideItem.addClass('lg-prev-slide');\r\n previousSlideItem.addClass('lg-next-slide');\r\n }\r\n else {\r\n // next slide\r\n currentSlideItem.addClass('lg-next-slide');\r\n previousSlideItem.addClass('lg-prev-slide');\r\n }\r\n // give 50 ms for browser to add/remove class\r\n setTimeout(function () {\r\n _this.outer.find('.lg-item').removeClass('lg-current');\r\n currentSlideItem.addClass('lg-current');\r\n // reset all transitions\r\n _this.outer.removeClass('lg-no-trans');\r\n }, 50);\r\n }, this.lGalleryOn ? this.settings.slideDelay : 0);\r\n };\r\n /**\r\n * Goto a specific slide.\r\n * @param {Number} index - index of the slide\r\n * @param {Boolean} fromTouch - true if slide function called via touch event or mouse drag\r\n * @param {Boolean} fromThumb - true if slide function called via thumbnail click\r\n * @param {String} direction - Direction of the slide(next/prev)\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery();\r\n * // to go to 3rd slide\r\n * plugin.slide(2);\r\n *\r\n */\r\n LightGallery.prototype.slide = function (index, fromTouch, fromThumb, direction) {\r\n var _this = this;\r\n var prevIndex = this.getPreviousSlideIndex();\r\n this.currentItemsInDom = this.organizeSlideItems(index, prevIndex);\r\n // Prevent multiple call, Required for hsh plugin\r\n if (this.lGalleryOn && prevIndex === index) {\r\n return;\r\n }\r\n var numberOfGalleryItems = this.galleryItems.length;\r\n if (!this.lgBusy) {\r\n if (this.settings.counter) {\r\n this.updateCurrentCounter(index);\r\n }\r\n var currentSlideItem = this.getSlideItem(index);\r\n var previousSlideItem_1 = this.getSlideItem(prevIndex);\r\n var currentGalleryItem = this.galleryItems[index];\r\n var videoInfo = currentGalleryItem.__slideVideoInfo;\r\n this.outer.attr('data-lg-slide-type', this.getSlideType(currentGalleryItem));\r\n this.setDownloadValue(index);\r\n if (videoInfo) {\r\n var _a = this.mediaContainerPosition, top_3 = _a.top, bottom = _a.bottom;\r\n var videoSize = utils.getSize(this.items[index], this.outer, top_3 + bottom, videoInfo && this.settings.videoMaxSize);\r\n this.resizeVideoSlide(index, videoSize);\r\n }\r\n this.LGel.trigger(lGEvents.beforeSlide, {\r\n prevIndex: prevIndex,\r\n index: index,\r\n fromTouch: !!fromTouch,\r\n fromThumb: !!fromThumb,\r\n });\r\n this.lgBusy = true;\r\n clearTimeout(this.hideBarTimeout);\r\n this.arrowDisable(index);\r\n if (!direction) {\r\n if (index < prevIndex) {\r\n direction = 'prev';\r\n }\r\n else if (index > prevIndex) {\r\n direction = 'next';\r\n }\r\n }\r\n if (!fromTouch) {\r\n this.makeSlideAnimation(direction, currentSlideItem, previousSlideItem_1);\r\n }\r\n else {\r\n this.outer\r\n .find('.lg-item')\r\n .removeClass('lg-prev-slide lg-current lg-next-slide');\r\n var touchPrev = void 0;\r\n var touchNext = void 0;\r\n if (numberOfGalleryItems > 2) {\r\n touchPrev = index - 1;\r\n touchNext = index + 1;\r\n if (index === 0 && prevIndex === numberOfGalleryItems - 1) {\r\n // next slide\r\n touchNext = 0;\r\n touchPrev = numberOfGalleryItems - 1;\r\n }\r\n else if (index === numberOfGalleryItems - 1 &&\r\n prevIndex === 0) {\r\n // prev slide\r\n touchNext = 0;\r\n touchPrev = numberOfGalleryItems - 1;\r\n }\r\n }\r\n else {\r\n touchPrev = 0;\r\n touchNext = 1;\r\n }\r\n if (direction === 'prev') {\r\n this.getSlideItem(touchNext).addClass('lg-next-slide');\r\n }\r\n else {\r\n this.getSlideItem(touchPrev).addClass('lg-prev-slide');\r\n }\r\n currentSlideItem.addClass('lg-current');\r\n }\r\n // Do not put load content in set timeout as it needs to load immediately when the gallery is opened\r\n if (!this.lGalleryOn) {\r\n this.loadContent(index, true);\r\n }\r\n else {\r\n setTimeout(function () {\r\n _this.loadContent(index, true);\r\n // Add title if this.settings.appendSubHtmlTo === lg-sub-html\r\n if (_this.settings.appendSubHtmlTo !== '.lg-item') {\r\n _this.addHtml(index);\r\n }\r\n }, this.settings.speed + 50 + (fromTouch ? 0 : this.settings.slideDelay));\r\n }\r\n setTimeout(function () {\r\n _this.lgBusy = false;\r\n previousSlideItem_1.removeClass('lg-slide-progress');\r\n _this.LGel.trigger(lGEvents.afterSlide, {\r\n prevIndex: prevIndex,\r\n index: index,\r\n fromTouch: fromTouch,\r\n fromThumb: fromThumb,\r\n });\r\n }, (this.lGalleryOn ? this.settings.speed + 100 : 100) + (fromTouch ? 0 : this.settings.slideDelay));\r\n }\r\n this.index = index;\r\n };\r\n LightGallery.prototype.updateCurrentCounter = function (index) {\r\n this.getElementById('lg-counter-current').html(index + 1 + '');\r\n };\r\n LightGallery.prototype.updateCounterTotal = function () {\r\n this.getElementById('lg-counter-all').html(this.galleryItems.length + '');\r\n };\r\n LightGallery.prototype.getSlideType = function (item) {\r\n if (item.__slideVideoInfo) {\r\n return 'video';\r\n }\r\n else if (item.iframe) {\r\n return 'iframe';\r\n }\r\n else {\r\n return 'image';\r\n }\r\n };\r\n LightGallery.prototype.touchMove = function (startCoords, endCoords, e) {\r\n var distanceX = endCoords.pageX - startCoords.pageX;\r\n var distanceY = endCoords.pageY - startCoords.pageY;\r\n var allowSwipe = false;\r\n if (this.swipeDirection) {\r\n allowSwipe = true;\r\n }\r\n else {\r\n if (Math.abs(distanceX) > 15) {\r\n this.swipeDirection = 'horizontal';\r\n allowSwipe = true;\r\n }\r\n else if (Math.abs(distanceY) > 15) {\r\n this.swipeDirection = 'vertical';\r\n allowSwipe = true;\r\n }\r\n }\r\n if (!allowSwipe) {\r\n return;\r\n }\r\n var $currentSlide = this.getSlideItem(this.index);\r\n if (this.swipeDirection === 'horizontal') {\r\n e === null || e === void 0 ? void 0 : e.preventDefault();\r\n // reset opacity and transition duration\r\n this.outer.addClass('lg-dragging');\r\n // move current slide\r\n this.setTranslate($currentSlide, distanceX, 0);\r\n // move next and prev slide with current slide\r\n var width = $currentSlide.get().offsetWidth;\r\n var slideWidthAmount = (width * 15) / 100;\r\n var gutter = slideWidthAmount - Math.abs((distanceX * 10) / 100);\r\n this.setTranslate(this.outer.find('.lg-prev-slide').first(), -width + distanceX - gutter, 0);\r\n this.setTranslate(this.outer.find('.lg-next-slide').first(), width + distanceX + gutter, 0);\r\n }\r\n else if (this.swipeDirection === 'vertical') {\r\n if (this.settings.swipeToClose) {\r\n e === null || e === void 0 ? void 0 : e.preventDefault();\r\n this.$container.addClass('lg-dragging-vertical');\r\n var opacity = 1 - Math.abs(distanceY) / window.innerHeight;\r\n this.$backdrop.css('opacity', opacity);\r\n var scale = 1 - Math.abs(distanceY) / (window.innerWidth * 2);\r\n this.setTranslate($currentSlide, 0, distanceY, scale, scale);\r\n if (Math.abs(distanceY) > 100) {\r\n this.outer\r\n .addClass('lg-hide-items')\r\n .removeClass('lg-components-open');\r\n }\r\n }\r\n }\r\n };\r\n LightGallery.prototype.touchEnd = function (endCoords, startCoords, event) {\r\n var _this = this;\r\n var distance;\r\n // keep slide animation for any mode while dragg/swipe\r\n if (this.settings.mode !== 'lg-slide') {\r\n this.outer.addClass('lg-slide');\r\n }\r\n // set transition duration\r\n setTimeout(function () {\r\n _this.$container.removeClass('lg-dragging-vertical');\r\n _this.outer\r\n .removeClass('lg-dragging lg-hide-items')\r\n .addClass('lg-components-open');\r\n var triggerClick = true;\r\n if (_this.swipeDirection === 'horizontal') {\r\n distance = endCoords.pageX - startCoords.pageX;\r\n var distanceAbs = Math.abs(endCoords.pageX - startCoords.pageX);\r\n if (distance < 0 &&\r\n distanceAbs > _this.settings.swipeThreshold) {\r\n _this.goToNextSlide(true);\r\n triggerClick = false;\r\n }\r\n else if (distance > 0 &&\r\n distanceAbs > _this.settings.swipeThreshold) {\r\n _this.goToPrevSlide(true);\r\n triggerClick = false;\r\n }\r\n }\r\n else if (_this.swipeDirection === 'vertical') {\r\n distance = Math.abs(endCoords.pageY - startCoords.pageY);\r\n if (_this.settings.closable &&\r\n _this.settings.swipeToClose &&\r\n distance > 100) {\r\n _this.closeGallery();\r\n return;\r\n }\r\n else {\r\n _this.$backdrop.css('opacity', 1);\r\n }\r\n }\r\n _this.outer.find('.lg-item').removeAttr('style');\r\n if (triggerClick &&\r\n Math.abs(endCoords.pageX - startCoords.pageX) < 5) {\r\n // Trigger click if distance is less than 5 pix\r\n var target = $LG(event.target);\r\n if (_this.isPosterElement(target)) {\r\n _this.LGel.trigger(lGEvents.posterClick);\r\n }\r\n }\r\n _this.swipeDirection = undefined;\r\n });\r\n // remove slide class once drag/swipe is completed if mode is not slide\r\n setTimeout(function () {\r\n if (!_this.outer.hasClass('lg-dragging') &&\r\n _this.settings.mode !== 'lg-slide') {\r\n _this.outer.removeClass('lg-slide');\r\n }\r\n }, this.settings.speed + 100);\r\n };\r\n LightGallery.prototype.enableSwipe = function () {\r\n var _this = this;\r\n var startCoords = {};\r\n var endCoords = {};\r\n var isMoved = false;\r\n var isSwiping = false;\r\n if (this.settings.enableSwipe) {\r\n this.$inner.on('touchstart.lg', function (e) {\r\n _this.dragOrSwipeEnabled = true;\r\n var $item = _this.getSlideItem(_this.index);\r\n if (($LG(e.target).hasClass('lg-item') ||\r\n $item.get().contains(e.target)) &&\r\n !_this.outer.hasClass('lg-zoomed') &&\r\n !_this.lgBusy &&\r\n e.touches.length === 1) {\r\n isSwiping = true;\r\n _this.touchAction = 'swipe';\r\n _this.manageSwipeClass();\r\n startCoords = {\r\n pageX: e.touches[0].pageX,\r\n pageY: e.touches[0].pageY,\r\n };\r\n }\r\n });\r\n this.$inner.on('touchmove.lg', function (e) {\r\n if (isSwiping &&\r\n _this.touchAction === 'swipe' &&\r\n e.touches.length === 1) {\r\n endCoords = {\r\n pageX: e.touches[0].pageX,\r\n pageY: e.touches[0].pageY,\r\n };\r\n _this.touchMove(startCoords, endCoords, e);\r\n isMoved = true;\r\n }\r\n });\r\n this.$inner.on('touchend.lg', function (event) {\r\n if (_this.touchAction === 'swipe') {\r\n if (isMoved) {\r\n isMoved = false;\r\n _this.touchEnd(endCoords, startCoords, event);\r\n }\r\n else if (isSwiping) {\r\n var target = $LG(event.target);\r\n if (_this.isPosterElement(target)) {\r\n _this.LGel.trigger(lGEvents.posterClick);\r\n }\r\n }\r\n _this.touchAction = undefined;\r\n isSwiping = false;\r\n }\r\n });\r\n }\r\n };\r\n LightGallery.prototype.enableDrag = function () {\r\n var _this = this;\r\n var startCoords = {};\r\n var endCoords = {};\r\n var isDraging = false;\r\n var isMoved = false;\r\n if (this.settings.enableDrag) {\r\n this.outer.on('mousedown.lg', function (e) {\r\n _this.dragOrSwipeEnabled = true;\r\n var $item = _this.getSlideItem(_this.index);\r\n if ($LG(e.target).hasClass('lg-item') ||\r\n $item.get().contains(e.target)) {\r\n if (!_this.outer.hasClass('lg-zoomed') && !_this.lgBusy) {\r\n e.preventDefault();\r\n if (!_this.lgBusy) {\r\n _this.manageSwipeClass();\r\n startCoords = {\r\n pageX: e.pageX,\r\n pageY: e.pageY,\r\n };\r\n isDraging = true;\r\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\r\n _this.outer.get().scrollLeft += 1;\r\n _this.outer.get().scrollLeft -= 1;\r\n // *\r\n _this.outer\r\n .removeClass('lg-grab')\r\n .addClass('lg-grabbing');\r\n _this.LGel.trigger(lGEvents.dragStart);\r\n }\r\n }\r\n }\r\n });\r\n $LG(window).on(\"mousemove.lg.global\" + this.lgId, function (e) {\r\n if (isDraging && _this.lgOpened) {\r\n isMoved = true;\r\n endCoords = {\r\n pageX: e.pageX,\r\n pageY: e.pageY,\r\n };\r\n _this.touchMove(startCoords, endCoords);\r\n _this.LGel.trigger(lGEvents.dragMove);\r\n }\r\n });\r\n $LG(window).on(\"mouseup.lg.global\" + this.lgId, function (event) {\r\n if (!_this.lgOpened) {\r\n return;\r\n }\r\n var target = $LG(event.target);\r\n if (isMoved) {\r\n isMoved = false;\r\n _this.touchEnd(endCoords, startCoords, event);\r\n _this.LGel.trigger(lGEvents.dragEnd);\r\n }\r\n else if (_this.isPosterElement(target)) {\r\n _this.LGel.trigger(lGEvents.posterClick);\r\n }\r\n // Prevent execution on click\r\n if (isDraging) {\r\n isDraging = false;\r\n _this.outer.removeClass('lg-grabbing').addClass('lg-grab');\r\n }\r\n });\r\n }\r\n };\r\n LightGallery.prototype.triggerPosterClick = function () {\r\n var _this = this;\r\n this.$inner.on('click.lg', function (event) {\r\n if (!_this.dragOrSwipeEnabled &&\r\n _this.isPosterElement($LG(event.target))) {\r\n _this.LGel.trigger(lGEvents.posterClick);\r\n }\r\n });\r\n };\r\n LightGallery.prototype.manageSwipeClass = function () {\r\n var _touchNext = this.index + 1;\r\n var _touchPrev = this.index - 1;\r\n if (this.settings.loop && this.galleryItems.length > 2) {\r\n if (this.index === 0) {\r\n _touchPrev = this.galleryItems.length - 1;\r\n }\r\n else if (this.index === this.galleryItems.length - 1) {\r\n _touchNext = 0;\r\n }\r\n }\r\n this.outer.find('.lg-item').removeClass('lg-next-slide lg-prev-slide');\r\n if (_touchPrev > -1) {\r\n this.getSlideItem(_touchPrev).addClass('lg-prev-slide');\r\n }\r\n this.getSlideItem(_touchNext).addClass('lg-next-slide');\r\n };\r\n /**\r\n * Go to next slide\r\n * @param {Boolean} fromTouch - true if slide function called via touch event\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery();\r\n * plugin.goToNextSlide();\r\n * @see Demo\r\n */\r\n LightGallery.prototype.goToNextSlide = function (fromTouch) {\r\n var _this = this;\r\n var _loop = this.settings.loop;\r\n if (fromTouch && this.galleryItems.length < 3) {\r\n _loop = false;\r\n }\r\n if (!this.lgBusy) {\r\n if (this.index + 1 < this.galleryItems.length) {\r\n this.index++;\r\n this.LGel.trigger(lGEvents.beforeNextSlide, {\r\n index: this.index,\r\n });\r\n this.slide(this.index, !!fromTouch, false, 'next');\r\n }\r\n else {\r\n if (_loop) {\r\n this.index = 0;\r\n this.LGel.trigger(lGEvents.beforeNextSlide, {\r\n index: this.index,\r\n });\r\n this.slide(this.index, !!fromTouch, false, 'next');\r\n }\r\n else if (this.settings.slideEndAnimation && !fromTouch) {\r\n this.outer.addClass('lg-right-end');\r\n setTimeout(function () {\r\n _this.outer.removeClass('lg-right-end');\r\n }, 400);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Go to previous slides\r\n * @param {Boolean} fromTouch - true if slide function called via touch event\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery({});\r\n * plugin.goToPrevSlide();\r\n * @see Demo\r\n *\r\n */\r\n LightGallery.prototype.goToPrevSlide = function (fromTouch) {\r\n var _this = this;\r\n var _loop = this.settings.loop;\r\n if (fromTouch && this.galleryItems.length < 3) {\r\n _loop = false;\r\n }\r\n if (!this.lgBusy) {\r\n if (this.index > 0) {\r\n this.index--;\r\n this.LGel.trigger(lGEvents.beforePrevSlide, {\r\n index: this.index,\r\n fromTouch: fromTouch,\r\n });\r\n this.slide(this.index, !!fromTouch, false, 'prev');\r\n }\r\n else {\r\n if (_loop) {\r\n this.index = this.galleryItems.length - 1;\r\n this.LGel.trigger(lGEvents.beforePrevSlide, {\r\n index: this.index,\r\n fromTouch: fromTouch,\r\n });\r\n this.slide(this.index, !!fromTouch, false, 'prev');\r\n }\r\n else if (this.settings.slideEndAnimation && !fromTouch) {\r\n this.outer.addClass('lg-left-end');\r\n setTimeout(function () {\r\n _this.outer.removeClass('lg-left-end');\r\n }, 400);\r\n }\r\n }\r\n }\r\n };\r\n LightGallery.prototype.keyPress = function () {\r\n var _this = this;\r\n $LG(window).on(\"keydown.lg.global\" + this.lgId, function (e) {\r\n if (_this.lgOpened &&\r\n _this.settings.escKey === true &&\r\n e.keyCode === 27) {\r\n e.preventDefault();\r\n if (_this.settings.allowMediaOverlap &&\r\n _this.outer.hasClass('lg-can-toggle') &&\r\n _this.outer.hasClass('lg-components-open')) {\r\n _this.outer.removeClass('lg-components-open');\r\n }\r\n else {\r\n _this.closeGallery();\r\n }\r\n }\r\n if (_this.lgOpened && _this.galleryItems.length > 1) {\r\n if (e.keyCode === 37) {\r\n e.preventDefault();\r\n _this.goToPrevSlide();\r\n }\r\n if (e.keyCode === 39) {\r\n e.preventDefault();\r\n _this.goToNextSlide();\r\n }\r\n }\r\n });\r\n };\r\n LightGallery.prototype.arrow = function () {\r\n var _this = this;\r\n this.getElementById('lg-prev').on('click.lg', function () {\r\n _this.goToPrevSlide();\r\n });\r\n this.getElementById('lg-next').on('click.lg', function () {\r\n _this.goToNextSlide();\r\n });\r\n };\r\n LightGallery.prototype.arrowDisable = function (index) {\r\n // Disable arrows if settings.hideControlOnEnd is true\r\n if (!this.settings.loop && this.settings.hideControlOnEnd) {\r\n var $prev = this.getElementById('lg-prev');\r\n var $next = this.getElementById('lg-next');\r\n if (index + 1 === this.galleryItems.length) {\r\n $next.attr('disabled', 'disabled').addClass('disabled');\r\n }\r\n else {\r\n $next.removeAttr('disabled').removeClass('disabled');\r\n }\r\n if (index === 0) {\r\n $prev.attr('disabled', 'disabled').addClass('disabled');\r\n }\r\n else {\r\n $prev.removeAttr('disabled').removeClass('disabled');\r\n }\r\n }\r\n };\r\n LightGallery.prototype.setTranslate = function ($el, xValue, yValue, scaleX, scaleY) {\r\n if (scaleX === void 0) { scaleX = 1; }\r\n if (scaleY === void 0) { scaleY = 1; }\r\n $el.css('transform', 'translate3d(' +\r\n xValue +\r\n 'px, ' +\r\n yValue +\r\n 'px, 0px) scale3d(' +\r\n scaleX +\r\n ', ' +\r\n scaleY +\r\n ', 1)');\r\n };\r\n LightGallery.prototype.mousewheel = function () {\r\n var _this = this;\r\n var lastCall = 0;\r\n this.outer.on('wheel.lg', function (e) {\r\n if (!e.deltaY || _this.galleryItems.length < 2) {\r\n return;\r\n }\r\n e.preventDefault();\r\n var now = new Date().getTime();\r\n if (now - lastCall < 1000) {\r\n return;\r\n }\r\n lastCall = now;\r\n if (e.deltaY > 0) {\r\n _this.goToNextSlide();\r\n }\r\n else if (e.deltaY < 0) {\r\n _this.goToPrevSlide();\r\n }\r\n });\r\n };\r\n LightGallery.prototype.isSlideElement = function (target) {\r\n return (target.hasClass('lg-outer') ||\r\n target.hasClass('lg-item') ||\r\n target.hasClass('lg-img-wrap'));\r\n };\r\n LightGallery.prototype.isPosterElement = function (target) {\r\n var playButton = this.getSlideItem(this.index)\r\n .find('.lg-video-play-button')\r\n .get();\r\n return (target.hasClass('lg-video-poster') ||\r\n target.hasClass('lg-video-play-button') ||\r\n (playButton && playButton.contains(target.get())));\r\n };\r\n /**\r\n * Maximize minimize inline gallery.\r\n * @category lGPublicMethods\r\n */\r\n LightGallery.prototype.toggleMaximize = function () {\r\n var _this = this;\r\n this.getElementById('lg-maximize').on('click.lg', function () {\r\n _this.$container.toggleClass('lg-inline');\r\n _this.refreshOnResize();\r\n });\r\n };\r\n LightGallery.prototype.invalidateItems = function () {\r\n for (var index = 0; index < this.items.length; index++) {\r\n var element = this.items[index];\r\n var $element = $LG(element);\r\n $element.off(\"click.lgcustom-item-\" + $element.attr('data-lg-id'));\r\n }\r\n };\r\n LightGallery.prototype.trapFocus = function () {\r\n var _this = this;\r\n this.$container.get().focus({\r\n preventScroll: true,\r\n });\r\n $LG(window).on(\"keydown.lg.global\" + this.lgId, function (e) {\r\n if (!_this.lgOpened) {\r\n return;\r\n }\r\n var isTabPressed = e.key === 'Tab' || e.keyCode === 9;\r\n if (!isTabPressed) {\r\n return;\r\n }\r\n var focusableEls = utils.getFocusableElements(_this.$container.get());\r\n var firstFocusableEl = focusableEls[0];\r\n var lastFocusableEl = focusableEls[focusableEls.length - 1];\r\n if (e.shiftKey) {\r\n if (document.activeElement === firstFocusableEl) {\r\n lastFocusableEl.focus();\r\n e.preventDefault();\r\n }\r\n }\r\n else {\r\n if (document.activeElement === lastFocusableEl) {\r\n firstFocusableEl.focus();\r\n e.preventDefault();\r\n }\r\n }\r\n });\r\n };\r\n LightGallery.prototype.manageCloseGallery = function () {\r\n var _this = this;\r\n if (!this.settings.closable)\r\n return;\r\n var mousedown = false;\r\n this.getElementById('lg-close').on('click.lg', function () {\r\n _this.closeGallery();\r\n });\r\n if (this.settings.closeOnTap) {\r\n // If you drag the slide and release outside gallery gets close on chrome\r\n // for preventing this check mousedown and mouseup happened on .lg-item or lg-outer\r\n this.outer.on('mousedown.lg', function (e) {\r\n var target = $LG(e.target);\r\n if (_this.isSlideElement(target)) {\r\n mousedown = true;\r\n }\r\n else {\r\n mousedown = false;\r\n }\r\n });\r\n this.outer.on('mousemove.lg', function () {\r\n mousedown = false;\r\n });\r\n this.outer.on('mouseup.lg', function (e) {\r\n var target = $LG(e.target);\r\n if (_this.isSlideElement(target) && mousedown) {\r\n if (!_this.outer.hasClass('lg-dragging')) {\r\n _this.closeGallery();\r\n }\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * Close lightGallery if it is opened.\r\n *\r\n * @description If closable is false in the settings, you need to pass true via closeGallery method to force close gallery\r\n * @return returns the estimated time to close gallery completely including the close animation duration\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery();\r\n * plugin.closeGallery();\r\n *\r\n */\r\n LightGallery.prototype.closeGallery = function (force) {\r\n var _this = this;\r\n if (!this.lgOpened || (!this.settings.closable && !force)) {\r\n return 0;\r\n }\r\n this.LGel.trigger(lGEvents.beforeClose);\r\n if (this.settings.resetScrollPosition && !this.settings.hideScrollbar) {\r\n $LG(window).scrollTop(this.prevScrollTop);\r\n }\r\n var currentItem = this.items[this.index];\r\n var transform;\r\n if (this.zoomFromOrigin && currentItem) {\r\n var _a = this.mediaContainerPosition, top_4 = _a.top, bottom = _a.bottom;\r\n var _b = this.galleryItems[this.index], __slideVideoInfo = _b.__slideVideoInfo, poster = _b.poster;\r\n var imageSize = utils.getSize(currentItem, this.outer, top_4 + bottom, __slideVideoInfo && poster && this.settings.videoMaxSize);\r\n transform = utils.getTransform(currentItem, this.outer, top_4, bottom, imageSize);\r\n }\r\n if (this.zoomFromOrigin && transform) {\r\n this.outer.addClass('lg-closing lg-zoom-from-image');\r\n this.getSlideItem(this.index)\r\n .addClass('lg-start-end-progress')\r\n .css('transition-duration', this.settings.startAnimationDuration + 'ms')\r\n .css('transform', transform);\r\n }\r\n else {\r\n this.outer.addClass('lg-hide-items');\r\n // lg-zoom-from-image is used for setting the opacity to 1 if zoomFromOrigin is true\r\n // If the closing item doesn't have the lg-size attribute, remove this class to avoid the closing css conflicts\r\n this.outer.removeClass('lg-zoom-from-image');\r\n }\r\n // Unbind all events added by lightGallery\r\n // @todo\r\n //this.$el.off('.lg.tm');\r\n this.destroyModules();\r\n this.lGalleryOn = false;\r\n this.isDummyImageRemoved = false;\r\n this.zoomFromOrigin = this.settings.zoomFromOrigin;\r\n clearTimeout(this.hideBarTimeout);\r\n this.hideBarTimeout = false;\r\n $LG('html').removeClass('lg-on');\r\n this.outer.removeClass('lg-visible lg-components-open');\r\n // Resetting opacity to 0 isd required as vertical swipe to close function adds inline opacity.\r\n this.$backdrop.removeClass('in').css('opacity', 0);\r\n var removeTimeout = this.zoomFromOrigin && transform\r\n ? Math.max(this.settings.startAnimationDuration, this.settings.backdropDuration)\r\n : this.settings.backdropDuration;\r\n this.$container.removeClass('lg-show-in');\r\n // Once the closign animation is completed and gallery is invisible\r\n setTimeout(function () {\r\n if (_this.zoomFromOrigin && transform) {\r\n _this.outer.removeClass('lg-zoom-from-image');\r\n }\r\n _this.$container.removeClass('lg-show');\r\n // Reset scrollbar\r\n _this.resetScrollBar();\r\n // Need to remove inline opacity as it is used in the stylesheet as well\r\n _this.$backdrop\r\n .removeAttr('style')\r\n .css('transition-duration', _this.settings.backdropDuration + 'ms');\r\n _this.outer.removeClass(\"lg-closing \" + _this.settings.startClass);\r\n _this.getSlideItem(_this.index).removeClass('lg-start-end-progress');\r\n _this.$inner.empty();\r\n if (_this.lgOpened) {\r\n _this.LGel.trigger(lGEvents.afterClose, {\r\n instance: _this,\r\n });\r\n }\r\n if (_this.$container.get()) {\r\n _this.$container.get().blur();\r\n }\r\n _this.lgOpened = false;\r\n }, removeTimeout + 100);\r\n return removeTimeout + 100;\r\n };\r\n LightGallery.prototype.initModules = function () {\r\n this.plugins.forEach(function (module) {\r\n try {\r\n module.init();\r\n }\r\n catch (err) {\r\n console.warn(\"lightGallery:- make sure lightGallery module is properly initiated\");\r\n }\r\n });\r\n };\r\n LightGallery.prototype.destroyModules = function (destroy) {\r\n this.plugins.forEach(function (module) {\r\n try {\r\n if (destroy) {\r\n module.destroy();\r\n }\r\n else {\r\n module.closeGallery && module.closeGallery();\r\n }\r\n }\r\n catch (err) {\r\n console.warn(\"lightGallery:- make sure lightGallery module is properly destroyed\");\r\n }\r\n });\r\n };\r\n /**\r\n * Refresh lightGallery with new set of children.\r\n *\r\n * @description This is useful to update the gallery when the child elements are changed without calling destroy method.\r\n *\r\n * If you are using dynamic mode, you can pass the modified array of dynamicEl as the first parameter to refresh the dynamic gallery\r\n * @see Demo\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery();\r\n * // Delete or add children, then call\r\n * plugin.refresh();\r\n *\r\n */\r\n LightGallery.prototype.refresh = function (galleryItems) {\r\n if (!this.settings.dynamic) {\r\n this.invalidateItems();\r\n }\r\n if (galleryItems) {\r\n this.galleryItems = galleryItems;\r\n }\r\n else {\r\n this.galleryItems = this.getItems();\r\n }\r\n this.updateControls();\r\n this.openGalleryOnItemClick();\r\n this.LGel.trigger(lGEvents.updateSlides);\r\n };\r\n LightGallery.prototype.updateControls = function () {\r\n this.addSlideVideoInfo(this.galleryItems);\r\n this.updateCounterTotal();\r\n this.manageSingleSlideClassName();\r\n };\r\n LightGallery.prototype.destroyGallery = function () {\r\n this.destroyModules(true);\r\n if (!this.settings.dynamic) {\r\n this.invalidateItems();\r\n }\r\n $LG(window).off(\".lg.global\" + this.lgId);\r\n this.LGel.off('.lg');\r\n this.$container.remove();\r\n };\r\n /**\r\n * Destroy lightGallery.\r\n * Destroy lightGallery and its plugin instances completely\r\n *\r\n * @description This method also calls CloseGallery function internally. Returns the time takes to completely close and destroy the instance.\r\n * In case if you want to re-initialize lightGallery right after destroying it, initialize it only once the destroy process is completed.\r\n * You can use refresh method most of the times.\r\n * @category lGPublicMethods\r\n * @example\r\n * const plugin = lightGallery();\r\n * plugin.destroy();\r\n *\r\n */\r\n LightGallery.prototype.destroy = function () {\r\n var closeTimeout = this.closeGallery(true);\r\n if (closeTimeout) {\r\n setTimeout(this.destroyGallery.bind(this), closeTimeout);\r\n }\r\n else {\r\n this.destroyGallery();\r\n }\r\n return closeTimeout;\r\n };\r\n return LightGallery;\r\n}());\n\nfunction lightGallery(el, options) {\r\n return new LightGallery(el, options);\r\n}\n\nexport default lightGallery;\n//# sourceMappingURL=lightgallery.es5.js.map\n","/*!\n * lightgallery | 2.7.2 | September 20th 2023\n * http://www.lightgalleryjs.com/\n * Copyright (c) 2020 Sachin Neravath;\n * @license GPLv3\n */\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nvar thumbnailsSettings = {\r\n thumbnail: true,\r\n animateThumb: true,\r\n currentPagerPosition: 'middle',\r\n alignThumbnails: 'middle',\r\n thumbWidth: 100,\r\n thumbHeight: '80px',\r\n thumbMargin: 5,\r\n appendThumbnailsTo: '.lg-components',\r\n toggleThumb: false,\r\n enableThumbDrag: true,\r\n enableThumbSwipe: true,\r\n thumbnailSwipeThreshold: 10,\r\n loadYouTubeThumbnail: true,\r\n youTubeThumbSize: 1,\r\n thumbnailPluginStrings: {\r\n toggleThumbnails: 'Toggle thumbnails',\r\n },\r\n};\n\n/**\r\n * List of lightGallery events\r\n * All events should be documented here\r\n * Below interfaces are used to build the website documentations\r\n * */\r\nvar lGEvents = {\r\n afterAppendSlide: 'lgAfterAppendSlide',\r\n init: 'lgInit',\r\n hasVideo: 'lgHasVideo',\r\n containerResize: 'lgContainerResize',\r\n updateSlides: 'lgUpdateSlides',\r\n afterAppendSubHtml: 'lgAfterAppendSubHtml',\r\n beforeOpen: 'lgBeforeOpen',\r\n afterOpen: 'lgAfterOpen',\r\n slideItemLoad: 'lgSlideItemLoad',\r\n beforeSlide: 'lgBeforeSlide',\r\n afterSlide: 'lgAfterSlide',\r\n posterClick: 'lgPosterClick',\r\n dragStart: 'lgDragStart',\r\n dragMove: 'lgDragMove',\r\n dragEnd: 'lgDragEnd',\r\n beforeNextSlide: 'lgBeforeNextSlide',\r\n beforePrevSlide: 'lgBeforePrevSlide',\r\n beforeClose: 'lgBeforeClose',\r\n afterClose: 'lgAfterClose',\r\n rotateLeft: 'lgRotateLeft',\r\n rotateRight: 'lgRotateRight',\r\n flipHorizontal: 'lgFlipHorizontal',\r\n flipVertical: 'lgFlipVertical',\r\n autoplay: 'lgAutoplay',\r\n autoplayStart: 'lgAutoplayStart',\r\n autoplayStop: 'lgAutoplayStop',\r\n};\n\nvar Thumbnail = /** @class */ (function () {\r\n function Thumbnail(instance, $LG) {\r\n this.thumbOuterWidth = 0;\r\n this.thumbTotalWidth = 0;\r\n this.translateX = 0;\r\n this.thumbClickable = false;\r\n // get lightGallery core plugin instance\r\n this.core = instance;\r\n this.$LG = $LG;\r\n return this;\r\n }\r\n Thumbnail.prototype.init = function () {\r\n // extend module default settings with lightGallery core settings\r\n this.settings = __assign(__assign({}, thumbnailsSettings), this.core.settings);\r\n this.thumbOuterWidth = 0;\r\n this.thumbTotalWidth =\r\n this.core.galleryItems.length *\r\n (this.settings.thumbWidth + this.settings.thumbMargin);\r\n // Thumbnail animation value\r\n this.translateX = 0;\r\n this.setAnimateThumbStyles();\r\n if (!this.core.settings.allowMediaOverlap) {\r\n this.settings.toggleThumb = false;\r\n }\r\n if (this.settings.thumbnail) {\r\n this.build();\r\n if (this.settings.animateThumb) {\r\n if (this.settings.enableThumbDrag) {\r\n this.enableThumbDrag();\r\n }\r\n if (this.settings.enableThumbSwipe) {\r\n this.enableThumbSwipe();\r\n }\r\n this.thumbClickable = false;\r\n }\r\n else {\r\n this.thumbClickable = true;\r\n }\r\n this.toggleThumbBar();\r\n this.thumbKeyPress();\r\n }\r\n };\r\n Thumbnail.prototype.build = function () {\r\n var _this = this;\r\n this.setThumbMarkup();\r\n this.manageActiveClassOnSlideChange();\r\n this.$lgThumb.first().on('click.lg touchend.lg', function (e) {\r\n var $target = _this.$LG(e.target);\r\n if (!$target.hasAttribute('data-lg-item-id')) {\r\n return;\r\n }\r\n setTimeout(function () {\r\n // In IE9 and bellow touch does not support\r\n // Go to slide if browser does not support css transitions\r\n if (_this.thumbClickable && !_this.core.lgBusy) {\r\n var index = parseInt($target.attr('data-lg-item-id'));\r\n _this.core.slide(index, false, true, false);\r\n }\r\n }, 50);\r\n });\r\n this.core.LGel.on(lGEvents.beforeSlide + \".thumb\", function (event) {\r\n var index = event.detail.index;\r\n _this.animateThumb(index);\r\n });\r\n this.core.LGel.on(lGEvents.beforeOpen + \".thumb\", function () {\r\n _this.thumbOuterWidth = _this.core.outer.get().offsetWidth;\r\n });\r\n this.core.LGel.on(lGEvents.updateSlides + \".thumb\", function () {\r\n _this.rebuildThumbnails();\r\n });\r\n this.core.LGel.on(lGEvents.containerResize + \".thumb\", function () {\r\n if (!_this.core.lgOpened)\r\n return;\r\n setTimeout(function () {\r\n _this.thumbOuterWidth = _this.core.outer.get().offsetWidth;\r\n _this.animateThumb(_this.core.index);\r\n _this.thumbOuterWidth = _this.core.outer.get().offsetWidth;\r\n }, 50);\r\n });\r\n };\r\n Thumbnail.prototype.setThumbMarkup = function () {\r\n var thumbOuterClassNames = 'lg-thumb-outer ';\r\n if (this.settings.alignThumbnails) {\r\n thumbOuterClassNames += \"lg-thumb-align-\" + this.settings.alignThumbnails;\r\n }\r\n var html = \"
\\n
\\n
\\n
\";\r\n this.core.outer.addClass('lg-has-thumb');\r\n if (this.settings.appendThumbnailsTo === '.lg-components') {\r\n this.core.$lgComponents.append(html);\r\n }\r\n else {\r\n this.core.outer.append(html);\r\n }\r\n this.$thumbOuter = this.core.outer.find('.lg-thumb-outer').first();\r\n this.$lgThumb = this.core.outer.find('.lg-thumb').first();\r\n if (this.settings.animateThumb) {\r\n this.core.outer\r\n .find('.lg-thumb')\r\n .css('transition-duration', this.core.settings.speed + 'ms')\r\n .css('width', this.thumbTotalWidth + 'px')\r\n .css('position', 'relative');\r\n }\r\n this.setThumbItemHtml(this.core.galleryItems);\r\n };\r\n Thumbnail.prototype.enableThumbDrag = function () {\r\n var _this = this;\r\n var thumbDragUtils = {\r\n cords: {\r\n startX: 0,\r\n endX: 0,\r\n },\r\n isMoved: false,\r\n newTranslateX: 0,\r\n startTime: new Date(),\r\n endTime: new Date(),\r\n touchMoveTime: 0,\r\n };\r\n var isDragging = false;\r\n this.$thumbOuter.addClass('lg-grab');\r\n this.core.outer\r\n .find('.lg-thumb')\r\n .first()\r\n .on('mousedown.lg.thumb', function (e) {\r\n if (_this.thumbTotalWidth > _this.thumbOuterWidth) {\r\n // execute only on .lg-object\r\n e.preventDefault();\r\n thumbDragUtils.cords.startX = e.pageX;\r\n thumbDragUtils.startTime = new Date();\r\n _this.thumbClickable = false;\r\n isDragging = true;\r\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\r\n _this.core.outer.get().scrollLeft += 1;\r\n _this.core.outer.get().scrollLeft -= 1;\r\n // *\r\n _this.$thumbOuter\r\n .removeClass('lg-grab')\r\n .addClass('lg-grabbing');\r\n }\r\n });\r\n this.$LG(window).on(\"mousemove.lg.thumb.global\" + this.core.lgId, function (e) {\r\n if (!_this.core.lgOpened)\r\n return;\r\n if (isDragging) {\r\n thumbDragUtils.cords.endX = e.pageX;\r\n thumbDragUtils = _this.onThumbTouchMove(thumbDragUtils);\r\n }\r\n });\r\n this.$LG(window).on(\"mouseup.lg.thumb.global\" + this.core.lgId, function () {\r\n if (!_this.core.lgOpened)\r\n return;\r\n if (thumbDragUtils.isMoved) {\r\n thumbDragUtils = _this.onThumbTouchEnd(thumbDragUtils);\r\n }\r\n else {\r\n _this.thumbClickable = true;\r\n }\r\n if (isDragging) {\r\n isDragging = false;\r\n _this.$thumbOuter.removeClass('lg-grabbing').addClass('lg-grab');\r\n }\r\n });\r\n };\r\n Thumbnail.prototype.enableThumbSwipe = function () {\r\n var _this = this;\r\n var thumbDragUtils = {\r\n cords: {\r\n startX: 0,\r\n endX: 0,\r\n },\r\n isMoved: false,\r\n newTranslateX: 0,\r\n startTime: new Date(),\r\n endTime: new Date(),\r\n touchMoveTime: 0,\r\n };\r\n this.$lgThumb.on('touchstart.lg', function (e) {\r\n if (_this.thumbTotalWidth > _this.thumbOuterWidth) {\r\n e.preventDefault();\r\n thumbDragUtils.cords.startX = e.targetTouches[0].pageX;\r\n _this.thumbClickable = false;\r\n thumbDragUtils.startTime = new Date();\r\n }\r\n });\r\n this.$lgThumb.on('touchmove.lg', function (e) {\r\n if (_this.thumbTotalWidth > _this.thumbOuterWidth) {\r\n e.preventDefault();\r\n thumbDragUtils.cords.endX = e.targetTouches[0].pageX;\r\n thumbDragUtils = _this.onThumbTouchMove(thumbDragUtils);\r\n }\r\n });\r\n this.$lgThumb.on('touchend.lg', function () {\r\n if (thumbDragUtils.isMoved) {\r\n thumbDragUtils = _this.onThumbTouchEnd(thumbDragUtils);\r\n }\r\n else {\r\n _this.thumbClickable = true;\r\n }\r\n });\r\n };\r\n // Rebuild thumbnails\r\n Thumbnail.prototype.rebuildThumbnails = function () {\r\n var _this = this;\r\n // Remove transitions\r\n this.$thumbOuter.addClass('lg-rebuilding-thumbnails');\r\n setTimeout(function () {\r\n _this.thumbTotalWidth =\r\n _this.core.galleryItems.length *\r\n (_this.settings.thumbWidth + _this.settings.thumbMargin);\r\n _this.$lgThumb.css('width', _this.thumbTotalWidth + 'px');\r\n _this.$lgThumb.empty();\r\n _this.setThumbItemHtml(_this.core.galleryItems);\r\n _this.animateThumb(_this.core.index);\r\n }, 50);\r\n setTimeout(function () {\r\n _this.$thumbOuter.removeClass('lg-rebuilding-thumbnails');\r\n }, 200);\r\n };\r\n // @ts-check\r\n Thumbnail.prototype.setTranslate = function (value) {\r\n this.$lgThumb.css('transform', 'translate3d(-' + value + 'px, 0px, 0px)');\r\n };\r\n Thumbnail.prototype.getPossibleTransformX = function (left) {\r\n if (left > this.thumbTotalWidth - this.thumbOuterWidth) {\r\n left = this.thumbTotalWidth - this.thumbOuterWidth;\r\n }\r\n if (left < 0) {\r\n left = 0;\r\n }\r\n return left;\r\n };\r\n Thumbnail.prototype.animateThumb = function (index) {\r\n this.$lgThumb.css('transition-duration', this.core.settings.speed + 'ms');\r\n if (this.settings.animateThumb) {\r\n var position = 0;\r\n switch (this.settings.currentPagerPosition) {\r\n case 'left':\r\n position = 0;\r\n break;\r\n case 'middle':\r\n position =\r\n this.thumbOuterWidth / 2 - this.settings.thumbWidth / 2;\r\n break;\r\n case 'right':\r\n position = this.thumbOuterWidth - this.settings.thumbWidth;\r\n }\r\n this.translateX =\r\n (this.settings.thumbWidth + this.settings.thumbMargin) * index -\r\n 1 -\r\n position;\r\n if (this.translateX > this.thumbTotalWidth - this.thumbOuterWidth) {\r\n this.translateX = this.thumbTotalWidth - this.thumbOuterWidth;\r\n }\r\n if (this.translateX < 0) {\r\n this.translateX = 0;\r\n }\r\n this.setTranslate(this.translateX);\r\n }\r\n };\r\n Thumbnail.prototype.onThumbTouchMove = function (thumbDragUtils) {\r\n thumbDragUtils.newTranslateX = this.translateX;\r\n thumbDragUtils.isMoved = true;\r\n thumbDragUtils.touchMoveTime = new Date().valueOf();\r\n thumbDragUtils.newTranslateX -=\r\n thumbDragUtils.cords.endX - thumbDragUtils.cords.startX;\r\n thumbDragUtils.newTranslateX = this.getPossibleTransformX(thumbDragUtils.newTranslateX);\r\n // move current slide\r\n this.setTranslate(thumbDragUtils.newTranslateX);\r\n this.$thumbOuter.addClass('lg-dragging');\r\n return thumbDragUtils;\r\n };\r\n Thumbnail.prototype.onThumbTouchEnd = function (thumbDragUtils) {\r\n thumbDragUtils.isMoved = false;\r\n thumbDragUtils.endTime = new Date();\r\n this.$thumbOuter.removeClass('lg-dragging');\r\n var touchDuration = thumbDragUtils.endTime.valueOf() -\r\n thumbDragUtils.startTime.valueOf();\r\n var distanceXnew = thumbDragUtils.cords.endX - thumbDragUtils.cords.startX;\r\n var speedX = Math.abs(distanceXnew) / touchDuration;\r\n // Some magical numbers\r\n // Can be improved\r\n if (speedX > 0.15 &&\r\n thumbDragUtils.endTime.valueOf() - thumbDragUtils.touchMoveTime < 30) {\r\n speedX += 1;\r\n if (speedX > 2) {\r\n speedX += 1;\r\n }\r\n speedX =\r\n speedX +\r\n speedX * (Math.abs(distanceXnew) / this.thumbOuterWidth);\r\n this.$lgThumb.css('transition-duration', Math.min(speedX - 1, 2) + 'settings');\r\n distanceXnew = distanceXnew * speedX;\r\n this.translateX = this.getPossibleTransformX(this.translateX - distanceXnew);\r\n this.setTranslate(this.translateX);\r\n }\r\n else {\r\n this.translateX = thumbDragUtils.newTranslateX;\r\n }\r\n if (Math.abs(thumbDragUtils.cords.endX - thumbDragUtils.cords.startX) <\r\n this.settings.thumbnailSwipeThreshold) {\r\n this.thumbClickable = true;\r\n }\r\n return thumbDragUtils;\r\n };\r\n Thumbnail.prototype.getThumbHtml = function (thumb, index, alt) {\r\n var slideVideoInfo = this.core.galleryItems[index].__slideVideoInfo || {};\r\n var thumbImg;\r\n if (slideVideoInfo.youtube) {\r\n if (this.settings.loadYouTubeThumbnail) {\r\n thumbImg =\r\n '//img.youtube.com/vi/' +\r\n slideVideoInfo.youtube[1] +\r\n '/' +\r\n this.settings.youTubeThumbSize +\r\n '.jpg';\r\n }\r\n else {\r\n thumbImg = thumb;\r\n }\r\n }\r\n else {\r\n thumbImg = thumb;\r\n }\r\n var altAttr = alt ? 'alt=\"' + alt + '\"' : '';\r\n return \"
\\n \\n
\";\r\n };\r\n Thumbnail.prototype.getThumbItemHtml = function (items) {\r\n var thumbList = '';\r\n for (var i = 0; i < items.length; i++) {\r\n thumbList += this.getThumbHtml(items[i].thumb, i, items[i].alt);\r\n }\r\n return thumbList;\r\n };\r\n Thumbnail.prototype.setThumbItemHtml = function (items) {\r\n var thumbList = this.getThumbItemHtml(items);\r\n this.$lgThumb.html(thumbList);\r\n };\r\n Thumbnail.prototype.setAnimateThumbStyles = function () {\r\n if (this.settings.animateThumb) {\r\n this.core.outer.addClass('lg-animate-thumb');\r\n }\r\n };\r\n // Manage thumbnail active calss\r\n Thumbnail.prototype.manageActiveClassOnSlideChange = function () {\r\n var _this = this;\r\n // manage active class for thumbnail\r\n this.core.LGel.on(lGEvents.beforeSlide + \".thumb\", function (event) {\r\n var $thumb = _this.core.outer.find('.lg-thumb-item');\r\n var index = event.detail.index;\r\n $thumb.removeClass('active');\r\n $thumb.eq(index).addClass('active');\r\n });\r\n };\r\n // Toggle thumbnail bar\r\n Thumbnail.prototype.toggleThumbBar = function () {\r\n var _this = this;\r\n if (this.settings.toggleThumb) {\r\n this.core.outer.addClass('lg-can-toggle');\r\n this.core.$toolbar.append('');\r\n this.core.outer\r\n .find('.lg-toggle-thumb')\r\n .first()\r\n .on('click.lg', function () {\r\n _this.core.outer.toggleClass('lg-components-open');\r\n });\r\n }\r\n };\r\n Thumbnail.prototype.thumbKeyPress = function () {\r\n var _this = this;\r\n this.$LG(window).on(\"keydown.lg.thumb.global\" + this.core.lgId, function (e) {\r\n if (!_this.core.lgOpened || !_this.settings.toggleThumb)\r\n return;\r\n if (e.keyCode === 38) {\r\n e.preventDefault();\r\n _this.core.outer.addClass('lg-components-open');\r\n }\r\n else if (e.keyCode === 40) {\r\n e.preventDefault();\r\n _this.core.outer.removeClass('lg-components-open');\r\n }\r\n });\r\n };\r\n Thumbnail.prototype.destroy = function () {\r\n if (this.settings.thumbnail) {\r\n this.$LG(window).off(\".lg.thumb.global\" + this.core.lgId);\r\n this.core.LGel.off('.lg.thumb');\r\n this.core.LGel.off('.thumb');\r\n this.$thumbOuter.remove();\r\n this.core.outer.removeClass('lg-has-thumb');\r\n }\r\n };\r\n return Thumbnail;\r\n}());\n\nexport default Thumbnail;\n//# sourceMappingURL=lg-thumbnail.es5.js.map\n","/*!\n * lightgallery | 2.7.2 | September 20th 2023\n * http://www.lightgalleryjs.com/\n * Copyright (c) 2020 Sachin Neravath;\n * @license GPLv3\n */\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nvar zoomSettings = {\r\n scale: 1,\r\n zoom: true,\r\n infiniteZoom: true,\r\n actualSize: true,\r\n showZoomInOutIcons: false,\r\n actualSizeIcons: {\r\n zoomIn: 'lg-zoom-in',\r\n zoomOut: 'lg-zoom-out',\r\n },\r\n enableZoomAfter: 300,\r\n zoomPluginStrings: {\r\n zoomIn: 'Zoom in',\r\n zoomOut: 'Zoom out',\r\n viewActualSize: 'View actual size',\r\n },\r\n};\n\n/**\r\n * List of lightGallery events\r\n * All events should be documented here\r\n * Below interfaces are used to build the website documentations\r\n * */\r\nvar lGEvents = {\r\n afterAppendSlide: 'lgAfterAppendSlide',\r\n init: 'lgInit',\r\n hasVideo: 'lgHasVideo',\r\n containerResize: 'lgContainerResize',\r\n updateSlides: 'lgUpdateSlides',\r\n afterAppendSubHtml: 'lgAfterAppendSubHtml',\r\n beforeOpen: 'lgBeforeOpen',\r\n afterOpen: 'lgAfterOpen',\r\n slideItemLoad: 'lgSlideItemLoad',\r\n beforeSlide: 'lgBeforeSlide',\r\n afterSlide: 'lgAfterSlide',\r\n posterClick: 'lgPosterClick',\r\n dragStart: 'lgDragStart',\r\n dragMove: 'lgDragMove',\r\n dragEnd: 'lgDragEnd',\r\n beforeNextSlide: 'lgBeforeNextSlide',\r\n beforePrevSlide: 'lgBeforePrevSlide',\r\n beforeClose: 'lgBeforeClose',\r\n afterClose: 'lgAfterClose',\r\n rotateLeft: 'lgRotateLeft',\r\n rotateRight: 'lgRotateRight',\r\n flipHorizontal: 'lgFlipHorizontal',\r\n flipVertical: 'lgFlipVertical',\r\n autoplay: 'lgAutoplay',\r\n autoplayStart: 'lgAutoplayStart',\r\n autoplayStop: 'lgAutoplayStop',\r\n};\n\nvar ZOOM_TRANSITION_DURATION = 500;\r\nvar Zoom = /** @class */ (function () {\r\n function Zoom(instance, $LG) {\r\n // get lightGallery core plugin instance\r\n this.core = instance;\r\n this.$LG = $LG;\r\n this.settings = __assign(__assign({}, zoomSettings), this.core.settings);\r\n return this;\r\n }\r\n // Append Zoom controls. Actual size, Zoom-in, Zoom-out\r\n Zoom.prototype.buildTemplates = function () {\r\n var zoomIcons = this.settings.showZoomInOutIcons\r\n ? \"\"\r\n : '';\r\n if (this.settings.actualSize) {\r\n zoomIcons += \"\";\r\n }\r\n this.core.outer.addClass('lg-use-transition-for-zoom');\r\n this.core.$toolbar.first().append(zoomIcons);\r\n };\r\n /**\r\n * @desc Enable zoom option only once the image is completely loaded\r\n * If zoomFromOrigin is true, Zoom is enabled once the dummy image has been inserted\r\n *\r\n * Zoom styles are defined under lg-zoomable CSS class.\r\n */\r\n Zoom.prototype.enableZoom = function (event) {\r\n var _this = this;\r\n // delay will be 0 except first time\r\n var _speed = this.settings.enableZoomAfter + event.detail.delay;\r\n // set _speed value 0 if gallery opened from direct url and if it is first slide\r\n if (this.$LG('body').first().hasClass('lg-from-hash') &&\r\n event.detail.delay) {\r\n // will execute only once\r\n _speed = 0;\r\n }\r\n else {\r\n // Remove lg-from-hash to enable starting animation.\r\n this.$LG('body').first().removeClass('lg-from-hash');\r\n }\r\n this.zoomableTimeout = setTimeout(function () {\r\n if (!_this.isImageSlide(_this.core.index)) {\r\n return;\r\n }\r\n _this.core.getSlideItem(event.detail.index).addClass('lg-zoomable');\r\n if (event.detail.index === _this.core.index) {\r\n _this.setZoomEssentials();\r\n }\r\n }, _speed + 30);\r\n };\r\n Zoom.prototype.enableZoomOnSlideItemLoad = function () {\r\n // Add zoomable class\r\n this.core.LGel.on(lGEvents.slideItemLoad + \".zoom\", this.enableZoom.bind(this));\r\n };\r\n Zoom.prototype.getDragCords = function (e) {\r\n return {\r\n x: e.pageX,\r\n y: e.pageY,\r\n };\r\n };\r\n Zoom.prototype.getSwipeCords = function (e) {\r\n var x = e.touches[0].pageX;\r\n var y = e.touches[0].pageY;\r\n return {\r\n x: x,\r\n y: y,\r\n };\r\n };\r\n Zoom.prototype.getDragAllowedAxises = function (scale, scaleDiff) {\r\n var $image = this.core\r\n .getSlideItem(this.core.index)\r\n .find('.lg-image')\r\n .first()\r\n .get();\r\n var height = 0;\r\n var width = 0;\r\n var rect = $image.getBoundingClientRect();\r\n if (scale) {\r\n height = $image.offsetHeight * scale;\r\n width = $image.offsetWidth * scale;\r\n }\r\n else if (scaleDiff) {\r\n height = rect.height + scaleDiff * rect.height;\r\n width = rect.width + scaleDiff * rect.width;\r\n }\r\n else {\r\n height = rect.height;\r\n width = rect.width;\r\n }\r\n var allowY = height > this.containerRect.height;\r\n var allowX = width > this.containerRect.width;\r\n return {\r\n allowX: allowX,\r\n allowY: allowY,\r\n };\r\n };\r\n Zoom.prototype.setZoomEssentials = function () {\r\n this.containerRect = this.core.$content.get().getBoundingClientRect();\r\n };\r\n /**\r\n * @desc Image zoom\r\n * Translate the wrap and scale the image to get better user experience\r\n *\r\n * @param {String} scale - Zoom decrement/increment value\r\n */\r\n Zoom.prototype.zoomImage = function (scale, scaleDiff, reposition, resetToMax) {\r\n if (Math.abs(scaleDiff) <= 0)\r\n return;\r\n var offsetX = this.containerRect.width / 2 + this.containerRect.left;\r\n var offsetY = this.containerRect.height / 2 +\r\n this.containerRect.top +\r\n this.scrollTop;\r\n var originalX;\r\n var originalY;\r\n if (scale === 1) {\r\n this.positionChanged = false;\r\n }\r\n var dragAllowedAxises = this.getDragAllowedAxises(0, scaleDiff);\r\n var allowY = dragAllowedAxises.allowY, allowX = dragAllowedAxises.allowX;\r\n if (this.positionChanged) {\r\n originalX = this.left / (this.scale - scaleDiff);\r\n originalY = this.top / (this.scale - scaleDiff);\r\n this.pageX = offsetX - originalX;\r\n this.pageY = offsetY - originalY;\r\n this.positionChanged = false;\r\n }\r\n var possibleSwipeCords = this.getPossibleSwipeDragCords(scaleDiff);\r\n var x;\r\n var y;\r\n var _x = offsetX - this.pageX;\r\n var _y = offsetY - this.pageY;\r\n if (scale - scaleDiff > 1) {\r\n var scaleVal = (scale - scaleDiff) / Math.abs(scaleDiff);\r\n _x =\r\n (scaleDiff < 0 ? -_x : _x) +\r\n this.left * (scaleVal + (scaleDiff < 0 ? -1 : 1));\r\n _y =\r\n (scaleDiff < 0 ? -_y : _y) +\r\n this.top * (scaleVal + (scaleDiff < 0 ? -1 : 1));\r\n x = _x / scaleVal;\r\n y = _y / scaleVal;\r\n }\r\n else {\r\n var scaleVal = (scale - scaleDiff) * scaleDiff;\r\n x = _x * scaleVal;\r\n y = _y * scaleVal;\r\n }\r\n if (reposition) {\r\n if (allowX) {\r\n if (this.isBeyondPossibleLeft(x, possibleSwipeCords.minX)) {\r\n x = possibleSwipeCords.minX;\r\n }\r\n else if (this.isBeyondPossibleRight(x, possibleSwipeCords.maxX)) {\r\n x = possibleSwipeCords.maxX;\r\n }\r\n }\r\n else {\r\n if (scale > 1) {\r\n if (x < possibleSwipeCords.minX) {\r\n x = possibleSwipeCords.minX;\r\n }\r\n else if (x > possibleSwipeCords.maxX) {\r\n x = possibleSwipeCords.maxX;\r\n }\r\n }\r\n }\r\n // @todo fix this\r\n if (allowY) {\r\n if (this.isBeyondPossibleTop(y, possibleSwipeCords.minY)) {\r\n y = possibleSwipeCords.minY;\r\n }\r\n else if (this.isBeyondPossibleBottom(y, possibleSwipeCords.maxY)) {\r\n y = possibleSwipeCords.maxY;\r\n }\r\n }\r\n else {\r\n // If the translate value based on index of beyond the viewport, utilize the available space to prevent image being cut out\r\n if (scale > 1) {\r\n //If image goes beyond viewport top, use the minim possible translate value\r\n if (y < possibleSwipeCords.minY) {\r\n y = possibleSwipeCords.minY;\r\n }\r\n else if (y > possibleSwipeCords.maxY) {\r\n y = possibleSwipeCords.maxY;\r\n }\r\n }\r\n }\r\n }\r\n this.setZoomStyles({\r\n x: x,\r\n y: y,\r\n scale: scale,\r\n });\r\n this.left = x;\r\n this.top = y;\r\n if (resetToMax) {\r\n this.setZoomImageSize();\r\n }\r\n };\r\n Zoom.prototype.resetImageTranslate = function (index) {\r\n if (!this.isImageSlide(index)) {\r\n return;\r\n }\r\n var $image = this.core.getSlideItem(index).find('.lg-image').first();\r\n this.imageReset = false;\r\n $image.removeClass('reset-transition reset-transition-y reset-transition-x');\r\n this.core.outer.removeClass('lg-actual-size');\r\n $image.css('width', 'auto').css('height', 'auto');\r\n setTimeout(function () {\r\n $image.removeClass('no-transition');\r\n }, 10);\r\n };\r\n Zoom.prototype.setZoomImageSize = function () {\r\n var _this = this;\r\n var $image = this.core\r\n .getSlideItem(this.core.index)\r\n .find('.lg-image')\r\n .first();\r\n setTimeout(function () {\r\n var actualSizeScale = _this.getCurrentImageActualSizeScale();\r\n if (_this.scale >= actualSizeScale) {\r\n $image.addClass('no-transition');\r\n _this.imageReset = true;\r\n }\r\n }, ZOOM_TRANSITION_DURATION);\r\n setTimeout(function () {\r\n var actualSizeScale = _this.getCurrentImageActualSizeScale();\r\n if (_this.scale >= actualSizeScale) {\r\n var dragAllowedAxises = _this.getDragAllowedAxises(_this.scale);\r\n $image\r\n .css('width', $image.get().naturalWidth + 'px')\r\n .css('height', $image.get().naturalHeight + 'px');\r\n _this.core.outer.addClass('lg-actual-size');\r\n if (dragAllowedAxises.allowX && dragAllowedAxises.allowY) {\r\n $image.addClass('reset-transition');\r\n }\r\n else if (dragAllowedAxises.allowX &&\r\n !dragAllowedAxises.allowY) {\r\n $image.addClass('reset-transition-x');\r\n }\r\n else if (!dragAllowedAxises.allowX &&\r\n dragAllowedAxises.allowY) {\r\n $image.addClass('reset-transition-y');\r\n }\r\n }\r\n }, ZOOM_TRANSITION_DURATION + 50);\r\n };\r\n /**\r\n * @desc apply scale3d to image and translate to image wrap\r\n * @param {style} X,Y and scale\r\n */\r\n Zoom.prototype.setZoomStyles = function (style) {\r\n var $imageWrap = this.core\r\n .getSlideItem(this.core.index)\r\n .find('.lg-img-wrap')\r\n .first();\r\n var $image = this.core\r\n .getSlideItem(this.core.index)\r\n .find('.lg-image')\r\n .first();\r\n var $dummyImage = this.core.outer\r\n .find('.lg-current .lg-dummy-img')\r\n .first();\r\n this.scale = style.scale;\r\n $image.css('transform', 'scale3d(' + style.scale + ', ' + style.scale + ', 1)');\r\n $dummyImage.css('transform', 'scale3d(' + style.scale + ', ' + style.scale + ', 1)');\r\n var transform = 'translate3d(' + style.x + 'px, ' + style.y + 'px, 0)';\r\n $imageWrap.css('transform', transform);\r\n };\r\n /**\r\n * @param index - Index of the current slide\r\n * @param event - event will be available only if the function is called on clicking/taping the imags\r\n */\r\n Zoom.prototype.setActualSize = function (index, event) {\r\n var _this = this;\r\n if (this.zoomInProgress) {\r\n return;\r\n }\r\n this.zoomInProgress = true;\r\n var currentItem = this.core.galleryItems[this.core.index];\r\n this.resetImageTranslate(index);\r\n setTimeout(function () {\r\n // Allow zoom only on image\r\n if (!currentItem.src ||\r\n _this.core.outer.hasClass('lg-first-slide-loading')) {\r\n return;\r\n }\r\n var scale = _this.getCurrentImageActualSizeScale();\r\n var prevScale = _this.scale;\r\n if (_this.core.outer.hasClass('lg-zoomed')) {\r\n _this.scale = 1;\r\n }\r\n else {\r\n _this.scale = _this.getScale(scale);\r\n }\r\n _this.setPageCords(event);\r\n _this.beginZoom(_this.scale);\r\n _this.zoomImage(_this.scale, _this.scale - prevScale, true, true);\r\n }, 50);\r\n setTimeout(function () {\r\n _this.core.outer.removeClass('lg-grabbing').addClass('lg-grab');\r\n }, 60);\r\n setTimeout(function () {\r\n _this.zoomInProgress = false;\r\n }, ZOOM_TRANSITION_DURATION + 110);\r\n };\r\n Zoom.prototype.getNaturalWidth = function (index) {\r\n var $image = this.core.getSlideItem(index).find('.lg-image').first();\r\n var naturalWidth = this.core.galleryItems[index].width;\r\n return naturalWidth\r\n ? parseFloat(naturalWidth)\r\n : $image.get().naturalWidth;\r\n };\r\n Zoom.prototype.getActualSizeScale = function (naturalWidth, width) {\r\n var _scale;\r\n var scale;\r\n if (naturalWidth >= width) {\r\n _scale = naturalWidth / width;\r\n scale = _scale || 2;\r\n }\r\n else {\r\n scale = 1;\r\n }\r\n return scale;\r\n };\r\n Zoom.prototype.getCurrentImageActualSizeScale = function () {\r\n var $image = this.core\r\n .getSlideItem(this.core.index)\r\n .find('.lg-image')\r\n .first();\r\n var width = $image.get().offsetWidth;\r\n var naturalWidth = this.getNaturalWidth(this.core.index) || width;\r\n return this.getActualSizeScale(naturalWidth, width);\r\n };\r\n Zoom.prototype.getPageCords = function (event) {\r\n var cords = {};\r\n if (event) {\r\n cords.x = event.pageX || event.touches[0].pageX;\r\n cords.y = event.pageY || event.touches[0].pageY;\r\n }\r\n else {\r\n var containerRect = this.core.$content\r\n .get()\r\n .getBoundingClientRect();\r\n cords.x = containerRect.width / 2 + containerRect.left;\r\n cords.y =\r\n containerRect.height / 2 + this.scrollTop + containerRect.top;\r\n }\r\n return cords;\r\n };\r\n Zoom.prototype.setPageCords = function (event) {\r\n var pageCords = this.getPageCords(event);\r\n this.pageX = pageCords.x;\r\n this.pageY = pageCords.y;\r\n };\r\n Zoom.prototype.manageActualPixelClassNames = function () {\r\n var $actualSize = this.core.getElementById('lg-actual-size');\r\n $actualSize\r\n .removeClass(this.settings.actualSizeIcons.zoomIn)\r\n .addClass(this.settings.actualSizeIcons.zoomOut);\r\n };\r\n // If true, zoomed - in else zoomed out\r\n Zoom.prototype.beginZoom = function (scale) {\r\n this.core.outer.removeClass('lg-zoom-drag-transition lg-zoom-dragging');\r\n if (scale > 1) {\r\n this.core.outer.addClass('lg-zoomed');\r\n this.manageActualPixelClassNames();\r\n }\r\n else {\r\n this.resetZoom();\r\n }\r\n return scale > 1;\r\n };\r\n Zoom.prototype.getScale = function (scale) {\r\n var actualSizeScale = this.getCurrentImageActualSizeScale();\r\n if (scale < 1) {\r\n scale = 1;\r\n }\r\n else if (scale > actualSizeScale) {\r\n scale = actualSizeScale;\r\n }\r\n return scale;\r\n };\r\n Zoom.prototype.init = function () {\r\n var _this = this;\r\n if (!this.settings.zoom) {\r\n return;\r\n }\r\n this.buildTemplates();\r\n this.enableZoomOnSlideItemLoad();\r\n var tapped = null;\r\n this.core.outer.on('dblclick.lg', function (event) {\r\n if (!_this.$LG(event.target).hasClass('lg-image')) {\r\n return;\r\n }\r\n _this.setActualSize(_this.core.index, event);\r\n });\r\n this.core.outer.on('touchstart.lg', function (event) {\r\n var $target = _this.$LG(event.target);\r\n if (event.touches.length === 1 && $target.hasClass('lg-image')) {\r\n if (!tapped) {\r\n tapped = setTimeout(function () {\r\n tapped = null;\r\n }, 300);\r\n }\r\n else {\r\n clearTimeout(tapped);\r\n tapped = null;\r\n event.preventDefault();\r\n _this.setActualSize(_this.core.index, event);\r\n }\r\n }\r\n });\r\n this.core.LGel.on(lGEvents.containerResize + \".zoom \" + lGEvents.rotateRight + \".zoom \" + lGEvents.rotateLeft + \".zoom \" + lGEvents.flipHorizontal + \".zoom \" + lGEvents.flipVertical + \".zoom\", function () {\r\n if (!_this.core.lgOpened ||\r\n !_this.isImageSlide(_this.core.index) ||\r\n _this.core.touchAction) {\r\n return;\r\n }\r\n var _LGel = _this.core\r\n .getSlideItem(_this.core.index)\r\n .find('.lg-img-wrap')\r\n .first();\r\n _this.top = 0;\r\n _this.left = 0;\r\n _this.setZoomEssentials();\r\n _this.setZoomSwipeStyles(_LGel, { x: 0, y: 0 });\r\n _this.positionChanged = true;\r\n });\r\n // Update zoom on resize and orientationchange\r\n this.$LG(window).on(\"scroll.lg.zoom.global\" + this.core.lgId, function () {\r\n if (!_this.core.lgOpened)\r\n return;\r\n _this.scrollTop = _this.$LG(window).scrollTop();\r\n });\r\n this.core.getElementById('lg-zoom-out').on('click.lg', function () {\r\n // Allow zoom only on image\r\n if (!_this.isImageSlide(_this.core.index)) {\r\n return;\r\n }\r\n var timeout = 0;\r\n if (_this.imageReset) {\r\n _this.resetImageTranslate(_this.core.index);\r\n timeout = 50;\r\n }\r\n setTimeout(function () {\r\n var scale = _this.scale - _this.settings.scale;\r\n if (scale < 1) {\r\n scale = 1;\r\n }\r\n _this.beginZoom(scale);\r\n _this.zoomImage(scale, -_this.settings.scale, true, !_this.settings.infiniteZoom);\r\n }, timeout);\r\n });\r\n this.core.getElementById('lg-zoom-in').on('click.lg', function () {\r\n _this.zoomIn();\r\n });\r\n this.core.getElementById('lg-actual-size').on('click.lg', function () {\r\n _this.setActualSize(_this.core.index);\r\n });\r\n this.core.LGel.on(lGEvents.beforeOpen + \".zoom\", function () {\r\n _this.core.outer.find('.lg-item').removeClass('lg-zoomable');\r\n });\r\n this.core.LGel.on(lGEvents.afterOpen + \".zoom\", function () {\r\n _this.scrollTop = _this.$LG(window).scrollTop();\r\n // Set the initial value center\r\n _this.pageX = _this.core.outer.width() / 2;\r\n _this.pageY = _this.core.outer.height() / 2 + _this.scrollTop;\r\n _this.scale = 1;\r\n });\r\n // Reset zoom on slide change\r\n this.core.LGel.on(lGEvents.afterSlide + \".zoom\", function (event) {\r\n var prevIndex = event.detail.prevIndex;\r\n _this.scale = 1;\r\n _this.positionChanged = false;\r\n _this.zoomInProgress = false;\r\n _this.resetZoom(prevIndex);\r\n _this.resetImageTranslate(prevIndex);\r\n if (_this.isImageSlide(_this.core.index)) {\r\n _this.setZoomEssentials();\r\n }\r\n });\r\n // Drag option after zoom\r\n this.zoomDrag();\r\n this.pinchZoom();\r\n this.zoomSwipe();\r\n // Store the zoomable timeout value just to clear it while closing\r\n this.zoomableTimeout = false;\r\n this.positionChanged = false;\r\n this.zoomInProgress = false;\r\n };\r\n Zoom.prototype.zoomIn = function () {\r\n // Allow zoom only on image\r\n if (!this.isImageSlide(this.core.index)) {\r\n return;\r\n }\r\n var scale = this.scale + this.settings.scale;\r\n if (!this.settings.infiniteZoom) {\r\n scale = this.getScale(scale);\r\n }\r\n this.beginZoom(scale);\r\n this.zoomImage(scale, Math.min(this.settings.scale, scale - this.scale), true, !this.settings.infiniteZoom);\r\n };\r\n // Reset zoom effect\r\n Zoom.prototype.resetZoom = function (index) {\r\n this.core.outer.removeClass('lg-zoomed lg-zoom-drag-transition');\r\n var $actualSize = this.core.getElementById('lg-actual-size');\r\n var $item = this.core.getSlideItem(index !== undefined ? index : this.core.index);\r\n $actualSize\r\n .removeClass(this.settings.actualSizeIcons.zoomOut)\r\n .addClass(this.settings.actualSizeIcons.zoomIn);\r\n $item.find('.lg-img-wrap').first().removeAttr('style');\r\n $item.find('.lg-image').first().removeAttr('style');\r\n this.scale = 1;\r\n this.left = 0;\r\n this.top = 0;\r\n // Reset pagx pagy values to center\r\n this.setPageCords();\r\n };\r\n Zoom.prototype.getTouchDistance = function (e) {\r\n return Math.sqrt((e.touches[0].pageX - e.touches[1].pageX) *\r\n (e.touches[0].pageX - e.touches[1].pageX) +\r\n (e.touches[0].pageY - e.touches[1].pageY) *\r\n (e.touches[0].pageY - e.touches[1].pageY));\r\n };\r\n Zoom.prototype.pinchZoom = function () {\r\n var _this = this;\r\n var startDist = 0;\r\n var pinchStarted = false;\r\n var initScale = 1;\r\n var prevScale = 0;\r\n var $item = this.core.getSlideItem(this.core.index);\r\n this.core.outer.on('touchstart.lg', function (e) {\r\n $item = _this.core.getSlideItem(_this.core.index);\r\n if (!_this.isImageSlide(_this.core.index)) {\r\n return;\r\n }\r\n if (e.touches.length === 2) {\r\n e.preventDefault();\r\n if (_this.core.outer.hasClass('lg-first-slide-loading')) {\r\n return;\r\n }\r\n initScale = _this.scale || 1;\r\n _this.core.outer.removeClass('lg-zoom-drag-transition lg-zoom-dragging');\r\n _this.setPageCords(e);\r\n _this.resetImageTranslate(_this.core.index);\r\n _this.core.touchAction = 'pinch';\r\n startDist = _this.getTouchDistance(e);\r\n }\r\n });\r\n this.core.$inner.on('touchmove.lg', function (e) {\r\n if (e.touches.length === 2 &&\r\n _this.core.touchAction === 'pinch' &&\r\n (_this.$LG(e.target).hasClass('lg-item') ||\r\n $item.get().contains(e.target))) {\r\n e.preventDefault();\r\n var endDist = _this.getTouchDistance(e);\r\n var distance = startDist - endDist;\r\n if (!pinchStarted && Math.abs(distance) > 5) {\r\n pinchStarted = true;\r\n }\r\n if (pinchStarted) {\r\n prevScale = _this.scale;\r\n var _scale = Math.max(1, initScale + -distance * 0.02);\r\n _this.scale =\r\n Math.round((_scale + Number.EPSILON) * 100) / 100;\r\n var diff = _this.scale - prevScale;\r\n _this.zoomImage(_this.scale, Math.round((diff + Number.EPSILON) * 100) / 100, false, false);\r\n }\r\n }\r\n });\r\n this.core.$inner.on('touchend.lg', function (e) {\r\n if (_this.core.touchAction === 'pinch' &&\r\n (_this.$LG(e.target).hasClass('lg-item') ||\r\n $item.get().contains(e.target))) {\r\n pinchStarted = false;\r\n startDist = 0;\r\n if (_this.scale <= 1) {\r\n _this.resetZoom();\r\n }\r\n else {\r\n var actualSizeScale = _this.getCurrentImageActualSizeScale();\r\n if (_this.scale >= actualSizeScale) {\r\n var scaleDiff = actualSizeScale - _this.scale;\r\n if (scaleDiff === 0) {\r\n scaleDiff = 0.01;\r\n }\r\n _this.zoomImage(actualSizeScale, scaleDiff, false, true);\r\n }\r\n _this.manageActualPixelClassNames();\r\n _this.core.outer.addClass('lg-zoomed');\r\n }\r\n _this.core.touchAction = undefined;\r\n }\r\n });\r\n };\r\n Zoom.prototype.touchendZoom = function (startCoords, endCoords, allowX, allowY, touchDuration) {\r\n var distanceXnew = endCoords.x - startCoords.x;\r\n var distanceYnew = endCoords.y - startCoords.y;\r\n var speedX = Math.abs(distanceXnew) / touchDuration + 1;\r\n var speedY = Math.abs(distanceYnew) / touchDuration + 1;\r\n if (speedX > 2) {\r\n speedX += 1;\r\n }\r\n if (speedY > 2) {\r\n speedY += 1;\r\n }\r\n distanceXnew = distanceXnew * speedX;\r\n distanceYnew = distanceYnew * speedY;\r\n var _LGel = this.core\r\n .getSlideItem(this.core.index)\r\n .find('.lg-img-wrap')\r\n .first();\r\n var distance = {};\r\n distance.x = this.left + distanceXnew;\r\n distance.y = this.top + distanceYnew;\r\n var possibleSwipeCords = this.getPossibleSwipeDragCords();\r\n if (Math.abs(distanceXnew) > 15 || Math.abs(distanceYnew) > 15) {\r\n if (allowY) {\r\n if (this.isBeyondPossibleTop(distance.y, possibleSwipeCords.minY)) {\r\n distance.y = possibleSwipeCords.minY;\r\n }\r\n else if (this.isBeyondPossibleBottom(distance.y, possibleSwipeCords.maxY)) {\r\n distance.y = possibleSwipeCords.maxY;\r\n }\r\n }\r\n if (allowX) {\r\n if (this.isBeyondPossibleLeft(distance.x, possibleSwipeCords.minX)) {\r\n distance.x = possibleSwipeCords.minX;\r\n }\r\n else if (this.isBeyondPossibleRight(distance.x, possibleSwipeCords.maxX)) {\r\n distance.x = possibleSwipeCords.maxX;\r\n }\r\n }\r\n if (allowY) {\r\n this.top = distance.y;\r\n }\r\n else {\r\n distance.y = this.top;\r\n }\r\n if (allowX) {\r\n this.left = distance.x;\r\n }\r\n else {\r\n distance.x = this.left;\r\n }\r\n this.setZoomSwipeStyles(_LGel, distance);\r\n this.positionChanged = true;\r\n }\r\n };\r\n Zoom.prototype.getZoomSwipeCords = function (startCoords, endCoords, allowX, allowY, possibleSwipeCords) {\r\n var distance = {};\r\n if (allowY) {\r\n distance.y = this.top + (endCoords.y - startCoords.y);\r\n if (this.isBeyondPossibleTop(distance.y, possibleSwipeCords.minY)) {\r\n var diffMinY = possibleSwipeCords.minY - distance.y;\r\n distance.y = possibleSwipeCords.minY - diffMinY / 6;\r\n }\r\n else if (this.isBeyondPossibleBottom(distance.y, possibleSwipeCords.maxY)) {\r\n var diffMaxY = distance.y - possibleSwipeCords.maxY;\r\n distance.y = possibleSwipeCords.maxY + diffMaxY / 6;\r\n }\r\n }\r\n else {\r\n distance.y = this.top;\r\n }\r\n if (allowX) {\r\n distance.x = this.left + (endCoords.x - startCoords.x);\r\n if (this.isBeyondPossibleLeft(distance.x, possibleSwipeCords.minX)) {\r\n var diffMinX = possibleSwipeCords.minX - distance.x;\r\n distance.x = possibleSwipeCords.minX - diffMinX / 6;\r\n }\r\n else if (this.isBeyondPossibleRight(distance.x, possibleSwipeCords.maxX)) {\r\n var difMaxX = distance.x - possibleSwipeCords.maxX;\r\n distance.x = possibleSwipeCords.maxX + difMaxX / 6;\r\n }\r\n }\r\n else {\r\n distance.x = this.left;\r\n }\r\n return distance;\r\n };\r\n Zoom.prototype.isBeyondPossibleLeft = function (x, minX) {\r\n return x >= minX;\r\n };\r\n Zoom.prototype.isBeyondPossibleRight = function (x, maxX) {\r\n return x <= maxX;\r\n };\r\n Zoom.prototype.isBeyondPossibleTop = function (y, minY) {\r\n return y >= minY;\r\n };\r\n Zoom.prototype.isBeyondPossibleBottom = function (y, maxY) {\r\n return y <= maxY;\r\n };\r\n Zoom.prototype.isImageSlide = function (index) {\r\n var currentItem = this.core.galleryItems[index];\r\n return this.core.getSlideType(currentItem) === 'image';\r\n };\r\n Zoom.prototype.getPossibleSwipeDragCords = function (scale) {\r\n var $image = this.core\r\n .getSlideItem(this.core.index)\r\n .find('.lg-image')\r\n .first();\r\n var bottom = this.core.mediaContainerPosition.bottom;\r\n var imgRect = $image.get().getBoundingClientRect();\r\n var imageHeight = imgRect.height;\r\n var imageWidth = imgRect.width;\r\n if (scale) {\r\n imageHeight = imageHeight + scale * imageHeight;\r\n imageWidth = imageWidth + scale * imageWidth;\r\n }\r\n var minY = (imageHeight - this.containerRect.height) / 2;\r\n var maxY = (this.containerRect.height - imageHeight) / 2 + bottom;\r\n var minX = (imageWidth - this.containerRect.width) / 2;\r\n var maxX = (this.containerRect.width - imageWidth) / 2;\r\n var possibleSwipeCords = {\r\n minY: minY,\r\n maxY: maxY,\r\n minX: minX,\r\n maxX: maxX,\r\n };\r\n return possibleSwipeCords;\r\n };\r\n Zoom.prototype.setZoomSwipeStyles = function (LGel, distance) {\r\n LGel.css('transform', 'translate3d(' + distance.x + 'px, ' + distance.y + 'px, 0)');\r\n };\r\n Zoom.prototype.zoomSwipe = function () {\r\n var _this = this;\r\n var startCoords = {};\r\n var endCoords = {};\r\n var isMoved = false;\r\n // Allow x direction drag\r\n var allowX = false;\r\n // Allow Y direction drag\r\n var allowY = false;\r\n var startTime = new Date();\r\n var endTime = new Date();\r\n var possibleSwipeCords;\r\n var _LGel;\r\n var $item = this.core.getSlideItem(this.core.index);\r\n this.core.$inner.on('touchstart.lg', function (e) {\r\n // Allow zoom only on image\r\n if (!_this.isImageSlide(_this.core.index)) {\r\n return;\r\n }\r\n $item = _this.core.getSlideItem(_this.core.index);\r\n if ((_this.$LG(e.target).hasClass('lg-item') ||\r\n $item.get().contains(e.target)) &&\r\n e.touches.length === 1 &&\r\n _this.core.outer.hasClass('lg-zoomed')) {\r\n e.preventDefault();\r\n startTime = new Date();\r\n _this.core.touchAction = 'zoomSwipe';\r\n _LGel = _this.core\r\n .getSlideItem(_this.core.index)\r\n .find('.lg-img-wrap')\r\n .first();\r\n var dragAllowedAxises = _this.getDragAllowedAxises(0);\r\n allowY = dragAllowedAxises.allowY;\r\n allowX = dragAllowedAxises.allowX;\r\n if (allowX || allowY) {\r\n startCoords = _this.getSwipeCords(e);\r\n }\r\n possibleSwipeCords = _this.getPossibleSwipeDragCords();\r\n // reset opacity and transition duration\r\n _this.core.outer.addClass('lg-zoom-dragging lg-zoom-drag-transition');\r\n }\r\n });\r\n this.core.$inner.on('touchmove.lg', function (e) {\r\n if (e.touches.length === 1 &&\r\n _this.core.touchAction === 'zoomSwipe' &&\r\n (_this.$LG(e.target).hasClass('lg-item') ||\r\n $item.get().contains(e.target))) {\r\n e.preventDefault();\r\n _this.core.touchAction = 'zoomSwipe';\r\n endCoords = _this.getSwipeCords(e);\r\n var distance = _this.getZoomSwipeCords(startCoords, endCoords, allowX, allowY, possibleSwipeCords);\r\n if (Math.abs(endCoords.x - startCoords.x) > 15 ||\r\n Math.abs(endCoords.y - startCoords.y) > 15) {\r\n isMoved = true;\r\n _this.setZoomSwipeStyles(_LGel, distance);\r\n }\r\n }\r\n });\r\n this.core.$inner.on('touchend.lg', function (e) {\r\n if (_this.core.touchAction === 'zoomSwipe' &&\r\n (_this.$LG(e.target).hasClass('lg-item') ||\r\n $item.get().contains(e.target))) {\r\n e.preventDefault();\r\n _this.core.touchAction = undefined;\r\n _this.core.outer.removeClass('lg-zoom-dragging');\r\n if (!isMoved) {\r\n return;\r\n }\r\n isMoved = false;\r\n endTime = new Date();\r\n var touchDuration = endTime.valueOf() - startTime.valueOf();\r\n _this.touchendZoom(startCoords, endCoords, allowX, allowY, touchDuration);\r\n }\r\n });\r\n };\r\n Zoom.prototype.zoomDrag = function () {\r\n var _this = this;\r\n var startCoords = {};\r\n var endCoords = {};\r\n var isDragging = false;\r\n var isMoved = false;\r\n // Allow x direction drag\r\n var allowX = false;\r\n // Allow Y direction drag\r\n var allowY = false;\r\n var startTime;\r\n var endTime;\r\n var possibleSwipeCords;\r\n var _LGel;\r\n this.core.outer.on('mousedown.lg.zoom', function (e) {\r\n // Allow zoom only on image\r\n if (!_this.isImageSlide(_this.core.index)) {\r\n return;\r\n }\r\n var $item = _this.core.getSlideItem(_this.core.index);\r\n if (_this.$LG(e.target).hasClass('lg-item') ||\r\n $item.get().contains(e.target)) {\r\n startTime = new Date();\r\n _LGel = _this.core\r\n .getSlideItem(_this.core.index)\r\n .find('.lg-img-wrap')\r\n .first();\r\n var dragAllowedAxises = _this.getDragAllowedAxises(0);\r\n allowY = dragAllowedAxises.allowY;\r\n allowX = dragAllowedAxises.allowX;\r\n if (_this.core.outer.hasClass('lg-zoomed')) {\r\n if (_this.$LG(e.target).hasClass('lg-object') &&\r\n (allowX || allowY)) {\r\n e.preventDefault();\r\n startCoords = _this.getDragCords(e);\r\n possibleSwipeCords = _this.getPossibleSwipeDragCords();\r\n isDragging = true;\r\n _this.core.outer\r\n .removeClass('lg-grab')\r\n .addClass('lg-grabbing lg-zoom-drag-transition lg-zoom-dragging');\r\n // reset opacity and transition duration\r\n }\r\n }\r\n }\r\n });\r\n this.$LG(window).on(\"mousemove.lg.zoom.global\" + this.core.lgId, function (e) {\r\n if (isDragging) {\r\n isMoved = true;\r\n endCoords = _this.getDragCords(e);\r\n var distance = _this.getZoomSwipeCords(startCoords, endCoords, allowX, allowY, possibleSwipeCords);\r\n _this.setZoomSwipeStyles(_LGel, distance);\r\n }\r\n });\r\n this.$LG(window).on(\"mouseup.lg.zoom.global\" + this.core.lgId, function (e) {\r\n if (isDragging) {\r\n endTime = new Date();\r\n isDragging = false;\r\n _this.core.outer.removeClass('lg-zoom-dragging');\r\n // Fix for chrome mouse move on click\r\n if (isMoved &&\r\n (startCoords.x !== endCoords.x ||\r\n startCoords.y !== endCoords.y)) {\r\n endCoords = _this.getDragCords(e);\r\n var touchDuration = endTime.valueOf() - startTime.valueOf();\r\n _this.touchendZoom(startCoords, endCoords, allowX, allowY, touchDuration);\r\n }\r\n isMoved = false;\r\n }\r\n _this.core.outer.removeClass('lg-grabbing').addClass('lg-grab');\r\n });\r\n };\r\n Zoom.prototype.closeGallery = function () {\r\n this.resetZoom();\r\n this.zoomInProgress = false;\r\n };\r\n Zoom.prototype.destroy = function () {\r\n // Unbind all events added by lightGallery zoom plugin\r\n this.$LG(window).off(\".lg.zoom.global\" + this.core.lgId);\r\n this.core.LGel.off('.lg.zoom');\r\n this.core.LGel.off('.zoom');\r\n clearTimeout(this.zoomableTimeout);\r\n this.zoomableTimeout = false;\r\n };\r\n return Zoom;\r\n}());\n\nexport default Zoom;\n//# sourceMappingURL=lg-zoom.es5.js.map\n"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","lGEvents","lightGalleryCoreSettings","mode","easing","speed","licenseKey","height","width","addClass","startClass","backdropDuration","container","startAnimationDuration","zoomFromOrigin","hideBarsDelay","showBarsAfter","slideDelay","supportLegacyBrowser","allowMediaOverlap","videoMaxSize","loadYouTubePoster","defaultCaptionHeight","ariaLabelledby","ariaDescribedby","resetScrollPosition","hideScrollbar","closable","swipeToClose","closeOnTap","showCloseIcon","showMaximizeIcon","loop","escKey","keyPress","trapFocus","controls","slideEndAnimation","hideControlOnEnd","mousewheel","getCaptionFromTitleOrAlt","appendSubHtmlTo","subHtmlSelectorRelative","preload","numberOfSlideItemsInDom","selector","selectWithin","nextHtml","prevHtml","index","iframeWidth","iframeHeight","iframeMaxWidth","iframeMaxHeight","download","counter","appendCounterTo","swipeThreshold","enableSwipe","enableDrag","dynamic","dynamicEl","extraProps","exThumbImage","isMobile","undefined","mobileSettings","plugins","strings","closeGallery","toggleMaximize","previousSlide","nextSlide","playVideo","mediaLoadingFailed","lgQuery","cssVenderPrefixes","_getSelector","firstElement","_getFirstEl","generateUUID","replace","c","r","Math","random","toString","context","document","substring","querySelector","querySelectorAll","_each","func","forEach","_setCssVendorPrefix","el","cssProperty","value","property","group1","toUpperCase","indexOf","style","charAt","toLowerCase","slice","isEventMatched","event","eventName","eventNamespace","split","filter","e","every","attr","getAttribute","setAttribute","find","$LG","first","eq","parent","parentElement","get","removeAttr","attributes","attrs","removeAttribute","wrap","className","wrapper","createElement","parentNode","insertBefore","removeChild","appendChild","classNames","classList","add","removeClass","remove","hasClass","contains","hasAttribute","attribute","toggleClass","css","_this","on","events","listener","Array","isArray","eventListeners","push","addEventListener","once","off","keys","removeEventListener","trigger","detail","customEvent","CustomEvent","dispatchEvent","load","url","fetch","then","res","text","html","innerHTML","append","insertAdjacentHTML","prepend","empty","scrollTop","body","documentElement","window","pageYOffset","scrollLeft","pageXOffset","offset","left","top","rect","getBoundingClientRect","bodyMarginLeft","marginLeft","parseFloat","currentStyle","getComputedStyle","clientWidth","paddingLeft","paddingRight","clientHeight","paddingTop","paddingBottom","params","bubbles","cancelable","evt","createEvent","initCustomEvent","Element","matches","msMatchesSelector","webkitMatchesSelector","defaultDynamicOptions","convertToData","g","utils","spacing","defaultLgSize","lgSize","isResponsiveSizes","wWidth","innerWidth","size_1","parseInt","size","cWidth","cHeight","maxWidth","min","maxHeight","ratio","bottom","imageSize","LGel","containerRect","wHeight","elWidth","elHeight","elStyle","x","borderLeft","y","borderTop","src","iframeTitle","altAttr","srcset","sizes","sources","imgMarkup","sourceTag","JSON","parse","map","source","key","srcItms","rsWidth","rsSrc","_src","splice","j","img","complete","naturalWidth","_poster","dummyImg","videoContStyle","playVideoString","_isVideo","youtube","vimeo","elements","element","display","visibility","items","dynamicElements","availableDynamicOptions","il","k","a","jl","__spreadArrays","item","specified","dynamicAttr","name","label","currentItem","alt","title","thumb","subHtml","test","navigator","userAgent","isHTML5VIdeo","html5","console","error","match","wistia","lgId","LightGallery","options","lgOpened","lGalleryOn","lgBusy","currentItemsInDom","prevScrollTop","bodyPaddingRight","isDummyImageRemoved","dragOrSwipeEnabled","mediaContainerPosition","generateSettings","buildModules","settings","galleryItems","getItems","normalizeSettings","init","validateLicense","addSlideVideoInfo","buildStructure","instance","setTimeout","triggerPosterClick","arrow","openGalleryOnItemClick","_loop_1","this_1","$element","uuid","preventDefault","currentItemIndex","openGallery","plugin","warn","getSlideItem","getSlideItemId","getIdName","id","getElementById","manageSingleSlideClassName","outer","$container","subHtmlCont","addClasses","containerClassName","closeIcon","maximizeIcon","template","$lgComponents","$backdrop","$inner","$content","$toolbar","outerClassNames","refreshOnResize","hideBars","manageCloseGallery","initModules","__slideVideoInfo","getMediaContainerPosition","_a","top_1","currentImageSize","resizeVideoSlide","imgStyle","getDummyImgStyles","lgVideoStyle","getVideoContStyle","updateSlides","currentSrc","updateControls","_index","some","galleryItem","itemIndex","organizeSlideItems","loadContent","updateCurrentCounter","children","shouldHideScrollbar","bodyRect","scrollbarWidth","resetScrollBar","itemsToBeInsertedToDom","getItemsToBeInsertedToDom","addHtml","transform","setMediaContainerPosition","timeout","currentSlide_1","slide","captionHeight","thumbContainer","clearTimeout","hideBarTimeout","initPictureFill","$img","picturefill","counterHtml","subHtmlUrl","fL","currentSlide","getDummyImageContent","$currentSlide","$currentItem","_dummyImgSrc","dummyImgContent","setImgMarkup","currentGalleryItem","isFirstSlideWithZoomAnimation","onSlideObjectLoad","$slide","isHTML5VideoWithoutPoster","onLoad","onError","mediaObject","onLgObjectLoad","delay","isFirstSlide","triggerSlideItemLoad","_speed","getSlideType","poster","video","rec","_html5Video","responsive","srcDyItms","videoInfo","iframe","top_2","videoSize","markup","html5Video","hasPoster","loadContentOnFirstSlideLoad","prevIndex","numberOfItems","possibleNumberOfItems","max","prevIndexItem","_element","idx","numberOfExistingItems","getPreviousSlideIndex","currentItemId","setDownloadValue","downloadUrl","$download","makeSlideAnimation","direction","currentSlideItem","previousSlideItem","fromTouch","fromThumb","numberOfGalleryItems","previousSlideItem_1","top_3","arrowDisable","touchPrev","touchNext","updateCounterTotal","touchMove","startCoords","endCoords","distanceX","pageX","distanceY","pageY","allowSwipe","swipeDirection","abs","setTranslate","offsetWidth","gutter","opacity","innerHeight","scale","touchEnd","distance","triggerClick","distanceAbs","goToNextSlide","goToPrevSlide","target","isPosterElement","isMoved","isSwiping","$item","touches","touchAction","manageSwipeClass","isDraging","_touchNext","_touchPrev","_loop","keyCode","$prev","$next","$el","xValue","yValue","scaleX","scaleY","lastCall","deltaY","now","Date","getTime","isSlideElement","playButton","invalidateItems","focus","preventScroll","focusableEls","firstFocusableEl","lastFocusableEl","shiftKey","activeElement","mousedown","force","top_4","_b","destroyModules","removeTimeout","blur","module","err","destroy","refresh","destroyGallery","closeTimeout","bind","thumbnailsSettings","thumbnail","animateThumb","currentPagerPosition","alignThumbnails","thumbWidth","thumbHeight","thumbMargin","appendThumbnailsTo","toggleThumb","enableThumbDrag","enableThumbSwipe","thumbnailSwipeThreshold","loadYouTubeThumbnail","youTubeThumbSize","thumbnailPluginStrings","toggleThumbnails","Thumbnail","thumbOuterWidth","thumbTotalWidth","translateX","thumbClickable","core","setAnimateThumbStyles","build","toggleThumbBar","thumbKeyPress","setThumbMarkup","manageActiveClassOnSlideChange","$lgThumb","$target","rebuildThumbnails","thumbOuterClassNames","$thumbOuter","setThumbItemHtml","thumbDragUtils","cords","startX","endX","newTranslateX","startTime","endTime","touchMoveTime","isDragging","onThumbTouchMove","onThumbTouchEnd","targetTouches","getPossibleTransformX","position","valueOf","touchDuration","distanceXnew","speedX","getThumbHtml","thumbImg","slideVideoInfo","getThumbItemHtml","thumbList","$thumb","zoomSettings","zoom","infiniteZoom","actualSize","showZoomInOutIcons","actualSizeIcons","zoomIn","zoomOut","enableZoomAfter","zoomPluginStrings","viewActualSize","Zoom","buildTemplates","zoomIcons","enableZoom","zoomableTimeout","isImageSlide","setZoomEssentials","enableZoomOnSlideItemLoad","getDragCords","getSwipeCords","getDragAllowedAxises","scaleDiff","$image","offsetHeight","allowY","allowX","zoomImage","reposition","resetToMax","originalX","originalY","offsetX","offsetY","positionChanged","dragAllowedAxises","possibleSwipeCords","getPossibleSwipeDragCords","_x","_y","scaleVal","isBeyondPossibleLeft","minX","isBeyondPossibleRight","maxX","isBeyondPossibleTop","minY","isBeyondPossibleBottom","maxY","setZoomStyles","setZoomImageSize","resetImageTranslate","imageReset","actualSizeScale","getCurrentImageActualSizeScale","naturalHeight","ZOOM_TRANSITION_DURATION","$imageWrap","$dummyImage","setActualSize","zoomInProgress","prevScale","getScale","setPageCords","beginZoom","getNaturalWidth","getActualSizeScale","getPageCords","pageCords","manageActualPixelClassNames","resetZoom","tapped","_LGel","setZoomSwipeStyles","zoomDrag","pinchZoom","zoomSwipe","$actualSize","getTouchDistance","sqrt","startDist","pinchStarted","initScale","endDist","_scale","round","Number","EPSILON","diff","touchendZoom","distanceYnew","speedY","getZoomSwipeCords","diffMinY","diffMaxY","diffMinX","difMaxX","imgRect","imageHeight","imageWidth"],"sourceRoot":""}