UNPKG

220 kBSource Map (JSON)View Raw
1{"version":3,"file":"Lightgallery.umd.js","sources":["../../dist/lightgallery.es5.js"],"sourcesContent":["/*!\n * lightgallery | 2.7.1 | January 11th 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 },\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 \"<div class=\\\"lg-video-cont lg-has-iframe\\\" style=\\\"width:\" + iframeWidth + \"; max-width:\" + iframeMaxWidth + \"; height: \" + iframeHeight + \"; max-height:\" + iframeMaxHeight + \"\\\">\\n <iframe class=\\\"lg-object\\\" frameborder=\\\"0\\\" \" + title + \" src=\\\"\" + src + \"\\\" allowfullscreen=\\\"true\\\"></iframe>\\n </div>\";\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 = \"<img \" + altAttr + \" \" + srcsetAttr + \" \" + sizesAttr + \" class=\\\"lg-object lg-image\\\" data-index=\\\"\" + index + \"\\\" src=\\\"\" + src + \"\\\" />\";\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 \"<source \" + attrs + \"></source>\";\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 \"<div class=\\\"lg-video-cont \" + videoClass + \"\\\" style=\\\"\" + videoContStyle + \"\\\">\\n <div class=\\\"lg-video-play-button\\\">\\n <svg\\n viewBox=\\\"0 0 20 20\\\"\\n preserveAspectRatio=\\\"xMidYMid\\\"\\n focusable=\\\"false\\\"\\n aria-labelledby=\\\"\" + playVideoString + \"\\\"\\n role=\\\"img\\\"\\n class=\\\"lg-video-play-icon\\\"\\n >\\n <title>\" + playVideoString + \"</title>\\n <polygon class=\\\"lg-video-play-icon-inner\\\" points=\\\"1,0 20,10 1,20\\\"></polygon>\\n </svg>\\n <svg class=\\\"lg-video-play-icon-bg\\\" viewBox=\\\"0 0 50 50\\\" focusable=\\\"false\\\">\\n <circle cx=\\\"50%\\\" cy=\\\"50%\\\" r=\\\"20\\\"></circle></svg>\\n <svg class=\\\"lg-video-play-icon-circle\\\" viewBox=\\\"0 0 50 50\\\" focusable=\\\"false\\\">\\n <circle cx=\\\"50%\\\" cy=\\\"50%\\\" r=\\\"20\\\"></circle>\\n </svg>\\n </div>\\n \" + (dummyImg || '') + \"\\n <img class=\\\"lg-object lg-video-poster\\\" src=\\\"\" + _poster + \"\\\" />\\n </div>\";\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 = \"<button type=\\\"button\\\" id=\\\"\" + this.getIdName('lg-prev') + \"\\\" aria-label=\\\"\" + this.settings.strings['previousSlide'] + \"\\\" class=\\\"lg-prev lg-icon\\\"> \" + this.settings.prevHtml + \" </button>\\n <button type=\\\"button\\\" id=\\\"\" + this.getIdName('lg-next') + \"\\\" aria-label=\\\"\" + this.settings.strings['nextSlide'] + \"\\\" class=\\\"lg-next lg-icon\\\"> \" + this.settings.nextHtml + \" </button>\";\r\n }\r\n if (this.settings.appendSubHtmlTo !== '.lg-item') {\r\n subHtmlCont =\r\n '<div class=\"lg-sub-html\" role=\"status\" aria-live=\"polite\"></div>';\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 ? \"<button type=\\\"button\\\" aria-label=\\\"\" + this.settings.strings['closeGallery'] + \"\\\" id=\\\"\" + this.getIdName('lg-close') + \"\\\" class=\\\"lg-close lg-icon\\\"></button>\"\r\n : '';\r\n var maximizeIcon = this.settings.showMaximizeIcon\r\n ? \"<button type=\\\"button\\\" aria-label=\\\"\" + this.settings.strings['toggleMaximize'] + \"\\\" id=\\\"\" + this.getIdName('lg-maximize') + \"\\\" class=\\\"lg-maximize lg-icon\\\"></button>\"\r\n : '';\r\n var template = \"\\n <div class=\\\"\" + containerClassName + \"\\\" id=\\\"\" + this.getIdName('lg-container') + \"\\\" tabindex=\\\"-1\\\" aria-modal=\\\"true\\\" \" + ariaLabelledby + \" \" + ariaDescribedby + \" role=\\\"dialog\\\"\\n >\\n <div id=\\\"\" + this.getIdName('lg-backdrop') + \"\\\" class=\\\"lg-backdrop\\\"></div>\\n\\n <div id=\\\"\" + this.getIdName('lg-outer') + \"\\\" class=\\\"lg-outer lg-use-css3 lg-css3 lg-hide-items \" + addClasses + \" \\\">\\n\\n <div id=\\\"\" + this.getIdName('lg-content') + \"\\\" class=\\\"lg-content\\\">\\n <div id=\\\"\" + this.getIdName('lg-inner') + \"\\\" class=\\\"lg-inner\\\">\\n </div>\\n \" + controls + \"\\n </div>\\n <div id=\\\"\" + this.getIdName('lg-toolbar') + \"\\\" class=\\\"lg-toolbar lg-group\\\">\\n \" + maximizeIcon + \"\\n \" + closeIcon + \"\\n </div>\\n \" + (this.settings.appendSubHtmlTo === '.lg-outer'\r\n ? subHtmlCont\r\n : '') + \"\\n <div id=\\\"\" + this.getIdName('lg-components') + \"\\\" class=\\\"lg-components\\\">\\n \" + (this.settings.appendSubHtmlTo === '.lg-sub-html'\r\n ? subHtmlCont\r\n : '') + \"\\n </div>\\n </div>\\n </div>\\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(\"<a id=\\\"\" + this.getIdName('lg-download') + \"\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\" aria-label=\\\"\" + this.settings.strings['download'] + \"\\\" download class=\\\"lg-download lg-icon\\\"></a>\");\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 <a href=\"/demos/update-slides/\">Demo</a>\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: '<h4>Image 1 title</h4><p>Image 1 descriptions.</p>',\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 + (\"<div id=\\\"\" + item + \"\\\" class=\\\"lg-item\\\"></div>\");\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 = \"<div class=\\\"lg-counter\\\" role=\\\"status\\\" aria-live=\\\"polite\\\">\\n <span id=\\\"\" + this.getIdName('lg-counter-current') + \"\\\" class=\\\"lg-counter-current\\\">\" + (this.index + 1) + \" </span> /\\n <span id=\\\"\" + this.getIdName('lg-counter-all') + \"\\\" class=\\\"lg-counter-all\\\">\" + this.galleryItems.length + \" </span></div>\";\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(\"<div class=\\\"lg-sub-html\\\">\" + subHtml + \"</div>\");\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 = \"<img \" + alt + \" style=\\\"\" + imgStyle + \"\\\" class=\\\"lg-dummy-img\\\" src=\\\"\" + _dummyImgSrc + \"\\\" />\";\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 = \"<picture class=\\\"lg-img-wrap\\\"> \" + imgContent + \"</picture>\";\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('<span class=\"lg-error-msg\">Oops... Failed to load content...</span>');\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 = \"<div class=\\\"lg-video-cont \\\" style=\\\"\" + lgVideoStyle + \"\\\"></div>\";\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(\"<div id=\\\"\" + item + \"\\\" class=\\\"lg-item\\\"></div>\");\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 <a href=\"/demos/methods/\">Demo</a>\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 <a href=\"/demos/methods/\">Demo</a>\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 <a href=\"/demos/dynamic-mode/\">Demo</a>\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"],"names":[],"mappings":"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"}
\No newline at end of file