PageSourceSearch

https://modelz.tv/wp/wp-content/themes/b_dash/common/js/slick.js

js modelz.tv collected 2026-10-08 18:39:28 UTC 62,598 bytes, 2,117 lines download raw bytes

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

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.