{"version":3,"sources":["node_modules/lightgallery/dist/js/lightgallery.js","node_modules/lightgallery/modules/lg-video.js","node_modules/lightgallery/modules/lg-zoom.js","resources/assets/general/js/attachment_previews.js"],"names":["root","factory","define","amd","module","exports","require","this","$","defaults","mode","cssEasing","easing","speed","height","width","addClass","startClass","backdropDuration","hideBarsDelay","useLeft","ariaLabelledby","ariaDescribedby","closable","loop","escKey","keyPress","controls","slideEndAnimatoin","hideControlOnEnd","mousewheel","getCaptionFromTitleOrAlt","appendSubHtmlTo","subHtmlSelectorRelative","preload","showAfterLoad","selector","selectWithin","nextHtml","prevHtml","index","iframeMaxWidth","download","counter","appendCounterTo","swipeThreshold","enableSwipe","enableDrag","dynamic","dynamicEl","galleryId","supportLegacyBrowser","Plugin","element","options","el","$el","s","extend","constructor","Array","length","modules","lGalleryOn","lgBusy","hideBarTimeout","isTouch","document","documentElement","$items","find","children","$slide","$outer","init","prototype","_this","_hash","window","location","hash","indexOf","parseInt","split","hasClass","setTimeout","build","trigger","on","event","preventDefault","er","returnValue","structure","each","fn","lightGallery","key","slide","arrow","closeGallery","removeClass","clearTimeout","list","i","subHtmlCont","append","css","template","focus","setTop","eq","doCss","$inner","prevScrollTop","scrollTop","wH","top","$lGallery","transition","style","support","isVideo","src","html","attr","html5","console","error","youtube","match","vimeo","dailymotion","vk","addHtml","subHtmlUrl","$currentEle","fL","subHtml","first","substring","load","j","loadContent","rec","delay","_$img","_src","_poster","_srcset","_html","_alt","_hasPoster","getResponsiveSrc","srcItms","rsWidth","rsSrc","__src","splice","push","wWidth","_sizes","poster","alt","responsive","srcset","sizes","iframe","_isVideo","prepend","videoClass","picturefill","elements","e","warn","_speed","fromTouch","fromThumb","direction","_length","_time","touchPrev","touchNext","_prevIndex","downloadUrl","arrowDisable","text","goToNextSlide","_loop","goToPrevSlide","keyCode","destroy","removeAttr","setTranslate","xValue","yValue","transform","touchMove","startCoords","endCoords","distance","Math","abs","touchEnd","not","isMoved","manageSwipeClass","originalEvent","targetTouches","pageX","isDraging","target","trim","scrollLeft","_touchNext","_touchPrev","deltaY","mousedown","is","d","off","removeData","remove","data","err","Video","core","videoLoaded","videoMaxWidth","autoplayFirstVideo","youtubePlayerParams","vimeoPlayerParams","dailymotionPlayerParams","vkPlayerParams","videojs","videojsOptions","loadVideo","get","play","bind","$videoCont","loadVideoOnclick","prevIndex","$videoSlide","youtubePlayer","vimeoPlayer","dailymotionPlayer","vkPlayer","html5Player","contentWindow","postMessage","Vimeo","Player","pause","catch","name","replace","noPoster","video","autoplay","a","videoTitle","title","param","_loadVideo","$tempImg","Zoom","zoom","zoomabletimeout","pageY","isChrome","scale","actualSize","enableZoomAfter","useLeftForZoom","navigator","userAgent","zoomIcons","scaleVal","$image","offsetX","prop","offsetY","x","y","parent","left","callScale","resetZoom","fromIcon","w","nw","naturalWidth","tapped","zoomDrag","zoomSwipe","getCurrentTransform","st","getComputedStyle","tm","getPropertyValue","getCurrentRotation","values","round","atan2","PI","getModifier","rotateValue","axis","originalRotate","transformValues","flipVerticalValue","modifier","flipHorizontalValue","sign","parseFloat","sinX","sinMinusX","getImageSize","getDragCords","getSwipeCords","getPossibleDragCords","minY","maxY","minX","maxX","getDragAllowedAxises","allowY","allowX","rotateEl","dragAllowedAxises","_$el","distanceY","distanceX","touchendZoom","possibleDragCords","App","loadPreviews","$message","$this","prependTo","parents","$lg","replaceWith"],"mappings":"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","file":"att.preview.min.js","sourcesContent":["/*! lightgallery - v1.10.0 - 2020-11-07\n* http://sachinchoolur.github.io/lightGallery/\n* Copyright (c) 2020 Sachin N; Licensed GPLv3 */\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module unless amdModuleId is set\n define(['jquery'], function (a0) {\n return (factory(a0));\n });\n } else if (typeof module === 'object' && module.exports) {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory(require('jquery'));\n } else {\n factory(root[\"jQuery\"]);\n }\n}(this, function ($) {\n\n(function() {\n 'use strict';\n\n var defaults = {\n\n mode: 'lg-slide',\n\n // Ex : 'ease'\n cssEasing: 'ease',\n\n //'for jquery animation'\n easing: 'linear',\n speed: 600,\n height: '100%',\n width: '100%',\n addClass: '',\n startClass: 'lg-start-zoom',\n backdropDuration: 150,\n\n // Set 0, if u don't want to hide the controls \n hideBarsDelay: 6000,\n\n useLeft: false,\n\n // aria-labelledby attribute fot gallery\n ariaLabelledby: '',\n \n //aria-describedby attribute for gallery\n ariaDescribedby: '',\n\n closable: true,\n loop: true,\n escKey: true,\n keyPress: true,\n controls: true,\n slideEndAnimatoin: true,\n hideControlOnEnd: false,\n mousewheel: true,\n\n getCaptionFromTitleOrAlt: true,\n\n // .lg-item || '.lg-sub-html'\n appendSubHtmlTo: '.lg-sub-html',\n\n subHtmlSelectorRelative: false,\n\n /**\n * @desc number of preload slides\n * will execute only after the current slide is fully loaded.\n *\n * @ex you clicked on 4th image and if preload = 1 then 3rd slide and 5th\n * slide will be loaded in the background after the 4th slide is fully loaded..\n * if preload is 2 then 2nd 3rd 5th 6th slides will be preloaded.. ... ...\n *\n */\n preload: 1,\n showAfterLoad: true,\n selector: '',\n selectWithin: '',\n nextHtml: '',\n prevHtml: '',\n\n // 0, 1\n index: false,\n\n iframeMaxWidth: '100%',\n\n download: true,\n counter: true,\n appendCounterTo: '.lg-toolbar',\n\n swipeThreshold: 50,\n enableSwipe: true,\n enableDrag: true,\n\n dynamic: false,\n dynamicEl: [],\n galleryId: 1,\n supportLegacyBrowser: true\n };\n\n function Plugin(element, options) {\n\n // Current lightGallery element\n this.el = element;\n\n // Current jquery element\n this.$el = $(element);\n\n // lightGallery settings\n this.s = $.extend({}, defaults, options);\n\n // When using dynamic mode, ensure dynamicEl is an array\n if (this.s.dynamic && this.s.dynamicEl !== 'undefined' && this.s.dynamicEl.constructor === Array && !this.s.dynamicEl.length) {\n throw ('When using dynamic mode, you must also define dynamicEl as an Array.');\n }\n\n // lightGallery modules\n this.modules = {};\n\n // false when lightgallery complete first slide;\n this.lGalleryOn = false;\n\n this.lgBusy = false;\n\n // Timeout function for hiding controls;\n this.hideBarTimeout = false;\n\n // To determine browser supports for touch events;\n this.isTouch = ('ontouchstart' in document.documentElement);\n\n // Disable hideControlOnEnd if sildeEndAnimation is true\n if (this.s.slideEndAnimatoin) {\n this.s.hideControlOnEnd = false;\n }\n\n // Gallery items\n if (this.s.dynamic) {\n this.$items = this.s.dynamicEl;\n } else {\n if (this.s.selector === 'this') {\n this.$items = this.$el;\n } else if (this.s.selector !== '') {\n if (this.s.selectWithin) {\n this.$items = $(this.s.selectWithin).find(this.s.selector);\n } else {\n this.$items = this.$el.find($(this.s.selector));\n }\n } else {\n this.$items = this.$el.children();\n }\n }\n\n // .lg-item\n this.$slide = '';\n\n // .lg-outer\n this.$outer = '';\n\n this.init();\n\n return this;\n }\n\n Plugin.prototype.init = function() {\n\n var _this = this;\n\n // s.preload should not be more than $item.length\n if (_this.s.preload > _this.$items.length) {\n _this.s.preload = _this.$items.length;\n }\n\n // if dynamic option is enabled execute immediately\n var _hash = window.location.hash;\n if (_hash.indexOf('lg=' + this.s.galleryId) > 0) {\n\n _this.index = parseInt(_hash.split('&slide=')[1], 10);\n\n $('body').addClass('lg-from-hash');\n if (!$('body').hasClass('lg-on')) {\n setTimeout(function() {\n _this.build(_this.index);\n });\n\n $('body').addClass('lg-on');\n }\n }\n\n if (_this.s.dynamic) {\n\n _this.$el.trigger('onBeforeOpen.lg');\n\n _this.index = _this.s.index || 0;\n\n // prevent accidental double execution\n if (!$('body').hasClass('lg-on')) {\n setTimeout(function() {\n _this.build(_this.index);\n $('body').addClass('lg-on');\n });\n }\n } else {\n\n // Using different namespace for click because click event should not unbind if selector is same object('this')\n _this.$items.on('click.lgcustom', function(event) {\n\n // For IE8\n try {\n event.preventDefault();\n event.preventDefault();\n } catch (er) {\n event.returnValue = false;\n }\n\n _this.$el.trigger('onBeforeOpen.lg');\n\n _this.index = _this.s.index || _this.$items.index(this);\n\n // prevent accidental double execution\n if (!$('body').hasClass('lg-on')) {\n _this.build(_this.index);\n $('body').addClass('lg-on');\n }\n });\n }\n\n };\n\n Plugin.prototype.build = function(index) {\n\n var _this = this;\n\n _this.structure();\n\n // module constructor\n $.each($.fn.lightGallery.modules, function(key) {\n _this.modules[key] = new $.fn.lightGallery.modules[key](_this.el);\n });\n\n // initiate slide function\n _this.slide(index, false, false, false);\n\n if (_this.s.keyPress) {\n _this.keyPress();\n }\n\n if (_this.$items.length > 1) {\n\n _this.arrow();\n\n setTimeout(function() {\n _this.enableDrag();\n _this.enableSwipe();\n }, 50);\n\n if (_this.s.mousewheel) {\n _this.mousewheel();\n }\n } else {\n _this.$slide.on('click.lg', function() {\n _this.$el.trigger('onSlideClick.lg');\n });\n }\n\n _this.counter();\n\n _this.closeGallery();\n\n _this.$el.trigger('onAfterOpen.lg');\n\n // Hide controllers if mouse doesn't move for some period\n if (_this.s.hideBarsDelay > 0) {\n\n // Hide controllers if mouse doesn't move for some period\n _this.$outer.on('mousemove.lg click.lg touchstart.lg', function () {\n _this.$outer.removeClass('lg-hide-items');\n\n clearTimeout(_this.hideBarTimeout);\n\n // Timeout will be cleared on each slide movement also\n _this.hideBarTimeout = setTimeout(function () {\n _this.$outer.addClass('lg-hide-items');\n }, _this.s.hideBarsDelay);\n\n });\n }\n\n _this.$outer.trigger('mousemove.lg');\n\n };\n\n Plugin.prototype.structure = function() {\n var list = '';\n var controls = '';\n var i = 0;\n var subHtmlCont = '';\n var template;\n var _this = this;\n\n $('body').append('
');\n $('.lg-backdrop').css('transition-duration', this.s.backdropDuration + 'ms');\n\n // Create gallery items\n for (i = 0; i < this.$items.length; i++) {\n list += '
';\n }\n\n // Create controlls\n if (this.s.controls && this.$items.length > 1) {\n controls = '
' +\n '' +\n '' +\n '
';\n }\n\n if (this.s.appendSubHtmlTo === '.lg-sub-html') {\n subHtmlCont = '
';\n }\n\n var ariaLabelledby = this.s.ariaLabelledby ?\n 'aria-labelledby=\"' + this.s.ariaLabelledby + '\"' : '';\n var ariaDescribedby = this.s.ariaDescribedby ?\n 'aria-describedby=\"' + this.s.ariaDescribedby + '\"' : '';\n\n template = '
' +\n '
' +\n '
' + list + '
' +\n '
' +\n '' +\n '
' +\n controls +\n subHtmlCont +\n '
' +\n '
';\n\n $('body').append(template);\n this.$outer = $('.lg-outer');\n this.$outer.focus();\n this.$slide = this.$outer.find('.lg-item');\n\n if (this.s.useLeft) {\n this.$outer.addClass('lg-use-left');\n\n // Set mode lg-slide if use left is true;\n this.s.mode = 'lg-slide';\n } else {\n this.$outer.addClass('lg-use-css3');\n }\n\n // For fixed height gallery\n _this.setTop();\n $(window).on('resize.lg orientationchange.lg', function() {\n setTimeout(function() {\n _this.setTop();\n }, 100);\n });\n\n // add class lg-current to remove initial transition\n this.$slide.eq(this.index).addClass('lg-current');\n\n // add Class for css support and transition mode\n if (this.doCss()) {\n this.$outer.addClass('lg-css3');\n } else {\n this.$outer.addClass('lg-css');\n\n // Set speed 0 because no animation will happen if browser doesn't support css3\n this.s.speed = 0;\n }\n\n this.$outer.addClass(this.s.mode);\n\n if (this.s.enableDrag && this.$items.length > 1) {\n this.$outer.addClass('lg-grab');\n }\n\n if (this.s.showAfterLoad) {\n this.$outer.addClass('lg-show-after-load');\n }\n\n if (this.doCss()) {\n var $inner = this.$outer.find('.lg-inner');\n $inner.css('transition-timing-function', this.s.cssEasing);\n $inner.css('transition-duration', this.s.speed + 'ms');\n }\n\n setTimeout(function() {\n $('.lg-backdrop').addClass('in');\n });\n\n setTimeout(function() {\n _this.$outer.addClass('lg-visible');\n }, this.s.backdropDuration);\n\n if (this.s.download) {\n this.$outer.find('.lg-toolbar').append('');\n }\n\n // Store the current scroll top value to scroll back after closing the gallery..\n this.prevScrollTop = $(window).scrollTop();\n\n };\n\n // For fixed height gallery\n Plugin.prototype.setTop = function() {\n if (this.s.height !== '100%') {\n var wH = $(window).height();\n var top = (wH - parseInt(this.s.height, 10)) / 2;\n var $lGallery = this.$outer.find('.lg');\n if (wH >= parseInt(this.s.height, 10)) {\n $lGallery.css('top', top + 'px');\n } else {\n $lGallery.css('top', '0px');\n }\n }\n };\n\n // Find css3 support\n Plugin.prototype.doCss = function() {\n // check for css animation support\n var support = function() {\n var transition = ['transition', 'MozTransition', 'WebkitTransition', 'OTransition', 'msTransition', 'KhtmlTransition'];\n var root = document.documentElement;\n var i = 0;\n for (i = 0; i < transition.length; i++) {\n if (transition[i] in root.style) {\n return true;\n }\n }\n };\n\n if (support()) {\n return true;\n }\n\n return false;\n };\n\n /**\n * @desc Check the given src is video\n * @param {String} src\n * @return {Object} video type\n * Ex:{ youtube : [\"//www.youtube.com/watch?v=c0asJgSyxcY\", \"c0asJgSyxcY\"] }\n */\n Plugin.prototype.isVideo = function(src, index) {\n\n var html;\n if (this.s.dynamic) {\n html = this.s.dynamicEl[index].html;\n } else {\n html = this.$items.eq(index).attr('data-html');\n }\n\n if (!src) {\n if (html) {\n return {\n html5: true\n };\n } else {\n console.error('lightGallery :- data-src is not provided on slide item ' + (index + 1) + '. Please make sure the selector property is properly configured. More info - http://sachinchoolur.github.io/lightGallery/demos/html-markup.html');\n return false;\n }\n }\n\n var youtube = src.match(/\\/\\/(?:www\\.)?youtu(?:\\.be|be\\.com|be-nocookie\\.com)\\/(?:watch\\?v=|embed\\/)?([a-z0-9\\-\\_\\%]+)/i);\n var vimeo = src.match(/\\/\\/(?:www\\.)?(?:player\\.)?vimeo.com\\/(?:video\\/)?([0-9a-z\\-_]+)/i);\n var dailymotion = src.match(/\\/\\/(?:www\\.)?dai.ly\\/([0-9a-z\\-_]+)/i);\n var vk = src.match(/\\/\\/(?:www\\.)?(?:vk\\.com|vkontakte\\.ru)\\/(?:video_ext\\.php\\?)(.*)/i);\n\n if (youtube) {\n return {\n youtube: youtube\n };\n } else if (vimeo) {\n return {\n vimeo: vimeo\n };\n } else if (dailymotion) {\n return {\n dailymotion: dailymotion\n };\n } else if (vk) {\n return {\n vk: vk\n };\n }\n };\n\n /**\n * @desc Create image counter\n * Ex: 1/10\n */\n Plugin.prototype.counter = function() {\n if (this.s.counter) {\n $(this.s.appendCounterTo).append('
' + (parseInt(this.index, 10) + 1) + ' / ' + this.$items.length + '
');\n }\n };\n\n /**\n * @desc add sub-html into the slide\n * @param {Number} index - index of the slide\n */\n Plugin.prototype.addHtml = function(index) {\n var subHtml = null;\n var subHtmlUrl;\n var $currentEle;\n if (this.s.dynamic) {\n if (this.s.dynamicEl[index].subHtmlUrl) {\n subHtmlUrl = this.s.dynamicEl[index].subHtmlUrl;\n } else {\n subHtml = this.s.dynamicEl[index].subHtml;\n }\n } else {\n $currentEle = this.$items.eq(index);\n if ($currentEle.attr('data-sub-html-url')) {\n subHtmlUrl = $currentEle.attr('data-sub-html-url');\n } else {\n subHtml = $currentEle.attr('data-sub-html');\n if (this.s.getCaptionFromTitleOrAlt && !subHtml) {\n subHtml = $currentEle.attr('title') || $currentEle.find('img').first().attr('alt');\n }\n }\n }\n\n if (!subHtmlUrl) {\n if (typeof subHtml !== 'undefined' && subHtml !== null) {\n\n // get first letter of subhtml\n // if first letter starts with . or # get the html form the jQuery object\n var fL = subHtml.substring(0, 1);\n if (fL === '.' || fL === '#') {\n if (this.s.subHtmlSelectorRelative && !this.s.dynamic) {\n subHtml = $currentEle.find(subHtml).html();\n } else {\n subHtml = $(subHtml).html();\n }\n }\n } else {\n subHtml = '';\n }\n }\n\n if (this.s.appendSubHtmlTo === '.lg-sub-html') {\n\n if (subHtmlUrl) {\n this.$outer.find(this.s.appendSubHtmlTo).load(subHtmlUrl);\n } else {\n this.$outer.find(this.s.appendSubHtmlTo).html(subHtml);\n }\n\n } else {\n\n if (subHtmlUrl) {\n this.$slide.eq(index).load(subHtmlUrl);\n } else {\n this.$slide.eq(index).append(subHtml);\n }\n }\n\n // Add lg-empty-html class if title doesn't exist\n if (typeof subHtml !== 'undefined' && subHtml !== null) {\n if (subHtml === '') {\n this.$outer.find(this.s.appendSubHtmlTo).addClass('lg-empty-html');\n } else {\n this.$outer.find(this.s.appendSubHtmlTo).removeClass('lg-empty-html');\n }\n }\n\n this.$el.trigger('onAfterAppendSubHtml.lg', [index]);\n };\n\n /**\n * @desc Preload slides\n * @param {Number} index - index of the slide\n */\n Plugin.prototype.preload = function(index) {\n var i = 1;\n var j = 1;\n for (i = 1; i <= this.s.preload; i++) {\n if (i >= this.$items.length - index) {\n break;\n }\n\n this.loadContent(index + i, false, 0);\n }\n\n for (j = 1; j <= this.s.preload; j++) {\n if (index - j < 0) {\n break;\n }\n\n this.loadContent(index - j, false, 0);\n }\n };\n\n /**\n * @desc Load slide content into slide.\n * @param {Number} index - index of the slide.\n * @param {Boolean} rec - if true call loadcontent() function again.\n * @param {Boolean} delay - delay for adding complete class. it is 0 except first time.\n */\n Plugin.prototype.loadContent = function(index, rec, delay) {\n\n var _this = this;\n var _hasPoster = false;\n var _$img;\n var _src;\n var _poster;\n var _srcset;\n var _sizes;\n var _html;\n var _alt;\n var getResponsiveSrc = function(srcItms) {\n var rsWidth = [];\n var rsSrc = [];\n for (var i = 0; i < srcItms.length; i++) {\n var __src = srcItms[i].split(' ');\n\n // Manage empty space\n if (__src[0] === '') {\n __src.splice(0, 1);\n }\n\n rsSrc.push(__src[0]);\n rsWidth.push(__src[1]);\n }\n\n var wWidth = $(window).width();\n for (var j = 0; j < rsWidth.length; j++) {\n if (parseInt(rsWidth[j], 10) > wWidth) {\n _src = rsSrc[j];\n break;\n }\n }\n };\n\n if (_this.s.dynamic) {\n\n if (_this.s.dynamicEl[index].poster) {\n _hasPoster = true;\n _poster = _this.s.dynamicEl[index].poster;\n }\n\n _html = _this.s.dynamicEl[index].html;\n _src = _this.s.dynamicEl[index].src;\n _alt = _this.s.dynamicEl[index].alt;\n\n if (_this.s.dynamicEl[index].responsive) {\n var srcDyItms = _this.s.dynamicEl[index].responsive.split(',');\n getResponsiveSrc(srcDyItms);\n }\n\n _srcset = _this.s.dynamicEl[index].srcset;\n _sizes = _this.s.dynamicEl[index].sizes;\n\n } else {\n var $currentEle = _this.$items.eq(index);\n if ($currentEle.attr('data-poster')) {\n _hasPoster = true;\n _poster = $currentEle.attr('data-poster');\n }\n\n _html = $currentEle.attr('data-html');\n _src = $currentEle.attr('href') || $currentEle.attr('data-src');\n _alt = $currentEle.attr('title') || $currentEle.find('img').first().attr('alt');\n\n if ($currentEle.attr('data-responsive')) {\n var srcItms = $currentEle.attr('data-responsive').split(',');\n getResponsiveSrc(srcItms);\n }\n\n _srcset = $currentEle.attr('data-srcset');\n _sizes = $currentEle.attr('data-sizes');\n\n }\n\n //if (_src || _srcset || _sizes || _poster) {\n\n var iframe = false;\n if (_this.s.dynamic) {\n if (_this.s.dynamicEl[index].iframe) {\n iframe = true;\n }\n } else {\n if (_this.$items.eq(index).attr('data-iframe') === 'true') {\n iframe = true;\n }\n }\n\n var _isVideo = _this.isVideo(_src, index);\n if (!_this.$slide.eq(index).hasClass('lg-loaded')) {\n if (iframe) {\n _this.$slide.eq(index).prepend('
');\n } else if (_hasPoster) {\n var videoClass = '';\n if (_isVideo && _isVideo.youtube) {\n videoClass = 'lg-has-youtube';\n } else if (_isVideo && _isVideo.vimeo) {\n videoClass = 'lg-has-vimeo';\n } else {\n videoClass = 'lg-has-html5';\n }\n\n _this.$slide.eq(index).prepend('
');\n\n } else if (_isVideo) {\n _this.$slide.eq(index).prepend('
');\n _this.$el.trigger('hasVideo.lg', [index, _src, _html]);\n } else {\n _alt = _alt ? 'alt=\"' + _alt + '\"' : '';\n _this.$slide.eq(index).prepend('
');\n }\n\n _this.$el.trigger('onAferAppendSlide.lg', [index]);\n\n _$img = _this.$slide.eq(index).find('.lg-object');\n if (_sizes) {\n _$img.attr('sizes', _sizes);\n }\n\n if (_srcset) {\n _$img.attr('srcset', _srcset);\n if (this.s.supportLegacyBrowser) {\n try {\n picturefill({\n elements: [_$img[0]]\n });\n } catch (e) {\n console.warn('lightGallery :- If you want srcset to be supported for older browser please include picturefil version 2 javascript library in your document.');\n }\n }\n }\n\n if (this.s.appendSubHtmlTo !== '.lg-sub-html') {\n _this.addHtml(index);\n }\n\n _this.$slide.eq(index).addClass('lg-loaded');\n }\n\n _this.$slide.eq(index).find('.lg-object').on('load.lg error.lg', function() {\n\n // For first time add some delay for displaying the start animation.\n var _speed = 0;\n\n // Do not change the delay value because it is required for zoom plugin.\n // If gallery opened from direct url (hash) speed value should be 0\n if (delay && !$('body').hasClass('lg-from-hash')) {\n _speed = delay;\n }\n\n setTimeout(function() {\n _this.$slide.eq(index).addClass('lg-complete');\n _this.$el.trigger('onSlideItemLoad.lg', [index, delay || 0]);\n }, _speed);\n\n });\n\n // @todo check load state for html5 videos\n if (_isVideo && _isVideo.html5 && !_hasPoster) {\n _this.$slide.eq(index).addClass('lg-complete');\n }\n\n if (rec === true) {\n if (!_this.$slide.eq(index).hasClass('lg-complete')) {\n _this.$slide.eq(index).find('.lg-object').on('load.lg error.lg', function() {\n _this.preload(index);\n });\n } else {\n _this.preload(index);\n }\n }\n\n //}\n };\n\n /**\n * @desc slide function for lightgallery\n ** Slide() gets call on start\n ** ** Set lg.on true once slide() function gets called.\n ** Call loadContent() on slide() function inside setTimeout\n ** ** On first slide we do not want any animation like slide of fade\n ** ** So on first slide( if lg.on if false that is first slide) loadContent() should start loading immediately\n ** ** Else loadContent() should wait for the transition to complete.\n ** ** So set timeout s.speed + 50\n <=> ** loadContent() will load slide content in to the particular slide\n ** ** It has recursion (rec) parameter. if rec === true loadContent() will call preload() function.\n ** ** preload will execute only when the previous slide is fully loaded (images iframe)\n ** ** avoid simultaneous image load\n <=> ** Preload() will check for s.preload value and call loadContent() again accoring to preload value\n ** loadContent() <====> Preload();\n\n * @param {Number} index - index of the slide\n * @param {Boolean} fromTouch - true if slide function called via touch event or mouse drag\n * @param {Boolean} fromThumb - true if slide function called via thumbnail click\n * @param {String} direction - Direction of the slide(next/prev)\n */\n Plugin.prototype.slide = function(index, fromTouch, fromThumb, direction) {\n\n var _prevIndex = this.$outer.find('.lg-current').index();\n var _this = this;\n\n // Prevent if multiple call\n // Required for hsh plugin\n if (_this.lGalleryOn && (_prevIndex === index)) {\n return;\n }\n\n var _length = this.$slide.length;\n var _time = _this.lGalleryOn ? this.s.speed : 0;\n\n if (!_this.lgBusy) {\n\n if (this.s.download) {\n var _src;\n if (_this.s.dynamic) {\n _src = _this.s.dynamicEl[index].downloadUrl !== false && (_this.s.dynamicEl[index].downloadUrl || _this.s.dynamicEl[index].src);\n } else {\n _src = _this.$items.eq(index).attr('data-download-url') !== 'false' && (_this.$items.eq(index).attr('data-download-url') || _this.$items.eq(index).attr('href') || _this.$items.eq(index).attr('data-src'));\n\n }\n\n if (_src) {\n $('#lg-download').attr('href', _src);\n _this.$outer.removeClass('lg-hide-download');\n } else {\n _this.$outer.addClass('lg-hide-download');\n }\n }\n\n this.$el.trigger('onBeforeSlide.lg', [_prevIndex, index, fromTouch, fromThumb]);\n\n _this.lgBusy = true;\n\n clearTimeout(_this.hideBarTimeout);\n\n // Add title if this.s.appendSubHtmlTo === lg-sub-html\n if (this.s.appendSubHtmlTo === '.lg-sub-html') {\n\n // wait for slide animation to complete\n setTimeout(function() {\n _this.addHtml(index);\n }, _time);\n }\n\n this.arrowDisable(index);\n\n if (!direction) {\n if (index < _prevIndex) {\n direction = 'prev';\n } else if (index > _prevIndex) {\n direction = 'next';\n }\n }\n\n if (!fromTouch) {\n\n // remove all transitions\n _this.$outer.addClass('lg-no-trans');\n\n this.$slide.removeClass('lg-prev-slide lg-next-slide');\n\n if (direction === 'prev') {\n\n //prevslide\n this.$slide.eq(index).addClass('lg-prev-slide');\n this.$slide.eq(_prevIndex).addClass('lg-next-slide');\n } else {\n\n // next slide\n this.$slide.eq(index).addClass('lg-next-slide');\n this.$slide.eq(_prevIndex).addClass('lg-prev-slide');\n }\n\n // give 50 ms for browser to add/remove class\n setTimeout(function() {\n _this.$slide.removeClass('lg-current');\n\n //_this.$slide.eq(_prevIndex).removeClass('lg-current');\n _this.$slide.eq(index).addClass('lg-current');\n\n // reset all transitions\n _this.$outer.removeClass('lg-no-trans');\n }, 50);\n } else {\n\n this.$slide.removeClass('lg-prev-slide lg-current lg-next-slide');\n var touchPrev;\n var touchNext;\n if (_length > 2) {\n touchPrev = index - 1;\n touchNext = index + 1;\n\n if ((index === 0) && (_prevIndex === _length - 1)) {\n\n // next slide\n touchNext = 0;\n touchPrev = _length - 1;\n } else if ((index === _length - 1) && (_prevIndex === 0)) {\n\n // prev slide\n touchNext = 0;\n touchPrev = _length - 1;\n }\n\n } else {\n touchPrev = 0;\n touchNext = 1;\n }\n\n if (direction === 'prev') {\n _this.$slide.eq(touchNext).addClass('lg-next-slide');\n } else {\n _this.$slide.eq(touchPrev).addClass('lg-prev-slide');\n }\n\n _this.$slide.eq(index).addClass('lg-current');\n }\n\n if (_this.lGalleryOn) {\n setTimeout(function() {\n _this.loadContent(index, true, 0);\n }, this.s.speed + 50);\n\n setTimeout(function() {\n _this.lgBusy = false;\n _this.$el.trigger('onAfterSlide.lg', [_prevIndex, index, fromTouch, fromThumb]);\n }, this.s.speed);\n\n } else {\n _this.loadContent(index, true, _this.s.backdropDuration);\n\n _this.lgBusy = false;\n _this.$el.trigger('onAfterSlide.lg', [_prevIndex, index, fromTouch, fromThumb]);\n }\n\n _this.lGalleryOn = true;\n\n if (this.s.counter) {\n $('#lg-counter-current').text(index + 1);\n }\n\n }\n _this.index = index;\n\n };\n\n /**\n * @desc Go to next slide\n * @param {Boolean} fromTouch - true if slide function called via touch event\n */\n Plugin.prototype.goToNextSlide = function(fromTouch) {\n var _this = this;\n var _loop = _this.s.loop;\n if (fromTouch && _this.$slide.length < 3) {\n _loop = false;\n }\n\n if (!_this.lgBusy) {\n if ((_this.index + 1) < _this.$slide.length) {\n _this.index++;\n _this.$el.trigger('onBeforeNextSlide.lg', [_this.index]);\n _this.slide(_this.index, fromTouch, false, 'next');\n } else {\n if (_loop) {\n _this.index = 0;\n _this.$el.trigger('onBeforeNextSlide.lg', [_this.index]);\n _this.slide(_this.index, fromTouch, false, 'next');\n } else if (_this.s.slideEndAnimatoin && !fromTouch) {\n _this.$outer.addClass('lg-right-end');\n setTimeout(function() {\n _this.$outer.removeClass('lg-right-end');\n }, 400);\n }\n }\n }\n };\n\n /**\n * @desc Go to previous slide\n * @param {Boolean} fromTouch - true if slide function called via touch event\n */\n Plugin.prototype.goToPrevSlide = function(fromTouch) {\n var _this = this;\n var _loop = _this.s.loop;\n if (fromTouch && _this.$slide.length < 3) {\n _loop = false;\n }\n\n if (!_this.lgBusy) {\n if (_this.index > 0) {\n _this.index--;\n _this.$el.trigger('onBeforePrevSlide.lg', [_this.index, fromTouch]);\n _this.slide(_this.index, fromTouch, false, 'prev');\n } else {\n if (_loop) {\n _this.index = _this.$items.length - 1;\n _this.$el.trigger('onBeforePrevSlide.lg', [_this.index, fromTouch]);\n _this.slide(_this.index, fromTouch, false, 'prev');\n } else if (_this.s.slideEndAnimatoin && !fromTouch) {\n _this.$outer.addClass('lg-left-end');\n setTimeout(function() {\n _this.$outer.removeClass('lg-left-end');\n }, 400);\n }\n }\n }\n };\n\n Plugin.prototype.keyPress = function() {\n var _this = this;\n if (this.$items.length > 1) {\n $(window).on('keyup.lg', function(e) {\n if (_this.$items.length > 1) {\n if (e.keyCode === 37) {\n e.preventDefault();\n _this.goToPrevSlide();\n }\n\n if (e.keyCode === 39) {\n e.preventDefault();\n _this.goToNextSlide();\n }\n }\n });\n }\n\n $(window).on('keydown.lg', function(e) {\n if (_this.s.escKey === true && e.keyCode === 27) {\n e.preventDefault();\n if (!_this.$outer.hasClass('lg-thumb-open')) {\n _this.destroy();\n } else {\n _this.$outer.removeClass('lg-thumb-open');\n }\n }\n });\n };\n\n Plugin.prototype.arrow = function() {\n var _this = this;\n this.$outer.find('.lg-prev').on('click.lg', function() {\n _this.goToPrevSlide();\n });\n\n this.$outer.find('.lg-next').on('click.lg', function() {\n _this.goToNextSlide();\n });\n };\n\n Plugin.prototype.arrowDisable = function(index) {\n\n // Disable arrows if s.hideControlOnEnd is true\n if (!this.s.loop && this.s.hideControlOnEnd) {\n if ((index + 1) < this.$slide.length) {\n this.$outer.find('.lg-next').removeAttr('disabled').removeClass('disabled');\n } else {\n this.$outer.find('.lg-next').attr('disabled', 'disabled').addClass('disabled');\n }\n\n if (index > 0) {\n this.$outer.find('.lg-prev').removeAttr('disabled').removeClass('disabled');\n } else {\n this.$outer.find('.lg-prev').attr('disabled', 'disabled').addClass('disabled');\n }\n }\n };\n\n Plugin.prototype.setTranslate = function($el, xValue, yValue) {\n // jQuery supports Automatic CSS prefixing since jQuery 1.8.0\n if (this.s.useLeft) {\n $el.css('left', xValue);\n } else {\n $el.css({\n transform: 'translate3d(' + (xValue) + 'px, ' + yValue + 'px, 0px)'\n });\n }\n };\n\n Plugin.prototype.touchMove = function(startCoords, endCoords) {\n\n var distance = endCoords - startCoords;\n\n if (Math.abs(distance) > 15) {\n // reset opacity and transition duration\n this.$outer.addClass('lg-dragging');\n\n // move current slide\n this.setTranslate(this.$slide.eq(this.index), distance, 0);\n\n // move next and prev slide with current slide\n this.setTranslate($('.lg-prev-slide'), -this.$slide.eq(this.index).width() + distance, 0);\n this.setTranslate($('.lg-next-slide'), this.$slide.eq(this.index).width() + distance, 0);\n }\n };\n\n Plugin.prototype.touchEnd = function(distance) {\n var _this = this;\n\n // keep slide animation for any mode while dragg/swipe\n if (_this.s.mode !== 'lg-slide') {\n _this.$outer.addClass('lg-slide');\n }\n\n this.$slide.not('.lg-current, .lg-prev-slide, .lg-next-slide').css('opacity', '0');\n\n // set transition duration\n setTimeout(function() {\n _this.$outer.removeClass('lg-dragging');\n if ((distance < 0) && (Math.abs(distance) > _this.s.swipeThreshold)) {\n _this.goToNextSlide(true);\n } else if ((distance > 0) && (Math.abs(distance) > _this.s.swipeThreshold)) {\n _this.goToPrevSlide(true);\n } else if (Math.abs(distance) < 5) {\n\n // Trigger click if distance is less than 5 pix\n _this.$el.trigger('onSlideClick.lg');\n }\n\n _this.$slide.removeAttr('style');\n });\n\n // remove slide class once drag/swipe is completed if mode is not slide\n setTimeout(function() {\n if (!_this.$outer.hasClass('lg-dragging') && _this.s.mode !== 'lg-slide') {\n _this.$outer.removeClass('lg-slide');\n }\n }, _this.s.speed + 100);\n\n };\n\n Plugin.prototype.enableSwipe = function() {\n var _this = this;\n var startCoords = 0;\n var endCoords = 0;\n var isMoved = false;\n\n if (_this.s.enableSwipe && _this.doCss()) {\n\n _this.$slide.on('touchstart.lg', function(e) {\n if (!_this.$outer.hasClass('lg-zoomed') && !_this.lgBusy) {\n e.preventDefault();\n _this.manageSwipeClass();\n startCoords = e.originalEvent.targetTouches[0].pageX;\n }\n });\n\n _this.$slide.on('touchmove.lg', function(e) {\n if (!_this.$outer.hasClass('lg-zoomed')) {\n e.preventDefault();\n endCoords = e.originalEvent.targetTouches[0].pageX;\n _this.touchMove(startCoords, endCoords);\n isMoved = true;\n }\n });\n\n _this.$slide.on('touchend.lg', function() {\n if (!_this.$outer.hasClass('lg-zoomed')) {\n if (isMoved) {\n isMoved = false;\n _this.touchEnd(endCoords - startCoords);\n } else {\n _this.$el.trigger('onSlideClick.lg');\n }\n }\n });\n }\n\n };\n\n Plugin.prototype.enableDrag = function() {\n var _this = this;\n var startCoords = 0;\n var endCoords = 0;\n var isDraging = false;\n var isMoved = false;\n if (_this.s.enableDrag && _this.doCss()) {\n _this.$slide.on('mousedown.lg', function(e) {\n if (!_this.$outer.hasClass('lg-zoomed') && !_this.lgBusy && !$(e.target).text().trim()) {\n e.preventDefault();\n _this.manageSwipeClass();\n startCoords = e.pageX;\n isDraging = true;\n\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\n _this.$outer.scrollLeft += 1;\n _this.$outer.scrollLeft -= 1;\n\n // *\n\n _this.$outer.removeClass('lg-grab').addClass('lg-grabbing');\n\n _this.$el.trigger('onDragstart.lg');\n }\n });\n\n $(window).on('mousemove.lg', function(e) {\n if (isDraging) {\n isMoved = true;\n endCoords = e.pageX;\n _this.touchMove(startCoords, endCoords);\n _this.$el.trigger('onDragmove.lg');\n }\n });\n\n $(window).on('mouseup.lg', function(e) {\n if (isMoved) {\n isMoved = false;\n _this.touchEnd(endCoords - startCoords);\n _this.$el.trigger('onDragend.lg');\n } else if ($(e.target).hasClass('lg-object') || $(e.target).hasClass('lg-video-play')) {\n _this.$el.trigger('onSlideClick.lg');\n }\n\n // Prevent execution on click\n if (isDraging) {\n isDraging = false;\n _this.$outer.removeClass('lg-grabbing').addClass('lg-grab');\n }\n });\n\n }\n };\n\n Plugin.prototype.manageSwipeClass = function() {\n var _touchNext = this.index + 1;\n var _touchPrev = this.index - 1;\n if (this.s.loop && this.$slide.length > 2) {\n if (this.index === 0) {\n _touchPrev = this.$slide.length - 1;\n } else if (this.index === this.$slide.length - 1) {\n _touchNext = 0;\n }\n }\n\n this.$slide.removeClass('lg-next-slide lg-prev-slide');\n if (_touchPrev > -1) {\n this.$slide.eq(_touchPrev).addClass('lg-prev-slide');\n }\n\n this.$slide.eq(_touchNext).addClass('lg-next-slide');\n };\n\n Plugin.prototype.mousewheel = function() {\n var _this = this;\n _this.$outer.on('mousewheel.lg', function(e) {\n\n if (!e.deltaY) {\n return;\n }\n\n if (e.deltaY > 0) {\n _this.goToPrevSlide();\n } else {\n _this.goToNextSlide();\n }\n\n e.preventDefault();\n });\n\n };\n\n Plugin.prototype.closeGallery = function() {\n\n var _this = this;\n var mousedown = false;\n this.$outer.find('.lg-close').on('click.lg', function() {\n _this.destroy();\n });\n\n if (_this.s.closable) {\n\n // If you drag the slide and release outside gallery gets close on chrome\n // for preventing this check mousedown and mouseup happened on .lg-item or lg-outer\n _this.$outer.on('mousedown.lg', function(e) {\n\n if ($(e.target).is('.lg-outer') || $(e.target).is('.lg-item ') || $(e.target).is('.lg-img-wrap')) {\n mousedown = true;\n } else {\n mousedown = false;\n }\n\n });\n\n _this.$outer.on('mousemove.lg', function() {\n mousedown = false;\n });\n\n _this.$outer.on('mouseup.lg', function(e) {\n\n if ($(e.target).is('.lg-outer') || $(e.target).is('.lg-item ') || $(e.target).is('.lg-img-wrap') && mousedown) {\n if (!_this.$outer.hasClass('lg-dragging')) {\n _this.destroy();\n }\n }\n\n });\n\n }\n\n };\n\n Plugin.prototype.destroy = function(d) {\n\n var _this = this;\n\n if (!d) {\n _this.$el.trigger('onBeforeClose.lg');\n $(window).scrollTop(_this.prevScrollTop);\n }\n\n\n /**\n * if d is false or undefined destroy will only close the gallery\n * plugins instance remains with the element\n *\n * if d is true destroy will completely remove the plugin\n */\n\n if (d) {\n if (!_this.s.dynamic) {\n // only when not using dynamic mode is $items a jquery collection\n this.$items.off('click.lg click.lgcustom');\n }\n\n $.removeData(_this.el, 'lightGallery');\n }\n\n // Unbind all events added by lightGallery\n this.$el.off('.lg.tm');\n\n // destroy all lightGallery modules\n $.each($.fn.lightGallery.modules, function(key) {\n if (_this.modules[key]) {\n _this.modules[key].destroy();\n }\n });\n\n this.lGalleryOn = false;\n\n clearTimeout(_this.hideBarTimeout);\n this.hideBarTimeout = false;\n $(window).off('.lg');\n $('body').removeClass('lg-on lg-from-hash');\n\n if (_this.$outer) {\n _this.$outer.removeClass('lg-visible');\n }\n\n $('.lg-backdrop').removeClass('in');\n\n setTimeout(function() {\n if (_this.$outer) {\n _this.$outer.remove();\n }\n\n $('.lg-backdrop').remove();\n\n if (!d) {\n _this.$el.trigger('onCloseAfter.lg');\n }\n _this.$el.focus();\n\n }, _this.s.backdropDuration + 50);\n };\n\n $.fn.lightGallery = function(options) {\n return this.each(function() {\n if (!$.data(this, 'lightGallery')) {\n $.data(this, 'lightGallery', new Plugin(this, options));\n } else {\n try {\n $(this).data('lightGallery').init();\n } catch (err) {\n console.error('lightGallery has not initiated properly', err);\n }\n }\n });\n };\n\n $.fn.lightGallery.modules = {};\n\n})();\n\n\n}));\n","/*! lg-video - v1.4.0 - November-07-2020\n* http://sachinchoolur.github.io/lightGallery\n* Copyright (c) 2020 Sachin N; Licensed GPLv3 */\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module unless amdModuleId is set\n define(['jquery'], function (a0) {\n return (factory(a0));\n });\n } else if (typeof module === 'object' && module.exports) {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory(require('jquery'));\n } else {\n factory(root[\"jQuery\"]);\n }\n}(this, function ($) {\n\n(function() {\n \n 'use strict';\n\n var defaults = {\n videoMaxWidth: '855px',\n\n autoplayFirstVideo: true,\n\n youtubePlayerParams: false,\n vimeoPlayerParams: false,\n dailymotionPlayerParams: false,\n vkPlayerParams: false,\n\n videojs: false,\n videojsOptions: {}\n };\n\n var Video = function(element) {\n\n this.core = $(element).data('lightGallery');\n\n this.$el = $(element);\n this.core.s = $.extend({}, defaults, this.core.s);\n this.videoLoaded = false;\n\n this.init();\n\n return this;\n };\n\n Video.prototype.init = function() {\n var _this = this;\n\n // Event triggered when video url found without poster\n _this.core.$el.on('hasVideo.lg.tm', onHasVideo.bind(this));\n\n // Set max width for video\n _this.core.$el.on('onAferAppendSlide.lg.tm', onAferAppendSlide.bind(this));\n\n if (_this.core.doCss() && (_this.core.$items.length > 1) && (_this.core.s.enableSwipe || _this.core.s.enableDrag)) {\n _this.core.$el.on('onSlideClick.lg.tm', function() {\n var $el = _this.core.$slide.eq(_this.core.index);\n _this.loadVideoOnclick($el);\n });\n } else {\n\n // For IE 9 and bellow\n _this.core.$slide.on('click.lg', function() {\n _this.loadVideoOnclick($(this));\n });\n }\n\n _this.core.$el.on('onBeforeSlide.lg.tm', onBeforeSlide.bind(this));\n\n _this.core.$el.on('onAfterSlide.lg.tm', function(event, prevIndex) {\n _this.core.$slide.eq(prevIndex).removeClass('lg-video-playing');\n });\n \n if (_this.core.s.autoplayFirstVideo) {\n _this.core.$el.on('onAferAppendSlide.lg.tm', function (e, index) {\n if (!_this.core.lGalleryOn) {\n var $el = _this.core.$slide.eq(index);\n setTimeout(function () {\n _this.loadVideoOnclick($el);\n }, 100);\n }\n });\n }\n };\n\n Video.prototype.loadVideo = function(src, addClass, noPoster, index, html) {\n var _this = this;\n var video = '';\n var autoplay = 1;\n var a = '';\n var isVideo = this.core.isVideo(src, index) || {};\n var videoTitle;\n\n if (_this.core.s.dynamic) {\n videoTitle = _this.core.s.dynamicEl[_this.core.index].title;\n } else {\n videoTitle = _this.core.$items.eq(_this.core.index).attr('title') || _this.core.$items.eq(_this.core.index).find('img').first().attr('alt');\n }\n\n videoTitle = videoTitle ? 'title=\"' + videoTitle + '\"' : '';\n\n // Enable autoplay based on setting for first video if poster doesn't exist\n if (noPoster) {\n if (this.videoLoaded) {\n autoplay = 0;\n } else {\n autoplay = this.core.s.autoplayFirstVideo ? 1 : 0;\n }\n }\n\n if (isVideo.youtube) {\n\n a = '?wmode=opaque&autoplay=' + autoplay + '&enablejsapi=1';\n if (this.core.s.youtubePlayerParams) {\n a = a + '&' + $.param(this.core.s.youtubePlayerParams);\n }\n\n video = '';\n\n } else if (isVideo.vimeo) {\n\n a = '?autoplay=' + autoplay;\n if (this.core.s.vimeoPlayerParams) {\n a = a + '&' + $.param(this.core.s.vimeoPlayerParams);\n }\n\n video = '';\n\n } else if (isVideo.dailymotion) {\n\n a = '?wmode=opaque&autoplay=' + autoplay + '&api=postMessage';\n if (this.core.s.dailymotionPlayerParams) {\n a = a + '&' + $.param(this.core.s.dailymotionPlayerParams);\n }\n\n video = '';\n\n } else if (isVideo.html5) {\n var fL = html.substring(0, 1);\n if (fL === '.' || fL === '#') {\n html = $(html).html();\n }\n\n video = html;\n\n } else if (isVideo.vk) {\n\n a = '&autoplay=' + autoplay;\n if (this.core.s.vkPlayerParams) {\n a = a + '&' + $.param(this.core.s.vkPlayerParams);\n }\n\n video = '';\n\n }\n\n return video;\n };\n\n Video.prototype.loadVideoOnclick = function($el){\n\n var _this = this;\n // check slide has poster\n if ($el.find('.lg-object').hasClass('lg-has-poster') && $el.find('.lg-object').is(':visible')) {\n\n // check already video element present\n if (!$el.hasClass('lg-has-video')) {\n\n $el.addClass('lg-video-playing lg-has-video');\n\n var _src;\n var _html;\n var _loadVideo = function(_src, _html) {\n\n $el.find('.lg-video').append(_this.loadVideo(_src, '', false, _this.core.index, _html));\n\n if (_html) {\n if (_this.core.s.videojs) {\n try {\n videojs(_this.core.$slide.eq(_this.core.index).find('.lg-html5').get(0), _this.core.s.videojsOptions, function() {\n this.play();\n });\n } catch (e) {\n console.error('lightGallery:- Make sure you have included videojs');\n }\n } else {\n _this.core.$slide.eq(_this.core.index).find('.lg-html5').get(0).play();\n }\n }\n\n };\n\n if (_this.core.s.dynamic) {\n\n _src = _this.core.s.dynamicEl[_this.core.index].src;\n _html = _this.core.s.dynamicEl[_this.core.index].html;\n\n _loadVideo(_src, _html);\n\n } else {\n\n _src = _this.core.$items.eq(_this.core.index).attr('href') || _this.core.$items.eq(_this.core.index).attr('data-src');\n _html = _this.core.$items.eq(_this.core.index).attr('data-html');\n\n _loadVideo(_src, _html);\n\n }\n\n var $tempImg = $el.find('.lg-object');\n $el.find('.lg-video').append($tempImg);\n\n // @todo loading icon for html5 videos also\n // for showing the loading indicator while loading video\n if (!$el.find('.lg-video-object').hasClass('lg-html5')) {\n $el.removeClass('lg-complete');\n $el.find('.lg-video-object').on('load.lg error.lg', function() {\n $el.addClass('lg-complete');\n });\n }\n\n } else {\n\n var youtubePlayer = $el.find('.lg-youtube').get(0);\n var vimeoPlayer = $el.find('.lg-vimeo').get(0);\n var dailymotionPlayer = $el.find('.lg-dailymotion').get(0);\n var html5Player = $el.find('.lg-html5').get(0);\n if (youtubePlayer) {\n youtubePlayer.contentWindow.postMessage('{\"event\":\"command\",\"func\":\"playVideo\",\"args\":\"\"}', '*');\n } else if (vimeoPlayer) {\n try {\n new Vimeo.Player(vimeoPlayer).play().catch(function(error) {\n console.error('error playing the video:', error.name);\n });\n } catch (e) {\n console.warn('lightGallery:- Make sure you have included https://github.com/vimeo/player.js');\n }\n } else if (dailymotionPlayer) {\n dailymotionPlayer.contentWindow.postMessage('play', '*');\n\n } else if (html5Player) {\n if (_this.core.s.videojs) {\n try {\n videojs(html5Player).play();\n } catch (e) {\n console.error('lightGallery:- Make sure you have included videojs');\n }\n } else {\n html5Player.play();\n }\n }\n\n $el.addClass('lg-video-playing');\n\n }\n }\n };\n\n Video.prototype.destroy = function() {\n this.videoLoaded = false;\n };\n\n function onHasVideo(event, index, src, html) {\n /*jshint validthis:true */\n var _this = this;\n _this.core.$slide.eq(index).find('.lg-video').append(_this.loadVideo(src, 'lg-object', true, index, html));\n if (html) {\n if (_this.core.s.videojs) {\n try {\n videojs(_this.core.$slide.eq(index).find('.lg-html5').get(0), _this.core.s.videojsOptions, function() {\n if (!_this.videoLoaded && _this.core.s.autoplayFirstVideo) {\n this.play();\n }\n });\n } catch (e) {\n console.error('lightGallery:- Make sure you have included videojs');\n }\n } else {\n if(!_this.videoLoaded && _this.core.s.autoplayFirstVideo) {\n _this.core.$slide.eq(index).find('.lg-html5').get(0).play();\n }\n }\n }\n }\n\n function onAferAppendSlide(event, index) {\n /*jshint validthis:true */\n var $videoCont = this.core.$slide.eq(index).find('.lg-video-cont');\n if (!$videoCont.hasClass('lg-has-iframe')) {\n $videoCont.css('max-width', this.core.s.videoMaxWidth);\n this.videoLoaded = true;\n }\n }\n\n function onBeforeSlide(event, prevIndex, index) {\n /*jshint validthis:true */\n var _this = this;\n\n var $videoSlide = _this.core.$slide.eq(prevIndex);\n var youtubePlayer = $videoSlide.find('.lg-youtube').get(0);\n var vimeoPlayer = $videoSlide.find('.lg-vimeo').get(0);\n var dailymotionPlayer = $videoSlide.find('.lg-dailymotion').get(0);\n var vkPlayer = $videoSlide.find('.lg-vk').get(0);\n var html5Player = $videoSlide.find('.lg-html5').get(0);\n if (youtubePlayer) {\n youtubePlayer.contentWindow.postMessage('{\"event\":\"command\",\"func\":\"pauseVideo\",\"args\":\"\"}', '*');\n } else if (vimeoPlayer) {\n try {\n new Vimeo.Player(vimeoPlayer).pause().catch(function(error) {\n console.error('Unable to pause the video:', error.name);\n });\n } catch (e) {\n console.warn('lightGallery:- Make sure you have included https://github.com/vimeo/player.js');\n }\n } else if (dailymotionPlayer) {\n dailymotionPlayer.contentWindow.postMessage('pause', '*');\n\n } else if (html5Player) {\n if (_this.core.s.videojs) {\n try {\n videojs(html5Player).pause();\n } catch (e) {\n console.error('lightGallery:- Make sure you have included videojs');\n }\n } else {\n html5Player.pause();\n }\n } if (vkPlayer) {\n $(vkPlayer).attr('src', $(vkPlayer).attr('src').replace('&autoplay', '&noplay'));\n }\n\n var _src;\n if (_this.core.s.dynamic) {\n _src = _this.core.s.dynamicEl[index].src;\n } else {\n _src = _this.core.$items.eq(index).attr('href') || _this.core.$items.eq(index).attr('data-src');\n\n }\n\n var _isVideo = _this.core.isVideo(_src, index) || {};\n if (_isVideo.youtube || _isVideo.vimeo || _isVideo.dailymotion || _isVideo.vk) {\n _this.core.$outer.addClass('lg-hide-download');\n }\n\n }\n\n $.fn.lightGallery.modules.video = Video;\n\n })();\n\n\n}));\n","/*! lg-zoom - v1.3.0-beta.0 - October-05-2020\n* http://sachinchoolur.github.io/lightGallery\n* Copyright (c) 2020 Sachin N; Licensed GPLv3 */\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module unless amdModuleId is set\n define(['jquery'], function (a0) {\n return (factory(a0));\n });\n } else if (typeof module === 'object' && module.exports) {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory(require('jquery'));\n } else {\n factory(root[\"jQuery\"]);\n }\n}(this, function ($) {\n\n(function() {\n\n 'use strict';\n\n var getUseLeft = function() {\n var useLeft = false;\n var isChrome = navigator.userAgent.match(/Chrom(e|ium)\\/([0-9]+)\\./);\n if (isChrome && parseInt(isChrome[2], 10) < 54) {\n useLeft = true;\n }\n\n return useLeft;\n };\n\n var defaults = {\n scale: 1,\n zoom: true,\n actualSize: true,\n enableZoomAfter: 300,\n useLeftForZoom: getUseLeft()\n };\n\n var Zoom = function(element) {\n\n this.core = $(element).data('lightGallery');\n\n this.core.s = $.extend({}, defaults, this.core.s);\n\n if (this.core.s.zoom && this.core.doCss()) {\n this.init();\n\n // Store the zoomable timeout value just to clear it while closing\n this.zoomabletimeout = false;\n\n // Set the initial value center\n this.pageX = $(window).width() / 2;\n this.pageY = ($(window).height() / 2) + $(window).scrollTop();\n }\n\n return this;\n };\n\n Zoom.prototype.init = function() {\n\n var _this = this;\n var zoomIcons = '';\n\n if (_this.core.s.actualSize) {\n zoomIcons += '';\n }\n\n if (_this.core.s.useLeftForZoom) {\n _this.core.$outer.addClass('lg-use-left-for-zoom');\n } else {\n _this.core.$outer.addClass('lg-use-transition-for-zoom');\n }\n\n this.core.$outer.find('.lg-toolbar').append(zoomIcons);\n\n // Add zoomable class\n _this.core.$el.on('onSlideItemLoad.lg.tm.zoom', function(event, index, delay) {\n\n // delay will be 0 except first time\n var _speed = _this.core.s.enableZoomAfter + delay;\n\n // set _speed value 0 if gallery opened from direct url and if it is first slide\n if ($('body').hasClass('lg-from-hash') && delay) {\n\n // will execute only once\n _speed = 0;\n } else {\n\n // Remove lg-from-hash to enable starting animation.\n $('body').removeClass('lg-from-hash');\n }\n\n _this.zoomabletimeout = setTimeout(function() {\n _this.core.$slide.eq(index).addClass('lg-zoomable');\n }, _speed + 30);\n });\n\n var scale = 1;\n /**\n * @desc Image zoom\n * Translate the wrap and scale the image to get better user experience\n *\n * @param {String} scaleVal - Zoom decrement/increment value\n */\n var zoom = function(scaleVal) {\n\n var $image = _this.core.$outer.find('.lg-current .lg-image');\n var _x;\n var _y;\n\n // Find offset manually to avoid issue after zoom\n var offsetX = ($(window).width() - $image.prop('offsetWidth')) / 2;\n var offsetY = (($(window).height() - $image.prop('offsetHeight')) / 2) + $(window).scrollTop();\n\n _x = _this.pageX - offsetX;\n _y = _this.pageY - offsetY;\n\n var x = (scaleVal - 1) * (_x);\n var y = (scaleVal - 1) * (_y);\n\n $image.css('transform', 'scale3d(' + scaleVal + ', ' + scaleVal + ', 1)').attr('data-scale', scaleVal);\n\n if (_this.core.s.useLeftForZoom) {\n $image.parent().css({\n left: -x + 'px',\n top: -y + 'px'\n }).attr('data-x', x).attr('data-y', y);\n } else {\n $image.parent().css('transform', 'translate3d(-' + x + 'px, -' + y + 'px, 0)').attr('data-x', x).attr('data-y', y);\n }\n };\n\n var callScale = function() {\n if (scale > 1) {\n _this.core.$outer.addClass('lg-zoomed');\n } else {\n _this.resetZoom();\n }\n\n if (scale < 1) {\n scale = 1;\n }\n\n zoom(scale);\n };\n\n var actualSize = function(event, $image, index, fromIcon) {\n var w = $image.prop('offsetWidth');\n var nw;\n if (_this.core.s.dynamic) {\n nw = _this.core.s.dynamicEl[index].width || $image[0].naturalWidth || w;\n } else {\n nw = _this.core.$items.eq(index).attr('data-width') || $image[0].naturalWidth || w;\n }\n\n var _scale;\n\n if (_this.core.$outer.hasClass('lg-zoomed')) {\n scale = 1;\n } else {\n if (nw > w) {\n _scale = nw / w;\n scale = _scale || 2;\n }\n }\n\n if (fromIcon) {\n _this.pageX = $(window).width() / 2;\n _this.pageY = ($(window).height() / 2) + $(window).scrollTop();\n } else {\n _this.pageX = event.pageX || event.originalEvent.targetTouches[0].pageX;\n _this.pageY = event.pageY || event.originalEvent.targetTouches[0].pageY;\n }\n\n callScale();\n setTimeout(function() {\n _this.core.$outer.removeClass('lg-grabbing').addClass('lg-grab');\n }, 10);\n };\n\n var tapped = false;\n\n // event triggered after appending slide content\n _this.core.$el.on('onAferAppendSlide.lg.tm.zoom', function(event, index) {\n\n // Get the current element\n var $image = _this.core.$slide.eq(index).find('.lg-image');\n\n $image.on('dblclick', function(event) {\n actualSize(event, $image, index);\n });\n\n $image.on('touchstart', function(event) {\n if (!tapped) {\n tapped = setTimeout(function() {\n tapped = null;\n }, 300);\n } else {\n clearTimeout(tapped);\n tapped = null;\n actualSize(event, $image, index);\n }\n\n event.preventDefault();\n });\n\n });\n\n // Update zoom on resize and orientationchange\n $(window).on('resize.lg.zoom scroll.lg.zoom orientationchange.lg.zoom', function() {\n _this.pageX = $(window).width() / 2;\n _this.pageY = ($(window).height() / 2) + $(window).scrollTop();\n zoom(scale);\n });\n\n $('#lg-zoom-out').on('click.lg', function() {\n if (_this.core.$outer.find('.lg-current .lg-image').length) {\n scale -= _this.core.s.scale;\n callScale();\n }\n });\n\n $('#lg-zoom-in').on('click.lg', function() {\n if (_this.core.$outer.find('.lg-current .lg-image').length) {\n scale += _this.core.s.scale;\n callScale();\n }\n });\n\n $('#lg-actual-size').on('click.lg', function(event) {\n actualSize(event, _this.core.$slide.eq(_this.core.index).find('.lg-image'), _this.core.index, true);\n });\n\n // Reset zoom on slide change\n _this.core.$el.on('onBeforeSlide.lg.tm', function() {\n scale = 1;\n _this.resetZoom();\n });\n\n // Drag option after zoom\n _this.zoomDrag();\n\n _this.zoomSwipe();\n\n };\n\n /**\n * \n * @param {Element} el \n * @return matrix(cos(X), sin(X), -sin(X), cos(X), 0, 0);\n * Get the current transform value\n */\n Zoom.prototype.getCurrentTransform = function (el) {\n if (!el) {\n return 0;\n }\n var st = window.getComputedStyle(el, null);\n var tm = st.getPropertyValue('-webkit-transform') ||\n st.getPropertyValue('-moz-transform') ||\n st.getPropertyValue('-ms-transform') ||\n st.getPropertyValue('-o-transform') ||\n st.getPropertyValue('transform') ||\n 'none';\n if (tm !== 'none') {\n return tm.split('(')[1].split(')')[0].split(',');\n }\n return 0;\n };\n\n Zoom.prototype.getCurrentRotation = function (el) {\n if (!el) {\n return 0;\n }\n var values = this.getCurrentTransform(el);\n if (values) {\n return Math.round(Math.atan2(values[1], values[0]) * (180 / Math.PI));\n // If you want rotate in 360\n //return (angle < 0 ? angle + 360 : angle);\n }\n return 0;\n };\n\n Zoom.prototype.getModifier = function (rotateValue, axis, el) {\n var originalRotate = rotateValue;\n rotateValue = Math.abs(rotateValue);\n var transformValues = this.getCurrentTransform(el);\n if (!transformValues) {\n return 1;\n }\n var modifier = 1;\n if (axis === 'X') {\n var flipHorizontalValue = Math.sign(parseFloat(transformValues[0]));\n if (rotateValue === 0 || rotateValue === 180) {\n modifier = 1;\n } else if (rotateValue === 90) {\n if ((originalRotate === -90 && flipHorizontalValue === 1) || (originalRotate === 90 && flipHorizontalValue === -1)) {\n modifier = -1;\n } else {\n modifier = 1;\n }\n }\n modifier = modifier * flipHorizontalValue;\n } else {\n var flipVerticalValue = Math.sign(parseFloat(transformValues[3]));\n if (rotateValue === 0 || rotateValue === 180) {\n modifier = 1;\n } else if (rotateValue === 90) {\n var sinX = parseFloat(transformValues[1]);\n var sinMinusX = parseFloat(transformValues[2]);\n modifier = Math.sign(sinX * sinMinusX * originalRotate * flipVerticalValue);\n }\n modifier = modifier * flipVerticalValue;\n }\n return modifier;\n };\n\n Zoom.prototype.getImageSize = function ($image, rotateValue, axis) {\n var imageSizes = {\n y: 'offsetHeight',\n x: 'offsetWidth'\n };\n if (rotateValue === 90) {\n // Swap axis \n if (axis === 'x') {\n axis = 'y';\n } else {\n axis = 'x';\n }\n }\n return $image.prop(imageSizes[axis]);\n };\n\n Zoom.prototype.getDragCords = function (e, rotateValue) {\n if (rotateValue === 90) {\n return {\n x: e.pageY,\n y: e.pageX\n };\n } else {\n return {\n x: e.pageX,\n y: e.pageY\n };\n }\n };\n Zoom.prototype.getSwipeCords = function (e, rotateValue) {\n var x = e.originalEvent.targetTouches[0].pageX;\n var y = e.originalEvent.targetTouches[0].pageY;\n if (rotateValue === 90) {\n return {\n x: y,\n y: x\n };\n } else {\n return {\n x: x,\n y: y\n };\n }\n };\n\n Zoom.prototype.getPossibleDragCords = function ($image, rotateValue) {\n\n var minY = (this.core.$outer.find('.lg').height() - this.getImageSize($image, rotateValue, 'y')) / 2;\n var maxY = Math.abs((this.getImageSize($image, rotateValue, 'y') * Math.abs($image.attr('data-scale'))) - this.core.$outer.find('.lg').height() + minY);\n var minX = (this.core.$outer.find('.lg').width() - this.getImageSize($image, rotateValue, 'x')) / 2;\n var maxX = Math.abs((this.getImageSize($image, rotateValue, 'x') * Math.abs($image.attr('data-scale'))) - this.core.$outer.find('.lg').width() + minX);\n if (rotateValue === 90) {\n return {\n minY: minX,\n maxY: maxX,\n minX: minY,\n maxX: maxY,\n };\n } else {\n return {\n minY: minY,\n maxY: maxY,\n minX: minX,\n maxX: maxX,\n };\n }\n };\n\n Zoom.prototype.getDragAllowedAxises = function ($image, rotateValue) {\n var allowY = this.getImageSize($image, rotateValue, 'y') * $image.attr('data-scale') > this.core.$outer.find('.lg').height();\n var allowX = this.getImageSize($image, rotateValue, 'x') * $image.attr('data-scale') > this.core.$outer.find('.lg').width();\n if (rotateValue === 90) {\n return {\n allowX: allowY,\n allowY: allowX\n };\n } else {\n return {\n allowX: allowX,\n allowY: allowY\n };\n }\n };\n\n // Reset zoom effect\n Zoom.prototype.resetZoom = function() {\n this.core.$outer.removeClass('lg-zoomed');\n this.core.$slide.find('.lg-img-wrap').removeAttr('style data-x data-y');\n this.core.$slide.find('.lg-image').removeAttr('style data-scale');\n\n // Reset pagx pagy values to center\n this.pageX = $(window).width() / 2;\n this.pageY = ($(window).height() / 2) + $(window).scrollTop();\n };\n\n Zoom.prototype.zoomSwipe = function() {\n var _this = this;\n var startCoords = {};\n var endCoords = {};\n var isMoved = false;\n\n // Allow x direction drag\n var allowX = false;\n\n // Allow Y direction drag\n var allowY = false;\n\n var rotateValue = 0;\n var rotateEl;\n\n _this.core.$slide.on('touchstart.lg', function(e) {\n\n if (_this.core.$outer.hasClass('lg-zoomed')) {\n var $image = _this.core.$slide.eq(_this.core.index).find('.lg-object');\n\n rotateEl = _this.core.$slide.eq(_this.core.index).find('.lg-img-rotate')[0];\n rotateValue = _this.getCurrentRotation(rotateEl); \n\n var dragAllowedAxises = _this.getDragAllowedAxises($image, Math.abs(rotateValue));\n allowY = dragAllowedAxises.allowY;\n allowX = dragAllowedAxises.allowX;\n \n if ((allowX || allowY)) {\n e.preventDefault();\n startCoords = _this.getSwipeCords(e, Math.abs(rotateValue));\n }\n }\n\n });\n\n _this.core.$slide.on('touchmove.lg', function(e) {\n\n if (_this.core.$outer.hasClass('lg-zoomed')) {\n\n var _$el = _this.core.$slide.eq(_this.core.index).find('.lg-img-wrap');\n var distanceX;\n var distanceY;\n\n e.preventDefault();\n isMoved = true;\n\n endCoords = _this.getSwipeCords(e, Math.abs(rotateValue));\n\n // reset opacity and transition duration\n _this.core.$outer.addClass('lg-zoom-dragging');\n\n if (allowY) {\n distanceY = (-Math.abs(_$el.attr('data-y'))) + ((endCoords.y - startCoords.y) * _this.getModifier(rotateValue, 'Y', rotateEl));\n } else {\n distanceY = -Math.abs(_$el.attr('data-y'));\n }\n\n if (allowX) {\n distanceX = (-Math.abs(_$el.attr('data-x'))) + ((endCoords.x - startCoords.x) * _this.getModifier(rotateValue, 'X', rotateEl));\n\n } else {\n distanceX = -Math.abs(_$el.attr('data-x'));\n }\n\n if ((Math.abs(endCoords.x - startCoords.x) > 15) || (Math.abs(endCoords.y - startCoords.y) > 15)) {\n\n if (_this.core.s.useLeftForZoom) {\n _$el.css({\n left: distanceX + 'px',\n top: distanceY + 'px'\n });\n } else {\n _$el.css('transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)');\n }\n }\n\n }\n\n });\n\n _this.core.$slide.on('touchend.lg', function() {\n if (_this.core.$outer.hasClass('lg-zoomed')) {\n if (isMoved) {\n isMoved = false;\n _this.core.$outer.removeClass('lg-zoom-dragging');\n _this.touchendZoom(startCoords, endCoords, allowX, allowY, rotateValue);\n\n }\n }\n });\n\n };\n\n Zoom.prototype.zoomDrag = function() {\n\n var _this = this;\n var startCoords = {};\n var endCoords = {};\n var isDraging = false;\n var isMoved = false;\n\n // Allow x direction drag\n var allowX = false;\n\n // Allow Y direction drag\n var allowY = false;\n\n var rotateValue = 0;\n var rotateEl;\n \n _this.core.$slide.on('mousedown.lg.zoom', function(e) {\n rotateEl = _this.core.$slide.eq(_this.core.index).find('.lg-img-rotate')[0];\n rotateValue = _this.getCurrentRotation(rotateEl);\n // execute only on .lg-object\n var $image = _this.core.$slide.eq(_this.core.index).find('.lg-object');\n var dragAllowedAxises = _this.getDragAllowedAxises($image, Math.abs(rotateValue));\n allowY = dragAllowedAxises.allowY;\n allowX = dragAllowedAxises.allowX;\n\n if (_this.core.$outer.hasClass('lg-zoomed')) {\n if ($(e.target).hasClass('lg-object') && (allowX || allowY)) {\n e.preventDefault();\n startCoords = _this.getDragCords(e, Math.abs(rotateValue));\n\n isDraging = true;\n\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\n _this.core.$outer.scrollLeft += 1;\n _this.core.$outer.scrollLeft -= 1;\n\n _this.core.$outer.removeClass('lg-grab').addClass('lg-grabbing');\n }\n }\n });\n\n $(window).on('mousemove.lg.zoom', function(e) {\n if (isDraging) {\n var _$el = _this.core.$slide.eq(_this.core.index).find('.lg-img-wrap');\n var distanceX;\n var distanceY;\n\n isMoved = true;\n endCoords = _this.getDragCords(e, Math.abs(rotateValue));\n\n // reset opacity and transition duration\n _this.core.$outer.addClass('lg-zoom-dragging');\n\n if (allowY) {\n distanceY = (-Math.abs(_$el.attr('data-y'))) + ((endCoords.y - startCoords.y) * _this.getModifier(rotateValue, 'Y', rotateEl));\n } else {\n distanceY = -Math.abs(_$el.attr('data-y'));\n }\n \n if (allowX) {\n distanceX = (-Math.abs(_$el.attr('data-x'))) + ((endCoords.x - startCoords.x) * _this.getModifier(rotateValue, 'X', rotateEl));\n } else {\n distanceX = -Math.abs(_$el.attr('data-x'));\n }\n\n if (_this.core.s.useLeftForZoom) {\n _$el.css({\n left: distanceX + 'px',\n top: distanceY + 'px'\n });\n } else {\n _$el.css('transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)');\n }\n }\n });\n\n $(window).on('mouseup.lg.zoom', function(e) {\n\n if (isDraging) {\n isDraging = false;\n _this.core.$outer.removeClass('lg-zoom-dragging');\n\n // Fix for chrome mouse move on click\n if (isMoved && ((startCoords.x !== endCoords.x) || (startCoords.y !== endCoords.y))) {\n endCoords = _this.getDragCords(e, Math.abs(rotateValue));\n _this.touchendZoom(startCoords, endCoords, allowX, allowY, rotateValue);\n\n }\n\n isMoved = false;\n }\n\n _this.core.$outer.removeClass('lg-grabbing').addClass('lg-grab');\n\n });\n };\n\n Zoom.prototype.touchendZoom = function(startCoords, endCoords, allowX, allowY, rotateValue) {\n\n var _this = this;\n var _$el = _this.core.$slide.eq(_this.core.index).find('.lg-img-wrap');\n var $image = _this.core.$slide.eq(_this.core.index).find('.lg-object');\n var rotateEl = _this.core.$slide.eq(_this.core.index).find('.lg-img-rotate')[0];\n var distanceX = (-Math.abs(_$el.attr('data-x'))) + ((endCoords.x - startCoords.x) * _this.getModifier(rotateValue, 'X', rotateEl));\n var distanceY = (-Math.abs(_$el.attr('data-y'))) + ((endCoords.y - startCoords.y) * _this.getModifier(rotateValue, 'Y', rotateEl));\n var possibleDragCords = _this.getPossibleDragCords($image, Math.abs(rotateValue));\n if ((Math.abs(endCoords.x - startCoords.x) > 15) || (Math.abs(endCoords.y - startCoords.y) > 15)) {\n if (allowY) {\n if (distanceY <= -possibleDragCords.maxY) {\n distanceY = -possibleDragCords.maxY;\n } else if (distanceY >= -possibleDragCords.minY) {\n distanceY = -possibleDragCords.minY;\n }\n }\n\n if (allowX) {\n if (distanceX <= -possibleDragCords.maxX) {\n distanceX = -possibleDragCords.maxX;\n } else if (distanceX >= -possibleDragCords.minX) {\n distanceX = -possibleDragCords.minX;\n }\n }\n\n if (allowY) {\n _$el.attr('data-y', Math.abs(distanceY));\n } else {\n distanceY = -Math.abs(_$el.attr('data-y'));\n }\n\n if (allowX) {\n _$el.attr('data-x', Math.abs(distanceX));\n } else {\n distanceX = -Math.abs(_$el.attr('data-x'));\n }\n\n if (_this.core.s.useLeftForZoom) {\n _$el.css({\n left: distanceX + 'px',\n top: distanceY + 'px'\n });\n } else {\n _$el.css('transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)');\n }\n\n }\n };\n\n Zoom.prototype.destroy = function() {\n\n var _this = this;\n\n // Unbind all events added by lightGallery zoom plugin\n _this.core.$el.off('.lg.zoom');\n $(window).off('.lg.zoom');\n _this.core.$slide.off('.lg.zoom');\n _this.core.$el.off('.lg.tm.zoom');\n _this.resetZoom();\n clearTimeout(_this.zoomabletimeout);\n _this.zoomabletimeout = false;\n };\n\n $.fn.lightGallery.modules.zoom = Zoom;\n\n})();\n\n\n}));\n","(function () {\n\n 'use strict';\n\n /**\n * Load attachment previews within message div if needed.\n *\n * @param $message\n */\n var loadPreviews = function ($message)\n {\n // Preview certain attachments\n $($message).find(\".sp-attachments\").lightGallery({\n selector: '.sp-attachment-preview',\n counter: false\n });\n\n // Load preview image if it exists\n $($message).find('span[data-preview-url]').each(function (index) {\n var $this = $(this);\n\n // Set it in image so it tries to download it\n $('').attr(\"src\", $this.data('preview-url'))\n .addClass('sp-inline sp-relative sp-transform sp--translate-y-1/2')\n .css('top', '50%')\n .prependTo($(this));\n\n // Handle image load/error\n $(this).find('img').on('load', function () {\n // Handler for .load() called.\n $this.find('.fas').remove();\n }).on('error', function () {\n // If 404 or other error\n // Replace preview link with download link\n $this.parents('a').removeClass('sp-attachment-preview').attr('href', $this.data('download-url'));\n $this.parents('li').find('.sp-preview-hover').html('');\n\n // Stop the lightbox working for this item\n var $lg = $this.parents('.sp-attachments');\n $lg.data('lightGallery').destroy(true);\n $lg.lightGallery({\n selector: '.sp-attachment-preview',\n counter: false\n });\n\n // Show the default icon\n $this.replaceWith('');\n });\n\n $(this).removeAttr('data-preview-url');\n });\n };\n\n App.extend('attachments', {\n loadPreviews: loadPreviews\n });\n\n})();\n"]}