1/*! lightgallery - v1.10.0 - 2020-11-07 2 * http://sachinchoolur.github.io/lightGallery/ 3 * Copyright (c) 2020 Sachin N; Licensed GPLv3 */ 4!(function (a, b) { 5 "function" == typeof define && define.amd 6 ? define(["jquery"], function (a) { 7 return b(a); 8 }) 9 : "object" == typeof module && module.exports 10 ? (module.exports = b(require("jquery"))) 11 : b(a.jQuery); 12})(this, function (a) { 13 !(function () { 14 "use strict"; 15 function b(b, d) { 16 if ( 17 ((this.el = b), 18 (this.$el = a(b)), 19 (this.s = a.extend({}, c, d)), 20 this.s.dynamic && 21 "undefined" !== this.s.dynamicEl && 22 this.s.dynamicEl.constructor === Array && 23 !this.s.dynamicEl.length) 24 ) 25 throw "When using dynamic mode, you must also define dynamicEl as an Array."; 26 return ( 27 (this.modules = {}), 28 (this.lGalleryOn = !1), 29 (this.lgBusy = !1), 30 (this.hideBarTimeout = !1), 31 (this.isTouch = "ontouchstart" in document.documentElement), 32 this.s.slideEndAnimatoin && (this.s.hideControlOnEnd = !1), 33 this.s.dynamic 34 ? (this.$items = this.s.dynamicEl) 35 : "this" === this.s.selector 36 ? (this.$items = this.$el) 37 : "" !== this.s.selector 38 ? this.s.selectWithin 39 ? (this.$items = a(this.s.selectWithin).find(this.s.selector)) 40 : (this.$items = this.$el.find(a(this.s.selector))) 41 : (this.$items = this.$el.children()), 42 (this.$slide = ""), 43 (this.$outer = ""), 44 this.init(), 45 this 46 ); 47 } 48 var c = { 49 mode: "lg-slide", 50 cssEasing: "ease", 51 easing: "linear", 52 speed: 600, 53 height: "100%", 54 width: "100%", 55 addClass: "", 56 startClass: "lg-start-zoom", 57 backdropDuration: 150, 58 hideBarsDelay: 6e3, 59 useLeft: !1, 60 ariaLabelledby: "", 61 ariaDescribedby: "", 62 closable: !0, 63 loop: !0, 64 escKey: !0, 65 keyPress: !0, 66 controls: !0, 67 slideEndAnimatoin: !0, 68 hideControlOnEnd: !1, 69 mousewheel: !0, 70 getCaptionFromTitleOrAlt: !0, 71 appendSubHtmlTo: ".lg-sub-html", 72 subHtmlSelectorRelative: !1, 73 preload: 1, 74 showAfterLoad: !0, 75 selector: "", 76 selectWithin: "", 77 nextHtml: "", 78 prevHtml: "", 79 index: !1, 80 iframeMaxWidth: "100%", 81 download: !0, 82 counter: !0, 83 appendCounterTo: ".lg-toolbar", 84 swipeThreshold: 50, 85 enableSwipe: !0, 86 enableDrag: !0, 87 dynamic: !1, 88 dynamicEl: [], 89 galleryId: 1, 90 supportLegacyBrowser: !0, 91 }; 92 (b.prototype.init = function () { 93 var b = this; 94 b.s.preload > b.$items.length && (b.s.preload = b.$items.length); 95 var c = window.location.hash; 96 c.indexOf("lg=" + this.s.galleryId) > 0 && 97 ((b.index = parseInt(c.split("&slide=")[1], 10)), 98 a("body").addClass("lg-from-hash"), 99 a("body").hasClass("lg-on") || 100 (setTimeout(function () { 101 b.build(b.index); 102 }), 103 a("body").addClass("lg-on"))), 104 b.s.dynamic 105 ? (b.$el.trigger("onBeforeOpen.lg"), 106 (b.index = b.s.index || 0), 107 a("body").hasClass("lg-on") || 108 setTimeout(function () { 109 b.build(b.index), a("body").addClass("lg-on"); 110 })) 111 : b.$items.on("click.lgcustom", function (c) { 112 try { 113 c.preventDefault(), c.preventDefault(); 114 } catch (a) { 115 c.returnValue = !1; 116 } 117 b.$el.trigger("onBeforeOpen.lg"), 118 (b.index = b.s.index || b.$items.index(this)), 119 a("body").hasClass("lg-on") || 120 (b.build(b.index), a("body").addClass("lg-on")); 121 }); 122 }), 123 (b.prototype.build = function (b) { 124 var c = this; 125 c.structure(), 126 a.each(a.fn.lightGallery.modules, function (b) { 127 c.modules[b] = new a.fn.lightGallery.modules[b](c.el); 128 }), 129 c.slide(b, !1, !1, !1), 130 c.s.keyPress && c.keyPress(), 131 c.$items.length > 1 132 ? (c.arrow(), 133 setTimeout(function () { 134 c.enableDrag(), c.enableSwipe(); 135 }, 50), 136 c.s.mousewheel && c.mousewheel()) 137 : c.$slide.on("click.lg", function () { 138 c.$el.trigger("onSlideClick.lg"); 139 }), 140 c.counter(), 141 c.closeGallery(), 142 c.$el.trigger("onAfterOpen.lg"), 143 c.s.hideBarsDelay > 0 &&
144 c.$outer.on("mousemove.lg click.lg touchstart.lg", function () { 145 c.$outer.removeClass("lg-hide-items"), 146 clearTimeout(c.hideBarTimeout), 147 (c.hideBarTimeout = setTimeout(function () { 148 c.$outer.addClass("lg-hide-items"); 149 }, c.s.hideBarsDelay)); 150 }), 151 c.$outer.trigger("mousemove.lg"); 152 }), 153 (b.prototype.structure = function () { 154 var b, 155 c = "", 156 d = "", 157 e = 0, 158 f = "", 159 g = this; 160 for ( 161 a("body").append('<div class="lg-backdrop"></div>'), 162 a(".lg-backdrop").css( 163 "transition-duration", 164 this.s.backdropDuration + "ms" 165 ), 166 e = 0; 167 e < this.$items.length; 168 e++ 169 ) 170 c += '<div class="lg-item"></div>'; 171 if ( 172 (this.s.controls && 173 this.$items.length > 1 && 174 (d = 175 '<div class="lg-actions"><button type="button" aria-label="Previous slide" class="lg-prev lg-icon">' + 176 this.s.prevHtml + 177 '</button><button type="button" aria-label="Next slide" class="lg-next lg-icon">' + 178 this.s.nextHtml + 179 "</button></div>"), 180 ".lg-sub-html" === this.s.appendSubHtmlTo && 181 (f = 182 '<div role="status" aria-live="polite" class="lg-sub-html"></div>'), 183 (b = 184 '<div tabindex="-1" aria-modal="true" ' + 185 (this.s.ariaLabelledby 186 ? 'aria-labelledby="' + this.s.ariaLabelledby + '"' 187 : "") + 188 " " + 189 (this.s.ariaDescribedby 190 ? 'aria-describedby="' + this.s.ariaDescribedby + '"' 191 : "") + 192 ' role="dialog" class="lg-outer ' + 193 this.s.addClass + 194 " " + 195 this.s.startClass + 196 '"><div class="lg" style="width:' + 197 this.s.width + 198 "; height:" + 199 this.s.height + 200 '"><div class="lg-inner">' + 201 c + 202 '</div><div class="lg-toolbar lg-group"><button type="button" aria-label="Close gallery" class="lg-close lg-icon"></button></div>' + 203 d + 204 f + 205 "</div></div>"), 206 a("body").append(b), 207 (this.$outer = a(".lg-outer")), 208 this.$outer.focus(), 209 (this.$slide = this.$outer.find(".lg-item")), 210 this.s.useLeft 211 ? (this.$outer.addClass("lg-use-left"), (this.s.mode = "lg-slide")) 212 : this.$outer.addClass("lg-use-css3"), 213 g.setTop(), 214 a(window).on("resize.lg orientationchange.lg", function () { 215 setTimeout(function () { 216 g.setTop(); 217 }, 100); 218 }), 219 this.$slide.eq(this.index).addClass("lg-current"), 220 this.doCss() 221 ? this.$outer.addClass("lg-css3") 222 : (this.$outer.addClass("lg-css"), (this.s.speed = 0)), 223 this.$outer.addClass(this.s.mode), 224 this.s.enableDrag && 225 this.$items.length > 1 && 226 this.$outer.addClass("lg-grab"), 227 this.s.showAfterLoad && this.$outer.addClass("lg-show-after-load"), 228 this.doCss()) 229 ) { 230 var h = this.$outer.find(".lg-inner"); 231 h.css("transition-timing-function", this.s.cssEasing), 232 h.css("transition-duration", this.s.speed + "ms"); 233 } 234 setTimeout(function () { 235 a(".lg-backdrop").addClass("in"); 236 }), 237 setTimeout(function () { 238 g.$outer.addClass("lg-visible"); 239 }, this.s.backdropDuration), 240 this.s.download && 241 this.$outer 242 .find(".lg-toolbar") 243 .append( 244 '<a id="lg-download" aria-label="Download" target="_blank" download class="lg-download lg-icon"></a>' 245 ), 246 (this.prevScrollTop = a(window).scrollTop()); 247 }), 248 (b.prototype.setTop = function () { 249 if ("100%" !== this.s.height) { 250 var b = a(window).height(), 251 c = (b - parseInt(this.s.height, 10)) / 2, 252 d = this.$outer.find(".lg"); 253 b >= parseInt(this.s.height, 10) 254 ? d.css("top", c + "px") 255 : d.css("top", "0px"); 256 } 257 }), 258 (b.prototype.doCss = function () { 259 return !!(function () { 260 var a = [ 261 "transition", 262 "MozTransition", 263 "WebkitTransition", 264 "OTransition", 265 "msTransition", 266 "KhtmlTransition", 267 ], 268 b = document.documentElement, 269 c = 0; 270 for (c = 0; c < a.length; c++) if (a[c] in b.style) return !0; 271 })(); 272 }), 273 (b.prototype.isVideo = function (a, b) { 274 var c; 275 if ( 276 ((c = this.s.dynamic 277 ? this.s.dynamicEl[b].html 278 : this.$items.eq(b).attr("data-html")), 279 !a) 280 ) 281 return c 282 ? { html5: !0 } 283 : (console.error( 284 "lightGallery :- data-src is not provided on slide item " + 285 (b + 1) + 286 ". Please make sure the selector property is properly configured. More info - http://sachinchoolur.github.io/lightGallery/demos/html-markup.html" 287 ), 288 !1); 289 var d = a.match( 290 /\/\/(?:www\.)?youtu(?:\.be|be\.com|be-nocookie\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)/i 291 ), 292 e = a.match( 293 /\/\/(?:www\.)?(?:player\.)?vimeo.com\/(?:video\/)?([0-9a-z\-_]+)/i 294 ), 295 f = a.match(/\/\/(?:www\.)?dai.ly\/([0-9a-z\-_]+)/i), 296 g = a.match( 297 /\/\/(?:www\.)?(?:vk\.com|vkontakte\.ru)\/(?:video_ext\.php\?)(.*)/i 298 ); 299 return d 300 ? { youtube: d } 301 : e 302 ? { vimeo: e } 303 : f 304 ? { dailymotion: f } 305 : g 306 ? { vk: g } 307 : void 0; 308 }), 309 (b.prototype.counter = function () { 310 this.s.counter && 311 a(this.s.appendCounterTo).append(
312 '<div id="lg-counter" role="status" aria-live="polite"><span id="lg-counter-current">' + 313 (parseInt(this.index, 10) + 1) + 314 '</span> / <span id="lg-counter-all">' + 315 this.$items.length + 316 "</span></div>" 317 ); 318 }), 319 (b.prototype.addHtml = function (b) { 320 var c, 321 d, 322 e = null; 323 if ( 324 (this.s.dynamic 325 ? this.s.dynamicEl[b].subHtmlUrl 326 ? (c = this.s.dynamicEl[b].subHtmlUrl) 327 : (e = this.s.dynamicEl[b].subHtml) 328 : ((d = this.$items.eq(b)), 329 d.attr("data-sub-html-url") 330 ? (c = d.attr("data-sub-html-url")) 331 : ((e = d.attr("data-sub-html")), 332 this.s.getCaptionFromTitleOrAlt && 333 !e && 334 (e = 335 d.attr("title") || d.find("img").first().attr("alt")))), 336 !c) 337 ) 338 if (void 0 !== e && null !== e) { 339 var f = e.substring(0, 1); 340 ("." !== f && "#" !== f) || 341 (e = 342 this.s.subHtmlSelectorRelative && !this.s.dynamic 343 ? d.find(e).html() 344 : a(e).html()); 345 } else e = ""; 346 ".lg-sub-html" === this.s.appendSubHtmlTo 347 ? c 348 ? this.$outer.find(this.s.appendSubHtmlTo).load(c) 349 : this.$outer.find(this.s.appendSubHtmlTo).html(e) 350 : c 351 ? this.$slide.eq(b).load(c) 352 : this.$slide.eq(b).append(e), 353 void 0 !== e && 354 null !== e && 355 ("" === e 356 ? this.$outer 357 .find(this.s.appendSubHtmlTo) 358 .addClass("lg-empty-html") 359 : this.$outer 360 .find(this.s.appendSubHtmlTo) 361 .removeClass("lg-empty-html")), 362 this.$el.trigger("onAfterAppendSubHtml.lg", [b]); 363 }), 364 (b.prototype.preload = function (a) { 365 var b = 1, 366 c = 1; 367 for (b = 1; b <= this.s.preload && !(b >= this.$items.length - a); b++) 368 this.loadContent(a + b, !1, 0); 369 for (c = 1; c <= this.s.preload && !(a - c < 0); c++) 370 this.loadContent(a - c, !1, 0); 371 }), 372 (b.prototype.loadContent = function (b, c, d) { 373 var e, 374 f, 375 g, 376 h, 377 i, 378 j, 379 k, 380 l = this, 381 m = !1, 382 n = function (b) { 383 for (var c = [], d = [], e = 0; e < b.length; e++) { 384 var g = b[e].split(" "); 385 "" === g[0] && g.splice(0, 1), d.push(g[0]), c.push(g[1]); 386 } 387 for (var h = a(window).width(), i = 0; i < c.length; i++) 388 if (parseInt(c[i], 10) > h) { 389 f = d[i]; 390 break; 391 } 392 }; 393 if (l.s.dynamic) { 394 if ( 395 (l.s.dynamicEl[b].poster && 396 ((m = !0), (g = l.s.dynamicEl[b].poster)), 397 (j = l.s.dynamicEl[b].html), 398 (f = l.s.dynamicEl[b].src), 399 (k = l.s.dynamicEl[b].alt), 400 l.s.dynamicEl[b].responsive) 401 ) { 402 n(l.s.dynamicEl[b].responsive.split(",")); 403 } 404 (h = l.s.dynamicEl[b].srcset), (i = l.s.dynamicEl[b].sizes); 405 } else { 406 var o = l.$items.eq(b); 407 if ( 408 (o.attr("data-poster") && ((m = !0), (g = o.attr("data-poster"))), 409 (j = o.attr("data-html")), 410 (f = o.attr("href") || o.attr("data-src")), 411 (k = o.attr("title") || o.find("img").first().attr("alt")), 412 o.attr("data-responsive")) 413 ) { 414 n(o.attr("data-responsive").split(",")); 415 } 416 (h = o.attr("data-srcset")), (i = o.attr("data-sizes")); 417 } 418 var p = !1; 419 l.s.dynamic 420 ? l.s.dynamicEl[b].iframe && (p = !0) 421 : "true" === l.$items.eq(b).attr("data-iframe") && (p = !0); 422 var q = l.isVideo(f, b); 423 if (!l.$slide.eq(b).hasClass("lg-loaded")) { 424 if (p) 425 l.$slide 426 .eq(b) 427 .prepend( 428 '<div class="lg-video-cont lg-has-iframe" style="max-width:' + 429 l.s.iframeMaxWidth + 430 '"><div class="lg-video"><iframe class="lg-object" frameborder="0" src="' + 431 f + 432 '" allowfullscreen="true"></iframe></div></div>' 433 ); 434 else if (m) { 435 var r = ""; 436 (r = 437 q && q.youtube 438 ? "lg-has-youtube" 439 : q && q.vimeo 440 ? "lg-has-vimeo" 441 : "lg-has-html5"), 442 l.$slide 443 .eq(b) 444 .prepend( 445 '<div class="lg-video-cont ' + 446 r + 447 ' "><div class="lg-video"><span class="lg-video-play"></span><img class="lg-object lg-has-poster" src="' + 448 g + 449 '" /></div></div>' 450 ); 451 } else 452 q 453 ? (l.$slide 454 .eq(b) 455 .prepend( 456 '<div class="lg-video-cont "><div class="lg-video"></div></div>' 457 ), 458 l.$el.trigger("hasVideo.lg", [b, f, j])) 459 : ((k = k ? 'alt="' + k + '"' : ""), 460 l.$slide 461 .eq(b) 462 .prepend( 463 '<div class="lg-img-wrap"><img class="lg-object lg-image" ' + 464 k + 465 ' src="' + 466 f + 467 '" /></div>' 468 )); 469 if ( 470 (l.$el.trigger("onAferAppendSlide.lg", [b]), 471 (e = l.$slide.eq(b).find(".lg-object")), 472 i && e.attr("sizes", i), 473 h && (e.attr("srcset", h), this.s.supportLegacyBrowser)) 474 ) 475 try { 476 picturefill({ elements: [e[0]] }); 477 } catch (a) { 478 console.warn( 479 "lightGallery :- If you want srcset to be supported for older browser please include picturefil version 2 javascript library in your document." 480 ); 481 } 482 ".lg-sub-html" !== this.s.appendSubHtmlTo && l.addHtml(b), 483 l.$slide.eq(b).addClass("lg-loaded"); 484 } 485 l.$slide 486 .eq(b) 487 .find(".lg-object") 488 .on("load.lg error.lg", function () { 489 var c = 0; 490 d && !a("body").hasClass("lg-from-hash") && (c = d), 491 setTimeout(function () { 492 l.$slide.eq(b).addClass("lg-complete"), 493 l.$el.trigger("onSlideItemLoad.lg", [b, d || 0]); 494 }, c); 495 }), 496 q && q.html5 && !m && l.$slide.eq(b).addClass("lg-complete"), 497 !0 === c && 498 (l.$slide.eq(b).hasClass("lg-complete") 499 ? l.preload(b) 500 : l.$slide 501 .eq(b) 502 .find(".lg-object") 503 .on("load.lg error.lg", function () { 504 l.preload(b); 505 })); 506 }), 507 (b.prototype.slide = function (b, c, d, e) { 508 var f = this.$outer.find(".lg-current").index(), 509 g = this; 510 if (!g.lGalleryOn || f !== b) { 511 var h = this.$slide.length, 512 i = g.lGalleryOn ? this.s.speed : 0; 513 if (!g.lgBusy) { 514 if (this.s.download) { 515 var j; 516 (j = g.s.dynamic 517 ? !1 !== g.s.dynamicEl[b].downloadUrl && 518 (g.s.dynamicEl[b].downloadUrl || g.s.dynamicEl[b].src) 519 : "false" !== g.$items.eq(b).attr("data-download-url") && 520 (g.$items.eq(b).attr("data-download-url") || 521 g.$items.eq(b).attr("href") || 522 g.$items.eq(b).attr("data-src"))), 523 j 524 ? (a("#lg-download").attr("href", j), 525 g.$outer.removeClass("lg-hide-download")) 526 : g.$outer.addClass("lg-hide-download"); 527 } 528 if ( 529 (this.$el.trigger("onBeforeSlide.lg", [f, b, c, d]), 530 (g.lgBusy = !0), 531 clearTimeout(g.hideBarTimeout), 532 ".lg-sub-html" === this.s.appendSubHtmlTo && 533 setTimeout(function () { 534 g.addHtml(b); 535 }, i), 536 this.arrowDisable(b), 537 e || (b < f ? (e = "prev") : b > f && (e = "next")), 538 c) 539 ) { 540 this.$slide.removeClass("lg-prev-slide lg-current lg-next-slide"); 541 var k, l; 542 h > 2 543 ? ((k = b - 1), 544 (l = b + 1), 545 0 === b && f === h - 1 546 ? ((l = 0), (k = h - 1)) 547 : b === h - 1 && 0 === f && ((l = 0), (k = h - 1))) 548 : ((k = 0), (l = 1)), 549 "prev" === e 550 ? g.$slide.eq(l).addClass("lg-next-slide") 551 : g.$slide.eq(k).addClass("lg-prev-slide"), 552 g.$slide.eq(b).addClass("lg-current"); 553 } else 554 g.$outer.addClass("lg-no-trans"), 555 this.$slide.removeClass("lg-prev-slide lg-next-slide"), 556 "prev" === e 557 ? (this.$slide.eq(b).addClass("lg-prev-slide"), 558 this.$slide.eq(f).addClass("lg-next-slide")) 559 : (this.$slide.eq(b).addClass("lg-next-slide"), 560 this.$slide.eq(f).addClass("lg-prev-slide")), 561 setTimeout(function () { 562 g.$slide.removeClass("lg-current"), 563 g.$slide.eq(b).addClass("lg-current"), 564 g.$outer.removeClass("lg-no-trans"); 565 }, 50); 566 g.lGalleryOn 567 ? (setTimeout(function () { 568 g.loadContent(b, !0, 0); 569 }, this.s.speed + 50), 570 setTimeout(function () { 571 (g.lgBusy = !1), 572 g.$el.trigger("onAfterSlide.lg", [f, b, c, d]); 573 }, this.s.speed)) 574 : (g.loadContent(b, !0, g.s.backdropDuration), 575 (g.lgBusy = !1), 576 g.$el.trigger("onAfterSlide.lg", [f, b, c, d])), 577 (g.lGalleryOn = !0), 578 this.s.counter && a("#lg-counter-current").text(b + 1); 579 } 580 g.index = b; 581 } 582 }), 583 (b.prototype.goToNextSlide = function (a) { 584 var b = this, 585 c = b.s.loop; 586 a && b.$slide.length < 3 && (c = !1), 587 b.lgBusy || 588 (b.index + 1 < b.$slide.length 589 ? (b.index++, 590 b.$el.trigger("onBeforeNextSlide.lg", [b.index]), 591 b.slide(b.index, a, !1, "next")) 592 : c 593 ? ((b.index = 0), 594 b.$el.trigger("onBeforeNextSlide.lg", [b.index]), 595 b.slide(b.index, a, !1, "next")) 596 : b.s.slideEndAnimatoin && 597 !a && 598 (b.$outer.addClass("lg-right-end"), 599 setTimeout(function () { 600 b.$outer.removeClass("lg-right-end"); 601 }, 400))); 602 }), 603 (b.prototype.goToPrevSlide = function (a) { 604 var b = this, 605 c = b.s.loop; 606 a && b.$slide.length < 3 && (c = !1), 607 b.lgBusy || 608 (b.index > 0 609 ? (b.index--, 610 b.$el.trigger("onBeforePrevSlide.lg", [b.index, a]), 611 b.slide(b.index, a, !1, "prev")) 612 : c 613 ? ((b.index = b.$items.length - 1), 614 b.$el.trigger("onBeforePrevSlide.lg", [b.index, a]), 615 b.slide(b.index, a, !1, "prev")) 616 : b.s.slideEndAnimatoin && 617 !a && 618 (b.$outer.addClass("lg-left-end"), 619 setTimeout(function () { 620 b.$outer.removeClass("lg-left-end"); 621 }, 400))); 622 }), 623 (b.prototype.keyPress = function () { 624 var b = this; 625 this.$items.length > 1 && 626 a(window).on("keyup.lg", function (a) { 627 b.$items.length > 1 && 628 (37 === a.keyCode && (a.preventDefault(), b.goToPrevSlide()), 629 39 === a.keyCode && (a.preventDefault(), b.goToNextSlide())); 630 }), 631 a(window).on("keydown.lg", function (a) { 632 !0 === b.s.escKey && 633 27 === a.keyCode && 634 (a.preventDefault(), 635 b.$outer.hasClass("lg-thumb-open") 636 ? b.$outer.removeClass("lg-thumb-open") 637 : b.destroy()); 638 }); 639 }), 640 (b.prototype.arrow = function () { 641 var a = this; 642 this.$outer.find(".lg-prev").on("click.lg", function () { 643 a.goToPrevSlide(); 644 }), 645 this.$outer.find(".lg-next").on("click.lg", function () { 646 a.goToNextSlide(); 647 }); 648 }), 649 (b.prototype.arrowDisable = function (a) { 650 !this.s.loop && 651 this.s.hideControlOnEnd && 652 (a + 1 < this.$slide.length 653 ? this.$outer 654 .find(".lg-next") 655 .removeAttr("disabled") 656 .removeClass("disabled") 657 : this.$outer 658 .find(".lg-next") 659 .attr("disabled", "disabled") 660 .addClass("disabled"), 661 a > 0 662 ? this.$outer 663 .find(".lg-prev") 664 .removeAttr("disabled") 665 .removeClass("disabled") 666 : this.$outer 667 .find(".lg-prev") 668 .attr("disabled", "disabled") 669 .addClass("disabled")); 670 }), 671 (b.prototype.setTranslate = function (a, b, c) { 672 this.s.useLeft 673 ? a.css("left", b) 674 : a.css({ transform: "translate3d(" + b + "px, " + c + "px, 0px)" }); 675 }), 676 (b.prototype.touchMove = function (b, c) { 677 var d = c - b; 678 Math.abs(d) > 15 && 679 (this.$outer.addClass("lg-dragging"), 680 this.setTranslate(this.$slide.eq(this.index), d, 0), 681 this.setTranslate( 682 a(".lg-prev-slide"), 683 -this.$slide.eq(this.index).width() + d, 684 0 685 ), 686 this.setTranslate( 687 a(".lg-next-slide"), 688 this.$slide.eq(this.index).width() + d, 689 0 690 )); 691 }), 692 (b.prototype.touchEnd = function (a) { 693 var b = this; 694 "lg-slide" !== b.s.mode && b.$outer.addClass("lg-slide"), 695 this.$slide 696 .not(".lg-current, .lg-prev-slide, .lg-next-slide") 697 .css("opacity", "0"), 698 setTimeout(function () { 699 b.$outer.removeClass("lg-dragging"), 700 a < 0 && Math.abs(a) > b.s.swipeThreshold 701 ? b.goToNextSlide(!0) 702 : a > 0 && Math.abs(a) > b.s.swipeThreshold 703 ? b.goToPrevSlide(!0) 704 : Math.abs(a) < 5 && b.$el.trigger("onSlideClick.lg"), 705 b.$slide.removeAttr("style"); 706 }), 707 setTimeout(function () { 708 b.$outer.hasClass("lg-dragging") || 709 "lg-slide" === b.s.mode || 710 b.$outer.removeClass("lg-slide"); 711 }, b.s.speed + 100); 712 }), 713 (b.prototype.enableSwipe = function () { 714 var a = this, 715 b = 0, 716 c = 0, 717 d = !1; 718 a.s.enableSwipe && 719 a.doCss() && 720 (a.$slide.on("touchstart.lg", function (c) { 721 a.$outer.hasClass("lg-zoomed") || 722 a.lgBusy || 723 (c.preventDefault(), 724 a.manageSwipeClass(), 725 (b = c.originalEvent.targetTouches[0].pageX)); 726 }), 727 a.$slide.on("touchmove.lg", function (e) { 728 a.$outer.hasClass("lg-zoomed") || 729 (e.preventDefault(), 730 (c = e.originalEvent.targetTouches[0].pageX), 731 a.touchMove(b, c), 732 (d = !0)); 733 }), 734 a.$slide.on("touchend.lg", function () { 735 a.$outer.hasClass("lg-zoomed") || 736 (d 737 ? ((d = !1), a.touchEnd(c - b)) 738 : a.$el.trigger("onSlideClick.lg")); 739 })); 740 }), 741 (b.prototype.enableDrag = function () { 742 var b = this, 743 c = 0, 744 d = 0, 745 e = !1, 746 f = !1; 747 b.s.enableDrag && 748 b.doCss(
748) && 749 (b.$slide.on("mousedown.lg", function (d) { 750 b.$outer.hasClass("lg-zoomed") || 751 b.lgBusy || 752 a(d.target).text().trim() || 753 (d.preventDefault(), 754 b.manageSwipeClass(), 755 (c = d.pageX), 756 (e = !0), 757 (b.$outer.scrollLeft += 1), 758 (b.$outer.scrollLeft -= 1), 759 b.$outer.removeClass("lg-grab").addClass("lg-grabbing"), 760 b.$el.trigger("onDragstart.lg")); 761 }), 762 a(window).on("mousemove.lg", function (a) { 763 e && 764 ((f = !0), 765 (d = a.pageX), 766 b.touchMove(c, d), 767 b.$el.trigger("onDragmove.lg")); 768 }), 769 a(window).on("mouseup.lg", function (g) { 770 f 771 ? ((f = !1), b.touchEnd(d - c), b.$el.trigger("onDragend.lg")) 772 : (a(g.target).hasClass("lg-object") || 773 a(g.target).hasClass("lg-video-play")) && 774 b.$el.trigger("onSlideClick.lg"), 775 e && 776 ((e = !1), 777 b.$outer.removeClass("lg-grabbing").addClass("lg-grab")); 778 })); 779 }), 780 (b.prototype.manageSwipeClass = function () { 781 var a = this.index + 1, 782 b = this.index - 1; 783 this.s.loop && 784 this.$slide.length > 2 && 785 (0 === this.index 786 ? (b = this.$slide.length - 1) 787 : this.index === this.$slide.length - 1 && (a = 0)), 788 this.$slide.removeClass("lg-next-slide lg-prev-slide"), 789 b > -1 && this.$slide.eq(b).addClass("lg-prev-slide"), 790 this.$slide.eq(a).addClass("lg-next-slide"); 791 }), 792 (b.prototype.mousewheel = function () { 793 var a = this; 794 a.$outer.on("mousewheel.lg", function (b) { 795 b.deltaY && 796 (b.deltaY > 0 ? a.goToPrevSlide() : a.goToNextSlide(), 797 b.preventDefault()); 798 }); 799 }), 800 (b.prototype.closeGallery = function () { 801 var b = this, 802 c = !1; 803 this.$outer.find(".lg-close").on("click.lg", function () { 804 b.destroy(); 805 }), 806 b.s.closable && 807 (b.$outer.on("mousedown.lg", function (b) { 808 c = !!( 809 a(b.target).is(".lg-outer") || 810 a(b.target).is(".lg-item ") || 811 a(b.target).is(".lg-img-wrap") 812 ); 813 }), 814 b.$outer.on("mousemove.lg", function () { 815 c = !1; 816 }), 817 b.$outer.on("mouseup.lg", function (d) { 818 (a(d.target).is(".lg-outer") || 819 a(d.target).is(".lg-item ") || 820 (a(d.target).is(".lg-img-wrap") && c)) && 821 (b.$outer.hasClass("lg-dragging") || b.destroy()); 822 })); 823 }), 824 (b.prototype.destroy = function (b) { 825 var c = this; 826 b || 827 (c.$el.trigger("onBeforeClose.lg"), 828 a(window).scrollTop(c.prevScrollTop)), 829 b && 830 (c.s.dynamic || this.$items.off("click.lg click.lgcustom"), 831 a.removeData(c.el, "lightGallery")), 832 this.$el.off(".lg.tm"), 833 a.each(a.fn.lightGallery.modules, function (a) { 834 c.modules[a] && c.modules[a].destroy(); 835 }), 836 (this.lGalleryOn = !1), 837 clearTimeout(c.hideBarTimeout), 838 (this.hideBarTimeout = !1), 839 a(window).off(".lg"), 840 a("body").removeClass("lg-on lg-from-hash"), 841 c.$outer && c.$outer.removeClass("lg-visible"), 842 a(".lg-backdrop").removeClass("in"), 843 setTimeout(function () { 844 c.$outer && c.$outer.remove(), 845 a(".lg-backdrop").remove(), 846 b || c.$el.trigger("onCloseAfter.lg"), 847 c.$el.focus(); 848 }, c.s.backdropDuration + 50); 849 }), 850 (a.fn.lightGallery = function (c) { 851 return this.each(function () { 852 if (a.data(this, "lightGallery")) 853 try { 854 a(this).data("lightGallery").init(); 855 } catch (a) { 856 console.error("lightGallery has not initiated properly", a); 857 } 858 else a.data(this, "lightGallery", new b(this, c)); 859 }); 860 }), 861 (a.fn.lightGallery.modules = {}); 862 })(); 863});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.