vendor: 83,393 bytes, lines 1-2012
1(function(factory) { 2 "use strict"; 3 if (typeof define === "function" && define.amd) { 4 define(["jquery"], factory) 5 } else if (typeof exports !== "undefined") { 6 module.exports = factory(require("jquery")) 7 } else { 8 factory(jQuery) 9 } 10})(function($) { 11 "use strict"; 12 var Slick = window.Slick || {}; 13 Slick = function() { 14 var instanceUid = 0; 15 16 function Slick(element, settings) { 17 var _ = this, 18 dataSettings; 19 _.defaults = { 20 accessibility: true, 21 adaptiveHeight: false, 22 appendArrows: $(element), 23 appendDots: $(element), 24 arrows: true, 25 asNavFor: null, 26 prevArrow: '<button class="slick-prev" aria-label="Previous" type="button">Previous</button>', 27 nextArrow: '<button class="slick-next" aria-label="Next" type="button">Next</button>', 28 autoplay: false, 29 autoplaySpeed: 3e3, 30 centerMode: false, 31 centerPadding: "50px", 32 cssEase: "ease", 33 customPaging: function(slider, i) { 34 return $('<button type="button" />').text(i + 1) 35 }, 36 dots: false, 37 dotsClass: "slick-dots", 38 draggable: true, 39 easing: "linear", 40 edgeFriction: .35, 41 fade: false, 42 focusOnSelect: false, 43 focusOnChange: false, 44 infinite: true, 45 initialSlide: 0, 46 lazyLoad: "ondemand", 47 mobileFirst: false, 48 pauseOnHover: true, 49 pauseOnFocus: true, 50 pauseOnDotsHover: false, 51 respondTo: "window", 52 responsive: null, 53 rows: 1, 54 rtl: false, 55 slide: "", 56 slidesPerRow: 1, 57 slidesToShow: 1, 58 slidesToScroll: 1, 59 speed: 500, 60 swipe: true, 61 swipeToSlide: false, 62 touchMove: true, 63 touchThreshold: 5, 64 useCSS: true, 65 useTransform: true, 66 variableWidth: false, 67 vertical: false, 68 verticalSwiping: false, 69 waitForAnimate: true, 70 zIndex: 1e3 71 }; 72 _.initials = { 73 animating: false, 74 dragging: false, 75 autoPlayTimer: null, 76 currentDirection: 0, 77 currentLeft: null, 78 currentSlide: 0, 79 direction: 1, 80 $dots: null, 81 listWidth: null, 82 listHeight: null, 83 loadIndex: 0, 84 $nextArrow: null, 85 $prevArrow: null, 86 scrolling: false, 87 slideCount: null, 88 slideWidth: null, 89 $slideTrack: null, 90 $slides: null, 91 sliding: false, 92 slideOffset: 0, 93 swipeLeft: null, 94 swiping: false, 95 $list: null, 96 touchObject: {}, 97 transformsEnabled: false, 98 unslicked: false 99 }; 100 $.extend(_, _.initials); 101 _.activeBreakpoint = null; 102 _.animType = null; 103 _.animProp = null; 104 _.breakpoints = []; 105 _.breakpointSettings = []; 106 _.cssTransitions = false; 107 _.focussed = false; 108 _.interrupted = false; 109 _.hidden = "hidden"; 110 _.paused = true; 111 _.positionProp = null; 112 _.respondTo = null; 113 _.rowCount = 1; 114 _.shouldClick = true; 115 _.$slider = $(element); 116 _.$slidesCache = null; 117 _.transformType = null; 118 _.transitionType = null; 119 _.visibilityChange = "visibilitychange"; 120 _.windowWidth = 0; 121 _.windowTimer = null; 122 dataSettings = $(element).data("slick") || {}; 123 _.options = $.extend({}, _.defaults, settings, dataSettings); 124 _.currentSlide = _.options.initialSlide; 125 _.originalSettings = _.options; 126 if (typeof document.mozHidden !== "undefined") { 127 _.hidden = "mozHidden"; 128 _.visibilityChange = "mozvisibilitychange" 129 } else if (typeof document.webkitHidden !== "undefined") { 130 _.hidden = "webkitHidden"; 131 _.visibilityChange = "webkitvisibilitychange" 132 } 133 _.autoPlay = $.proxy(_.autoPlay, _); 134 _.autoPlayClear = $.proxy(_.autoPlayClear, _); 135 _.autoPlayIterator = $.proxy(_.autoPlayIterator, _); 136 _.changeSlide = $.proxy(_.changeSlide, _); 137 _.clickHandler = $.proxy(_.clickHandler, _); 138 _.selectHandler = $.proxy(_.selectHandler, _); 139 _.setPosition = $.proxy(_.setPosition, _); 140 _.swipeHandler = $.proxy(_.swipeHandler, _); 141 _.dragHandler = $.proxy(_.dragHandler, _); 142 _.keyHandler = $.proxy(_.keyHandler, _); 143 _.instanceUid = instanceUid++; 144 _.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/; 145 _.registerBreakpoints(); 146 _.init(true) 147 } 148 return Slick 149 }(); 150 Slick.prototype.activateADA = function() { 151 var _ = this; 152 _.$slideTrack.find(".slick-active").attr({ 153 "aria-hidden": "false" 154 }).find("a, input, button, select").attr({ 155 tabindex: "0" 156 }) 157 }; 158 Slick.prototype.addSlide = Slick.prototype.slickAdd = function(markup, index, addBefore) { 159 var _ = this; 160 if (typeof index === "boolean") { 161 addBefore = index; 162 index = null 163 } else if (index < 0 || index >= _.slideCount) { 164 return false 165 } 166 _.unload(); 167 if (typeof index === "number") { 168 if (index === 0 && _.$slides.length === 0) { 169 $(markup).appendTo(_.$slideTrack) 170 } else if (addBefore) { 171 $(markup).insertBefore(_.$slides.eq(index)) 172 } else { 173 $(markup).insertAfter(_.$slides.eq(index)) 174 } 175 } else { 176 if (addBefore === true) { 177 $(markup).prependTo(_.$slideTrack) 178 } else { 179 $(markup).appendTo(_.$slideTrack) 180 } 181 } 182 _.$slides = _.$slideTrack.children(this.options.slide); 183 _.$slideTrack.children(this.options.slide).detach(); 184 _.$slideTrack.append(_.$slides); 185 _.$slides.each(function(index, element) { 186 $(element).attr("data-slick-index", index) 187 }); 188 _.$slidesCache = _.$slides; 189 _.reinit() 190 }; 191 Slick.prototype.animateHeight = function() { 192 var _ = this; 193 if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) { 194 var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true); 195 _.$list.animate({ 196 height: targetHeight 197 }, _.options.speed) 198 } 199 }; 200 Slick.prototype.animateSlide = function(targetLeft, callback) { 201 var animProps = {}, 202 _ = this; 203 _.animateHeight(); 204 if (_.options.rtl === true && _.options.vertical === false) { 205 targetLeft = -targetLeft 206 } 207 if (_.transformsEnabled === false) { 208 if (_.options.vertical === false) { 209 _.$slideTrack.animate({ 210 left: targetLeft 211 }, _.options.speed, _.options.easing, callback) 212 } else { 213 _.$slideTrack.animate({ 214 top: targetLeft 215 }, _.options.speed, _.options.easing, callback) 216 } 217 } else { 218 if (_.cssTransitions === false) { 219 if (_.options.rtl === true) { 220 _.currentLeft = -_.currentLeft 221 } 222 $({ 223 animStart: _.currentLeft 224 }).animate({ 225 animStart: targetLeft 226 }, { 227 duration: _.options.speed, 228 easing: _.options.easing, 229 step: function(now) { 230 now = Math.ceil(now); 231 if (_.options.vertical === false) { 232 animProps[_.animType] = "translate(" + now + "px, 0px)"; 233 _.$slideTrack.css(animProps) 234 } else { 235 animProps[_.animType] = "translate(0px," + now + "px)"; 236 _.$slideTrack.css(animProps) 237 } 238 }, 239 complete: function() { 240 if (callback) { 241 callback.call() 242 } 243 } 244 }) 245 } else { 246 _.applyTransition(); 247 targetLeft = Math.ceil(targetLeft); 248 if (_.options.vertical === false) { 249 animProps[_.animType] = "translate3d(" + targetLeft + "px, 0px, 0px)" 250 } else { 251 animProps[_.animType] = "translate3d(0px," + targetLeft + "px, 0px)" 252 } 253 _.$slideTrack.css(animProps); 254 if (callback) { 255 setTimeout(function() { 256 _.disableTransition(); 257 callback.call() 258 }, _.options.speed) 259 } 260 } 261 } 262 }; 263 Slick.prototype.getNavTarget = function() { 264 var _ = this, 265 asNavFor = _.options.asNavFor; 266 if (asNavFor && asNavFor !== null) { 267 asNavFor = $(asNavFor).not(_.$slider) 268 } 269 return asNavFor 270 }; 271 Slick.prototype.asNavFor = function(index) { 272 var _ = this, 273 asNavFor = _.getNavTarget(); 274 if (asNavFor !== null && typeof asNavFor === "object") { 275 asNavFor.each(function() { 276 var target = $(this).slick("getSlick"); 277 if (!target.unslicked) { 278 target.slideHandler(index, true) 279 } 280 }) 281 } 282 }; 283 Slick.prototype.applyTransition = function(slide) { 284 var _ = this, 285 transition = {}; 286 if (_.options.fade === false) { 287 transition[_.transitionType] = _.transformType + " " + _.options.speed + "ms " + _.options.cssEase 288 } else { 289 transition[_.transitionType] = "opacity " + _.options.speed + "ms " + _.options.cssEase 290 } 291 if (_.options.fade === false) { 292 _.$slideTrack.css(transition) 293 } else { 294 _.$slides.eq(slide).css(transition) 295 } 296 }; 297 Slick.prototype.autoPlay = function() { 298 var _ = this; 299 _.autoPlayClear(); 300 if (_.slideCount > _.options.slidesToShow) { 301 _.autoPlayTimer = setInterval(_.autoPlayIterator, _.options.autoplaySpeed) 302 } 303 }; 304 Slick.prototype.autoPlayClear = function() { 305 var _ = this; 306 if (_.autoPlayTimer) { 307 clearInterval(_.autoPlayTimer) 308 } 309 }; 310 Slick.prototype.autoPlayIterator = function() { 311 var _ = this, 312 slideTo = _.currentSlide + _.options.slidesToScroll; 313 if (!_.paused && !_.interrupted && !_.focussed) { 314 if (_.options.infinite === false) { 315 if (_.direction === 1 && _.currentSlide + 1 === _.slideCount - 1) { 316 _.direction = 0 317 } else if (_.direction === 0) { 318 slideTo = _.currentSlide - _.options.slidesToScroll; 319 if (_.currentSlide - 1 === 0) { 320 _.direction = 1 321 } 322 } 323 } 324 _.slideHandler(slideTo) 325 } 326 }; 327 Slick.prototype.buildArrows = function() { 328 var _ = this; 329 if (_.options.arrows === true) { 330 _.$prevArrow = $(_.options.prevArrow).addClass("slick-arrow"); 331 _.$nextArrow = $(_.options.nextArrow).addClass("slick-arrow"); 332 if (_.slideCount > _.options.slidesToShow) { 333 _.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"); 334 _.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"); 335 if (_.htmlExpr.test(_.options.prevArrow)) { 336 _.$prevArrow.prependTo(_.options.appendArrows) 337 } 338 if (_.htmlExpr.test(_.options.nextArrow)) { 339 _.$nextArrow.appendTo(_.options.appendArrows) 340 } 341 if (_.options.infinite !== true) { 342 _.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true") 343 } 344 } else { 345 _.$prevArrow.add(_.$nextArrow).addClass("slick-hidden").attr({ 346 "aria-disabled": "true", 347 tabindex: "-1" 348 }) 349 } 350 } 351 }; 352 Slick.prototype.buildDots = function() { 353 var _ = this, 354 i, dot; 355 if (_.options.dots === true && _.slideCount > _.options.slidesToShow) { 356 _.$slider.addClass("slick-dotted"); 357 dot = $("<ul />").addClass(_.options.dotsClass); 358 for (i = 0; i <= _.getDotCount(); i += 1) { 359 dot.append($("<li />").append(_.options.customPaging.call(this, _, i))) 360 } 361 _.$dots = dot.appendTo(_.options.appendDots); 362 _.$dots.find("li").first().addClass("slick-active") 363 } 364 }; 365 Slick.prototype.buildOut = function() { 366 var _ = this; 367 _.$slides = _.$slider.children(_.options.slide + ":not(.slick-cloned)").addClass("slick-slide"); 368 _.slideCount = _.$slides.length; 369 _.$slides.each(function(index, element) { 370 $(element).attr("data-slick-index", index).data("originalStyling", $(element).attr("style") || "") 371 }); 372 _.$slider.addClass("slick-slider"); 373 _.$slideTrack = _.slideCount === 0 ? $('<div class="slick-track"/>').appendTo(_.$slider) : _.$slides.wrapAll('<div class="slick-track"/>').parent(); 374 _.$list = _.$slideTrack.wrap('<div class="slick-list"/>').parent(); 375 _.$slideTrack.css("opacity", 0); 376 if (_.options.centerMode === true || _.options.swipeToSlide === true) { 377 _.options.slidesToScroll = 1 378 } 379 $("img[data-lazy]", _.$slider).not("[src]").addClass("slick-loading"); 380 _.setupInfinite(); 381 _.buildArrows(); 382 _.buildDots(); 383 _.updateDots(); 384 _.setSlideClasses(typeof _.currentSlide === "number" ? _.currentSlide : 0); 385 if (_.options.draggable === true) { 386 _.$list.addClass("draggable") 387 } 388 }; 389 Slick.prototype.buildRows = function() { 390 var _ = this, 391 a, b, c, newSlides, numOfSlides, originalSlides, slidesPerSection; 392 newSlides = document.createDocumentFragment(); 393 originalSlides = _.$slider.children(); 394 if (_.options.rows > 0) { 395 slidesPerSection = _.options.slidesPerRow * _.options.rows; 396 numOfSlides = Math.ceil(originalSlides.length / slidesPerSection); 397 for (a = 0; a < numOfSlides; a++) { 398 var slide = document.createElement("div"); 399 for (b = 0; b < _.options.rows; b++) { 400 var row = document.createElement("div"); 401 for (c = 0; c < _.options.slidesPerRow; c++) { 402 var target = a * slidesPerSection + (b * _.options.slidesPerRow + c); 403 if (originalSlides.get(target)) { 404 row.appendChild(originalSlides.get(target)) 405 } 406 } 407 slide.appendChild(row) 408 } 409 newSlides.appendChild(slide) 410 } 411 _.$slider.empty().append(newSlides); 412 _.$slider.children().children().children().css({ 413 width: 100 / _.options.slidesPerRow + "%", 414 display: "inline-block" 415 }) 416 } 417 }; 418 Slick.prototype.checkResponsive = function(initial, forceUpdate) { 419 var _ = this, 420 breakpoint, targetBreakpoint, respondToWidth, triggerBreakpoint = false; 421 var sliderWidth = _.$slider.width(); 422 var windowWidth = window.innerWidth || $(window).width(); 423 if (_.respondTo === "window") { 424 respondToWidth = windowWidth 425 } else if (_.respondTo === "slider") { 426 respondToWidth = sliderWidth 427 } else if (_.respondTo === "min") { 428 respondToWidth = Math.min(windowWidth, sliderWidth) 429 } 430 if (_.options.responsive && _.options.responsive.length && _.options.responsive !== null) { 431 targetBreakpoint = null; 432 for (breakpoint in _.breakpoints) { 433 if (_.breakpoints.hasOwnProperty(breakpoint)) { 434 if (_.originalSettings.mobileFirst === false) { 435 if (respondToWidth < _.breakpoints[breakpoint]) { 436 targetBreakpoint = _.breakpoints[breakpoint] 437 } 438 } else { 439 if (respondToWidth > _.breakpoints[breakpoint]) { 440 targetBreakpoint = _.breakpoints[breakpoint] 441 } 442 } 443 } 444 } 445 if (targetBreakpoint !== null) { 446 if (_.activeBreakpoint !== null) { 447 if (targetBreakpoint !== _.activeBreakpoint || forceUpdate) { 448 _.activeBreakpoint = targetBreakpoint; 449 if (_.breakpointSettings[targetBreakpoint] === "unslick") { 450 _.unslick(targetBreakpoint) 451 } else { 452 _.options = $.extend({}, _.originalSettings, _.breakpointSettings[targetBreakpoint]); 453 if (initial === true) { 454 _.currentSlide = _.options.initialSlide 455 } 456 _.refresh(initial) 457 } 458 triggerBreakpoint = targetBreakpoint 459 } 460 } else { 461 _.activeBreakpoint = targetBreakpoint; 462 if (_.breakpointSettings[targetBreakpoint] === "unslick") { 463 _.unslick(targetBreakpoint) 464 } else { 465 _.options = $.extend({}, _.originalSettings, _.breakpointSettings[targetBreakpoint]); 466 if (initial === true) { 467 _.currentSlide = _.options.initialSlide 468 } 469 _.refresh(initial) 470 } 471 triggerBreakpoint = targetBreakpoint 472 } 473 } else { 474 if (_.activeBreakpoint !== null) { 475 _.activeBreakpoint = null; 476 _.options = _.originalSettings; 477 if (initial === true) { 478 _.currentSlide = _.options.initialSlide 479 } 480 _.refresh(initial); 481 triggerBreakpoint = targetBreakpoint 482 } 483 } 484 if (!initial && triggerBreakpoint !== false) { 485 _.$slider.trigger("breakpoint", [_, triggerBreakpoint]) 486 } 487 } 488 }; 489 Slick.prototype.changeSlide = function(event, dontAnimate) { 490 var _ = this, 491 $target = $(event.currentTarget), 492 indexOffset, slideOffset, unevenOffset; 493 if ($target.is("a")) { 494 event.preventDefault() 495 } 496 if (!$target.is("li")) { 497 $target = $target.closest("li") 498 } 499 unevenOffset = _.slideCount % _.options.slidesToScroll !== 0; 500 indexOffset = unevenOffset ? 0 : (_.slideCount - _.currentSlide) % _.options.slidesToScroll; 501 switch (event.data.message) { 502 case "previous": 503 slideOffset = indexOffset === 0 ? _.options.slidesToScroll : _.options.slidesToShow - indexOffset; 504 if (_.slideCount > _.options.slidesToShow) { 505 _.slideHandler(_.currentSlide - slideOffset, false, dontAnimate) 506 } 507 break; 508 case "next": 509 slideOffset = indexOffset === 0 ? _.options.slidesToScroll : indexOffset; 510 if (_.slideCount > _.options.slidesToShow) { 511 _.slideHandler(_.currentSlide + slideOffset, false, dontAnimate) 512 } 513 break; 514 case "index": 515 var index = event.data.index === 0 ? 0 : event.data.index || $target.index() * _.options.slidesToScroll; 516 _.slideHandler(_.checkNavigable(index), false, dontAnimate); 517 $target.children().trigger("focus"); 518 break; 519 default: 520 return 521 } 522 }; 523 Slick.prototype.checkNavigable = function(index) { 524 var _ = this, 525 navigables, prevNavigable; 526 navigables = _.getNavigableIndexes(); 527 prevNavigable = 0; 528 if (index > navigables[navigables.length - 1]) { 529 index = navigables[navigables.length - 1] 530 } else { 531 for (var n in navigables) { 532 if (index < navigables[n]) { 533 index = prevNavigable; 534 break 535 } 536 prevNavigable = navigables[n] 537 } 538 } 539 return index 540 }; 541 Slick.prototype.cleanUpEvents = function() { 542 var _ = this; 543 if (_.options.dots && _.$dots !== null) { 544 $("li", _.$dots).off("click.slick", _.changeSlide).off("mouseenter.slick", $.proxy(_.interrupt, _, true)).off("mouseleave.slick", $.proxy(_.interrupt, _, false)); 545 if (_.options.accessibility === true) { 546 _.$dots.off("keydown.slick", _.keyHandler) 547 } 548 } 549 _.$slider.off("focus.slick blur.slick"); 550 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) { 551 _.$prevArrow && _.$prevArrow.off("click.slick", _.changeSlide); 552 _.$nextArrow && _.$nextArrow.off("click.slick", _.changeSlide); 553 if (_.options.accessibility === true) { 554 _.$prevArrow && _.$prevArrow.off("keydown.slick", _.keyHandler); 555 _.$nextArrow && _.$nextArrow.off("keydown.slick", _.keyHandler) 556 } 557 } 558 _.$list.off("touchstart.slick mousedown.slick", _.swipeHandler); 559 _.$list.off("touchmove.slick mousemove.slick", _.swipeHandler); 560 _.$list.off("touchend.slick mouseup.slick", _.swipeHandler); 561 _.$list.off("touchcancel.slick mouseleave.slick", _.swipeHandler); 562 _.$list.off("click.slick", _.clickHandler); 563 $(document).off(_.visibilityChange, _.visibility); 564 _.cleanUpSlideEvents(); 565 if (_.options.accessibility === true) { 566 _.$list.off("keydown.slick", _.keyHandler) 567 } 568 if (_.options.focusOnSelect === true) { 569 $(_.$slideTrack).children().off("click.slick", _.selectHandler) 570 } 571 $(window).off("orientationchange.slick.slick-" + _.instanceUid, _.orientationChange); 572 $(window).off("resize.slick.slick-" + _.instanceUid, _.resize); 573 $("[draggable!=true]", _.$slideTrack).off("dragstart", _.preventDefault); 574 $(window).off("load.slick.slick-" + _.instanceUid, _.setPosition) 575 }; 576 Slick.prototype.cleanUpSlideEvents = function() { 577 var _ = this; 578 _.$list.off("mouseenter.slick", $.proxy(_.interrupt, _, true)); 579 _.$list.off("mouseleave.slick", $.proxy(_.interrupt, _, false)) 580 }; 581 Slick.prototype.cleanUpRows = function() { 582 var _ = this, 583 originalSlides; 584 if (_.options.rows > 0) { 585 originalSlides = _.$slides.children().children(); 586 originalSlides.removeAttr("style"); 587 _.$slider.empty().append(originalSlides) 588 } 589 }; 590 Slick.prototype.clickHandler = function(event) { 591 var _ = this; 592 if (_.shouldClick === false) { 593 event.stopImmediatePropagation(); 594 event.stopPropagation(); 595 event.preventDefault() 596 } 597 }; 598 Slick.prototype.destroy = function(refresh) { 599 var _ = this; 600 _.autoPlayClear(); 601 _.touchObject = {}; 602 _.cleanUpEvents(); 603 $(".slick-cloned", _.$slider).detach(); 604 if (_.$dots) { 605 _.$dots.remove() 606 } 607 if (_.$prevArrow && _.$prevArrow.length) { 608 _.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""); 609 if (_.htmlExpr.test(_.options.prevArrow)) { 610 _.$prevArrow.remove() 611 } 612 } 613 if (_.$nextArrow && _.$nextArrow.length) { 614 _.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""); 615 if (_.htmlExpr.test(_.options.nextArrow)) { 616 _.$nextArrow.remove() 617 } 618 } 619 if (_.$slides) { 620 _.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function() { 621 $(this).attr("style", $(this).data("originalStyling")) 622 }); 623 _.$slideTrack.children(this.options.slide).detach(); 624 _.$slideTrack.detach(); 625 _.$list.detach(); 626 _.$slider.append(_.$slides) 627 } 628 _.cleanUpRows(); 629 _.$slider.removeClass("slick-slider"); 630 _.$slider.removeClass("slick-initialized"); 631 _.$slider.removeClass("slick-dotted"); 632 _.unslicked = true; 633 if (!refresh) { 634 _.$slider.trigger("destroy", [_]) 635 } 636 }; 637 Slick.prototype.disableTransition = function(slide) { 638 var _ = this, 639 transition = {}; 640 transition[_.transitionType] = ""; 641 if (_.options.fade === false) { 642 _.$slideTrack.css(transition) 643 } else { 644 _.$slides.eq(slide).css(transition) 645 } 646 }; 647 Slick.prototype.fadeSlide = function(slideIndex, callback) { 648 var _ = this; 649 if (_.cssTransitions === false) { 650 _.$slides.eq(slideIndex).css({ 651 zIndex: _.options.zIndex 652 }); 653 _.$slides.eq(slideIndex).animate({ 654 opacity: 1 655 }, _.options.speed, _.options.easing, callback) 656 } else { 657 _.applyTransition(slideIndex); 658 _.$slides.eq(slideIndex).css({ 659 opacity: 1, 660 zIndex: _.options.zIndex 661 }); 662 if (callback) { 663 setTimeout(function() { 664 _.disableTransition(slideIndex); 665 callback.call() 666 }, _.options.speed) 667 } 668 } 669 }; 670 Slick.prototype.fadeSlideOut = function(slideIndex) { 671 var _ = this; 672 if (_.cssTransitions === false) { 673 _.$slides.eq(slideIndex).animate({ 674 opacity: 0, 675 zIndex: _.options.zIndex - 2 676 }, _.options.speed, _.options.easing) 677 } else { 678 _.applyTransition(slideIndex); 679 _.$slides.eq(slideIndex).css({ 680 opacity: 0, 681 zIndex: _.options.zIndex - 2 682 }) 683 } 684 }; 685 Slick.prototype.filterSlides = Slick.prototype.slickFilter = function(filter) { 686 var _ = this; 687 if (filter !== null) { 688 _.$slidesCache = _.$slides; 689 _.unload(); 690 _.$slideTrack.children(this.options.slide).detach(); 691 _.$slidesCache.filter(filter).appendTo(_.$slideTrack); 692 _.reinit() 693 } 694 }; 695 Slick.prototype.focusHandler = function() { 696 var _ = this; 697 _.$slider.off("focus.slick blur.slick").on("focus.slick", "*", function(event) { 698 var $sf = $(this); 699 setTimeout(function() { 700 if (_.options.pauseOnFocus) { 701 if ($sf.is(":focus")) { 702 _.focussed = true; 703 _.autoPlay() 704 } 705 } 706 }, 0) 707 }).on("blur.slick", "*", function(event) { 708 var $sf = $(this); 709 if (_.options.pauseOnFocus) { 710 _.focussed = false; 711 _.autoPlay() 712 } 713 }) 714 }; 715 Slick.prototype.getCurrent = Slick.prototype.slickCurrentSlide = function() { 716 var _ = this; 717 return _.currentSlide 718 }; 719 Slick.prototype.getDotCount = function() { 720 var _ = this; 721 var breakPoint = 0; 722 var counter = 0; 723 var pagerQty = 0; 724 if (_.options.infinite === true) { 725 if (_.slideCount <= _.options.slidesToShow) { 726 ++pagerQty 727 } else { 728 while (breakPoint < _.slideCount) { 729 ++pagerQty; 730 breakPoint = counter + _.options.slidesToScroll; 731 counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow 732 } 733 } 734 } else if (_.options.centerMode === true) { 735 pagerQty = _.slideCount 736 } else if (!_.options.asNavFor) { 737 pagerQty = 1 + Math.ceil((_.slideCount - _.options.slidesToShow) / _.options.slidesToScroll) 738 } else { 739 while (breakPoint < _.slideCount) { 740 ++pagerQty; 741 breakPoint = counter + _.options.slidesToScroll; 742 counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow 743 } 744 } 745 return pagerQty - 1 746 }; 747 Slick.prototype.getLeft = function(slideIndex) { 748 var _ = this, 749 targetLeft, verticalHeight, verticalOffset = 0, 750 targetSlide, coef; 751 _.slideOffset = 0; 752 verticalHeight = _.$slides.first().outerHeight(true); 753 if (_.options.infinite === true) { 754 if (_.slideCount > _.options.slidesToShow) { 755 _.slideOffset = _.slideWidth * _.options.slidesToShow * -1; 756 coef = -1; 757 if (_.options.vertical === true && _.options.centerMode === true) { 758 if (_.options.slidesToShow === 2) { 759 coef = -1.5 760 } else if (_.options.slidesToShow === 1) { 761 coef = -2 762 } 763 } 764 verticalOffset = verticalHeight * _.options.slidesToShow * coef 765 } 766 if (_.slideCount % _.options.slidesToScroll !== 0) { 767 if (slideIndex + _.options.slidesToScroll > _.slideCount && _.slideCount > _.options.slidesToShow) { 768 if (slideIndex > _.slideCount) { 769 _.slideOffset = (_.options.slidesToShow - (slideIndex - _.slideCount)) * _.slideWidth * -1; 770 verticalOffset = (_.options.slidesToShow - (slideIndex - _.slideCount)) * verticalHeight * -1 771 } else { 772 _.slideOffset = _.slideCount % _.options.slidesToScroll * _.slideWidth * -1; 773 verticalOffset = _.slideCount % _.options.slidesToScroll * verticalHeight * -1 774 } 775 } 776 } 777 } else { 778 if (slideIndex + _.options.slidesToShow > _.slideCount) { 779 _.slideOffset = (slideIndex + _.options.slidesToShow - _.slideCount) * _.slideWidth; 780 verticalOffset = (slideIndex + _.options.slidesToShow - _.slideCount) * verticalHeight 781 } 782 } 783 if (_.slideCount <= _.options.slidesToShow) { 784 _.slideOffset = 0; 785 verticalOffset = 0 786 } 787 if (_.options.centerMode === true && _.slideCount <= _.options.slidesToShow) { 788 _.slideOffset = _.slideWidth * Math.floor(_.options.slidesToShow) / 2 - _.slideWidth * _.slideCount / 2 789 } else if (_.options.centerMode === true && _.options.infinite === true) { 790 _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2) - _.slideWidth 791 } else if (_.options.centerMode === true) { 792 _.slideOffset = 0; 793 _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2) 794 } 795 if (_.options.vertical === false) { 796 targetLeft = slideIndex * _.slideWidth * -1 + _.slideOffset 797 } else { 798 targetLeft = slideIndex * verticalHeight * -1 + verticalOffset 799 } 800 if (_.options.variableWidth === true) { 801 if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) { 802 targetSlide = _.$slideTrack.children(".slick-slide").eq(slideIndex) 803 } else { 804 targetSlide = _.$slideTrack.children(".slick-slide").eq(slideIndex + _.options.slidesToShow) 805 } 806 if (_.options.rtl === true) { 807 if (targetSlide[0]) { 808 targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1 809 } else { 810 targetLeft = 0 811 } 812 } else { 813 targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0 814 } 815 if (_.options.centerMode === true) { 816 if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) { 817 targetSlide = _.$slideTrack.children(".slick-slide").eq(slideIndex) 818 } else { 819 targetSlide = _.$slideTrack.children(".slick-slide").eq(slideIndex + _.options.slidesToShow + 1) 820 } 821 if (_.options.rtl === true) { 822 if (targetSlide[0]) { 823 targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1 824 } else { 825 targetLeft = 0 826 } 827 } else { 828 targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0 829 } 830 targetLeft += (_.$list.width() - targetSlide.outerWidth()) / 2 831 } 832 } 833 return targetLeft 834 }; 835 Slick.prototype.getOption = Slick.prototype.slickGetOption = function(option) { 836 var _ = this; 837 return _.options[option] 838 }; 839 Slick.prototype.getNavigableIndexes = function() { 840 var _ = this, 841 breakPoint = 0, 842 counter = 0, 843 indexes = [], 844 max; 845 if (_.options.infinite === false) { 846 max = _.slideCount 847 } else { 848 breakPoint = _.options.slidesToScroll * -1; 849 counter = _.options.slidesToScroll * -1; 850 max = _.slideCount * 2 851 } 852 while (breakPoint < max) { 853 indexes.push(breakPoint); 854 breakPoint = counter + _.options.slidesToScroll; 855 counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow 856 } 857 return indexes 858 }; 859 Slick.prototype.getSlick = function() { 860 return this 861 }; 862 Slick.prototype.getSlideCount = function() { 863 var _ = this, 864 slidesTraversed, swipedSlide, swipeTarget, centerOffset; 865 centerOffset = _.options.centerMode === true ? Math.floor(_.$list.width() / 2) : 0; 866 swipeTarget = _.swipeLeft * -1 + centerOffset; 867 if (_.options.swipeToSlide === true) { 868 _.$slideTrack.find(".slick-slide").each(function(index, slide) { 869 var slideOuterWidth, slideOffset, slideRightBoundary; 870 slideOuterWidth = $(slide).outerWidth(); 871 slideOffset = slide.offsetLeft; 872 if (_.options.centerMode !== true) { 873 slideOffset += slideOuterWidth / 2 874 } 875 slideRightBoundary = slideOffset + slideOuterWidth; 876 if (swipeTarget < slideRightBoundary) { 877 swipedSlide = slide; 878 return false 879 } 880 }); 881 slidesTraversed = Math.abs($(swipedSlide).attr("data-slick-index") - _.currentSlide) || 1; 882 return slidesTraversed 883 } else { 884 return _.options.slidesToScroll 885 } 886 }; 887 Slick.prototype.goTo = Slick.prototype.slickGoTo = function(slide, dontAnimate) { 888 var _ = this; 889 _.changeSlide({ 890 data: { 891 message: "index", 892 index: parseInt(slide) 893 } 894 }, dontAnimate) 895 }; 896 Slick.prototype.init = function(creation) { 897 var _ = this; 898 if (!$(_.$slider).hasClass("slick-initialized")) { 899 $(_.$slider).addClass("slick-initialized"); 900 _.buildRows(); 901 _.buildOut(); 902 _.setProps(); 903 _.startLoad(); 904 _.loadSlider(); 905 _.initializeEvents(); 906 _.updateArrows(); 907 _.updateDots(); 908 _.checkResponsive(true); 909 _.focusHandler() 910 } 911 if (creation) { 912 _.$slider.trigger("init", [_]) 913 } 914 if (_.options.accessibility === true) { 915 _.initADA() 916 } 917 if (_.options.autoplay) { 918 _.paused = false; 919 _.autoPlay() 920 } 921 }; 922 Slick.prototype.initADA = function() { 923 var _ = this, 924 numDotGroups = Math.ceil(_.slideCount / _.options.slidesToShow), 925 tabControlIndexes = _.getNavigableIndexes().filter(function(val) { 926 return val >= 0 && val < _.slideCount 927 }); 928 _.$slides.add(_.$slideTrack.find(".slick-cloned")).attr({ 929 "aria-hidden": "true", 930 tabindex: "-1" 931 }).find("a, input, button, select").attr({ 932 tabindex: "-1" 933 }); 934 if (_.$dots !== null) { 935 _.$slides.not(_.$slideTrack.find(".slick-cloned")).each(function(i) { 936 var slideControlIndex = tabControlIndexes.indexOf(i); 937 $(this).attr({ 938 role: "tabpanel", 939 id: "slick-slide" + _.instanceUid + i, 940 tabindex: -1 941 }); 942 if (slideControlIndex !== -1) { 943 var ariaButtonControl = "slick-slide-control" + _.instanceUid + slideControlIndex; 944 if ($("#" + ariaButtonControl).length) { 945 $(this).attr({ 946 "aria-describedby": ariaButtonControl 947 }) 948 } 949 } 950 }); 951 _.$dots.attr("role", "tablist").find("li").each(function(i) { 952 var mappedSlideIndex = tabControlIndexes[i]; 953 $(this).attr({ 954 role: "presentation" 955 }); 956 $(this).find("button").first().attr({ 957 role: "tab", 958 id: "slick-slide-control" + _.instanceUid + i, 959 "aria-controls": "slick-slide" + _.instanceUid + mappedSlideIndex, 960 "aria-label": i + 1 + " of " + numDotGroups, 961 "aria-selected": null, 962 tabindex: "-1" 963 }) 964 }).eq(_.currentSlide).find("button").attr({ 965 "aria-selected": "true", 966 tabindex: "0" 967 }).end() 968 } 969 for (var i = _.currentSlide, max = i + _.options.slidesToShow; i < max; i++) { 970 if (_.options.focusOnChange) { 971 _.$slides.eq(i).attr({ 972 tabindex: "0" 973 }) 974 } else { 975 _.$slides.eq(i).removeAttr("tabindex") 976 } 977 } 978 _.activateADA() 979 }; 980 Slick.prototype.initArrowEvents = function() { 981 var _ = this; 982 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) { 983 _.$prevArrow.off("click.slick").on("click.slick", { 984 message: "previous" 985 }, _.changeSlide); 986 _.$nextArrow.off("click.slick").on("click.slick", { 987 message: "next" 988 }, _.changeSlide); 989 if (_.options.accessibility === true) { 990 _.$prevArrow.on("keydown.slick", _.keyHandler); 991 _.$nextArrow.on("keydown.slick", _.keyHandler) 992 } 993 } 994 }; 995 Slick.prototype.initDotEvents = function() { 996 var _ = this; 997 if (_.options.dots === true && _.slideCount > _.options.slidesToShow) { 998 $("li", _.$dots).on("click.slick", { 999 message: "index" 1000 }, _.changeSlide); 1001 if (_.options.accessibility === true) { 1002 _.$dots.on("keydown.slick", _.keyHandler) 1003 } 1004 } 1005 if (_.options.dots === true && _.options.pauseOnDotsHover === true && _.slideCount > _.options.slidesToShow) { 1006 $("li", _.$dots).on("mouseenter.slick", $.proxy(_.interrupt, _, true)).on("mouseleave.slick", $.proxy(_.interrupt, _, false)) 1007 } 1008 }; 1009 Slick.prototype.initSlideEvents = function() { 1010 var _ = this; 1011 if (_.options.pauseOnHover) { 1012 _.$list.on("mouseenter.slick", $.proxy(_.interrupt, _, true)); 1013 _.$list.on("mouseleave.slick", $.proxy(_.interrupt, _, false)) 1014 } 1015 }; 1016 Slick.prototype.initializeEvents = function() { 1017 var _ = this; 1018 _.initArrowEvents(); 1019 _.initDotEvents(); 1020 _.initSlideEvents(); 1021 _.$list.on("touchstart.slick mousedown.slick", { 1022 action: "start" 1023 }, _.swipeHandler); 1024 _.$list.on("touchmove.slick mousemove.slick", { 1025 action: "move" 1026 }, _.swipeHandler); 1027 _.$list.on("touchend.slick mouseup.slick", { 1028 action: "end" 1029 }, _.swipeHandler); 1030 _.$list.on("touchcancel.slick mouseleave.slick", { 1031 action: "end" 1032 }, _.swipeHandler); 1033 _.$list.on("click.slick", _.clickHandler); 1034 $(document).on(_.visibilityChange, $.proxy(_.visibility, _)); 1035 if (_.options.accessibility === true) { 1036 _.$list.on("keydown.slick", _.keyHandler) 1037 } 1038 if (_.options.focusOnSelect === true) { 1039 $(_.$slideTrack).children().on("click.slick", _.selectHandler) 1040 } 1041 $(window).on("orientationchange.slick.slick-" + _.instanceUid, $.proxy(_.orientationChange, _)); 1042 $(window).on("resize.slick.slick-" + _.instanceUid, $.proxy(_.resize, _)); 1043 $("[draggable!=true]", _.$slideTrack).on("dragstart", _.preventDefault); 1044 $(window).on("load.slick.slick-" + _.instanceUid, _.setPosition); 1045 $(_.setPosition) 1046 }; 1047 Slick.prototype.initUI = function() { 1048 var _ = this; 1049 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) { 1050 _.$prevArrow.show(); 1051 _.$nextArrow.show() 1052 } 1053 if (_.options.dots === true && _.slideCount > _.options.slidesToShow) { 1054 _.$dots.show() 1055 } 1056 }; 1057 Slick.prototype.keyHandler = function(event) { 1058 var _ = this; 1059 if (!event.target.tagName.match("TEXTAREA|INPUT|SELECT")) { 1060 if (event.keyCode === 37 && _.options.accessibility === true) { 1061 _.changeSlide({ 1062 data: { 1063 message: _.options.rtl === true ? "next" : "previous" 1064 } 1065 }) 1066 } else if (event.keyCode === 39 && _.options.accessibility === true) { 1067 _.changeSlide({ 1068 data: { 1069 message: _.options.rtl === true ? "previous" : "next" 1070 } 1071 }) 1072 } 1073 } 1074 }; 1075 Slick.prototype.lazyLoad = function() { 1076 var _ = this, 1077 loadRange, cloneRange, rangeStart, rangeEnd; 1078 1079 function loadImages(imagesScope) { 1080 $("img[data-lazy]", imagesScope).each(function() { 1081 var image = $(this), 1082 imageSource = $(this).attr("data-lazy"), 1083 imageSrcSet = $(this).attr("data-srcset"), 1084 imageSizes = $(this).attr("data-sizes") || _.$slider.attr("data-sizes"), 1085 imageToLoad = document.createElement("img"); 1086 imageToLoad.onload = function() { 1087 image.animate({ 1088 opacity: 0 1089 }, 100, function() { 1090 if (imageSrcSet) { 1091 image.attr("srcset", imageSrcSet); 1092 if (imageSizes) { 1093 image.attr("sizes", imageSizes) 1094 } 1095 } 1096 image.attr("src", imageSource).animate({ 1097 opacity: 1 1098 }, 200, function() { 1099 image.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading") 1100 }); 1101 _.$slider.trigger("lazyLoaded", [_, image, imageSource]) 1102 }) 1103 }; 1104 imageToLoad.onerror = function() { 1105 image.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"); 1106 _.$slider.trigger("lazyLoadError", [_, image, imageSource]) 1107 }; 1108 imageToLoad.src = imageSource 1109 }) 1110 } 1111 if (_.options.centerMode === true) { 1112 if (_.options.infinite === true) { 1113 rangeStart = _.currentSlide + (_.options.slidesToShow / 2 + 1); 1114 rangeEnd = rangeStart + _.options.slidesToShow + 2 1115 } else { 1116 rangeStart = Math.max(0, _.currentSlide - (_.options.slidesToShow / 2 + 1)); 1117 rangeEnd = 2 + (_.options.slidesToShow / 2 + 1) + _.currentSlide 1118 } 1119 } else { 1120 rangeStart = _.options.infinite ? _.options.slidesToShow + _.currentSlide : _.currentSlide; 1121 rangeEnd = Math.ceil(rangeStart + _.options.slidesToShow); 1122 if (_.options.fade === true) { 1123 if (rangeStart > 0) rangeStart--; 1124 if (rangeEnd <= _.slideCount) rangeEnd++ 1125 } 1126 } 1127 loadRange = _.$slider.find(".slick-slide").slice(rangeStart, rangeEnd); 1128 if (_.options.lazyLoad === "anticipated") { 1129 var prevSlide = rangeStart - 1, 1130 nextSlide = rangeEnd, 1131 $slides = _.$slider.find(".slick-slide"); 1132 for (var i = 0; i < _.options.slidesToScroll; i++) { 1133 if (prevSlide < 0) prevSlide = _.slideCount - 1; 1134 loadRange = loadRange.add($slides.eq(prevSlide)); 1135 loadRange = loadRange.add($slides.eq(nextSlide)); 1136 prevSlide--; 1137 nextSlide++ 1138 } 1139 } 1140 loadImages(loadRange); 1141 if (_.slideCount <= _.options.slidesToShow) { 1142 cloneRange = _.$slider.find(".slick-slide"); 1143 loadImages(cloneRange) 1144 } else if (_.currentSlide >= _.slideCount - _.options.slidesToShow) { 1145 cloneRange = _.$slider.find(".slick-cloned").slice(0, _.options.slidesToShow); 1146 loadImages(cloneRange) 1147 } else if (_.currentSlide === 0) { 1148 cloneRange = _.$slider.find(".slick-cloned").slice(_.options.slidesToShow * -1); 1149 loadImages(cloneRange) 1150 } 1151 }; 1152 Slick.prototype.loadSlider = function() { 1153 var _ = this; 1154 _.setPosition(); 1155 _.$slideTrack.css({ 1156 opacity: 1 1157 }); 1158 _.$slider.removeClass("slick-loading"); 1159 _.initUI(); 1160 if (_.options.lazyLoad === "progressive") { 1161 _.progressiveLazyLoad() 1162 } 1163 }; 1164 Slick.prototype.next = Slick.prototype.slickNext = function() { 1165 var _ = this; 1166 _.changeSlide({ 1167 data: { 1168 message: "next" 1169 } 1170 }) 1171 }; 1172 Slick.prototype.orientationChange = function() { 1173 var _ = this; 1174 _.checkResponsive(); 1175 _.setPosition() 1176 }; 1177 Slick.prototype.pause = Slick.prototype.slickPause = function() { 1178 var _ = this; 1179 _.autoPlayClear(); 1180 _.paused = true 1181 }; 1182 Slick.prototype.play = Slick.prototype.slickPlay = function() { 1183 var _ = this; 1184 _.autoPlay(); 1185 _.options.autoplay = true; 1186 _.paused = false; 1187 _.focussed = false; 1188 _.interrupted = false 1189 }; 1190 Slick.prototype.postSlide = function(index) { 1191 var _ = this; 1192 if (!_.unslicked) { 1193 _.$slider.trigger("afterChange", [_, index]); 1194 _.animating = false; 1195 if (_.slideCount > _.options.slidesToShow) { 1196 _.setPosition() 1197 } 1198 _.swipeLeft = null; 1199 if (_.options.autoplay) { 1200 _.autoPlay() 1201 } 1202 if (_.options.accessibility === true) { 1203 _.initADA(); 1204 if (_.options.focusOnChange) { 1205 var $currentSlide = $(_.$slides.get(_.currentSlide)); 1206 $currentSlide.attr("tabindex", 0).focus() 1207 } 1208 } 1209 } 1210 }; 1211 Slick.prototype.prev = Slick.prototype.slickPrev = function() { 1212 var _ = this; 1213 _.changeSlide({ 1214 data: { 1215 message: "previous" 1216 } 1217 }) 1218 }; 1219 Slick.prototype.preventDefault = function(event) { 1220 event.preventDefault() 1221 }; 1222 Slick.prototype.progressiveLazyLoad = function(tryCount) { 1223 tryCount = tryCount || 1; 1224 var _ = this, 1225 $imgsToLoad = $("img[data-lazy]", _.$slider), 1226 image, imageSource, imageSrcSet, imageSizes, imageToLoad; 1227 if ($imgsToLoad.length) { 1228 image = $imgsToLoad.first(); 1229 imageSource = image.attr("data-lazy"); 1230 imageSrcSet = image.attr("data-srcset"); 1231 imageSizes = image.attr("data-sizes") || _.$slider.attr("data-sizes"); 1232 imageToLoad = document.createElement("img"); 1233 imageToLoad.onload = function() { 1234 if (imageSrcSet) { 1235 image.attr("srcset", imageSrcSet); 1236 if (imageSizes) { 1237 image.attr("sizes", imageSizes) 1238 } 1239 } 1240 image.attr("src", imageSource).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"); 1241 if (_.options.adaptiveHeight === true) { 1242 _.setPosition() 1243 } 1244 _.$slider.trigger("lazyLoaded", [_, image, imageSource]); 1245 _.progressiveLazyLoad() 1246 }; 1247 imageToLoad.onerror = function() { 1248 if (tryCount < 3) { 1249 setTimeout(function() { 1250 _.progressiveLazyLoad(tryCount + 1) 1251 }, 500) 1252 } else { 1253 image.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"); 1254 _.$slider.trigger("lazyLoadError", [_, image, imageSource]); 1255 _.progressiveLazyLoad() 1256 } 1257 }; 1258 imageToLoad.src = imageSource 1259 } else { 1260 _.$slider.trigger("allImagesLoaded", [_]) 1261 } 1262 }; 1263 Slick.prototype.refresh = function(initializing) { 1264 var _ = this, 1265 currentSlide, lastVisibleIndex; 1266 lastVisibleIndex = _.slideCount - _.options.slidesToShow; 1267 if (!_.options.infinite && _.currentSlide > lastVisibleIndex) { 1268 _.currentSlide = lastVisibleIndex 1269 } 1270 if (_.slideCount <= _.options.slidesToShow) { 1271 _.currentSlide = 0 1272 } 1273 currentSlide = _.currentSlide; 1274 _.destroy(true); 1275 $.extend(_, _.initials, { 1276 currentSlide: currentSlide 1277 }); 1278 _.init(); 1279 if (!initializing) { 1280 _.changeSlide({ 1281 data: { 1282 message: "index", 1283 index: currentSlide 1284 } 1285 }, false) 1286 } 1287 }; 1288 Slick.prototype.registerBreakpoints = function() { 1289 var _ = this, 1290 breakpoint, currentBreakpoint, l, responsiveSettings = _.options.responsive || null; 1291 if ($.type(responsiveSettings) === "array" && responsiveSettings.length) { 1292 _.respondTo = _.options.respondTo || "window"; 1293 for (breakpoint in responsiveSettings) { 1294 l = _.breakpoints.length - 1; 1295 if (responsiveSettings.hasOwnProperty(breakpoint)) { 1296 currentBreakpoint = responsiveSettings[breakpoint].breakpoint; 1297 while (l >= 0) { 1298 if (_.breakpoints[l] && _.breakpoints[l] === currentBreakpoint) { 1299 _.breakpoints.splice(l, 1) 1300 } 1301 l-- 1302 } 1303 _.breakpoints.push(currentBreakpoint); 1304 _.breakpointSettings[currentBreakpoint] = responsiveSettings[breakpoint].settings 1305 } 1306 } 1307 _.breakpoints.sort(function(a, b) { 1308 return _.options.mobileFirst ? a - b : b - a 1309 }) 1310 } 1311 }; 1312 Slick.prototype.reinit = function() { 1313 var _ = this; 1314 _.$slides = _.$slideTrack.children(_.options.slide).addClass("slick-slide"); 1315 _.slideCount = _.$slides.length; 1316 if (_.currentSlide >= _.slideCount && _.currentSlide !== 0) { 1317 _.currentSlide = _.currentSlide - _.options.slidesToScroll 1318 } 1319 if (_.slideCount <= _.options.slidesToShow) { 1320 _.currentSlide = 0 1321 } 1322 _.registerBreakpoints(); 1323 _.setProps(); 1324 _.setupInfinite(); 1325 _.buildArrows(); 1326 _.updateArrows(); 1327 _.initArrowEvents(); 1328 _.buildDots(); 1329 _.updateDots(); 1330 _.initDotEvents(); 1331 _.cleanUpSlideEvents(); 1332 _.initSlideEvents(); 1333 _.checkResponsive(false, true); 1334 if (_.options.focusOnSelect === true) { 1335 $(_.$slideTrack).children().on("click.slick", _.selectHandler) 1336 } 1337 _.setSlideClasses(typeof _.currentSlide === "number" ? _.currentSlide : 0); 1338 _.setPosition(); 1339 _.focusHandler(); 1340 _.paused = !_.options.autoplay; 1341 _.autoPlay(); 1342 _.$slider.trigger("reInit", [_]) 1343 }; 1344 Slick.prototype.resize = function() { 1345 var _ = this; 1346 if ($(window).width() !== _.windowWidth) { 1347 clearTimeout(_.windowDelay); 1348 _.windowDelay = window.setTimeout(function() { 1349 _.windowWidth = $(window).width(); 1350 _.checkResponsive(); 1351 if (!_.unslicked) { 1352 _.setPosition() 1353 } 1354 }, 50) 1355 } 1356 }; 1357 Slick.prototype.removeSlide = Slick.prototype.slickRemove = function(index, removeBefore, removeAll) { 1358 var _ = this; 1359 if (typeof index === "boolean") { 1360 removeBefore = index; 1361 index = removeBefore === true ? 0 : _.slideCount - 1 1362 } else { 1363 index = removeBefore === true ? --index : index 1364 } 1365 if (_.slideCount < 1 || index < 0 || index > _.slideCount - 1) { 1366 return false 1367 } 1368 _.unload(); 1369 if (removeAll === true) { 1370 _.$slideTrack.children().remove() 1371 } else { 1372 _.$slideTrack.children(this.options.slide).eq(index).remove() 1373 } 1374 _.$slides = _.$slideTrack.children(this.options.slide); 1375 _.$slideTrack.children(this.options.slide).detach(); 1376 _.$slideTrack.append(_.$slides); 1377 _.$slidesCache = _.$slides; 1378 _.reinit() 1379 }; 1380 Slick.prototype.setCSS = function(position) { 1381 var _ = this, 1382 positionProps = {}, 1383 x, y; 1384 if (_.options.rtl === true) { 1385 position = -position 1386 } 1387 x = _.positionProp == "left" ? Math.ceil(position) + "px" : "0px"; 1388 y = _.positionProp == "top" ? Math.ceil(position) + "px" : "0px"; 1389 positionProps[_.positionProp] = position; 1390 if (_.transformsEnabled === false) { 1391 _.$slideTrack.css(positionProps) 1392 } else { 1393 positionProps = {}; 1394 if (_.cssTransitions === false) { 1395 positionProps[_.animType] = "translate(" + x + ", " + y + ")"; 1396 _.$slideTrack.css(positionProps) 1397 } else { 1398 positionProps[_.animType] = "translate3d(" + x + ", " + y + ", 0px)"; 1399 _.$slideTrack.css(positionProps) 1400 } 1401 } 1402 }; 1403 Slick.prototype.setDimensions = function() { 1404 var _ = this; 1405 if (_.options.vertical === false) { 1406 if (_.options.centerMode === true) { 1407 _.$list.css({ 1408 padding: "0px " + _.options.centerPadding 1409 }) 1410 } 1411 } else { 1412 _.$list.height(_.$slides.first().outerHeight(true) * _.options.slidesToShow); 1413 if (_.options.centerMode === true) { 1414 _.$list.css({ 1415 padding: _.options.centerPadding + " 0px" 1416 }) 1417 } 1418 } 1419 _.listWidth = _.$list.width(); 1420 _.listHeight = _.$list.height(); 1421 if (_.options.vertical === false && _.options.variableWidth === false) { 1422 _.slideWidth = Math.ceil(_.listWidth / _.options.slidesToShow); 1423 _.$slideTrack.width(Math.ceil(_.slideWidth * _.$slideTrack.children(".slick-slide").length)) 1424 } else if (_.options.variableWidth === true) { 1425 _.$slideTrack.width(5e3 * _.slideCount) 1426 } else { 1427 _.slideWidth = Math.ceil(_.listWidth); 1428 _.$slideTrack.height(Math.ceil(_.$slides.first().outerHeight(true) * _.$slideTrack.children(".slick-slide").length)) 1429 } 1430 var offset = _.$slides.first().outerWidth(true) - _.$slides.first().width(); 1431 if (_.options.variableWidth === false) _.$slideTrack.children(".slick-slide").width(_.slideWidth - offset) 1432 }; 1433 Slick.prototype.setFade = function() { 1434 var _ = this, 1435 targetLeft; 1436 _.$slides.each(function(index, element) { 1437 targetLeft = _.slideWidth * index * -1; 1438 if (_.options.rtl === true) { 1439 $(element).css({ 1440 position: "relative", 1441 right: targetLeft, 1442 top: 0, 1443 zIndex: _.options.zIndex - 2, 1444 opacity: 0 1445 }) 1446 } else { 1447 $(element).css({ 1448 position: "relative", 1449 left: targetLeft, 1450 top: 0, 1451 zIndex: _.options.zIndex - 2, 1452 opacity: 0 1453 }) 1454 } 1455 }); 1456 _.$slides.eq(_.currentSlide).css({ 1457 zIndex: _.options.zIndex - 1, 1458 opacity: 1 1459 }) 1460 }; 1461 Slick.prototype.setHeight = function() { 1462 var _ = this; 1463 if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) { 1464 var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true); 1465 _.$list.css("height", targetHeight) 1466 } 1467 }; 1468 Slick.prototype.setOption = Slick.prototype.slickSetOption = function() { 1469 var _ = this, 1470 l, item, option, value, refresh = false, 1471 type; 1472 if ($.type(arguments[0]) === "object") { 1473 option = arguments[0]; 1474 refresh = arguments[1]; 1475 type = "multiple" 1476 } else if ($.type(arguments[0]) === "string") { 1477 option = arguments[0]; 1478 value = arguments[1]; 1479 refresh = arguments[2]; 1480 if (arguments[0] === "responsive" && $.type(arguments[1]) === "array") { 1481 type = "responsive" 1482 } else if (typeof arguments[1] !== "undefined") { 1483 type = "single" 1484 } 1485 } 1486 if (type === "single") { 1487 _.options[option] = value 1488 } else if (type === "multiple") { 1489 $.each(option, function(opt, val) { 1490 _.options[opt] = val 1491 }) 1492 } else if (type === "responsive") { 1493 for (item in value) { 1494 if ($.type(_.options.responsive) !== "array") { 1495 _.options.responsive = [value[item]] 1496 } else { 1497 l = _.options.responsive.length - 1; 1498 while (l >= 0) { 1499 if (_.options.responsive[l].breakpoint === value[item].breakpoint) { 1500 _.options.responsive.splice(l, 1) 1501 } 1502 l-- 1503 } 1504 _.options.responsive.push(value[item]) 1505 } 1506 } 1507 } 1508 if (refresh) { 1509 _.unload(); 1510 _.reinit() 1511 } 1512 }; 1513 Slick.prototype.setPosition = function() { 1514 var _ = this; 1515 _.setDimensions(); 1516 _.setHeight(); 1517 if (_.options.fade === false) { 1518 _.setCSS(_.getLeft(_.currentSlide)) 1519 } else { 1520 _.setFade() 1521 } 1522 _.$slider.trigger("setPosition", [_]) 1523 }; 1524 Slick.prototype.setProps = function() { 1525 var _ = this, 1526 bodyStyle = document.body.style; 1527 _.positionProp = _.options.vertical === true ? "top" : "left"; 1528 if (_.positionProp === "top") { 1529 _.$slider.addClass("slick-vertical") 1530 } else { 1531 _.$slider.removeClass("slick-vertical") 1532 } 1533 if (bodyStyle.WebkitTransition !== undefined || bodyStyle.MozTransition !== undefined || bodyStyle.msTransition !== undefined) { 1534 if (_.options.useCSS === true) { 1535 _.cssTransitions = true 1536 } 1537 } 1538 if (_.options.fade) { 1539 if (typeof _.options.zIndex === "number") { 1540 if (_.options.zIndex < 3) { 1541 _.options.zIndex = 3 1542 } 1543 } else { 1544 _.options.zIndex = _.defaults.zIndex 1545 } 1546 } 1547 if (bodyStyle.OTransform !== undefined) { 1548 _.animType = "OTransform"; 1549 _.transformType = "-o-transform"; 1550 _.transitionType = "OTransition"; 1551 if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false 1552 } 1553 if (bodyStyle.MozTransform !== undefined) { 1554 _.animType = "MozTransform"; 1555 _.transformType = "-moz-transform"; 1556 _.transitionType = "MozTransition"; 1557 if (bodyStyle.perspectiveProperty === undefined && bodyStyle.MozPerspective === undefined) _.animType = false 1558 } 1559 if (bodyStyle.webkitTransform !== undefined) { 1560 _.animType = "webkitTransform"; 1561 _.transformType = "-webkit-transform"; 1562 _.transitionType = "webkitTransition"; 1563 if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false 1564 } 1565 if (bodyStyle.msTransform !== undefined) { 1566 _.animType = "msTransform"; 1567 _.transformType = "-ms-transform"; 1568 _.transitionType = "msTransition"; 1569 if (bodyStyle.msTransform === undefined) _.animType = false 1570 } 1571 if (bodyStyle.transform !== undefined && _.animType !== false) { 1572 _.animType = "transform"; 1573 _.transformType = "transform"; 1574 _.transitionType = "transition" 1575 } 1576 _.transformsEnabled = _.options.useTransform && (_.animType !== null && _.animType !== false) 1577 }; 1578 Slick.prototype.setSlideClasses = function(index) { 1579 var _ = this, 1580 centerOffset, allSlides, indexOffset, remainder; 1581 allSlides = _.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden", "true"); 1582 _.$slides.eq(index).addClass("slick-current"); 1583 if (_.options.centerMode === true) { 1584 var evenCoef = _.options.slidesToShow % 2 === 0 ? 1 : 0; 1585 centerOffset = Math.floor(_.options.slidesToShow / 2); 1586 if (_.options.infinite === true) { 1587 if (index >= centerOffset && index <= _.slideCount - 1 - centerOffset) { 1588 _.$slides.slice(index - centerOffset + evenCoef, index + centerOffset + 1).addClass("slick-active").attr("aria-hidden", "false") 1589 } else { 1590 indexOffset = _.options.slidesToShow + index; 1591 allSlides.slice(indexOffset - centerOffset + 1 + evenCoef, indexOffset + centerOffset + 2).addClass("slick-active").attr("aria-hidden", "false") 1592 } 1593 if (index === 0) { 1594 allSlides.eq(allSlides.length - 1 - _.options.slidesToShow).addClass("slick-center") 1595 } else if (index === _.slideCount - 1) { 1596 allSlides.eq(_.options.slidesToShow).addClass("slick-center") 1597 } 1598 } 1599 _.$slides.eq(index).addClass("slick-center") 1600 } else { 1601 if (index >= 0 && index <= _.slideCount - _.options.slidesToShow) { 1602 _.$slides.slice(index, index + _.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false") 1603 } else if (allSlides.length <= _.options.slidesToShow) { 1604 allSlides.addClass("slick-active").attr("aria-hidden", "false") 1605 } else { 1606 remainder = _.slideCount % _.options.slidesToShow; 1607 indexOffset = _.options.infinite === true ? _.options.slidesToShow + index : index; 1608 if (_.options.slidesToShow == _.options.slidesToScroll && _.slideCount - index < _.options.slidesToShow) { 1609 allSlides.slice(indexOffset - (_.options.slidesToShow - remainder), indexOffset + remainder).addClass("slick-active").attr("aria-hidden", "false") 1610 } else { 1611 allSlides.slice(indexOffset, indexOffset + _.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false") 1612 } 1613 } 1614 } 1615 if (_.options.lazyLoad === "ondemand" || _.options.lazyLoad === "anticipated") { 1616 _.lazyLoad() 1617 } 1618 }; 1619 Slick.prototype.setupInfinite = function() { 1620 var _ = this, 1621 i, slideIndex, infiniteCount; 1622 if (_.options.fade === true) { 1623 _.options.centerMode = false 1624 } 1625 if (_.options.infinite === true && _.options.fade === false) { 1626 slideIndex = null; 1627 if (_.slideCount > _.options.slidesToShow) { 1628 if (_.options.centerMode === true) { 1629 infiniteCount = _.options.slidesToShow + 1 1630 } else { 1631 infiniteCount = _.options.slidesToShow 1632 } 1633 for (i = _.slideCount; i > _.slideCount - infiniteCount; i -= 1) { 1634 slideIndex = i - 1; 1635 $(_.$slides[slideIndex]).clone(true).attr("id", "").attr("data-slick-index", slideIndex - _.slideCount).prependTo(_.$slideTrack).addClass("slick-cloned") 1636 } 1637 for (i = 0; i < infiniteCount + _.slideCount; i += 1) { 1638 slideIndex = i; 1639 $(_.$slides[slideIndex]).clone(true).attr("id", "").attr("data-slick-index", slideIndex + _.slideCount).appendTo(_.$slideTrack).addClass("slick-cloned") 1640 } 1641 _.$slideTrack.find(".slick-cloned").find("[id]").each(function() { 1642 $(this).attr("id", "") 1643 }) 1644 } 1645 } 1646 }; 1647 Slick.prototype.interrupt = function(toggle) { 1648 var _ = this; 1649 if (!toggle) { 1650 _.autoPlay() 1651 } 1652 _.interrupted = toggle 1653 }; 1654 Slick.prototype.selectHandler = function(event) { 1655 var _ = this; 1656 var targetElement = $(event.target).is(".slick-slide") ? $(event.target) : $(event.target).parents(".slick-slide"); 1657 var index = parseInt(targetElement.attr("data-slick-index")); 1658 if (!index) index = 0; 1659 if (_.slideCount <= _.options.slidesToShow) { 1660 _.slideHandler(index, false, true); 1661 return 1662 } 1663 _.slideHandler(index) 1664 }; 1665 Slick.prototype.slideHandler = function(index, sync, dontAnimate) { 1666 var targetSlide, animSlide, oldSlide, slideLeft, targetLeft = null, 1667 _ = this, 1668 navTarget; 1669 sync = sync || false; 1670 if (_.animating === true && _.options.waitForAnimate === true) { 1671 return 1672 } 1673 if (_.options.fade === true && _.currentSlide === index) { 1674 return 1675 } 1676 if (sync === false) { 1677 _.asNavFor(index) 1678 } 1679 targetSlide = index; 1680 targetLeft = _.getLeft(targetSlide); 1681 slideLeft = _.getLeft(_.currentSlide); 1682 _.currentLeft = _.swipeLeft === null ? slideLeft : _.swipeLeft; 1683 if (_.options.infinite === false && _.options.centerMode === false && (index < 0 || index > _.getDotCount() * _.options.slidesToScroll)) { 1684 if (_.options.fade === false) { 1685 targetSlide = _.currentSlide; 1686 if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) { 1687 _.animateSlide(slideLeft, function() { 1688 _.postSlide(targetSlide) 1689 }) 1690 } else { 1691 _.postSlide(targetSlide) 1692 } 1693 } 1694 return 1695 } else if (_.options.infinite === false && _.options.centerMode === true && (index < 0 || index > _.slideCount - _.options.slidesToScroll)) { 1696 if (_.options.fade === false) { 1697 targetSlide = _.currentSlide; 1698 if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) { 1699 _.animateSlide(slideLeft, function() { 1700 _.postSlide(targetSlide) 1701 }) 1702 } else { 1703 _.postSlide(targetSlide) 1704 } 1705 } 1706 return 1707 } 1708 if (_.options.autoplay) { 1709 clearInterval(_.autoPlayTimer) 1710 } 1711 if (targetSlide < 0) { 1712 if (_.slideCount % _.options.slidesToScroll !== 0) { 1713 animSlide = _.slideCount - _.slideCount % _.options.slidesToScroll 1714 } else { 1715 animSlide = _.slideCount + targetSlide 1716 } 1717 } else if (targetSlide >= _.slideCount) { 1718 if (_.slideCount % _.options.slidesToScroll !== 0) { 1719 animSlide = 0 1720 } else { 1721 animSlide = targetSlide - _.slideCount 1722 } 1723 } else { 1724 animSlide = targetSlide 1725 } 1726 _.animating = true; 1727 _.$slider.trigger("beforeChange", [_, _.currentSlide, animSlide]); 1728 oldSlide = _.currentSlide; 1729 _.currentSlide = animSlide; 1730 _.setSlideClasses(_.currentSlide); 1731 if (_.options.asNavFor) { 1732 navTarget = _.getNavTarget(); 1733 navTarget = navTarget.slick("getSlick"); 1734 if (navTarget.slideCount <= navTarget.options.slidesToShow) { 1735 navTarget.setSlideClasses(_.currentSlide) 1736 } 1737 } 1738 _.updateDots(); 1739 _.updateArrows(); 1740 if (_.options.fade === true) { 1741 if (dontAnimate !== true) { 1742 _.fadeSlideOut(oldSlide); 1743 _.fadeSlide(animSlide, function() { 1744 _.postSlide(animSlide) 1745 }) 1746 } else { 1747 _.postSlide(animSlide) 1748 } 1749 _.animateHeight(); 1750 return 1751 } 1752 if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) { 1753 _.animateSlide(targetLeft, function() { 1754 _.postSlide(animSlide) 1755 }) 1756 } else { 1757 _.postSlide(animSlide) 1758 } 1759 }; 1760 Slick.prototype.startLoad = function() { 1761 var _ = this; 1762 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) { 1763 _.$prevArrow.hide(); 1764 _.$nextArrow.hide() 1765 } 1766 if (_.options.dots === true && _.slideCount > _.options.slidesToShow) { 1767 _.$dots.hide() 1768 } 1769 _.$slider.addClass("slick-loading") 1770 }; 1771 Slick.prototype.swipeDirection = function() { 1772 var xDist, yDist, r, swipeAngle, _ = this; 1773 xDist = _.touchObject.startX - _.touchObject.curX; 1774 yDist = _.touchObject.startY - _.touchObject.curY; 1775 r = Math.atan2(yDist, xDist); 1776 swipeAngle = Math.round(r * 180 / Math.PI); 1777 if (swipeAngle < 0) { 1778 swipeAngle = 360 - Math.abs(swipeAngle) 1779 } 1780 if (swipeAngle <= 45 && swipeAngle >= 0) { 1781 return _.options.rtl === false ? "left" : "right" 1782 } 1783 if (swipeAngle <= 360 && swipeAngle >= 315) { 1784 return _.options.rtl === false ? "left" : "right" 1785 } 1786 if (swipeAngle >= 135 && swipeAngle <= 225) { 1787 return _.options.rtl === false ? "right" : "left" 1788 } 1789 if (_.options.verticalSwiping === true) { 1790 if (swipeAngle >= 35 && swipeAngle <= 135) { 1791 return "down" 1792 } else { 1793 return "up" 1794 } 1795 } 1796 return "vertical" 1797 }; 1798 Slick.prototype.swipeEnd = function(event) { 1799 var _ = this, 1800 slideCount, direction; 1801 _.dragging = false; 1802 _.swiping = false; 1803 if (_.scrolling) { 1804 _.scrolling = false; 1805 return false 1806 } 1807 _.interrupted = false; 1808 _.shouldClick = _.touchObject.swipeLength > 10 ? false : true; 1809 if (_.touchObject.curX === undefined) { 1810 return false 1811 } 1812 if (_.touchObject.edgeHit === true) { 1813 _.$slider.trigger("edge", [_, _.swipeDirection()]) 1814 } 1815 if (_.touchObject.swipeLength >= _.touchObject.minSwipe) { 1816 direction = _.swipeDirection(); 1817 switch (direction) { 1818 case "left": 1819 case "down": 1820 slideCount = _.options.swipeToSlide ? _.checkNavigable(_.currentSlide + _.getSlideCount()) : _.currentSlide + _.getSlideCount(); 1821 _.currentDirection = 0; 1822 break; 1823 case "right": 1824 case "up": 1825 slideCount = _.options.swipeToSlide ? _.checkNavigable(_.currentSlide - _.getSlideCount()) : _.currentSlide - _.getSlideCount(); 1826 _.currentDirection = 1; 1827 break; 1828 default: 1829 } 1830 if (direction != "vertical") { 1831 _.slideHandler(slideCount); 1832 _.touchObject = {}; 1833 _.$slider.trigger("swipe", [_, direction]) 1834 } 1835 } else { 1836 if (_.touchObject.startX !== _.touchObject.curX) { 1837 _.slideHandler(_.currentSlide); 1838 _.touchObject = {} 1839 } 1840 } 1841 }; 1842 Slick.prototype.swipeHandler = function(event) { 1843 var _ = this; 1844 if (_.options.swipe === false || "ontouchend" in document && _.options.swipe === false) { 1845 return 1846 } else if (_.options.draggable === false && event.type.indexOf("mouse") !== -1) { 1847 return 1848 } 1849 _.touchObject.fingerCount = event.originalEvent && event.originalEvent.touches !== undefined ? event.originalEvent.touches.length : 1; 1850 _.touchObject.minSwipe = _.listWidth / _.options.touchThreshold; 1851 if (_.options.verticalSwiping === true) { 1852 _.touchObject.minSwipe = _.listHeight / _.options.touchThreshold 1853 } 1854 switch (event.data.action) { 1855 case "start": 1856 _.swipeStart(event); 1857 break; 1858 case "move": 1859 _.swipeMove(event); 1860 break; 1861 case "end": 1862 _.swipeEnd(event); 1863 break 1864 } 1865 }; 1866 Slick.prototype.swipeMove = function(event) { 1867 var _ = this, 1868 edgeWasHit = false, 1869 curLeft, swipeDirection, swipeLength, positionOffset, touches, verticalSwipeLength; 1870 touches = event.originalEvent !== undefined ? event.originalEvent.touches : null; 1871 if (!_.dragging || _.scrolling || touches && touches.length !== 1) { 1872 return false 1873 } 1874 curLeft = _.getLeft(_.currentSlide); 1875 _.touchObject.curX = touches !== undefined ? touches[0].pageX : event.clientX; 1876 _.touchObject.curY = touches !== undefined ? touches[0].pageY : event.clientY; 1877 _.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(_.touchObject.curX - _.touchObject.startX, 2))); 1878 verticalSwipeLength = Math.round(Math.sqrt(Math.pow(_.touchObject.curY - _.touchObject.startY, 2))); 1879 if (!_.options.verticalSwiping && !_.swiping && verticalSwipeLength > 4) { 1880 _.scrolling = true; 1881 return false 1882 } 1883 if (_.options.verticalSwiping === true) { 1884 _.touchObject.swipeLength = verticalSwipeLength 1885 } 1886 swipeDirection = _.swipeDirection(); 1887 if (event.originalEvent !== undefined && _.touchObject.swipeLength > 4) { 1888 _.swiping = true; 1889 event.preventDefault() 1890 } 1891 positionOffset = (_.options.rtl === false ? 1 : -1) * (_.touchObject.curX > _.touchObject.startX ? 1 : -1); 1892 if (_.options.verticalSwiping === true) { 1893 positionOffset = _.touchObject.curY > _.touchObject.startY ? 1 : -1 1894 } 1895 swipeLength = _.touchObject.swipeLength; 1896 _.touchObject.edgeHit = false; 1897 if (_.options.infinite === false) { 1898 if (_.currentSlide === 0 && swipeDirection === "right" || _.currentSlide >= _.getDotCount() && swipeDirection === "left") { 1899 swipeLength = _.touchObject.swipeLength * _.options.edgeFriction; 1900 _.touchObject.edgeHit = true 1901 } 1902 } 1903 if (_.options.vertical === false) { 1904 _.swipeLeft = curLeft + swipeLength * positionOffset 1905 } else { 1906 _.swipeLeft = curLeft + swipeLength * (_.$list.height() / _.listWidth) * positionOffset 1907 } 1908 if (_.options.verticalSwiping === true) { 1909 _.swipeLeft = curLeft + swipeLength * positionOffset 1910 } 1911 if (_.options.fade === true || _.options.touchMove === false) { 1912 return false 1913 } 1914 if (_.animating === true) { 1915 _.swipeLeft = null; 1916 return false 1917 } 1918 _.setCSS(_.swipeLeft) 1919 }; 1920 Slick.prototype.swipeStart = function(event) { 1921 var _ = this, 1922 touches; 1923 _.interrupted = true; 1924 if (_.touchObject.fingerCount !== 1 || _.slideCount <= _.options.slidesToShow) { 1925 _.touchObject = {}; 1926 return false 1927 } 1928 if (event.originalEvent !== undefined && event.originalEvent.touches !== undefined) { 1929 touches = event.originalEvent.touches[0] 1930 } 1931 _.touchObject.startX = _.touchObject.curX = touches !== undefined ? touches.pageX : event.clientX; 1932 _.touchObject.startY = _.touchObject.curY = touches !== undefined ? touches.pageY : event.clientY; 1933 _.dragging = true 1934 }; 1935 Slick.prototype.unfilterSlides = Slick.prototype.slickUnfilter = function() { 1936 var _ = this; 1937 if (_.$slidesCache !== null) { 1938 _.unload(); 1939 _.$slideTrack.children(this.options.slide).detach(); 1940 _.$slidesCache.appendTo(_.$slideTrack); 1941 _.reinit() 1942 } 1943 }; 1944 Slick.prototype.unload = function() { 1945 var _ = this; 1946 $(".slick-cloned", _.$slider).remove(); 1947 if (_.$dots) { 1948 _.$dots.remove() 1949 } 1950 if (_.$prevArrow && _.htmlExpr.test(_.options.prevArrow)) { 1951 _.$prevArrow.remove() 1952 } 1953 if (_.$nextArrow && _.htmlExpr.test(_.options.nextArrow)) { 1954 _.$nextArrow.remove() 1955 } 1956 _.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden", "true").css("width", "") 1957 }; 1958 Slick.prototype.unslick = function(fromBreakpoint) { 1959 var _ = this; 1960 _.$slider.trigger("unslick", [_, fromBreakpoint]); 1961 _.destroy() 1962 }; 1963 Slick.prototype.updateArrows = function() { 1964 var _ = this, 1965 centerOffset; 1966 centerOffset = Math.floor(_.options.slidesToShow / 2); 1967 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow && !_.options.infinite) { 1968 _.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false"); 1969 _.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false"); 1970 if (_.currentSlide === 0) { 1971 _.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true"); 1972 _.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false") 1973 } else if (_.currentSlide >= _.slideCount - _.options.slidesToShow && _.options.centerMode === false) { 1974 _.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"); 1975 _.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false") 1976 } else if (_.currentSlide >= _.slideCount - 1 && _.options.centerMode === true) { 1977 _.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"); 1978 _.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false") 1979 } 1980 } 1981 }; 1982 Slick.prototype.updateDots = function() { 1983 var _ = this; 1984 if (_.$dots !== null) { 1985 _.$dots.find("li").removeClass("slick-active").end(); 1986 _.$dots.find("li").eq(Math.floor(_.currentSlide / _.options.slidesToScroll)).addClass("slick-active") 1987 } 1988 }; 1989 Slick.prototype.visibility = function() { 1990 var _ = this; 1991 if (_.options.autoplay) { 1992 if (document[_.hidden]) { 1993 _.interrupted = true 1994 } else { 1995 _.interrupted = false 1996 } 1997 } 1998 }; 1999 $.fn.slick = function() { 2000 var _ = this, 2001 opt = arguments[0], 2002 args = Array.prototype.slice.call(arguments, 1), 2003 l = _.length, 2004 i, ret; 2005 for (i = 0; i < l; i++) { 2006 if (typeof opt == "object" || typeof opt == "undefined") _[i].slick = new Slick(_[i], opt); 2007 else ret = _[i].slick[opt].apply(_[i].slick, args); 2008 if (typeof ret != "undefined") return ret 2009 } 2010 return _ 2011 } 2012});
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.