summaryrefslogtreecommitdiff
path: root/slick
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@normalesup.org>2017-01-20 01:28:44 +0100
committerIsmaël Bouya <ismael.bouya@normalesup.org>2017-01-20 01:28:44 +0100
commit604734c4a960aac3d99f1008337181ed2b0f04db (patch)
tree0cc5a4a9c958edce1b28366a446b75f6a720f6dc /slick
downloadludivine-slick-component-master.tar.gz
ludivine-slick-component-master.tar.zst
ludivine-slick-component-master.zip
Validation initialeHEAD1.6.0master
Diffstat (limited to 'slick')
-rw-r--r--slick/ajax-loader.gifbin0 -> 4178 bytes
-rw-r--r--slick/config.rb10
-rw-r--r--slick/fonts/slick.eotbin0 -> 2048 bytes
-rw-r--r--slick/fonts/slick.svg14
-rw-r--r--slick/fonts/slick.ttfbin0 -> 1892 bytes
-rw-r--r--slick/fonts/slick.woffbin0 -> 1380 bytes
-rw-r--r--slick/slick-theme.css204
-rw-r--r--slick/slick-theme.less168
-rw-r--r--slick/slick-theme.scss194
-rw-r--r--slick/slick.css117
-rw-r--r--slick/slick.js2892
-rw-r--r--slick/slick.less98
-rw-r--r--slick/slick.min.js18
-rw-r--r--slick/slick.scss98
14 files changed, 3813 insertions, 0 deletions
diff --git a/slick/ajax-loader.gif b/slick/ajax-loader.gif
new file mode 100644
index 0000000..e0e6e97
--- /dev/null
+++ b/slick/ajax-loader.gif
Binary files differ
diff --git a/slick/config.rb b/slick/config.rb
new file mode 100644
index 0000000..81f5ae3
--- /dev/null
+++ b/slick/config.rb
@@ -0,0 +1,10 @@
1css_dir = "."
2sass_dir = "."
3images_dir = "."
4fonts_dir = "fonts"
5relative_assets = true
6
7output_style = :compact
8line_comments = false
9
10preferred_syntax = :scss \ No newline at end of file
diff --git a/slick/fonts/slick.eot b/slick/fonts/slick.eot
new file mode 100644
index 0000000..2cbab9c
--- /dev/null
+++ b/slick/fonts/slick.eot
Binary files differ
diff --git a/slick/fonts/slick.svg b/slick/fonts/slick.svg
new file mode 100644
index 0000000..b36a66a
--- /dev/null
+++ b/slick/fonts/slick.svg
@@ -0,0 +1,14 @@
1<?xml version="1.0" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3<svg xmlns="http://www.w3.org/2000/svg">
4<metadata>Generated by Fontastic.me</metadata>
5<defs>
6<font id="slick" horiz-adv-x="512">
7<font-face font-family="slick" units-per-em="512" ascent="480" descent="-32"/>
8<missing-glyph horiz-adv-x="512" />
9
10<glyph unicode="&#8594;" d="M241 113l130 130c4 4 6 8 6 13 0 5-2 9-6 13l-130 130c-3 3-7 5-12 5-5 0-10-2-13-5l-29-30c-4-3-6-7-6-12 0-5 2-10 6-13l87-88-87-88c-4-3-6-8-6-13 0-5 2-9 6-12l29-30c3-3 8-5 13-5 5 0 9 2 12 5z m234 143c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
11<glyph unicode="&#8592;" d="M296 113l29 30c4 3 6 7 6 12 0 5-2 10-6 13l-87 88 87 88c4 3 6 8 6 13 0 5-2 9-6 12l-29 30c-3 3-8 5-13 5-5 0-9-2-12-5l-130-130c-4-4-6-8-6-13 0-5 2-9 6-13l130-130c3-3 7-5 12-5 5 0 10 2 13 5z m179 143c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
12<glyph unicode="&#8226;" d="M475 256c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
13<glyph unicode="&#97;" d="M475 439l0-128c0-5-1-9-5-13-4-4-8-5-13-5l-128 0c-8 0-13 3-17 11-3 7-2 14 4 20l40 39c-28 26-62 39-100 39-20 0-39-4-57-11-18-8-33-18-46-32-14-13-24-28-32-46-7-18-11-37-11-57 0-20 4-39 11-57 8-18 18-33 32-46 13-14 28-24 46-32 18-7 37-11 57-11 23 0 44 5 64 15 20 9 38 23 51 42 2 1 4 3 7 3 3 0 5-1 7-3l39-39c2-2 3-3 3-6 0-2-1-4-2-6-21-25-46-45-76-59-29-14-60-20-93-20-30 0-58 5-85 17-27 12-51 27-70 47-20 19-35 43-47 70-12 27-17 55-17 85 0 30 5 58 17 85 12 27 27 51 47 70 19 20 43 35 70 47 27 12 55 17 85 17 28 0 55-5 81-15 26-11 50-26 70-45l37 37c6 6 12 7 20 4 8-4 11-9 11-17z"/>
14</font></defs></svg>
diff --git a/slick/fonts/slick.ttf b/slick/fonts/slick.ttf
new file mode 100644
index 0000000..9d03461
--- /dev/null
+++ b/slick/fonts/slick.ttf
Binary files differ
diff --git a/slick/fonts/slick.woff b/slick/fonts/slick.woff
new file mode 100644
index 0000000..8ee9972
--- /dev/null
+++ b/slick/fonts/slick.woff
Binary files differ
diff --git a/slick/slick-theme.css b/slick/slick-theme.css
new file mode 100644
index 0000000..1232fca
--- /dev/null
+++ b/slick/slick-theme.css
@@ -0,0 +1,204 @@
1@charset 'UTF-8';
2/* Slider */
3.slick-loading .slick-list
4{
5 background: #fff url('./ajax-loader.gif') center center no-repeat;
6}
7
8/* Icons */
9@font-face
10{
11 font-family: 'slick';
12 font-weight: normal;
13 font-style: normal;
14
15 src: url('./fonts/slick.eot');
16 src: url('./fonts/slick.eot?#iefix') format('embedded-opentype'), url('./fonts/slick.woff') format('woff'), url('./fonts/slick.ttf') format('truetype'), url('./fonts/slick.svg#slick') format('svg');
17}
18/* Arrows */
19.slick-prev,
20.slick-next
21{
22 font-size: 0;
23 line-height: 0;
24
25 position: absolute;
26 top: 50%;
27
28 display: block;
29
30 width: 20px;
31 height: 20px;
32 padding: 0;
33 -webkit-transform: translate(0, -50%);
34 -ms-transform: translate(0, -50%);
35 transform: translate(0, -50%);
36
37 cursor: pointer;
38
39 color: transparent;
40 border: none;
41 outline: none;
42 background: transparent;
43}
44.slick-prev:hover,
45.slick-prev:focus,
46.slick-next:hover,
47.slick-next:focus
48{
49 color: transparent;
50 outline: none;
51 background: transparent;
52}
53.slick-prev:hover:before,
54.slick-prev:focus:before,
55.slick-next:hover:before,
56.slick-next:focus:before
57{
58 opacity: 1;
59}
60.slick-prev.slick-disabled:before,
61.slick-next.slick-disabled:before
62{
63 opacity: .25;
64}
65
66.slick-prev:before,
67.slick-next:before
68{
69 font-family: 'slick';
70 font-size: 20px;
71 line-height: 1;
72
73 opacity: .75;
74 color: white;
75
76 -webkit-font-smoothing: antialiased;
77 -moz-osx-font-smoothing: grayscale;
78}
79
80.slick-prev
81{
82 left: -25px;
83}
84[dir='rtl'] .slick-prev
85{
86 right: -25px;
87 left: auto;
88}
89.slick-prev:before
90{
91 content: '←';
92}
93[dir='rtl'] .slick-prev:before
94{
95 content: '→';
96}
97
98.slick-next
99{
100 right: -25px;
101}
102[dir='rtl'] .slick-next
103{
104 right: auto;
105 left: -25px;
106}
107.slick-next:before
108{
109 content: '→';
110}
111[dir='rtl'] .slick-next:before
112{
113 content: '←';
114}
115
116/* Dots */
117.slick-dotted.slick-slider
118{
119 margin-bottom: 30px;
120}
121
122.slick-dots
123{
124 position: absolute;
125 bottom: -25px;
126
127 display: block;
128
129 width: 100%;
130 padding: 0;
131 margin: 0;
132
133 list-style: none;
134
135 text-align: center;
136}
137.slick-dots li
138{
139 position: relative;
140
141 display: inline-block;
142
143 width: 20px;
144 height: 20px;
145 margin: 0 5px;
146 padding: 0;
147
148 cursor: pointer;
149}
150.slick-dots li button
151{
152 font-size: 0;
153 line-height: 0;
154
155 display: block;
156
157 width: 20px;
158 height: 20px;
159 padding: 5px;
160
161 cursor: pointer;
162
163 color: transparent;
164 border: 0;
165 outline: none;
166 background: transparent;
167}
168.slick-dots li button:hover,
169.slick-dots li button:focus
170{
171 outline: none;
172}
173.slick-dots li button:hover:before,
174.slick-dots li button:focus:before
175{
176 opacity: 1;
177}
178.slick-dots li button:before
179{
180 font-family: 'slick';
181 font-size: 6px;
182 line-height: 20px;
183
184 position: absolute;
185 top: 0;
186 left: 0;
187
188 width: 20px;
189 height: 20px;
190
191 content: '•';
192 text-align: center;
193
194 opacity: .25;
195 color: black;
196
197 -webkit-font-smoothing: antialiased;
198 -moz-osx-font-smoothing: grayscale;
199}
200.slick-dots li.slick-active button:before
201{
202 opacity: .75;
203 color: black;
204}
diff --git a/slick/slick-theme.less b/slick/slick-theme.less
new file mode 100644
index 0000000..8f10758
--- /dev/null
+++ b/slick/slick-theme.less
@@ -0,0 +1,168 @@
1@charset "UTF-8";
2
3// Default Variables
4
5@slick-font-path: "./fonts/";
6@slick-font-family: "slick";
7@slick-loader-path: "./";
8@slick-arrow-color: white;
9@slick-dot-color: black;
10@slick-dot-color-active: @slick-dot-color;
11@slick-prev-character: "←";
12@slick-next-character: "→";
13@slick-dot-character: "•";
14@slick-dot-size: 6px;
15@slick-opacity-default: 0.75;
16@slick-opacity-on-hover: 1;
17@slick-opacity-not-active: 0.25;
18
19/* Slider */
20.slick-loading .slick-list{
21 background: #fff url('@{slick-loader-path}ajax-loader.gif') center center no-repeat;
22}
23
24/* Icons */
25@font-face{
26 font-family: 'slick';
27 font-weight: normal;
28 font-style: normal;
29
30 src: url('@{slick-font-path}slick.eot');
31 src: url('@{slick-font-path}slick.eot?#iefix') format('embedded-opentype'), url('@{slick-font-path}slick.woff') format('woff'), url('@{slick-font-path}slick.ttf') format('truetype'), url('@{slick-font-path}slick.svg#slick') format('svg');
32}
33
34/* Arrows */
35
36.slick-prev,
37.slick-next {
38 position: absolute;
39 display: block;
40 height: 20px;
41 width: 20px;
42 line-height: 0px;
43 font-size: 0px;
44 cursor: pointer;
45 background: transparent;
46 color: transparent;
47 top: 50%;
48 -webkit-transform: translate(0, -50%);
49 -ms-transform: translate(0, -50%);
50 transform: translate(0, -50%);
51 padding: 0;
52 border: none;
53 outline: none;
54 &:hover, &:focus {
55 outline: none;
56 background: transparent;
57 color: transparent;
58 &:before {
59 opacity: @slick-opacity-on-hover;
60 }
61 }
62 &.slick-disabled:before {
63 opacity: @slick-opacity-not-active;
64 }
65}
66
67.slick-prev:before, .slick-next:before {
68 font-family: @slick-font-family;
69 font-size: 20px;
70 line-height: 1;
71 color: @slick-arrow-color;
72 opacity: @slick-opacity-default;
73 -webkit-font-smoothing: antialiased;
74 -moz-osx-font-smoothing: grayscale;
75}
76
77.slick-prev {
78 left: -25px;
79 &[dir="rtl"] {
80 left: auto;
81 right: -25px;
82 }
83 &:before {
84 content: @slick-prev-character;
85 &[dir="rtl"] {
86 content: @slick-next-character;
87 }
88 }
89}
90
91.slick-next {
92 right: -25px;
93 &[dir="rtl"] {
94 left: -25px;
95 right: auto;
96 }
97 &:before {
98 content: @slick-next-character;
99 &[dir="rtl"] {
100 content: @slick-prev-character;
101 }
102 }
103}
104
105/* Dots */
106
107.slick-dotted .slick-slider {
108 margin-bottom: 30px;
109}
110
111.slick-dots {
112 position: absolute;
113 bottom: -25px;
114 list-style: none;
115 display: block;
116 text-align: center;
117 padding: 0;
118 margin: 0;
119 width: 100%;
120 li {
121 position: relative;
122 display: inline-block;
123 height: 20px;
124 width: 20px;
125 margin: 0 5px;
126 padding: 0;
127 cursor: pointer;
128 button {
129 border: 0;
130 background: transparent;
131 display: block;
132 height: 20px;
133 width: 20px;
134 outline: none;
135 line-height: 0px;
136 font-size: 0px;
137 color: transparent;
138 padding: 5px;
139 cursor: pointer;
140 &:hover, &:focus {
141 outline: none;
142 &:before {
143 opacity: @slick-opacity-on-hover;
144 }
145 }
146 &:before {
147 position: absolute;
148 top: 0;
149 left: 0;
150 content: @slick-dot-character;
151 width: 20px;
152 height: 20px;
153 font-family: @slick-font-family;
154 font-size: @slick-dot-size;
155 line-height: 20px;
156 text-align: center;
157 color: @slick-dot-color;
158 opacity: @slick-opacity-not-active;
159 -webkit-font-smoothing: antialiased;
160 -moz-osx-font-smoothing: grayscale;
161 }
162 }
163 &.slick-active button:before {
164 color: @slick-dot-color-active;
165 opacity: @slick-opacity-default;
166 }
167 }
168}
diff --git a/slick/slick-theme.scss b/slick/slick-theme.scss
new file mode 100644
index 0000000..7fe63e1
--- /dev/null
+++ b/slick/slick-theme.scss
@@ -0,0 +1,194 @@
1@charset "UTF-8";
2
3// Default Variables
4
5// Slick icon entity codes outputs the following
6// "\2190" outputs ascii character "←"
7// "\2192" outputs ascii character "→"
8// "\2022" outputs ascii character "•"
9
10$slick-font-path: "./fonts/" !default;
11$slick-font-family: "slick" !default;
12$slick-loader-path: "./" !default;
13$slick-arrow-color: white !default;
14$slick-dot-color: black !default;
15$slick-dot-color-active: $slick-dot-color !default;
16$slick-prev-character: "\2190" !default;
17$slick-next-character: "\2192" !default;
18$slick-dot-character: "\2022" !default;
19$slick-dot-size: 6px !default;
20$slick-opacity-default: 0.75 !default;
21$slick-opacity-on-hover: 1 !default;
22$slick-opacity-not-active: 0.25 !default;
23
24@function slick-image-url($url) {
25 @if function-exists(image-url) {
26 @return image-url($url);
27 }
28 @else {
29 @return url($slick-loader-path + $url);
30 }
31}
32
33@function slick-font-url($url) {
34 @if function-exists(font-url) {
35 @return font-url($url);
36 }
37 @else {
38 @return url($slick-font-path + $url);
39 }
40}
41
42/* Slider */
43
44.slick-list {
45 .slick-loading & {
46 background: #fff slick-image-url("ajax-loader.gif") center center no-repeat;
47 }
48}
49
50/* Icons */
51@if $slick-font-family == "slick" {
52 @font-face {
53 font-family: "slick";
54 src: slick-font-url("slick.eot");
55 src: slick-font-url("slick.eot?#iefix") format("embedded-opentype"), slick-font-url("slick.woff") format("woff"), slick-font-url("slick.ttf") format("truetype"), slick-font-url("slick.svg#slick") format("svg");
56 font-weight: normal;
57 font-style: normal;
58 }
59}
60
61/* Arrows */
62
63.slick-prev,
64.slick-next {
65 position: absolute;
66 display: block;
67 height: 20px;
68 width: 20px;
69 line-height: 0px;
70 font-size: 0px;
71 cursor: pointer;
72 background: transparent;
73 color: transparent;
74 top: 50%;
75 -webkit-transform: translate(0, -50%);
76 -ms-transform: translate(0, -50%);
77 transform: translate(0, -50%);
78 padding: 0;
79 border: none;
80 outline: none;
81 &:hover, &:focus {
82 outline: none;
83 background: transparent;
84 color: transparent;
85 &:before {
86 opacity: $slick-opacity-on-hover;
87 }
88 }
89 &.slick-disabled:before {
90 opacity: $slick-opacity-not-active;
91 }
92 &:before {
93 font-family: $slick-font-family;
94 font-size: 20px;
95 line-height: 1;
96 color: $slick-arrow-color;
97 opacity: $slick-opacity-default;
98 -webkit-font-smoothing: antialiased;
99 -moz-osx-font-smoothing: grayscale;
100 }
101}
102
103.slick-prev {
104 left: -25px;
105 [dir="rtl"] & {
106 left: auto;
107 right: -25px;
108 }
109 &:before {
110 content: $slick-prev-character;
111 [dir="rtl"] & {
112 content: $slick-next-character;
113 }
114 }
115}
116
117.slick-next {
118 right: -25px;
119 [dir="rtl"] & {
120 left: -25px;
121 right: auto;
122 }
123 &:before {
124 content: $slick-next-character;
125 [dir="rtl"] & {
126 content: $slick-prev-character;
127 }
128 }
129}
130
131/* Dots */
132
133.slick-dotted.slick-slider {
134 margin-bottom: 30px;
135}
136
137.slick-dots {
138 position: absolute;
139 bottom: -25px;
140 list-style: none;
141 display: block;
142 text-align: center;
143 padding: 0;
144 margin: 0;
145 width: 100%;
146 li {
147 position: relative;
148 display: inline-block;
149 height: 20px;
150 width: 20px;
151 margin: 0 5px;
152 padding: 0;
153 cursor: pointer;
154 button {
155 border: 0;
156 background: transparent;
157 display: block;
158 height: 20px;
159 width: 20px;
160 outline: none;
161 line-height: 0px;
162 font-size: 0px;
163 color: transparent;
164 padding: 5px;
165 cursor: pointer;
166 &:hover, &:focus {
167 outline: none;
168 &:before {
169 opacity: $slick-opacity-on-hover;
170 }
171 }
172 &:before {
173 position: absolute;
174 top: 0;
175 left: 0;
176 content: $slick-dot-character;
177 width: 20px;
178 height: 20px;
179 font-family: $slick-font-family;
180 font-size: $slick-dot-size;
181 line-height: 20px;
182 text-align: center;
183 color: $slick-dot-color;
184 opacity: $slick-opacity-not-active;
185 -webkit-font-smoothing: antialiased;
186 -moz-osx-font-smoothing: grayscale;
187 }
188 }
189 &.slick-active button:before {
190 color: $slick-dot-color-active;
191 opacity: $slick-opacity-default;
192 }
193 }
194}
diff --git a/slick/slick.css b/slick/slick.css
new file mode 100644
index 0000000..dd973fe
--- /dev/null
+++ b/slick/slick.css
@@ -0,0 +1,117 @@
1/* Slider */
2.slick-slider
3{
4 position: relative;
5
6 display: block;
7 box-sizing: border-box;
8
9 -webkit-user-select: none;
10 -moz-user-select: none;
11 -ms-user-select: none;
12 user-select: none;
13
14 -webkit-touch-callout: none;
15 -khtml-user-select: none;
16 -ms-touch-action: pan-y;
17 touch-action: pan-y;
18 -webkit-tap-highlight-color: transparent;
19}
20
21.slick-list
22{
23 position: relative;
24
25 display: block;
26 overflow: hidden;
27
28 margin: 0;
29 padding: 0;
30}
31.slick-list:focus
32{
33 outline: none;
34}
35.slick-list.dragging
36{
37 cursor: pointer;
38 cursor: hand;
39}
40
41.slick-slider .slick-track,
42.slick-slider .slick-list
43{
44 -webkit-transform: translate3d(0, 0, 0);
45 -moz-transform: translate3d(0, 0, 0);
46 -ms-transform: translate3d(0, 0, 0);
47 -o-transform: translate3d(0, 0, 0);
48 transform: translate3d(0, 0, 0);
49}
50
51.slick-track
52{
53 position: relative;
54 top: 0;
55 left: 0;
56
57 display: block;
58}
59.slick-track:before,
60.slick-track:after
61{
62 display: table;
63
64 content: '';
65}
66.slick-track:after
67{
68 clear: both;
69}
70.slick-loading .slick-track
71{
72 visibility: hidden;
73}
74
75.slick-slide
76{
77 display: none;
78 float: left;
79
80 height: 100%;
81 min-height: 1px;
82}
83[dir='rtl'] .slick-slide
84{
85 float: right;
86}
87.slick-slide img
88{
89 display: block;
90}
91.slick-slide.slick-loading img
92{
93 display: none;
94}
95.slick-slide.dragging img
96{
97 pointer-events: none;
98}
99.slick-initialized .slick-slide
100{
101 display: block;
102}
103.slick-loading .slick-slide
104{
105 visibility: hidden;
106}
107.slick-vertical .slick-slide
108{
109 display: block;
110
111 height: auto;
112
113 border: 1px solid transparent;
114}
115.slick-arrow.slick-hidden {
116 display: none;
117}
diff --git a/slick/slick.js b/slick/slick.js
new file mode 100644
index 0000000..5394604
--- /dev/null
+++ b/slick/slick.js
@@ -0,0 +1,2892 @@
1/*
2 _ _ _ _
3 ___| (_) ___| | __ (_)___
4/ __| | |/ __| |/ / | / __|
5\__ \ | | (__| < _ | \__ \
6|___/_|_|\___|_|\_(_)/ |___/
7 |__/
8
9 Version: 1.6.0
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/* global window, document, define, jQuery, setInterval, clearInterval */
18(function(factory) {
19 'use strict';
20 if (typeof define === 'function' && define.amd) {
21 define(['jquery'], factory);
22 } else if (typeof exports !== 'undefined') {
23 module.exports = factory(require('jquery'));
24 } else {
25 factory(jQuery);
26 }
27
28}(function($) {
29 'use strict';
30 var Slick = window.Slick || {};
31
32 Slick = (function() {
33
34 var instanceUid = 0;
35
36 function Slick(element, settings) {
37
38 var _ = this, dataSettings;
39
40 _.defaults = {
41 accessibility: true,
42 adaptiveHeight: false,
43 appendArrows: $(element),
44 appendDots: $(element),
45 arrows: true,
46 asNavFor: null,
47 prevArrow: '<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>',
48 nextArrow: '<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>',
49 autoplay: false,
50 autoplaySpeed: 3000,
51 centerMode: false,
52 centerPadding: '50px',
53 cssEase: 'ease',
54 customPaging: function(slider, i) {
55 return $('<button type="button" data-role="none" role="button" tabindex="0" />').text(i + 1);
56 },
57 dots: false,
58 dotsClass: 'slick-dots',
59 draggable: true,
60 easing: 'linear',
61 edgeFriction: 0.35,
62 fade: false,
63 focusOnSelect: false,
64 infinite: true,
65 initialSlide: 0,
66 lazyLoad: 'ondemand',
67 mobileFirst: false,
68 pauseOnHover: true,
69 pauseOnFocus: true,
70 pauseOnDotsHover: false,
71 respondTo: 'window',
72 responsive: null,
73 rows: 1,
74 rtl: false,
75 slide: '',
76 slidesPerRow: 1,
77 slidesToShow: 1,
78 slidesToScroll: 1,
79 speed: 500,
80 swipe: true,
81 swipeToSlide: false,
82 touchMove: true,
83 touchThreshold: 5,
84 useCSS: true,
85 useTransform: true,
86 variableWidth: false,
87 vertical: false,
88 verticalSwiping: false,
89 waitForAnimate: true,
90 zIndex: 1000
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 unslicked: false
118 };
119
120 $.extend(_, _.initials);
121
122 _.activeBreakpoint = null;
123 _.animType = null;
124 _.animProp = null;
125 _.breakpoints = [];
126 _.breakpointSettings = [];
127 _.cssTransitions = false;
128 _.focussed = false;
129 _.interrupted = false;
130 _.hidden = 'hidden';
131 _.paused = true;
132 _.positionProp = null;
133 _.respondTo = null;
134 _.rowCount = 1;
135 _.shouldClick = true;
136 _.$slider = $(element);
137 _.$slidesCache = null;
138 _.transformType = null;
139 _.transitionType = null;
140 _.visibilityChange = 'visibilitychange';
141 _.windowWidth = 0;
142 _.windowTimer = null;
143
144 dataSettings = $(element).data('slick') || {};
145
146 _.options = $.extend({}, _.defaults, settings, dataSettings);
147
148 _.currentSlide = _.options.initialSlide;
149
150 _.originalSettings = _.options;
151
152 if (typeof document.mozHidden !== 'undefined') {
153 _.hidden = 'mozHidden';
154 _.visibilityChange = 'mozvisibilitychange';
155 } else if (typeof document.webkitHidden !== 'undefined') {
156 _.hidden = 'webkitHidden';
157 _.visibilityChange = 'webkitvisibilitychange';
158 }
159
160 _.autoPlay = $.proxy(_.autoPlay, _);
161 _.autoPlayClear = $.proxy(_.autoPlayClear, _);
162 _.autoPlayIterator = $.proxy(_.autoPlayIterator, _);
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
171 _.instanceUid = instanceUid++;
172
173 // A simple way to check for HTML strings
174 // Strict HTML recognition (must start with <)
175 // Extracted from jQuery v1.11 source
176 _.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/;
177
178
179 _.registerBreakpoints();
180 _.init(true);
181
182 }
183
184 return Slick;
185
186 }());
187
188 Slick.prototype.activateADA = function() {
189 var _ = this;
190
191 _.$slideTrack.find('.slick-active').attr({
192 'aria-hidden': 'false'
193 }).find('a, input, button, select').attr({
194 'tabindex': '0'
195 });
196
197 };
198
199 Slick.prototype.addSlide = Slick.prototype.slickAdd = function(markup, index, addBefore) {
200
201 var _ = this;
202
203 if (typeof(index) === 'boolean') {
204 addBefore = index;
205 index = null;
206 } else if (index < 0 || (index >= _.slideCount)) {
207 return false;
208 }
209
210 _.unload();
211
212 if (typeof(index) === 'number') {
213 if (index === 0 && _.$slides.length === 0) {
214 $(markup).appendTo(_.$slideTrack);
215 } else if (addBefore) {
216 $(markup).insertBefore(_.$slides.eq(index));
217 } else {
218 $(markup).insertAfter(_.$slides.eq(index));
219 }
220 } else {
221 if (addBefore === true) {
222 $(markup).prependTo(_.$slideTrack);
223 } else {
224 $(markup).appendTo(_.$slideTrack);
225 }
226 }
227
228 _.$slides = _.$slideTrack.children(this.options.slide);
229
230 _.$slideTrack.children(this.options.slide).detach();
231
232 _.$slideTrack.append(_.$slides);
233
234 _.$slides.each(function(index, element) {
235 $(element).attr('data-slick-index', index);
236 });
237
238 _.$slidesCache = _.$slides;
239
240 _.reinit();
241
242 };
243
244 Slick.prototype.animateHeight = function() {
245 var _ = this;
246 if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {
247 var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
248 _.$list.animate({
249 height: targetHeight
250 }, _.options.speed);
251 }
252 };
253
254 Slick.prototype.animateSlide = function(targetLeft, callback) {
255
256 var animProps = {},
257 _ = this;
258
259 _.animateHeight();
260
261 if (_.options.rtl === true && _.options.vertical === false) {
262 targetLeft = -targetLeft;
263 }
264 if (_.transformsEnabled === false) {
265 if (_.options.vertical === false) {
266 _.$slideTrack.animate({
267 left: targetLeft
268 }, _.options.speed, _.options.easing, callback);
269 } else {
270 _.$slideTrack.animate({
271 top: targetLeft
272 }, _.options.speed, _.options.easing, callback);
273 }
274
275 } else {
276
277 if (_.cssTransitions === false) {
278 if (_.options.rtl === true) {
279 _.currentLeft = -(_.currentLeft);
280 }
281 $({
282 animStart: _.currentLeft
283 }).animate({
284 animStart: targetLeft
285 }, {
286 duration: _.options.speed,
287 easing: _.options.easing,
288 step: function(now) {
289 now = Math.ceil(now);
290 if (_.options.vertical === false) {
291 animProps[_.animType] = 'translate(' +
292 now + 'px, 0px)';
293 _.$slideTrack.css(animProps);
294 } else {
295 animProps[_.animType] = 'translate(0px,' +
296 now + 'px)';
297 _.$slideTrack.css(animProps);
298 }
299 },
300 complete: function() {
301 if (callback) {
302 callback.call();
303 }
304 }
305 });
306
307 } else {
308
309 _.applyTransition();
310 targetLeft = Math.ceil(targetLeft);
311
312 if (_.options.vertical === false) {
313 animProps[_.animType] = 'translate3d(' + targetLeft + 'px, 0px, 0px)';
314 } else {
315 animProps[_.animType] = 'translate3d(0px,' + targetLeft + 'px, 0px)';
316 }
317 _.$slideTrack.css(animProps);
318
319 if (callback) {
320 setTimeout(function() {
321
322 _.disableTransition();
323
324 callback.call();
325 }, _.options.speed);
326 }
327
328 }
329
330 }
331
332 };
333
334 Slick.prototype.getNavTarget = function() {
335
336 var _ = this,
337 asNavFor = _.options.asNavFor;
338
339 if ( asNavFor && asNavFor !== null ) {
340 asNavFor = $(asNavFor).not(_.$slider);
341 }
342
343 return asNavFor;
344
345 };
346
347 Slick.prototype.asNavFor = function(index) {
348
349 var _ = this,
350 asNavFor = _.getNavTarget();
351
352 if ( asNavFor !== null && typeof asNavFor === 'object' ) {
353 asNavFor.each(function() {
354 var target = $(this).slick('getSlick');
355 if(!target.unslicked) {
356 target.slideHandler(index, true);
357 }
358 });
359 }
360
361 };
362
363 Slick.prototype.applyTransition = function(slide) {
364
365 var _ = this,
366 transition = {};
367
368 if (_.options.fade === false) {
369 transition[_.transitionType] = _.transformType + ' ' + _.options.speed + 'ms ' + _.options.cssEase;
370 } else {
371 transition[_.transitionType] = 'opacity ' + _.options.speed + 'ms ' + _.options.cssEase;
372 }
373
374 if (_.options.fade === false) {
375 _.$slideTrack.css(transition);
376 } else {
377 _.$slides.eq(slide).css(transition);
378 }
379
380 };
381
382 Slick.prototype.autoPlay = function() {
383
384 var _ = this;
385
386 _.autoPlayClear();
387
388 if ( _.slideCount > _.options.slidesToShow ) {
389 _.autoPlayTimer = setInterval( _.autoPlayIterator, _.options.autoplaySpeed );
390 }
391
392 };
393
394 Slick.prototype.autoPlayClear = function() {
395
396 var _ = this;
397
398 if (_.autoPlayTimer) {
399 clearInterval(_.autoPlayTimer);
400 }
401
402 };
403
404 Slick.prototype.autoPlayIterator = function() {
405
406 var _ = this,
407 slideTo = _.currentSlide + _.options.slidesToScroll;
408
409 if ( !_.paused && !_.interrupted && !_.focussed ) {
410
411 if ( _.options.infinite === false ) {
412
413 if ( _.direction === 1 && ( _.currentSlide + 1 ) === ( _.slideCount - 1 )) {
414 _.direction = 0;
415 }
416
417 else if ( _.direction === 0 ) {
418
419 slideTo = _.currentSlide - _.options.slidesToScroll;
420
421 if ( _.currentSlide - 1 === 0 ) {
422 _.direction = 1;
423 }
424
425 }
426
427 }
428
429 _.slideHandler( slideTo );
430
431 }
432
433 };
434
435 Slick.prototype.buildArrows = function() {
436
437 var _ = this;
438
439 if (_.options.arrows === true ) {
440
441 _.$prevArrow = $(_.options.prevArrow).addClass('slick-arrow');
442 _.$nextArrow = $(_.options.nextArrow).addClass('slick-arrow');
443
444 if( _.slideCount > _.options.slidesToShow ) {
445
446 _.$prevArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex');
447 _.$nextArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex');
448
449 if (_.htmlExpr.test(_.options.prevArrow)) {
450 _.$prevArrow.prependTo(_.options.appendArrows);
451 }
452
453 if (_.htmlExpr.test(_.options.nextArrow)) {
454 _.$nextArrow.appendTo(_.options.appendArrows);
455 }
456
457 if (_.options.infinite !== true) {
458 _.$prevArrow
459 .addClass('slick-disabled')
460 .attr('aria-disabled', 'true');
461 }
462
463 } else {
464
465 _.$prevArrow.add( _.$nextArrow )
466
467 .addClass('slick-hidden')
468 .attr({
469 'aria-disabled': 'true',
470 'tabindex': '-1'
471 });
472
473 }
474
475 }
476
477 };
478
479 Slick.prototype.buildDots = function() {
480
481 var _ = this,
482 i, dot;
483
484 if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
485
486 _.$slider.addClass('slick-dotted');
487
488 dot = $('<ul />').addClass(_.options.dotsClass);
489
490 for (i = 0; i <= _.getDotCount(); i += 1) {
491 dot.append($('<li />').append(_.options.customPaging.call(this, _, i)));
492 }
493
494 _.$dots = dot.appendTo(_.options.appendDots);
495
496 _.$dots.find('li').first().addClass('slick-active').attr('aria-hidden', 'false');
497
498 }
499
500 };
501
502 Slick.prototype.buildOut = function() {
503
504 var _ = this;
505
506 _.$slides =
507 _.$slider
508 .children( _.options.slide + ':not(.slick-cloned)')
509 .addClass('slick-slide');
510
511 _.slideCount = _.$slides.length;
512
513 _.$slides.each(function(index, element) {
514 $(element)
515 .attr('data-slick-index', index)
516 .data('originalStyling', $(element).attr('style') || '');
517 });
518
519 _.$slider.addClass('slick-slider');
520
521 _.$slideTrack = (_.slideCount === 0) ?
522 $('<div class="slick-track"/>').appendTo(_.$slider) :
523 _.$slides.wrapAll('<div class="slick-track"/>').parent();
524
525 _.$list = _.$slideTrack.wrap(
526 '<div aria-live="polite" class="slick-list"/>').parent();
527 _.$slideTrack.css('opacity', 0);
528
529 if (_.options.centerMode === true || _.options.swipeToSlide === true) {
530 _.options.slidesToScroll = 1;
531 }
532
533 $('img[data-lazy]', _.$slider).not('[src]').addClass('slick-loading');
534
535 _.setupInfinite();
536
537 _.buildArrows();
538
539 _.buildDots();
540
541 _.updateDots();
542
543
544 _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);
545
546 if (_.options.draggable === true) {
547 _.$list.addClass('draggable');
548 }
549
550 };
551
552 Slick.prototype.buildRows = function() {
553
554 var _ = this, a, b, c, newSlides, numOfSlides, originalSlides,slidesPerSection;
555
556 newSlides = document.createDocumentFragment();
557 originalSlides = _.$slider.children();
558
559 if(_.options.rows > 1) {
560
561 slidesPerSection = _.options.slidesPerRow * _.options.rows;
562 numOfSlides = Math.ceil(
563 originalSlides.length / slidesPerSection
564 );
565
566 for(a = 0; a < numOfSlides; a++){
567 var slide = document.createElement('div');
568 for(b = 0; b < _.options.rows; b++) {
569 var row = document.createElement('div');
570 for(c = 0; c < _.options.slidesPerRow; c++) {
571 var target = (a * slidesPerSection + ((b * _.options.slidesPerRow) + c));
572 if (originalSlides.get(target)) {
573 row.appendChild(originalSlides.get(target));
574 }
575 }
576 slide.appendChild(row);
577 }
578 newSlides.appendChild(slide);
579 }
580
581 _.$slider.empty().append(newSlides);
582 _.$slider.children().children().children()
583 .css({
584 'width':(100 / _.options.slidesPerRow) + '%',
585 'display': 'inline-block'
586 });
587
588 }
589
590 };
591
592 Slick.prototype.checkResponsive = function(initial, forceUpdate) {
593
594 var _ = this,
595 breakpoint, targetBreakpoint, respondToWidth, triggerBreakpoint = false;
596 var sliderWidth = _.$slider.width();
597 var windowWidth = window.innerWidth || $(window).width();
598
599 if (_.respondTo === 'window') {
600 respondToWidth = windowWidth;
601 } else if (_.respondTo === 'slider') {
602 respondToWidth = sliderWidth;
603 } else if (_.respondTo === 'min') {
604 respondToWidth = Math.min(windowWidth, sliderWidth);
605 }
606
607 if ( _.options.responsive &&
608 _.options.responsive.length &&
609 _.options.responsive !== null) {
610
611 targetBreakpoint = null;
612
613 for (breakpoint in _.breakpoints) {
614 if (_.breakpoints.hasOwnProperty(breakpoint)) {
615 if (_.originalSettings.mobileFirst === false) {
616 if (respondToWidth < _.breakpoints[breakpoint]) {
617 targetBreakpoint = _.breakpoints[breakpoint];
618 }
619 } else {
620 if (respondToWidth > _.breakpoints[breakpoint]) {
621 targetBreakpoint = _.breakpoints[breakpoint];
622 }
623 }
624 }
625 }
626
627 if (targetBreakpoint !== null) {
628 if (_.activeBreakpoint !== null) {
629 if (targetBreakpoint !== _.activeBreakpoint || forceUpdate) {
630 _.activeBreakpoint =
631 targetBreakpoint;
632 if (_.breakpointSettings[targetBreakpoint] === 'unslick') {
633 _.unslick(targetBreakpoint);
634 } else {
635 _.options = $.extend({}, _.originalSettings,
636 _.breakpointSettings[
637 targetBreakpoint]);
638 if (initial === true) {
639 _.currentSlide = _.options.initialSlide;
640 }
641 _.refresh(initial);
642 }
643 triggerBreakpoint = targetBreakpoint;
644 }
645 } else {
646 _.activeBreakpoint = targetBreakpoint;
647 if (_.breakpointSettings[targetBreakpoint] === 'unslick') {
648 _.unslick(targetBreakpoint);
649 } else {
650 _.options = $.extend({}, _.originalSettings,
651 _.breakpointSettings[
652 targetBreakpoint]);
653 if (initial === true) {
654 _.currentSlide = _.options.initialSlide;
655 }
656 _.refresh(initial);
657 }
658 triggerBreakpoint = targetBreakpoint;
659 }
660 } else {
661 if (_.activeBreakpoint !== null) {
662 _.activeBreakpoint = null;
663 _.options = _.originalSettings;
664 if (initial === true) {
665 _.currentSlide = _.options.initialSlide;
666 }
667 _.refresh(initial);
668 triggerBreakpoint = targetBreakpoint;
669 }
670 }
671
672 // only trigger breakpoints during an actual break. not on initialize.
673 if( !initial && triggerBreakpoint !== false ) {
674 _.$slider.trigger('breakpoint', [_, triggerBreakpoint]);
675 }
676 }
677
678 };
679
680 Slick.prototype.changeSlide = function(event, dontAnimate) {
681
682 var _ = this,
683 $target = $(event.currentTarget),
684 indexOffset, slideOffset, unevenOffset;
685
686 // If target is a link, prevent default action.
687 if($target.is('a')) {
688 event.preventDefault();
689 }
690
691 // If target is not the <li> element (ie: a child), find the <li>.
692 if(!$target.is('li')) {
693 $target = $target.closest('li');
694 }
695
696 unevenOffset = (_.slideCount % _.options.slidesToScroll !== 0);
697 indexOffset = unevenOffset ? 0 : (_.slideCount - _.currentSlide) % _.options.slidesToScroll;
698
699 switch (event.data.message) {
700
701 case 'previous':
702 slideOffset = indexOffset === 0 ? _.options.slidesToScroll : _.options.slidesToShow - indexOffset;
703 if (_.slideCount > _.options.slidesToShow) {
704 _.slideHandler(_.currentSlide - slideOffset, false, dontAnimate);
705 }
706 break;
707
708 case 'next':
709 slideOffset = indexOffset === 0 ? _.options.slidesToScroll : indexOffset;
710 if (_.slideCount > _.options.slidesToShow) {
711 _.slideHandler(_.currentSlide + slideOffset, false, dontAnimate);
712 }
713 break;
714
715 case 'index':
716 var index = event.data.index === 0 ? 0 :
717 event.data.index || $target.index() * _.options.slidesToScroll;
718
719 _.slideHandler(_.checkNavigable(index), false, dontAnimate);
720 $target.children().trigger('focus');
721 break;
722
723 default:
724 return;
725 }
726
727 };
728
729 Slick.prototype.checkNavigable = function(index) {
730
731 var _ = this,
732 navigables, prevNavigable;
733
734 navigables = _.getNavigableIndexes();
735 prevNavigable = 0;
736 if (index > navigables[navigables.length - 1]) {
737 index = navigables[navigables.length - 1];
738 } else {
739 for (var n in navigables) {
740 if (index < navigables[n]) {
741 index = prevNavigable;
742 break;
743 }
744 prevNavigable = navigables[n];
745 }
746 }
747
748 return index;
749 };
750
751 Slick.prototype.cleanUpEvents = function() {
752
753 var _ = this;
754
755 if (_.options.dots && _.$dots !== null) {
756
757 $('li', _.$dots)
758 .off('click.slick', _.changeSlide)
759 .off('mouseenter.slick', $.proxy(_.interrupt, _, true))
760 .off('mouseleave.slick', $.proxy(_.interrupt, _, false));
761
762 }
763
764 _.$slider.off('focus.slick blur.slick');
765
766 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
767 _.$prevArrow && _.$prevArrow.off('click.slick', _.changeSlide);
768 _.$nextArrow && _.$nextArrow.off('click.slick', _.changeSlide);
769 }
770
771 _.$list.off('touchstart.slick mousedown.slick', _.swipeHandler);
772 _.$list.off('touchmove.slick mousemove.slick', _.swipeHandler);
773 _.$list.off('touchend.slick mouseup.slick', _.swipeHandler);
774 _.$list.off('touchcancel.slick mouseleave.slick', _.swipeHandler);
775
776 _.$list.off('click.slick', _.clickHandler);
777
778 $(document).off(_.visibilityChange, _.visibility);
779
780 _.cleanUpSlideEvents();
781
782 if (_.options.accessibility === true) {
783 _.$list.off('keydown.slick', _.keyHandler);
784 }
785
786 if (_.options.focusOnSelect === true) {
787 $(_.$slideTrack).children().off('click.slick', _.selectHandler);
788 }
789
790 $(window).off('orientationchange.slick.slick-' + _.instanceUid, _.orientationChange);
791
792 $(window).off('resize.slick.slick-' + _.instanceUid, _.resize);
793
794 $('[draggable!=true]', _.$slideTrack).off('dragstart', _.preventDefault);
795
796 $(window).off('load.slick.slick-' + _.instanceUid, _.setPosition);
797 $(document).off('ready.slick.slick-' + _.instanceUid, _.setPosition);
798
799 };
800
801 Slick.prototype.cleanUpSlideEvents = function() {
802
803 var _ = this;
804
805 _.$list.off('mouseenter.slick', $.proxy(_.interrupt, _, true));
806 _.$list.off('mouseleave.slick', $.proxy(_.interrupt, _, false));
807
808 };
809
810 Slick.prototype.cleanUpRows = function() {
811
812 var _ = this, originalSlides;
813
814 if(_.options.rows > 1) {
815 originalSlides = _.$slides.children().children();
816 originalSlides.removeAttr('style');
817 _.$slider.empty().append(originalSlides);
818 }
819
820 };
821
822 Slick.prototype.clickHandler = function(event) {
823
824 var _ = this;
825
826 if (_.shouldClick === false) {
827 event.stopImmediatePropagation();
828 event.stopPropagation();
829 event.preventDefault();
830 }
831
832 };
833
834 Slick.prototype.destroy = function(refresh) {
835
836 var _ = this;
837
838 _.autoPlayClear();
839
840 _.touchObject = {};
841
842 _.cleanUpEvents();
843
844 $('.slick-cloned', _.$slider).detach();
845
846 if (_.$dots) {
847 _.$dots.remove();
848 }
849
850
851 if ( _.$prevArrow && _.$prevArrow.length ) {
852
853 _.$prevArrow
854 .removeClass('slick-disabled slick-arrow slick-hidden')
855 .removeAttr('aria-hidden aria-disabled tabindex')
856 .css('display','');
857
858 if ( _.htmlExpr.test( _.options.prevArrow )) {
859 _.$prevArrow.remove();
860 }
861 }
862
863 if ( _.$nextArrow && _.$nextArrow.length ) {
864
865 _.$nextArrow
866 .removeClass('slick-disabled slick-arrow slick-hidden')
867 .removeAttr('aria-hidden aria-disabled tabindex')
868 .css('display','');
869
870 if ( _.htmlExpr.test( _.options.nextArrow )) {
871 _.$nextArrow.remove();
872 }
873
874 }
875
876
877 if (_.$slides) {
878
879 _.$slides
880 .removeClass('slick-slide slick-active slick-center slick-visible slick-current')
881 .removeAttr('aria-hidden')
882 .removeAttr('data-slick-index')
883 .each(function(){
884 $(this).attr('style', $(this).data('originalStyling'));
885 });
886
887 _.$slideTrack.children(this.options.slide).detach();
888
889 _.$slideTrack.detach();
890
891 _.$list.detach();
892
893 _.$slider.append(_.$slides);
894 }
895
896 _.cleanUpRows();
897
898 _.$slider.removeClass('slick-slider');
899 _.$slider.removeClass('slick-initialized');
900 _.$slider.removeClass('slick-dotted');
901
902 _.unslicked = true;
903
904 if(!refresh) {
905 _.$slider.trigger('destroy', [_]);
906 }
907
908 };
909
910 Slick.prototype.disableTransition = function(slide) {
911
912 var _ = this,
913 transition = {};
914
915 transition[_.transitionType] = '';
916
917 if (_.options.fade === false) {
918 _.$slideTrack.css(transition);
919 } else {
920 _.$slides.eq(slide).css(transition);
921 }
922
923 };
924
925 Slick.prototype.fadeSlide = function(slideIndex, callback) {
926
927 var _ = this;
928
929 if (_.cssTransitions === false) {
930
931 _.$slides.eq(slideIndex).css({
932 zIndex: _.options.zIndex
933 });
934
935 _.$slides.eq(slideIndex).animate({
936 opacity: 1
937 }, _.options.speed, _.options.easing, callback);
938
939 } else {
940
941 _.applyTransition(slideIndex);
942
943 _.$slides.eq(slideIndex).css({
944 opacity: 1,
945 zIndex: _.options.zIndex
946 });
947
948 if (callback) {
949 setTimeout(function() {
950
951 _.disableTransition(slideIndex);
952
953 callback.call();
954 }, _.options.speed);
955 }
956
957 }
958
959 };
960
961 Slick.prototype.fadeSlideOut = function(slideIndex) {
962
963 var _ = this;
964
965 if (_.cssTransitions === false) {
966
967 _.$slides.eq(slideIndex).animate({
968 opacity: 0,
969 zIndex: _.options.zIndex - 2
970 }, _.options.speed, _.options.easing);
971
972 } else {
973
974 _.applyTransition(slideIndex);
975
976 _.$slides.eq(slideIndex).css({
977 opacity: 0,
978 zIndex: _.options.zIndex - 2
979 });
980
981 }
982
983 };
984
985 Slick.prototype.filterSlides = Slick.prototype.slickFilter = function(filter) {
986
987 var _ = this;
988
989 if (filter !== null) {
990
991 _.$slidesCache = _.$slides;
992
993 _.unload();
994
995 _.$slideTrack.children(this.options.slide).detach();
996
997 _.$slidesCache.filter(filter).appendTo(_.$slideTrack);
998
999 _.reinit();
1000
1001 }
1002
1003 };
1004
1005 Slick.prototype.focusHandler = function() {
1006
1007 var _ = this;
1008
1009 _.$slider
1010 .off('focus.slick blur.slick')
1011 .on('focus.slick blur.slick',
1012 '*:not(.slick-arrow)', function(event) {
1013
1014 event.stopImmediatePropagation();
1015 var $sf = $(this);
1016
1017 setTimeout(function() {
1018
1019 if( _.options.pauseOnFocus ) {
1020 _.focussed = $sf.is(':focus');
1021 _.autoPlay();
1022 }
1023
1024 }, 0);
1025
1026 });
1027 };
1028
1029 Slick.prototype.getCurrent = Slick.prototype.slickCurrentSlide = function() {
1030
1031 var _ = this;
1032 return _.currentSlide;
1033
1034 };
1035
1036 Slick.prototype.getDotCount = function() {
1037
1038 var _ = this;
1039
1040 var breakPoint = 0;
1041 var counter = 0;
1042 var pagerQty = 0;
1043
1044 if (_.options.infinite === true) {
1045 while (breakPoint < _.slideCount) {
1046 ++pagerQty;
1047 breakPoint = counter + _.options.slidesToScroll;
1048 counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
1049 }
1050 } else if (_.options.centerMode === true) {
1051 pagerQty = _.slideCount;
1052 } else if(!_.options.asNavFor) {
1053 pagerQty = 1 + Math.ceil((_.slideCount - _.options.slidesToShow) / _.options.slidesToScroll);
1054 }else {
1055 while (breakPoint < _.slideCount) {
1056 ++pagerQty;
1057 breakPoint = counter + _.options.slidesToScroll;
1058 counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
1059 }
1060 }
1061
1062 return pagerQty - 1;
1063
1064 };
1065
1066 Slick.prototype.getLeft = function(slideIndex) {
1067
1068 var _ = this,
1069 targetLeft,
1070 verticalHeight,
1071 verticalOffset = 0,
1072 targetSlide;
1073
1074 _.slideOffset = 0;
1075 verticalHeight = _.$slides.first().outerHeight(true);
1076
1077 if (_.options.infinite === true) {
1078 if (_.slideCount > _.options.slidesToShow) {
1079 _.slideOffset = (_.slideWidth * _.options.slidesToShow) * -1;
1080 verticalOffset = (verticalHeight * _.options.slidesToShow) * -1;
1081 }
1082 if (_.slideCount % _.options.slidesToScroll !== 0) {
1083 if (slideIndex + _.options.slidesToScroll > _.slideCount && _.slideCount > _.options.slidesToShow) {
1084 if (slideIndex > _.slideCount) {
1085 _.slideOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * _.slideWidth) * -1;
1086 verticalOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * verticalHeight) * -1;
1087 } else {
1088 _.slideOffset = ((_.slideCount % _.options.slidesToScroll) * _.slideWidth) * -1;
1089 verticalOffset = ((_.slideCount % _.options.slidesToScroll) * verticalHeight) * -1;
1090 }
1091 }
1092 }
1093 } else {
1094 if (slideIndex + _.options.slidesToShow > _.slideCount) {
1095 _.slideOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * _.slideWidth;
1096 verticalOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * verticalHeight;
1097 }
1098 }
1099
1100 if (_.slideCount <= _.options.slidesToShow) {
1101 _.slideOffset = 0;
1102 verticalOffset = 0;
1103 }
1104
1105 if (_.options.centerMode === true && _.options.infinite === true) {
1106 _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2) - _.slideWidth;
1107 } else if (_.options.centerMode === true) {
1108 _.slideOffset = 0;
1109 _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2);
1110 }
1111
1112 if (_.options.vertical === false) {
1113 targetLeft = ((slideIndex * _.slideWidth) * -1) + _.slideOffset;
1114 } else {
1115 targetLeft = ((slideIndex * verticalHeight) * -1) + verticalOffset;
1116 }
1117
1118 if (_.options.variableWidth === true) {
1119
1120 if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {
1121 targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);
1122 } else {
1123 targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow);
1124 }
1125
1126 if (_.options.rtl === true) {
1127 if (targetSlide[0]) {
1128 targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;
1129 } else {
1130 targetLeft = 0;
1131 }
1132 } else {
1133 targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;
1134 }
1135
1136 if (_.options.centerMode === true) {
1137 if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {
1138 targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);
1139 } else {
1140 targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow + 1);
1141 }
1142
1143 if (_.options.rtl === true) {
1144 if (targetSlide[0]) {
1145 targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;
1146 } else {
1147 targetLeft = 0;
1148 }
1149 } else {
1150 targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;
1151 }
1152
1153 targetLeft += (_.$list.width() - targetSlide.outerWidth()) / 2;
1154 }
1155 }
1156
1157 return targetLeft;
1158
1159 };
1160
1161 Slick.prototype.getOption = Slick.prototype.slickGetOption = function(option) {
1162
1163 var _ = this;
1164
1165 return _.options[option];
1166
1167 };
1168
1169 Slick.prototype.getNavigableIndexes = function() {
1170
1171 var _ = this,
1172 breakPoint = 0,
1173 counter = 0,
1174 indexes = [],
1175 max;
1176
1177 if (_.options.infinite === false) {
1178 max = _.slideCount;
1179 } else {
1180 breakPoint = _.options.slidesToScroll * -1;
1181 counter = _.options.slidesToScroll * -1;
1182 max = _.slideCount * 2;
1183 }
1184
1185 while (breakPoint < max) {
1186 indexes.push(breakPoint);
1187 breakPoint = counter + _.options.slidesToScroll;
1188 counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
1189 }
1190
1191 return indexes;
1192
1193 };
1194
1195 Slick.prototype.getSlick = function() {
1196
1197 return this;
1198
1199 };
1200
1201 Slick.prototype.getSlideCount = function() {
1202
1203 var _ = this,
1204 slidesTraversed, swipedSlide, centerOffset;
1205
1206 centerOffset = _.options.centerMode === true ? _.slideWidth * Math.floor(_.options.slidesToShow / 2) : 0;
1207
1208 if (_.options.swipeToSlide === true) {
1209 _.$slideTrack.find('.slick-slide').each(function(index, slide) {
1210 if (slide.offsetLeft - centerOffset + ($(slide).outerWidth() / 2) > (_.swipeLeft * -1)) {
1211 swipedSlide = slide;
1212 return false;
1213 }
1214 });
1215
1216 slidesTraversed = Math.abs($(swipedSlide).attr('data-slick-index') - _.currentSlide) || 1;
1217
1218 return slidesTraversed;
1219
1220 } else {
1221 return _.options.slidesToScroll;
1222 }
1223
1224 };
1225
1226 Slick.prototype.goTo = Slick.prototype.slickGoTo = function(slide, dontAnimate) {
1227
1228 var _ = this;
1229
1230 _.changeSlide({
1231 data: {
1232 message: 'index',
1233 index: parseInt(slide)
1234 }
1235 }, dontAnimate);
1236
1237 };
1238
1239 Slick.prototype.init = function(creation) {
1240
1241 var _ = this;
1242
1243 if (!$(_.$slider).hasClass('slick-initialized')) {
1244
1245 $(_.$slider).addClass('slick-initialized');
1246
1247 _.buildRows();
1248 _.buildOut();
1249 _.setProps();
1250 _.startLoad();
1251 _.loadSlider();
1252 _.initializeEvents();
1253 _.updateArrows();
1254 _.updateDots();
1255 _.checkResponsive(true);
1256 _.focusHandler();
1257
1258 }
1259
1260 if (creation) {
1261 _.$slider.trigger('init', [_]);
1262 }
1263
1264 if (_.options.accessibility === true) {
1265 _.initADA();
1266 }
1267
1268 if ( _.options.autoplay ) {
1269
1270 _.paused = false;
1271 _.autoPlay();
1272
1273 }
1274
1275 };
1276
1277 Slick.prototype.initADA = function() {
1278 var _ = this;
1279 _.$slides.add(_.$slideTrack.find('.slick-cloned')).attr({
1280 'aria-hidden': 'true',
1281 'tabindex': '-1'
1282 }).find('a, input, button, select').attr({
1283 'tabindex': '-1'
1284 });
1285
1286 _.$slideTrack.attr('role', 'listbox');
1287
1288 _.$slides.not(_.$slideTrack.find('.slick-cloned')).each(function(i) {
1289 $(this).attr({
1290 'role': 'option',
1291 'aria-describedby': 'slick-slide' + _.instanceUid + i + ''
1292 });
1293 });
1294
1295 if (_.$dots !== null) {
1296 _.$dots.attr('role', 'tablist').find('li').each(function(i) {
1297 $(this).attr({
1298 'role': 'presentation',
1299 'aria-selected': 'false',
1300 'aria-controls': 'navigation' + _.instanceUid + i + '',
1301 'id': 'slick-slide' + _.instanceUid + i + ''
1302 });
1303 })
1304 .first().attr('aria-selected', 'true').end()
1305 .find('button').attr('role', 'button').end()
1306 .closest('div').attr('role', 'toolbar');
1307 }
1308 _.activateADA();
1309
1310 };
1311
1312 Slick.prototype.initArrowEvents = function() {
1313
1314 var _ = this;
1315
1316 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
1317 _.$prevArrow
1318 .off('click.slick')
1319 .on('click.slick', {
1320 message: 'previous'
1321 }, _.changeSlide);
1322 _.$nextArrow
1323 .off('click.slick')
1324 .on('click.slick', {
1325 message: 'next'
1326 }, _.changeSlide);
1327 }
1328
1329 };
1330
1331 Slick.prototype.initDotEvents = function() {
1332
1333 var _ = this;
1334
1335 if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
1336 $('li', _.$dots).on('click.slick', {
1337 message: 'index'
1338 }, _.changeSlide);
1339 }
1340
1341 if ( _.options.dots === true && _.options.pauseOnDotsHover === true ) {
1342
1343 $('li', _.$dots)
1344 .on('mouseenter.slick', $.proxy(_.interrupt, _, true))
1345 .on('mouseleave.slick', $.proxy(_.interrupt, _, false));
1346
1347 }
1348
1349 };
1350
1351 Slick.prototype.initSlideEvents = function() {
1352
1353 var _ = this;
1354
1355 if ( _.options.pauseOnHover ) {
1356
1357 _.$list.on('mouseenter.slick', $.proxy(_.interrupt, _, true));
1358 _.$list.on('mouseleave.slick', $.proxy(_.interrupt, _, false));
1359
1360 }
1361
1362 };
1363
1364 Slick.prototype.initializeEvents = function() {
1365
1366 var _ = this;
1367
1368 _.initArrowEvents();
1369
1370 _.initDotEvents();
1371 _.initSlideEvents();
1372
1373 _.$list.on('touchstart.slick mousedown.slick', {
1374 action: 'start'
1375 }, _.swipeHandler);
1376 _.$list.on('touchmove.slick mousemove.slick', {
1377 action: 'move'
1378 }, _.swipeHandler);
1379 _.$list.on('touchend.slick mouseup.slick', {
1380 action: 'end'
1381 }, _.swipeHandler);
1382 _.$list.on('touchcancel.slick mouseleave.slick', {
1383 action: 'end'
1384 }, _.swipeHandler);
1385
1386 _.$list.on('click.slick', _.clickHandler);
1387
1388 $(document).on(_.visibilityChange, $.proxy(_.visibility, _));
1389
1390 if (_.options.accessibility === true) {
1391 _.$list.on('keydown.slick', _.keyHandler);
1392 }
1393
1394 if (_.options.focusOnSelect === true) {
1395 $(_.$slideTrack).children().on('click.slick', _.selectHandler);
1396 }
1397
1398 $(window).on('orientationchange.slick.slick-' + _.instanceUid, $.proxy(_.orientationChange, _));
1399
1400 $(window).on('resize.slick.slick-' + _.instanceUid, $.proxy(_.resize, _));
1401
1402 $('[draggable!=true]', _.$slideTrack).on('dragstart', _.preventDefault);
1403
1404 $(window).on('load.slick.slick-' + _.instanceUid, _.setPosition);
1405 $(document).on('ready.slick.slick-' + _.instanceUid, _.setPosition);
1406
1407 };
1408
1409 Slick.prototype.initUI = function() {
1410
1411 var _ = this;
1412
1413 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
1414
1415 _.$prevArrow.show();
1416 _.$nextArrow.show();
1417
1418 }
1419
1420 if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
1421
1422 _.$dots.show();
1423
1424 }
1425
1426 };
1427
1428 Slick.prototype.keyHandler = function(event) {
1429
1430 var _ = this;
1431 //Dont slide if the cursor is inside the form fields and arrow keys are pressed
1432 if(!event.target.tagName.match('TEXTAREA|INPUT|SELECT')) {
1433 if (event.keyCode === 37 && _.options.accessibility === true) {
1434 _.changeSlide({
1435 data: {
1436 message: _.options.rtl === true ? 'next' : 'previous'
1437 }
1438 });
1439 } else if (event.keyCode === 39 && _.options.accessibility === true) {
1440 _.changeSlide({
1441 data: {
1442 message: _.options.rtl === true ? 'previous' : 'next'
1443 }
1444 });
1445 }
1446 }
1447
1448 };
1449
1450 Slick.prototype.lazyLoad = function() {
1451
1452 var _ = this,
1453 loadRange, cloneRange, rangeStart, rangeEnd;
1454
1455 function loadImages(imagesScope) {
1456
1457 $('img[data-lazy]', imagesScope).each(function() {
1458
1459 var image = $(this),
1460 imageSource = $(this).attr('data-lazy'),
1461 imageToLoad = document.createElement('img');
1462
1463 imageToLoad.onload = function() {
1464
1465 image
1466 .animate({ opacity: 0 }, 100, function() {
1467 image
1468 .attr('src', imageSource)
1469 .animate({ opacity: 1 }, 200, function() {
1470 image
1471 .removeAttr('data-lazy')
1472 .removeClass('slick-loading');
1473 });
1474 _.$slider.trigger('lazyLoaded', [_, image, imageSource]);
1475 });
1476
1477 };
1478
1479 imageToLoad.onerror = function() {
1480
1481 image
1482 .removeAttr( 'data-lazy' )
1483 .removeClass( 'slick-loading' )
1484 .addClass( 'slick-lazyload-error' );
1485
1486 _.$slider.trigger('lazyLoadError', [ _, image, imageSource ]);
1487
1488 };
1489
1490 imageToLoad.src = imageSource;
1491
1492 });
1493
1494 }
1495
1496 if (_.options.centerMode === true) {
1497 if (_.options.infinite === true) {
1498 rangeStart = _.currentSlide + (_.options.slidesToShow / 2 + 1);
1499 rangeEnd = rangeStart + _.options.slidesToShow + 2;
1500 } else {
1501 rangeStart = Math.max(0, _.currentSlide - (_.options.slidesToShow / 2 + 1));
1502 rangeEnd = 2 + (_.options.slidesToShow / 2 + 1) + _.currentSlide;
1503 }
1504 } else {
1505 rangeStart = _.options.infinite ? _.options.slidesToShow + _.currentSlide : _.currentSlide;
1506 rangeEnd = Math.ceil(rangeStart + _.options.slidesToShow);
1507 if (_.options.fade === true) {
1508 if (rangeStart > 0) rangeStart--;
1509 if (rangeEnd <= _.slideCount) rangeEnd++;
1510 }
1511 }
1512
1513 loadRange = _.$slider.find('.slick-slide').slice(rangeStart, rangeEnd);
1514 loadImages(loadRange);
1515
1516 if (_.slideCount <= _.options.slidesToShow) {
1517 cloneRange = _.$slider.find('.slick-slide');
1518 loadImages(cloneRange);
1519 } else
1520 if (_.currentSlide >= _.slideCount - _.options.slidesToShow) {
1521 cloneRange = _.$slider.find('.slick-cloned').slice(0, _.options.slidesToShow);
1522 loadImages(cloneRange);
1523 } else if (_.currentSlide === 0) {
1524 cloneRange = _.$slider.find('.slick-cloned').slice(_.options.slidesToShow * -1);
1525 loadImages(cloneRange);
1526 }
1527
1528 };
1529
1530 Slick.prototype.loadSlider = function() {
1531
1532 var _ = this;
1533
1534 _.setPosition();
1535
1536 _.$slideTrack.css({
1537 opacity: 1
1538 });
1539
1540 _.$slider.removeClass('slick-loading');
1541
1542 _.initUI();
1543
1544 if (_.options.lazyLoad === 'progressive') {
1545 _.progressiveLazyLoad();
1546 }
1547
1548 };
1549
1550 Slick.prototype.next = Slick.prototype.slickNext = function() {
1551
1552 var _ = this;
1553
1554 _.changeSlide({
1555 data: {
1556 message: 'next'
1557 }
1558 });
1559
1560 };
1561
1562 Slick.prototype.orientationChange = function() {
1563
1564 var _ = this;
1565
1566 _.checkResponsive();
1567 _.setPosition();
1568
1569 };
1570
1571 Slick.prototype.pause = Slick.prototype.slickPause = function() {
1572
1573 var _ = this;
1574
1575 _.autoPlayClear();
1576 _.paused = true;
1577
1578 };
1579
1580 Slick.prototype.play = Slick.prototype.slickPlay = function() {
1581
1582 var _ = this;
1583
1584 _.autoPlay();
1585 _.options.autoplay = true;
1586 _.paused = false;
1587 _.focussed = false;
1588 _.interrupted = false;
1589
1590 };
1591
1592 Slick.prototype.postSlide = function(index) {
1593
1594 var _ = this;
1595
1596 if( !_.unslicked ) {
1597
1598 _.$slider.trigger('afterChange', [_, index]);
1599
1600 _.animating = false;
1601
1602 _.setPosition();
1603
1604 _.swipeLeft = null;
1605
1606 if ( _.options.autoplay ) {
1607 _.autoPlay();
1608 }
1609
1610 if (_.options.accessibility === true) {
1611 _.initADA();
1612 }
1613
1614 }
1615
1616 };
1617
1618 Slick.prototype.prev = Slick.prototype.slickPrev = function() {
1619
1620 var _ = this;
1621
1622 _.changeSlide({
1623 data: {
1624 message: 'previous'
1625 }
1626 });
1627
1628 };
1629
1630 Slick.prototype.preventDefault = function(event) {
1631
1632 event.preventDefault();
1633
1634 };
1635
1636 Slick.prototype.progressiveLazyLoad = function( tryCount ) {
1637
1638 tryCount = tryCount || 1;
1639
1640 var _ = this,
1641 $imgsToLoad = $( 'img[data-lazy]', _.$slider ),
1642 image,
1643 imageSource,
1644 imageToLoad;
1645
1646 if ( $imgsToLoad.length ) {
1647
1648 image = $imgsToLoad.first();
1649 imageSource = image.attr('data-lazy');
1650 imageToLoad = document.createElement('img');
1651
1652 imageToLoad.onload = function() {
1653
1654 image
1655 .attr( 'src', imageSource )
1656 .removeAttr('data-lazy')
1657 .removeClass('slick-loading');
1658
1659 if ( _.options.adaptiveHeight === true ) {
1660 _.setPosition();
1661 }
1662
1663 _.$slider.trigger('lazyLoaded', [ _, image, imageSource ]);
1664 _.progressiveLazyLoad();
1665
1666 };
1667
1668 imageToLoad.onerror = function() {
1669
1670 if ( tryCount < 3 ) {
1671
1672 /**
1673 * try to load the image 3 times,
1674 * leave a slight delay so we don't get
1675 * servers blocking the request.
1676 */
1677 setTimeout( function() {
1678 _.progressiveLazyLoad( tryCount + 1 );
1679 }, 500 );
1680
1681 } else {
1682
1683 image
1684 .removeAttr( 'data-lazy' )
1685 .removeClass( 'slick-loading' )
1686 .addClass( 'slick-lazyload-error' );
1687
1688 _.$slider.trigger('lazyLoadError', [ _, image, imageSource ]);
1689
1690 _.progressiveLazyLoad();
1691
1692 }
1693
1694 };
1695
1696 imageToLoad.src = imageSource;
1697
1698 } else {
1699
1700 _.$slider.trigger('allImagesLoaded', [ _ ]);
1701
1702 }
1703
1704 };
1705
1706 Slick.prototype.refresh = function( initializing ) {
1707
1708 var _ = this, currentSlide, lastVisibleIndex;
1709
1710 lastVisibleIndex = _.slideCount - _.options.slidesToShow;
1711
1712 // in non-infinite sliders, we don't want to go past the
1713 // last visible index.
1714 if( !_.options.infinite && ( _.currentSlide > lastVisibleIndex )) {
1715 _.currentSlide = lastVisibleIndex;
1716 }
1717
1718 // if less slides than to show, go to start.
1719 if ( _.slideCount <= _.options.slidesToShow ) {
1720 _.currentSlide = 0;
1721
1722 }
1723
1724 currentSlide = _.currentSlide;
1725
1726 _.destroy(true);
1727
1728 $.extend(_, _.initials, { currentSlide: currentSlide });
1729
1730 _.init();
1731
1732 if( !initializing ) {
1733
1734 _.changeSlide({
1735 data: {
1736 message: 'index',
1737 index: currentSlide
1738 }
1739 }, false);
1740
1741 }
1742
1743 };
1744
1745 Slick.prototype.registerBreakpoints = function() {
1746
1747 var _ = this, breakpoint, currentBreakpoint, l,
1748 responsiveSettings = _.options.responsive || null;
1749
1750 if ( $.type(responsiveSettings) === 'array' && responsiveSettings.length ) {
1751
1752 _.respondTo = _.options.respondTo || 'window';
1753
1754 for ( breakpoint in responsiveSettings ) {
1755
1756 l = _.breakpoints.length-1;
1757 currentBreakpoint = responsiveSettings[breakpoint].breakpoint;
1758
1759 if (responsiveSettings.hasOwnProperty(breakpoint)) {
1760
1761 // loop through the breakpoints and cut out any existing
1762 // ones with the same breakpoint number, we don't want dupes.
1763 while( l >= 0 ) {
1764 if( _.breakpoints[l] && _.breakpoints[l] === currentBreakpoint ) {
1765 _.breakpoints.splice(l,1);
1766 }
1767 l--;
1768 }
1769
1770 _.breakpoints.push(currentBreakpoint);
1771 _.breakpointSettings[currentBreakpoint] = responsiveSettings[breakpoint].settings;
1772
1773 }
1774
1775 }
1776
1777 _.breakpoints.sort(function(a, b) {
1778 return ( _.options.mobileFirst ) ? a-b : b-a;
1779 });
1780
1781 }
1782
1783 };
1784
1785 Slick.prototype.reinit = function() {
1786
1787 var _ = this;
1788
1789 _.$slides =
1790 _.$slideTrack
1791 .children(_.options.slide)
1792 .addClass('slick-slide');
1793
1794 _.slideCount = _.$slides.length;
1795
1796 if (_.currentSlide >= _.slideCount && _.currentSlide !== 0) {
1797 _.currentSlide = _.currentSlide - _.options.slidesToScroll;
1798 }
1799
1800 if (_.slideCount <= _.options.slidesToShow) {
1801 _.currentSlide = 0;
1802 }
1803
1804 _.registerBreakpoints();
1805
1806 _.setProps();
1807 _.setupInfinite();
1808 _.buildArrows();
1809 _.updateArrows();
1810 _.initArrowEvents();
1811 _.buildDots();
1812 _.updateDots();
1813 _.initDotEvents();
1814 _.cleanUpSlideEvents();
1815 _.initSlideEvents();
1816
1817 _.checkResponsive(false, true);
1818
1819 if (_.options.focusOnSelect === true) {
1820 $(_.$slideTrack).children().on('click.slick', _.selectHandler);
1821 }
1822
1823 _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);
1824
1825 _.setPosition();
1826 _.focusHandler();
1827
1828 _.paused = !_.options.autoplay;
1829 _.autoPlay();
1830
1831 _.$slider.trigger('reInit', [_]);
1832
1833 };
1834
1835 Slick.prototype.resize = function() {
1836
1837 var _ = this;
1838
1839 if ($(window).width() !== _.windowWidth) {
1840 clearTimeout(_.windowDelay);
1841 _.windowDelay = window.setTimeout(function() {
1842 _.windowWidth = $(window).width();
1843 _.checkResponsive();
1844 if( !_.unslicked ) { _.setPosition(); }
1845 }, 50);
1846 }
1847 };
1848
1849 Slick.prototype.removeSlide = Slick.prototype.slickRemove = function(index, removeBefore, removeAll) {
1850
1851 var _ = this;
1852
1853 if (typeof(index) === 'boolean') {
1854 removeBefore = index;
1855 index = removeBefore === true ? 0 : _.slideCount - 1;
1856 } else {
1857 index = removeBefore === true ? --index : index;
1858 }
1859
1860 if (_.slideCount < 1 || index < 0 || index > _.slideCount - 1) {
1861 return false;
1862 }
1863
1864 _.unload();
1865
1866 if (removeAll === true) {
1867 _.$slideTrack.children().remove();
1868 } else {
1869 _.$slideTrack.children(this.options.slide).eq(index).remove();
1870 }
1871
1872 _.$slides = _.$slideTrack.children(this.options.slide);
1873
1874 _.$slideTrack.children(this.options.slide).detach();
1875
1876 _.$slideTrack.append(_.$slides);
1877
1878 _.$slidesCache = _.$slides;
1879
1880 _.reinit();
1881
1882 };
1883
1884 Slick.prototype.setCSS = function(position) {
1885
1886 var _ = this,
1887 positionProps = {},
1888 x, y;
1889
1890 if (_.options.rtl === true) {
1891 position = -position;
1892 }
1893 x = _.positionProp == 'left' ? Math.ceil(position) + 'px' : '0px';
1894 y = _.positionProp == 'top' ? Math.ceil(position) + 'px' : '0px';
1895
1896 positionProps[_.positionProp] = position;
1897
1898 if (_.transformsEnabled === false) {
1899 _.$slideTrack.css(positionProps);
1900 } else {
1901 positionProps = {};
1902 if (_.cssTransitions === false) {
1903 positionProps[_.animType] = 'translate(' + x + ', ' + y + ')';
1904 _.$slideTrack.css(positionProps);
1905 } else {
1906 positionProps[_.animType] = 'translate3d(' + x + ', ' + y + ', 0px)';
1907 _.$slideTrack.css(positionProps);
1908 }
1909 }
1910
1911 };
1912
1913 Slick.prototype.setDimensions = function() {
1914
1915 var _ = this;
1916
1917 if (_.options.vertical === false) {
1918 if (_.options.centerMode === true) {
1919 _.$list.css({
1920 padding: ('0px ' + _.options.centerPadding)
1921 });
1922 }
1923 } else {
1924 _.$list.height(_.$slides.first().outerHeight(true) * _.options.slidesToShow);
1925 if (_.options.centerMode === true) {
1926 _.$list.css({
1927 padding: (_.options.centerPadding + ' 0px')
1928 });
1929 }
1930 }
1931
1932 _.listWidth = _.$list.width();
1933 _.listHeight = _.$list.height();
1934
1935
1936 if (_.options.vertical === false && _.options.variableWidth === false) {
1937 _.slideWidth = Math.ceil(_.listWidth / _.options.slidesToShow);
1938 _.$slideTrack.width(Math.ceil((_.slideWidth * _.$slideTrack.children('.slick-slide').length)));
1939
1940 } else if (_.options.variableWidth === true) {
1941 _.$slideTrack.width(5000 * _.slideCount);
1942 } else {
1943 _.slideWidth = Math.ceil(_.listWidth);
1944 _.$slideTrack.height(Math.ceil((_.$slides.first().outerHeight(true) * _.$slideTrack.children('.slick-slide').length)));
1945 }
1946
1947 var offset = _.$slides.first().outerWidth(true) - _.$slides.first().width();
1948 if (_.options.variableWidth === false) _.$slideTrack.children('.slick-slide').width(_.slideWidth - offset);
1949
1950 };
1951
1952 Slick.prototype.setFade = function() {
1953
1954 var _ = this,
1955 targetLeft;
1956
1957 _.$slides.each(function(index, element) {
1958 targetLeft = (_.slideWidth * index) * -1;
1959 if (_.options.rtl === true) {
1960 $(element).css({
1961 position: 'relative',
1962 right: targetLeft,
1963 top: 0,
1964 zIndex: _.options.zIndex - 2,
1965 opacity: 0
1966 });
1967 } else {
1968 $(element).css({
1969 position: 'relative',
1970 left: targetLeft,
1971 top: 0,
1972 zIndex: _.options.zIndex - 2,
1973 opacity: 0
1974 });
1975 }
1976 });
1977
1978 _.$slides.eq(_.currentSlide).css({
1979 zIndex: _.options.zIndex - 1,
1980 opacity: 1
1981 });
1982
1983 };
1984
1985 Slick.prototype.setHeight = function() {
1986
1987 var _ = this;
1988
1989 if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {
1990 var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
1991 _.$list.css('height', targetHeight);
1992 }
1993
1994 };
1995
1996 Slick.prototype.setOption =
1997 Slick.prototype.slickSetOption = function() {
1998
1999 /**
2000 * accepts arguments in format of:
2001 *
2002 * - for changing a single option's value:
2003 * .slick("setOption", option, value, refresh )
2004 *
2005 * - for changing a set of responsive options:
2006 * .slick("setOption", 'responsive', [{}, ...], refresh )
2007 *
2008 * - for updating multiple values at once (not responsive)
2009 * .slick("setOption", { 'option': value, ... }, refresh )
2010 */
2011
2012 var _ = this, l, item, option, value, refresh = false, type;
2013
2014 if( $.type( arguments[0] ) === 'object' ) {
2015
2016 option = arguments[0];
2017 refresh = arguments[1];
2018 type = 'multiple';
2019
2020 } else if ( $.type( arguments[0] ) === 'string' ) {
2021
2022 option = arguments[0];
2023 value = arguments[1];
2024 refresh = arguments[2];
2025
2026 if ( arguments[0] === 'responsive' && $.type( arguments[1] ) === 'array' ) {
2027
2028 type = 'responsive';
2029
2030 } else if ( typeof arguments[1] !== 'undefined' ) {
2031
2032 type = 'single';
2033
2034 }
2035
2036 }
2037
2038 if ( type === 'single' ) {
2039
2040 _.options[option] = value;
2041
2042
2043 } else if ( type === 'multiple' ) {
2044
2045 $.each( option , function( opt, val ) {
2046
2047 _.options[opt] = val;
2048
2049 });
2050
2051
2052 } else if ( type === 'responsive' ) {
2053
2054 for ( item in value ) {
2055
2056 if( $.type( _.options.responsive ) !== 'array' ) {
2057
2058 _.options.responsive = [ value[item] ];
2059
2060 } else {
2061
2062 l = _.options.responsive.length-1;
2063
2064 // loop through the responsive object and splice out duplicates.
2065 while( l >= 0 ) {
2066
2067 if( _.options.responsive[l].breakpoint === value[item].breakpoint ) {
2068
2069 _.options.responsive.splice(l,1);
2070
2071 }
2072
2073 l--;
2074
2075 }
2076
2077 _.options.responsive.push( value[item] );
2078
2079 }
2080
2081 }
2082
2083 }
2084
2085 if ( refresh ) {
2086
2087 _.unload();
2088 _.reinit();
2089
2090 }
2091
2092 };
2093
2094 Slick.prototype.setPosition = function() {
2095
2096 var _ = this;
2097
2098 _.setDimensions();
2099
2100 _.setHeight();
2101
2102 if (_.options.fade === false) {
2103 _.setCSS(_.getLeft(_.currentSlide));
2104 } else {
2105 _.setFade();
2106 }
2107
2108 _.$slider.trigger('setPosition', [_]);
2109
2110 };
2111
2112 Slick.prototype.setProps = function() {
2113
2114 var _ = this,
2115 bodyStyle = document.body.style;
2116
2117 _.positionProp = _.options.vertical === true ? 'top' : 'left';
2118
2119 if (_.positionProp === 'top') {
2120 _.$slider.addClass('slick-vertical');
2121 } else {
2122 _.$slider.removeClass('slick-vertical');
2123 }
2124
2125 if (bodyStyle.WebkitTransition !== undefined ||
2126 bodyStyle.MozTransition !== undefined ||
2127 bodyStyle.msTransition !== undefined) {
2128 if (_.options.useCSS === true) {
2129 _.cssTransitions = true;
2130 }
2131 }
2132
2133 if ( _.options.fade ) {
2134 if ( typeof _.options.zIndex === 'number' ) {
2135 if( _.options.zIndex < 3 ) {
2136 _.options.zIndex = 3;
2137 }
2138 } else {
2139 _.options.zIndex = _.defaults.zIndex;
2140 }
2141 }
2142
2143 if (bodyStyle.OTransform !== undefined) {
2144 _.animType = 'OTransform';
2145 _.transformType = '-o-transform';
2146 _.transitionType = 'OTransition';
2147 if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;
2148 }
2149 if (bodyStyle.MozTransform !== undefined) {
2150 _.animType = 'MozTransform';
2151 _.transformType = '-moz-transform';
2152 _.transitionType = 'MozTransition';
2153 if (bodyStyle.perspectiveProperty === undefined && bodyStyle.MozPerspective === undefined) _.animType = false;
2154 }
2155 if (bodyStyle.webkitTransform !== undefined) {
2156 _.animType = 'webkitTransform';
2157 _.transformType = '-webkit-transform';
2158 _.transitionType = 'webkitTransition';
2159 if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;
2160 }
2161 if (bodyStyle.msTransform !== undefined) {
2162 _.animType = 'msTransform';
2163 _.transformType = '-ms-transform';
2164 _.transitionType = 'msTransition';
2165 if (bodyStyle.msTransform === undefined) _.animType = false;
2166 }
2167 if (bodyStyle.transform !== undefined && _.animType !== false) {
2168 _.animType = 'transform';
2169 _.transformType = 'transform';
2170 _.transitionType = 'transition';
2171 }
2172 _.transformsEnabled = _.options.useTransform && (_.animType !== null && _.animType !== false);
2173 };
2174
2175
2176 Slick.prototype.setSlideClasses = function(index) {
2177
2178 var _ = this,
2179 centerOffset, allSlides, indexOffset, remainder;
2180
2181 allSlides = _.$slider
2182 .find('.slick-slide')
2183 .removeClass('slick-active slick-center slick-current')
2184 .attr('aria-hidden', 'true');
2185
2186 _.$slides
2187 .eq(index)
2188 .addClass('slick-current');
2189
2190 if (_.options.centerMode === true) {
2191
2192 centerOffset = Math.floor(_.options.slidesToShow / 2);
2193
2194 if (_.options.infinite === true) {
2195
2196 if (index >= centerOffset && index <= (_.slideCount - 1) - centerOffset) {
2197
2198 _.$slides
2199 .slice(index - centerOffset, index + centerOffset + 1)
2200 .addClass('slick-active')
2201 .attr('aria-hidden', 'false');
2202
2203 } else {
2204
2205 indexOffset = _.options.slidesToShow + index;
2206 allSlides
2207 .slice(indexOffset - centerOffset + 1, indexOffset + centerOffset + 2)
2208 .addClass('slick-active')
2209 .attr('aria-hidden', 'false');
2210
2211 }
2212
2213 if (index === 0) {
2214
2215 allSlides
2216 .eq(allSlides.length - 1 - _.options.slidesToShow)
2217 .addClass('slick-center');
2218
2219 } else if (index === _.slideCount - 1) {
2220
2221 allSlides
2222 .eq(_.options.slidesToShow)
2223 .addClass('slick-center');
2224
2225 }
2226
2227 }
2228
2229 _.$slides
2230 .eq(index)
2231 .addClass('slick-center');
2232
2233 } else {
2234
2235 if (index >= 0 && index <= (_.slideCount - _.options.slidesToShow)) {
2236
2237 _.$slides
2238 .slice(index, index + _.options.slidesToShow)
2239 .addClass('slick-active')
2240 .attr('aria-hidden', 'false');
2241
2242 } else if (allSlides.length <= _.options.slidesToShow) {
2243
2244 allSlides
2245 .addClass('slick-active')
2246 .attr('aria-hidden', 'false');
2247
2248 } else {
2249
2250 remainder = _.slideCount % _.options.slidesToShow;
2251 indexOffset = _.options.infinite === true ? _.options.slidesToShow + index : index;
2252
2253 if (_.options.slidesToShow == _.options.slidesToScroll && (_.slideCount - index) < _.options.slidesToShow) {
2254
2255 allSlides
2256 .slice(indexOffset - (_.options.slidesToShow - remainder), indexOffset + remainder)
2257 .addClass('slick-active')
2258 .attr('aria-hidden', 'false');
2259
2260 } else {
2261
2262 allSlides
2263 .slice(indexOffset, indexOffset + _.options.slidesToShow)
2264 .addClass('slick-active')
2265 .attr('aria-hidden', 'false');
2266
2267 }
2268
2269 }
2270
2271 }
2272
2273 if (_.options.lazyLoad === 'ondemand') {
2274 _.lazyLoad();
2275 }
2276
2277 };
2278
2279 Slick.prototype.setupInfinite = function() {
2280
2281 var _ = this,
2282 i, slideIndex, infiniteCount;
2283
2284 if (_.options.fade === true) {
2285 _.options.centerMode = false;
2286 }
2287
2288 if (_.options.infinite === true && _.options.fade === false) {
2289
2290 slideIndex = null;
2291
2292 if (_.slideCount > _.options.slidesToShow) {
2293
2294 if (_.options.centerMode === true) {
2295 infiniteCount = _.options.slidesToShow + 1;
2296 } else {
2297 infiniteCount = _.options.slidesToShow;
2298 }
2299
2300 for (i = _.slideCount; i > (_.slideCount -
2301 infiniteCount); i -= 1) {
2302 slideIndex = i - 1;
2303 $(_.$slides[slideIndex]).clone(true).attr('id', '')
2304 .attr('data-slick-index', slideIndex - _.slideCount)
2305 .prependTo(_.$slideTrack).addClass('slick-cloned');
2306 }
2307 for (i = 0; i < infiniteCount; i += 1) {
2308 slideIndex = i;
2309 $(_.$slides[slideIndex]).clone(true).attr('id', '')
2310 .attr('data-slick-index', slideIndex + _.slideCount)
2311 .appendTo(_.$slideTrack).addClass('slick-cloned');
2312 }
2313 _.$slideTrack.find('.slick-cloned').find('[id]').each(function() {
2314 $(this).attr('id', '');
2315 });
2316
2317 }
2318
2319 }
2320
2321 };
2322
2323 Slick.prototype.interrupt = function( toggle ) {
2324
2325 var _ = this;
2326
2327 if( !toggle ) {
2328 _.autoPlay();
2329 }
2330 _.interrupted = toggle;
2331
2332 };
2333
2334 Slick.prototype.selectHandler = function(event) {
2335
2336 var _ = this;
2337
2338 var targetElement =
2339 $(event.target).is('.slick-slide') ?
2340 $(event.target) :
2341 $(event.target).parents('.slick-slide');
2342
2343 var index = parseInt(targetElement.attr('data-slick-index'));
2344
2345 if (!index) index = 0;
2346
2347 if (_.slideCount <= _.options.slidesToShow) {
2348
2349 _.setSlideClasses(index);
2350 _.asNavFor(index);
2351 return;
2352
2353 }
2354
2355 _.slideHandler(index);
2356
2357 };
2358
2359 Slick.prototype.slideHandler = function(index, sync, dontAnimate) {
2360
2361 var targetSlide, animSlide, oldSlide, slideLeft, targetLeft = null,
2362 _ = this, navTarget;
2363
2364 sync = sync || false;
2365
2366 if (_.animating === true && _.options.waitForAnimate === true) {
2367 return;
2368 }
2369
2370 if (_.options.fade === true && _.currentSlide === index) {
2371 return;
2372 }
2373
2374 if (_.slideCount <= _.options.slidesToShow) {
2375 return;
2376 }
2377
2378 if (sync === false) {
2379 _.asNavFor(index);
2380 }
2381
2382 targetSlide = index;
2383 targetLeft = _.getLeft(targetSlide);
2384 slideLeft = _.getLeft(_.currentSlide);
2385
2386 _.currentLeft = _.swipeLeft === null ? slideLeft : _.swipeLeft;
2387
2388 if (_.options.infinite === false && _.options.centerMode === false && (index < 0 || index > _.getDotCount() * _.options.slidesToScroll)) {
2389 if (_.options.fade === false) {
2390 targetSlide = _.currentSlide;
2391 if (dontAnimate !== true) {
2392 _.animateSlide(slideLeft, function() {
2393 _.postSlide(targetSlide);
2394 });
2395 } else {
2396 _.postSlide(targetSlide);
2397 }
2398 }
2399 return;
2400 } else if (_.options.infinite === false && _.options.centerMode === true && (index < 0 || index > (_.slideCount - _.options.slidesToScroll))) {
2401 if (_.options.fade === false) {
2402 targetSlide = _.currentSlide;
2403 if (dontAnimate !== true) {
2404 _.animateSlide(slideLeft, function() {
2405 _.postSlide(targetSlide);
2406 });
2407 } else {
2408 _.postSlide(targetSlide);
2409 }
2410 }
2411 return;
2412 }
2413
2414 if ( _.options.autoplay ) {
2415 clearInterval(_.autoPlayTimer);
2416 }
2417
2418 if (targetSlide < 0) {
2419 if (_.slideCount % _.options.slidesToScroll !== 0) {
2420 animSlide = _.slideCount - (_.slideCount % _.options.slidesToScroll);
2421 } else {
2422 animSlide = _.slideCount + targetSlide;
2423 }
2424 } else if (targetSlide >= _.slideCount) {
2425 if (_.slideCount % _.options.slidesToScroll !== 0) {
2426 animSlide = 0;
2427 } else {
2428 animSlide = targetSlide - _.slideCount;
2429 }
2430 } else {
2431 animSlide = targetSlide;
2432 }
2433
2434 _.animating = true;
2435
2436 _.$slider.trigger('beforeChange', [_, _.currentSlide, animSlide]);
2437
2438 oldSlide = _.currentSlide;
2439 _.currentSlide = animSlide;
2440
2441 _.setSlideClasses(_.currentSlide);
2442
2443 if ( _.options.asNavFor ) {
2444
2445 navTarget = _.getNavTarget();
2446 navTarget = navTarget.slick('getSlick');
2447
2448 if ( navTarget.slideCount <= navTarget.options.slidesToShow ) {
2449 navTarget.setSlideClasses(_.currentSlide);
2450 }
2451
2452 }
2453
2454 _.updateDots();
2455 _.updateArrows();
2456
2457 if (_.options.fade === true) {
2458 if (dontAnimate !== true) {
2459
2460 _.fadeSlideOut(oldSlide);
2461
2462 _.fadeSlide(animSlide, function() {
2463 _.postSlide(animSlide);
2464 });
2465
2466 } else {
2467 _.postSlide(animSlide);
2468 }
2469 _.animateHeight();
2470 return;
2471 }
2472
2473 if (dontAnimate !== true) {
2474 _.animateSlide(targetLeft, function() {
2475 _.postSlide(animSlide);
2476 });
2477 } else {
2478 _.postSlide(animSlide);
2479 }
2480
2481 };
2482
2483 Slick.prototype.startLoad = function() {
2484
2485 var _ = this;
2486
2487 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
2488
2489 _.$prevArrow.hide();
2490 _.$nextArrow.hide();
2491
2492 }
2493
2494 if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
2495
2496 _.$dots.hide();
2497
2498 }
2499
2500 _.$slider.addClass('slick-loading');
2501
2502 };
2503
2504 Slick.prototype.swipeDirection = function() {
2505
2506 var xDist, yDist, r, swipeAngle, _ = this;
2507
2508 xDist = _.touchObject.startX - _.touchObject.curX;
2509 yDist = _.touchObject.startY - _.touchObject.curY;
2510 r = Math.atan2(yDist, xDist);
2511
2512 swipeAngle = Math.round(r * 180 / Math.PI);
2513 if (swipeAngle < 0) {
2514 swipeAngle = 360 - Math.abs(swipeAngle);
2515 }
2516
2517 if ((swipeAngle <= 45) && (swipeAngle >= 0)) {
2518 return (_.options.rtl === false ? 'left' : 'right');
2519 }
2520 if ((swipeAngle <= 360) && (swipeAngle >= 315)) {
2521 return (_.options.rtl === false ? 'left' : 'right');
2522 }
2523 if ((swipeAngle >= 135) && (swipeAngle <= 225)) {
2524 return (_.options.rtl === false ? 'right' : 'left');
2525 }
2526 if (_.options.verticalSwiping === true) {
2527 if ((swipeAngle >= 35) && (swipeAngle <= 135)) {
2528 return 'down';
2529 } else {
2530 return 'up';
2531 }
2532 }
2533
2534 return 'vertical';
2535
2536 };
2537
2538 Slick.prototype.swipeEnd = function(event) {
2539
2540 var _ = this,
2541 slideCount,
2542 direction;
2543
2544 _.dragging = false;
2545 _.interrupted = false;
2546 _.shouldClick = ( _.touchObject.swipeLength > 10 ) ? false : true;
2547
2548 if ( _.touchObject.curX === undefined ) {
2549 return false;
2550 }
2551
2552 if ( _.touchObject.edgeHit === true ) {
2553 _.$slider.trigger('edge', [_, _.swipeDirection() ]);
2554 }
2555
2556 if ( _.touchObject.swipeLength >= _.touchObject.minSwipe ) {
2557
2558 direction = _.swipeDirection();
2559
2560 switch ( direction ) {
2561
2562 case 'left':
2563 case 'down':
2564
2565 slideCount =
2566 _.options.swipeToSlide ?
2567 _.checkNavigable( _.currentSlide + _.getSlideCount() ) :
2568 _.currentSlide + _.getSlideCount();
2569
2570 _.currentDirection = 0;
2571
2572 break;
2573
2574 case 'right':
2575 case 'up':
2576
2577 slideCount =
2578 _.options.swipeToSlide ?
2579 _.checkNavigable( _.currentSlide - _.getSlideCount() ) :
2580 _.currentSlide - _.getSlideCount();
2581
2582 _.currentDirection = 1;
2583
2584 break;
2585
2586 default:
2587
2588
2589 }
2590
2591 if( direction != 'vertical' ) {
2592
2593 _.slideHandler( slideCount );
2594 _.touchObject = {};
2595 _.$slider.trigger('swipe', [_, direction ]);
2596
2597 }
2598
2599 } else {
2600
2601 if ( _.touchObject.startX !== _.touchObject.curX ) {
2602
2603 _.slideHandler( _.currentSlide );
2604 _.touchObject = {};
2605
2606 }
2607
2608 }
2609
2610 };
2611
2612 Slick.prototype.swipeHandler = function(event) {
2613
2614 var _ = this;
2615
2616 if ((_.options.swipe === false) || ('ontouchend' in document && _.options.swipe === false)) {
2617 return;
2618 } else if (_.options.draggable === false && event.type.indexOf('mouse') !== -1) {
2619 return;
2620 }
2621
2622 _.touchObject.fingerCount = event.originalEvent && event.originalEvent.touches !== undefined ?
2623 event.originalEvent.touches.length : 1;
2624
2625 _.touchObject.minSwipe = _.listWidth / _.options
2626 .touchThreshold;
2627
2628 if (_.options.verticalSwiping === true) {
2629 _.touchObject.minSwipe = _.listHeight / _.options
2630 .touchThreshold;
2631 }
2632
2633 switch (event.data.action) {
2634
2635 case 'start':
2636 _.swipeStart(event);
2637 break;
2638
2639 case 'move':
2640 _.swipeMove(event);
2641 break;
2642
2643 case 'end':
2644 _.swipeEnd(event);
2645 break;
2646
2647 }
2648
2649 };
2650
2651 Slick.prototype.swipeMove = function(event) {
2652
2653 var _ = this,
2654 edgeWasHit = false,
2655 curLeft, swipeDirection, swipeLength, positionOffset, touches;
2656
2657 touches = event.originalEvent !== undefined ? event.originalEvent.touches : null;
2658
2659 if (!_.dragging || touches && touches.length !== 1) {
2660 return false;
2661 }
2662
2663 curLeft = _.getLeft(_.currentSlide);
2664
2665 _.touchObject.curX = touches !== undefined ? touches[0].pageX : event.clientX;
2666 _.touchObject.curY = touches !== undefined ? touches[0].pageY : event.clientY;
2667
2668 _.touchObject.swipeLength = Math.round(Math.sqrt(
2669 Math.pow(_.touchObject.curX - _.touchObject.startX, 2)));
2670
2671 if (_.options.verticalSwiping === true) {
2672 _.touchObject.swipeLength = Math.round(Math.sqrt(
2673 Math.pow(_.touchObject.curY - _.touchObject.startY, 2)));
2674 }
2675
2676 swipeDirection = _.swipeDirection();
2677
2678 if (swipeDirection === 'vertical') {
2679 return;
2680 }
2681
2682 if (event.originalEvent !== undefined && _.touchObject.swipeLength > 4) {
2683 event.preventDefault();
2684 }
2685
2686 positionOffset = (_.options.rtl === false ? 1 : -1) * (_.touchObject.curX > _.touchObject.startX ? 1 : -1);
2687 if (_.options.verticalSwiping === true) {
2688 positionOffset = _.touchObject.curY > _.touchObject.startY ? 1 : -1;
2689 }
2690
2691
2692 swipeLength = _.touchObject.swipeLength;
2693
2694 _.touchObject.edgeHit = false;
2695
2696 if (_.options.infinite === false) {
2697 if ((_.currentSlide === 0 && swipeDirection === 'right') || (_.currentSlide >= _.getDotCount() && swipeDirection === 'left')) {
2698 swipeLength = _.touchObject.swipeLength * _.options.edgeFriction;
2699 _.touchObject.edgeHit = true;
2700 }
2701 }
2702
2703 if (_.options.vertical === false) {
2704 _.swipeLeft = curLeft + swipeLength * positionOffset;
2705 } else {
2706 _.swipeLeft = curLeft + (swipeLength * (_.$list.height() / _.listWidth)) * positionOffset;
2707 }
2708 if (_.options.verticalSwiping === true) {
2709 _.swipeLeft = curLeft + swipeLength * positionOffset;
2710 }
2711
2712 if (_.options.fade === true || _.options.touchMove === false) {
2713 return false;
2714 }
2715
2716 if (_.animating === true) {
2717 _.swipeLeft = null;
2718 return false;
2719 }
2720
2721 _.setCSS(_.swipeLeft);
2722
2723 };
2724
2725 Slick.prototype.swipeStart = function(event) {
2726
2727 var _ = this,
2728 touches;
2729
2730 _.interrupted = true;
2731
2732 if (_.touchObject.fingerCount !== 1 || _.slideCount <= _.options.slidesToShow) {
2733 _.touchObject = {};
2734 return false;
2735 }
2736
2737 if (event.originalEvent !== undefined && event.originalEvent.touches !== undefined) {
2738 touches = event.originalEvent.touches[0];
2739 }
2740
2741 _.touchObject.startX = _.touchObject.curX = touches !== undefined ? touches.pageX : event.clientX;
2742 _.touchObject.startY = _.touchObject.curY = touches !== undefined ? touches.pageY : event.clientY;
2743
2744 _.dragging = true;
2745
2746 };
2747
2748 Slick.prototype.unfilterSlides = Slick.prototype.slickUnfilter = function() {
2749
2750 var _ = this;
2751
2752 if (_.$slidesCache !== null) {
2753
2754 _.unload();
2755
2756 _.$slideTrack.children(this.options.slide).detach();
2757
2758 _.$slidesCache.appendTo(_.$slideTrack);
2759
2760 _.reinit();
2761
2762 }
2763
2764 };
2765
2766 Slick.prototype.unload = function() {
2767
2768 var _ = this;
2769
2770 $('.slick-cloned', _.$slider).remove();
2771
2772 if (_.$dots) {
2773 _.$dots.remove();
2774 }
2775
2776 if (_.$prevArrow && _.htmlExpr.test(_.options.prevArrow)) {
2777 _.$prevArrow.remove();
2778 }
2779
2780 if (_.$nextArrow && _.htmlExpr.test(_.options.nextArrow)) {
2781 _.$nextArrow.remove();
2782 }
2783
2784 _.$slides
2785 .removeClass('slick-slide slick-active slick-visible slick-current')
2786 .attr('aria-hidden', 'true')
2787 .css('width', '');
2788
2789 };
2790
2791 Slick.prototype.unslick = function(fromBreakpoint) {
2792
2793 var _ = this;
2794 _.$slider.trigger('unslick', [_, fromBreakpoint]);
2795 _.destroy();
2796
2797 };
2798
2799 Slick.prototype.updateArrows = function() {
2800
2801 var _ = this,
2802 centerOffset;
2803
2804 centerOffset = Math.floor(_.options.slidesToShow / 2);
2805
2806 if ( _.options.arrows === true &&
2807 _.slideCount > _.options.slidesToShow &&
2808 !_.options.infinite ) {
2809
2810 _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2811 _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2812
2813 if (_.currentSlide === 0) {
2814
2815 _.$prevArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
2816 _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2817
2818 } else if (_.currentSlide >= _.slideCount - _.options.slidesToShow && _.options.centerMode === false) {
2819
2820 _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
2821 _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2822
2823 } else if (_.currentSlide >= _.slideCount - 1 && _.options.centerMode === true) {
2824
2825 _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
2826 _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2827
2828 }
2829
2830 }
2831
2832 };
2833
2834 Slick.prototype.updateDots = function() {
2835
2836 var _ = this;
2837
2838 if (_.$dots !== null) {
2839
2840 _.$dots
2841 .find('li')
2842 .removeClass('slick-active')
2843 .attr('aria-hidden', 'true');
2844
2845 _.$dots
2846 .find('li')
2847 .eq(Math.floor(_.currentSlide / _.options.slidesToScroll))
2848 .addClass('slick-active')
2849 .attr('aria-hidden', 'false');
2850
2851 }
2852
2853 };
2854
2855 Slick.prototype.visibility = function() {
2856
2857 var _ = this;
2858
2859 if ( _.options.autoplay ) {
2860
2861 if ( document[_.hidden] ) {
2862
2863 _.interrupted = true;
2864
2865 } else {
2866
2867 _.interrupted = false;
2868
2869 }
2870
2871 }
2872
2873 };
2874
2875 $.fn.slick = function() {
2876 var _ = this,
2877 opt = arguments[0],
2878 args = Array.prototype.slice.call(arguments, 1),
2879 l = _.length,
2880 i,
2881 ret;
2882 for (i = 0; i < l; i++) {
2883 if (typeof opt == 'object' || typeof opt == 'undefined')
2884 _[i].slick = new Slick(_[i], opt);
2885 else
2886 ret = _[i].slick[opt].apply(_[i].slick, args);
2887 if (typeof ret != 'undefined') return ret;
2888 }
2889 return _;
2890 };
2891
2892}));
diff --git a/slick/slick.less b/slick/slick.less
new file mode 100644
index 0000000..2fa0fb2
--- /dev/null
+++ b/slick/slick.less
@@ -0,0 +1,98 @@
1/* Slider */
2
3.slick-slider {
4 position: relative;
5 display: block;
6 box-sizing: border-box;
7 -webkit-touch-callout: none;
8 -webkit-user-select: none;
9 -khtml-user-select: none;
10 -moz-user-select: none;
11 -ms-user-select: none;
12 user-select: none;
13 -ms-touch-action: pan-y;
14 touch-action: pan-y;
15 -webkit-tap-highlight-color: transparent;
16}
17.slick-list {
18 position: relative;
19 overflow: hidden;
20 display: block;
21 margin: 0;
22 padding: 0;
23
24 &:focus {
25 outline: none;
26 }
27
28 &.dragging {
29 cursor: pointer;
30 cursor: hand;
31 }
32}
33.slick-slider .slick-track,
34.slick-slider .slick-list {
35 -webkit-transform: translate3d(0, 0, 0);
36 -moz-transform: translate3d(0, 0, 0);
37 -ms-transform: translate3d(0, 0, 0);
38 -o-transform: translate3d(0, 0, 0);
39 transform: translate3d(0, 0, 0);
40}
41
42.slick-track {
43 position: relative;
44 left: 0;
45 top: 0;
46 display: block;
47
48 &:before,
49 &:after {
50 content: "";
51 display: table;
52 }
53
54 &:after {
55 clear: both;
56 }
57
58 .slick-loading & {
59 visibility: hidden;
60 }
61}
62.slick-slide {
63 float: left;
64 height: 100%;
65 min-height: 1px;
66 [dir="rtl"] & {
67 float: right;
68 }
69 img {
70 display: block;
71 }
72 &.slick-loading img {
73 display: none;
74 }
75
76 display: none;
77
78 &.dragging img {
79 pointer-events: none;
80 }
81
82 .slick-initialized & {
83 display: block;
84 }
85
86 .slick-loading & {
87 visibility: hidden;
88 }
89
90 .slick-vertical & {
91 display: block;
92 height: auto;
93 border: 1px solid transparent;
94 }
95}
96.slick-arrow.slick-hidden {
97 display: none;
98}
diff --git a/slick/slick.min.js b/slick/slick.min.js
new file mode 100644
index 0000000..88a8a6b
--- /dev/null
+++ b/slick/slick.min.js
@@ -0,0 +1,18 @@
1/*
2 _ _ _ _
3 ___| (_) ___| | __ (_)___
4/ __| | |/ __| |/ / | / __|
5\__ \ | | (__| < _ | \__ \
6|___/_|_|\___|_|\_(_)/ |___/
7 |__/
8
9 Version: 1.6.0
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!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):"undefined"!=typeof exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){"use strict";var b=window.Slick||{};b=function(){function c(c,d){var f,e=this;e.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:a(c),appendDots:a(c),arrows:!0,asNavFor:null,prevArrow:'<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>',nextArrow:'<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(b,c){return a('<button type="button" data-role="none" role="button" tabindex="0" />').text(c+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},e.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},a.extend(e,e.initials),e.activeBreakpoint=null,e.animType=null,e.animProp=null,e.breakpoints=[],e.breakpointSettings=[],e.cssTransitions=!1,e.focussed=!1,e.interrupted=!1,e.hidden="hidden",e.paused=!0,e.positionProp=null,e.respondTo=null,e.rowCount=1,e.shouldClick=!0,e.$slider=a(c),e.$slidesCache=null,e.transformType=null,e.transitionType=null,e.visibilityChange="visibilitychange",e.windowWidth=0,e.windowTimer=null,f=a(c).data("slick")||{},e.options=a.extend({},e.defaults,d,f),e.currentSlide=e.options.initialSlide,e.originalSettings=e.options,"undefined"!=typeof document.mozHidden?(e.hidden="mozHidden",e.visibilityChange="mozvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(e.hidden="webkitHidden",e.visibilityChange="webkitvisibilitychange"),e.autoPlay=a.proxy(e.autoPlay,e),e.autoPlayClear=a.proxy(e.autoPlayClear,e),e.autoPlayIterator=a.proxy(e.autoPlayIterator,e),e.changeSlide=a.proxy(e.changeSlide,e),e.clickHandler=a.proxy(e.clickHandler,e),e.selectHandler=a.proxy(e.selectHandler,e),e.setPosition=a.proxy(e.setPosition,e),e.swipeHandler=a.proxy(e.swipeHandler,e),e.dragHandler=a.proxy(e.dragHandler,e),e.keyHandler=a.proxy(e.keyHandler,e),e.instanceUid=b++,e.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,e.registerBreakpoints(),e.init(!0)}var b=0;return c}(),b.prototype.activateADA=function(){var a=this;a.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},b.prototype.addSlide=b.prototype.slickAdd=function(b,c,d){var e=this;if("boolean"==typeof c)d=c,c=null;else if(0>c||c>=e.slideCount)return!1;e.unload(),"number"==typeof c?0===c&&0===e.$slides.length?a(b).appendTo(e.$slideTrack):d?a(b).insertBefore(e.$slides.eq(c)):a(b).insertAfter(e.$slides.eq(c)):d===!0?a(b).prependTo(e.$slideTrack):a(b).appendTo(e.$slideTrack),e.$slides=e.$slideTrack.children(this.options.slide),e.$slideTrack.children(this.options.slide).detach(),e.$slideTrack.append(e.$slides),e.$slides.each(function(b,c){a(c).attr("data-slick-index",b)}),e.$slidesCache=e.$slides,e.reinit()},b.prototype.animateHeight=function(){var a=this;if(1===a.options.slidesToShow&&a.options.adaptiveHeight===!0&&a.options.vertical===!1){var b=a.$slides.eq(a.currentSlide).outerHeight(!0);a.$list.animate({height:b},a.options.speed)}},b.prototype.animateSlide=function(b,c){var d={},e=this;e.animateHeight(),e.options.rtl===!0&&e.options.vertical===!1&&(b=-b),e.transformsEnabled===!1?e.options.vertical===!1?e.$slideTrack.animate({left:b},e.options.speed,e.options.easing,c):e.$slideTrack.animate({top:b},e.options.speed,e.options.easing,c):e.cssTransitions===!1?(e.options.rtl===!0&&(e.currentLeft=-e.currentLeft),a({animStart:e.currentLeft}).animate({animStart:b},{duration:e.options.speed,easing:e.options.easing,step:function(a){a=Math.ceil(a),e.options.vertical===!1?(d[e.animType]="translate("+a+"px, 0px)",e.$slideTrack.css(d)):(d[e.animType]="translate(0px,"+a+"px)",e.$slideTrack.css(d))},complete:function(){c&&c.call()}})):(e.applyTransition(),b=Math.ceil(b),e.options.vertical===!1?d[e.animType]="translate3d("+b+"px, 0px, 0px)":d[e.animType]="translate3d(0px,"+b+"px, 0px)",e.$slideTrack.css(d),c&&setTimeout(function(){e.disableTransition(),c.call()},e.options.speed))},b.prototype.getNavTarget=function(){var b=this,c=b.options.asNavFor;return c&&null!==c&&(c=a(c).not(b.$slider)),c},b.prototype.asNavFor=function(b){var c=this,d=c.getNavTarget();null!==d&&"object"==typeof d&&d.each(function(){var c=a(this).slick("getSlick");c.unslicked||c.slideHandler(b,!0)})},b.prototype.applyTransition=function(a){var b=this,c={};b.options.fade===!1?c[b.transitionType]=b.transformType+" "+b.options.speed+"ms "+b.options.cssEase:c[b.transitionType]="opacity "+b.options.speed+"ms "+b.options.cssEase,b.options.fade===!1?b.$slideTrack.css(c):b.$slides.eq(a).css(c)},b.prototype.autoPlay=function(){var a=this;a.autoPlayClear(),a.slideCount>a.options.slidesToShow&&(a.autoPlayTimer=setInterval(a.autoPlayIterator,a.options.autoplaySpeed))},b.prototype.autoPlayClear=function(){var a=this;a.autoPlayTimer&&clearInterval(a.autoPlayTimer)},b.prototype.autoPlayIterator=function(){var a=this,b=a.currentSlide+a.options.slidesToScroll;a.paused||a.interrupted||a.focussed||(a.options.infinite===!1&&(1===a.direction&&a.currentSlide+1===a.slideCount-1?a.direction=0:0===a.direction&&(b=a.currentSlide-a.options.slidesToScroll,a.currentSlide-1===0&&(a.direction=1))),a.slideHandler(b))},b.prototype.buildArrows=function(){var b=this;b.options.arrows===!0&&(b.$prevArrow=a(b.options.prevArrow).addClass("slick-arrow"),b.$nextArrow=a(b.options.nextArrow).addClass("slick-arrow"),b.slideCount>b.options.slidesToShow?(b.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),b.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),b.htmlExpr.test(b.options.prevArrow)&&b.$prevArrow.prependTo(b.options.appendArrows),b.htmlExpr.test(b.options.nextArrow)&&b.$nextArrow.appendTo(b.options.appendArrows),b.options.infinite!==!0&&b.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true")):b.$prevArrow.add(b.$nextArrow).addClass("slick-hidden").attr({"aria-disabled":"true",tabindex:"-1"}))},b.prototype.buildDots=function(){var c,d,b=this;if(b.options.dots===!0&&b.slideCount>b.options.slidesToShow){for(b.$slider.addClass("slick-dotted"),d=a("<ul />").addClass(b.options.dotsClass),c=0;c<=b.getDotCount();c+=1)d.append(a("<li />").append(b.options.customPaging.call(this,b,c)));b.$dots=d.appendTo(b.options.appendDots),b.$dots.find("li").first().addClass("slick-active").attr("aria-hidden","false")}},b.prototype.buildOut=function(){var b=this;b.$slides=b.$slider.children(b.options.slide+":not(.slick-cloned)").addClass("slick-slide"),b.slideCount=b.$slides.length,b.$slides.each(function(b,c){a(c).attr("data-slick-index",b).data("originalStyling",a(c).attr("style")||"")}),b.$slider.addClass("slick-slider"),b.$slideTrack=0===b.slideCount?a('<div class="slick-track"/>').appendTo(b.$slider):b.$slides.wrapAll('<div class="slick-track"/>').parent(),b.$list=b.$slideTrack.wrap('<div aria-live="polite" class="slick-list"/>').parent(),b.$slideTrack.css("opacity",0),(b.options.centerMode===!0||b.options.swipeToSlide===!0)&&(b.options.slidesToScroll=1),a("img[data-lazy]",b.$slider).not("[src]").addClass("slick-loading"),b.setupInfinite(),b.buildArrows(),b.buildDots(),b.updateDots(),b.setSlideClasses("number"==typeof b.currentSlide?b.currentSlide:0),b.options.draggable===!0&&b.$list.addClass("draggable")},b.prototype.buildRows=function(){var b,c,d,e,f,g,h,a=this;if(e=document.createDocumentFragment(),g=a.$slider.children(),a.options.rows>1){for(h=a.options.slidesPerRow*a.options.rows,f=Math.ceil(g.length/h),b=0;f>b;b++){var i=document.createElement("div");for(c=0;c<a.options.rows;c++){var j=document.createElement("div");for(d=0;d<a.options.slidesPerRow;d++){var k=b*h+(c*a.options.slidesPerRow+d);g.get(k)&&j.appendChild(g.get(k))}i.appendChild(j)}e.appendChild(i)}a.$slider.empty().append(e),a.$slider.children().children().children().css({width:100/a.options.slidesPerRow+"%",display:"inline-block"})}},b.prototype.checkResponsive=function(b,c){var e,f,g,d=this,h=!1,i=d.$slider.width(),j=window.innerWidth||a(window).width();if("window"===d.respondTo?g=j:"slider"===d.respondTo?g=i:"min"===d.respondTo&&(g=Math.min(j,i)),d.options.responsive&&d.options.responsive.length&&null!==d.options.responsive){f=null;for(e in d.breakpoints)d.breakpoints.hasOwnProperty(e)&&(d.originalSettings.mobileFirst===!1?g<d.breakpoints[e]&&(f=d.breakpoints[e]):g>d.breakpoints[e]&&(f=d.breakpoints[e]));null!==f?null!==d.activeBreakpoint?(f!==d.activeBreakpoint||c)&&(d.activeBreakpoint=f,"unslick"===d.breakpointSettings[f]?d.unslick(f):(d.options=a.extend({},d.originalSettings,d.breakpointSettings[f]),b===!0&&(d.currentSlide=d.options.initialSlide),d.refresh(b)),h=f):(d.activeBreakpoint=f,"unslick"===d.breakpointSettings[f]?d.unslick(f):(d.options=a.extend({},d.originalSettings,d.breakpointSettings[f]),b===!0&&(d.currentSlide=d.options.initialSlide),d.refresh(b)),h=f):null!==d.activeBreakpoint&&(d.activeBreakpoint=null,d.options=d.originalSettings,b===!0&&(d.currentSlide=d.options.initialSlide),d.refresh(b),h=f),b||h===!1||d.$slider.trigger("breakpoint",[d,h])}},b.prototype.changeSlide=function(b,c){var f,g,h,d=this,e=a(b.currentTarget);switch(e.is("a")&&b.preventDefault(),e.is("li")||(e=e.closest("li")),h=d.slideCount%d.options.slidesToScroll!==0,f=h?0:(d.slideCount-d.currentSlide)%d.options.slidesToScroll,b.data.message){case"previous":g=0===f?d.options.slidesToScroll:d.options.slidesToShow-f,d.slideCount>d.options.slidesToShow&&d.slideHandler(d.currentSlide-g,!1,c);break;case"next":g=0===f?d.options.slidesToScroll:f,d.slideCount>d.options.slidesToShow&&d.slideHandler(d.currentSlide+g,!1,c);break;case"index":var i=0===b.data.index?0:b.data.index||e.index()*d.options.slidesToScroll;d.slideHandler(d.checkNavigable(i),!1,c),e.children().trigger("focus");break;default:return}},b.prototype.checkNavigable=function(a){var c,d,b=this;if(c=b.getNavigableIndexes(),d=0,a>c[c.length-1])a=c[c.length-1];else for(var e in c){if(a<c[e]){a=d;break}d=c[e]}return a},b.prototype.cleanUpEvents=function(){var b=this;b.options.dots&&null!==b.$dots&&a("li",b.$dots).off("click.slick",b.changeSlide).off("mouseenter.slick",a.proxy(b.interrupt,b,!0)).off("mouseleave.slick",a.proxy(b.interrupt,b,!1)),b.$slider.off("focus.slick blur.slick"),b.options.arrows===!0&&b.slideCount>b.options.slidesToShow&&(b.$prevArrow&&b.$prevArrow.off("click.slick",b.changeSlide),b.$nextArrow&&b.$nextArrow.off("click.slick",b.changeSlide)),b.$list.off("touchstart.slick mousedown.slick",b.swipeHandler),b.$list.off("touchmove.slick mousemove.slick",b.swipeHandler),b.$list.off("touchend.slick mouseup.slick",b.swipeHandler),b.$list.off("touchcancel.slick mouseleave.slick",b.swipeHandler),b.$list.off("click.slick",b.clickHandler),a(document).off(b.visibilityChange,b.visibility),b.cleanUpSlideEvents(),b.options.accessibility===!0&&b.$list.off("keydown.slick",b.keyHandler),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().off("click.slick",b.selectHandler),a(window).off("orientationchange.slick.slick-"+b.instanceUid,b.orientationChange),a(window).off("resize.slick.slick-"+b.instanceUid,b.resize),a("[draggable!=true]",b.$slideTrack).off("dragstart",b.preventDefault),a(window).off("load.slick.slick-"+b.instanceUid,b.setPosition),a(document).off("ready.slick.slick-"+b.instanceUid,b.setPosition)},b.prototype.cleanUpSlideEvents=function(){var b=this;b.$list.off("mouseenter.slick",a.proxy(b.interrupt,b,!0)),b.$list.off("mouseleave.slick",a.proxy(b.interrupt,b,!1))},b.prototype.cleanUpRows=function(){var b,a=this;a.options.rows>1&&(b=a.$slides.children().children(),b.removeAttr("style"),a.$slider.empty().append(b))},b.prototype.clickHandler=function(a){var b=this;b.shouldClick===!1&&(a.stopImmediatePropagation(),a.stopPropagation(),a.preventDefault())},b.prototype.destroy=function(b){var c=this;c.autoPlayClear(),c.touchObject={},c.cleanUpEvents(),a(".slick-cloned",c.$slider).detach(),c.$dots&&c.$dots.remove(),c.$prevArrow&&c.$prevArrow.length&&(c.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),c.htmlExpr.test(c.options.prevArrow)&&c.$prevArrow.remove()),c.$nextArrow&&c.$nextArrow.length&&(c.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),c.htmlExpr.test(c.options.nextArrow)&&c.$nextArrow.remove()),c.$slides&&(c.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function(){a(this).attr("style",a(this).data("originalStyling"))}),c.$slideTrack.children(this.options.slide).detach(),c.$slideTrack.detach(),c.$list.detach(),c.$slider.append(c.$slides)),c.cleanUpRows(),c.$slider.removeClass("slick-slider"),c.$slider.removeClass("slick-initialized"),c.$slider.removeClass("slick-dotted"),c.unslicked=!0,b||c.$slider.trigger("destroy",[c])},b.prototype.disableTransition=function(a){var b=this,c={};c[b.transitionType]="",b.options.fade===!1?b.$slideTrack.css(c):b.$slides.eq(a).css(c)},b.prototype.fadeSlide=function(a,b){var c=this;c.cssTransitions===!1?(c.$slides.eq(a).css({zIndex:c.options.zIndex}),c.$slides.eq(a).animate({opacity:1},c.options.speed,c.options.easing,b)):(c.applyTransition(a),c.$slides.eq(a).css({opacity:1,zIndex:c.options.zIndex}),b&&setTimeout(function(){c.disableTransition(a),b.call()},c.options.speed))},b.prototype.fadeSlideOut=function(a){var b=this;b.cssTransitions===!1?b.$slides.eq(a).animate({opacity:0,zIndex:b.options.zIndex-2},b.options.speed,b.options.easing):(b.applyTransition(a),b.$slides.eq(a).css({opacity:0,zIndex:b.options.zIndex-2}))},b.prototype.filterSlides=b.prototype.slickFilter=function(a){var b=this;null!==a&&(b.$slidesCache=b.$slides,b.unload(),b.$slideTrack.children(this.options.slide).detach(),b.$slidesCache.filter(a).appendTo(b.$slideTrack),b.reinit())},b.prototype.focusHandler=function(){var b=this;b.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick","*:not(.slick-arrow)",function(c){c.stopImmediatePropagation();var d=a(this);setTimeout(function(){b.options.pauseOnFocus&&(b.focussed=d.is(":focus"),b.autoPlay())},0)})},b.prototype.getCurrent=b.prototype.slickCurrentSlide=function(){var a=this;return a.currentSlide},b.prototype.getDotCount=function(){var a=this,b=0,c=0,d=0;if(a.options.infinite===!0)for(;b<a.slideCount;)++d,b=c+a.options.slidesToScroll,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;else if(a.options.centerMode===!0)d=a.slideCount;else if(a.options.asNavFor)for(;b<a.slideCount;)++d,b=c+a.options.slidesToScroll,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;else d=1+Math.ceil((a.slideCount-a.options.slidesToShow)/a.options.slidesToScroll);return d-1},b.prototype.getLeft=function(a){var c,d,f,b=this,e=0;return b.slideOffset=0,d=b.$slides.first().outerHeight(!0),b.options.infinite===!0?(b.slideCount>b.options.slidesToShow&&(b.slideOffset=b.slideWidth*b.options.slidesToShow*-1,e=d*b.options.slidesToShow*-1),b.slideCount%b.options.slidesToScroll!==0&&a+b.options.slidesToScroll>b.slideCount&&b.slideCount>b.options.slidesToShow&&(a>b.slideCount?(b.slideOffset=(b.options.slidesToShow-(a-b.slideCount))*b.slideWidth*-1,e=(b.options.slidesToShow-(a-b.slideCount))*d*-1):(b.slideOffset=b.slideCount%b.options.slidesToScroll*b.slideWidth*-1,e=b.slideCount%b.options.slidesToScroll*d*-1))):a+b.options.slidesToShow>b.slideCount&&(b.slideOffset=(a+b.options.slidesToShow-b.slideCount)*b.slideWidth,e=(a+b.options.slidesToShow-b.slideCount)*d),b.slideCount<=b.options.slidesToShow&&(b.slideOffset=0,e=0),b.options.centerMode===!0&&b.options.infinite===!0?b.slideOffset+=b.slideWidth*Math.floor(b.options.slidesToShow/2)-b.slideWidth:b.options.centerMode===!0&&(b.slideOffset=0,b.slideOffset+=b.slideWidth*Math.floor(b.options.slidesToShow/2)),c=b.options.vertical===!1?a*b.slideWidth*-1+b.slideOffset:a*d*-1+e,b.options.variableWidth===!0&&(f=b.slideCount<=b.options.slidesToShow||b.options.infinite===!1?b.$slideTrack.children(".slick-slide").eq(a):b.$slideTrack.children(".slick-slide").eq(a+b.options.slidesToShow),c=b.options.rtl===!0?f[0]?-1*(b.$slideTrack.width()-f[0].offsetLeft-f.width()):0:f[0]?-1*f[0].offsetLeft:0,b.options.centerMode===!0&&(f=b.slideCount<=b.options.slidesToShow||b.options.infinite===!1?b.$slideTrack.children(".slick-slide").eq(a):b.$slideTrack.children(".slick-slide").eq(a+b.options.slidesToShow+1),c=b.options.rtl===!0?f[0]?-1*(b.$slideTrack.width()-f[0].offsetLeft-f.width()):0:f[0]?-1*f[0].offsetLeft:0,c+=(b.$list.width()-f.outerWidth())/2)),c},b.prototype.getOption=b.prototype.slickGetOption=function(a){var b=this;return b.options[a]},b.prototype.getNavigableIndexes=function(){var e,a=this,b=0,c=0,d=[];for(a.options.infinite===!1?e=a.slideCount:(b=-1*a.options.slidesToScroll,c=-1*a.options.slidesToScroll,e=2*a.slideCount);e>b;)d.push(b),b=c+a.options.slidesToScroll,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;return d},b.prototype.getSlick=function(){return this},b.prototype.getSlideCount=function(){var c,d,e,b=this;return e=b.options.centerMode===!0?b.slideWidth*Math.floor(b.options.slidesToShow/2):0,b.options.swipeToSlide===!0?(b.$slideTrack.find(".slick-slide").each(function(c,f){return f.offsetLeft-e+a(f).outerWidth()/2>-1*b.swipeLeft?(d=f,!1):void 0}),c=Math.abs(a(d).attr("data-slick-index")-b.currentSlide)||1):b.options.slidesToScroll},b.prototype.goTo=b.prototype.slickGoTo=function(a,b){var c=this;c.changeSlide({data:{message:"index",index:parseInt(a)}},b)},b.prototype.init=function(b){var c=this;a(c.$slider).hasClass("slick-initialized")||(a(c.$slider).addClass("slick-initialized"),c.buildRows(),c.buildOut(),c.setProps(),c.startLoad(),c.loadSlider(),c.initializeEvents(),c.updateArrows(),c.updateDots(),c.checkResponsive(!0),c.focusHandler()),b&&c.$slider.trigger("init",[c]),c.options.accessibility===!0&&c.initADA(),c.options.autoplay&&(c.paused=!1,c.autoPlay())},b.prototype.initADA=function(){var b=this;b.$slides.add(b.$slideTrack.find(".slick-cloned")).attr({"aria-hidden":"true",tabindex:"-1"}).find("a, input, button, select").attr({tabindex:"-1"}),b.$slideTrack.attr("role","listbox"),b.$slides.not(b.$slideTrack.find(".slick-cloned")).each(function(c){a(this).attr({role:"option","aria-describedby":"slick-slide"+b.instanceUid+c})}),null!==b.$dots&&b.$dots.attr("role","tablist").find("li").each(function(c){a(this).attr({role:"presentation","aria-selected":"false","aria-controls":"navigation"+b.instanceUid+c,id:"slick-slide"+b.instanceUid+c})}).first().attr("aria-selected","true").end().find("button").attr("role","button").end().closest("div").attr("role","toolbar"),b.activateADA()},b.prototype.initArrowEvents=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},a.changeSlide),a.$nextArrow.off("click.slick").on("click.slick",{message:"next"},a.changeSlide))},b.prototype.initDotEvents=function(){var b=this;b.options.dots===!0&&b.slideCount>b.options.slidesToShow&&a("li",b.$dots).on("click.slick",{message:"index"},b.changeSlide),b.options.dots===!0&&b.options.pauseOnDotsHover===!0&&a("li",b.$dots).on("mouseenter.slick",a.proxy(b.interrupt,b,!0)).on("mouseleave.slick",a.proxy(b.interrupt,b,!1))},b.prototype.initSlideEvents=function(){var b=this;b.options.pauseOnHover&&(b.$list.on("mouseenter.slick",a.proxy(b.interrupt,b,!0)),b.$list.on("mouseleave.slick",a.proxy(b.interrupt,b,!1)))},b.prototype.initializeEvents=function(){var b=this;b.initArrowEvents(),b.initDotEvents(),b.initSlideEvents(),b.$list.on("touchstart.slick mousedown.slick",{action:"start"},b.swipeHandler),b.$list.on("touchmove.slick mousemove.slick",{action:"move"},b.swipeHandler),b.$list.on("touchend.slick mouseup.slick",{action:"end"},b.swipeHandler),b.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},b.swipeHandler),b.$list.on("click.slick",b.clickHandler),a(document).on(b.visibilityChange,a.proxy(b.visibility,b)),b.options.accessibility===!0&&b.$list.on("keydown.slick",b.keyHandler),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().on("click.slick",b.selectHandler),a(window).on("orientationchange.slick.slick-"+b.instanceUid,a.proxy(b.orientationChange,b)),a(window).on("resize.slick.slick-"+b.instanceUid,a.proxy(b.resize,b)),a("[draggable!=true]",b.$slideTrack).on("dragstart",b.preventDefault),a(window).on("load.slick.slick-"+b.instanceUid,b.setPosition),a(document).on("ready.slick.slick-"+b.instanceUid,b.setPosition)},b.prototype.initUI=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.show(),a.$nextArrow.show()),a.options.dots===!0&&a.slideCount>a.options.slidesToShow&&a.$dots.show()},b.prototype.keyHandler=function(a){var b=this;a.target.tagName.match("TEXTAREA|INPUT|SELECT")||(37===a.keyCode&&b.options.accessibility===!0?b.changeSlide({data:{message:b.options.rtl===!0?"next":"previous"}}):39===a.keyCode&&b.options.accessibility===!0&&b.changeSlide({data:{message:b.options.rtl===!0?"previous":"next"}}))},b.prototype.lazyLoad=function(){function g(c){a("img[data-lazy]",c).each(function(){var c=a(this),d=a(this).attr("data-lazy"),e=document.createElement("img");e.onload=function(){c.animate({opacity:0},100,function(){c.attr("src",d).animate({opacity:1},200,function(){c.removeAttr("data-lazy").removeClass("slick-loading")}),b.$slider.trigger("lazyLoaded",[b,c,d])})},e.onerror=function(){c.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),b.$slider.trigger("lazyLoadError",[b,c,d])},e.src=d})}var c,d,e,f,b=this;b.options.centerMode===!0?b.options.infinite===!0?(e=b.currentSlide+(b.options.slidesToShow/2+1),f=e+b.options.slidesToShow+2):(e=Math.max(0,b.currentSlide-(b.options.slidesToShow/2+1)),f=2+(b.options.slidesToShow/2+1)+b.currentSlide):(e=b.options.infinite?b.options.slidesToShow+b.currentSlide:b.currentSlide,f=Math.ceil(e+b.options.slidesToShow),b.options.fade===!0&&(e>0&&e--,f<=b.slideCount&&f++)),c=b.$slider.find(".slick-slide").slice(e,f),g(c),b.slideCount<=b.options.slidesToShow?(d=b.$slider.find(".slick-slide"),g(d)):b.currentSlide>=b.slideCount-b.options.slidesToShow?(d=b.$slider.find(".slick-cloned").slice(0,b.options.slidesToShow),g(d)):0===b.currentSlide&&(d=b.$slider.find(".slick-cloned").slice(-1*b.options.slidesToShow),g(d))},b.prototype.loadSlider=function(){var a=this;a.setPosition(),a.$slideTrack.css({opacity:1}),a.$slider.removeClass("slick-loading"),a.initUI(),"progressive"===a.options.lazyLoad&&a.progressiveLazyLoad()},b.prototype.next=b.prototype.slickNext=function(){var a=this;a.changeSlide({data:{message:"next"}})},b.prototype.orientationChange=function(){var a=this;a.checkResponsive(),a.setPosition()},b.prototype.pause=b.prototype.slickPause=function(){var a=this;a.autoPlayClear(),a.paused=!0},b.prototype.play=b.prototype.slickPlay=function(){var a=this;a.autoPlay(),a.options.autoplay=!0,a.paused=!1,a.focussed=!1,a.interrupted=!1},b.prototype.postSlide=function(a){var b=this;b.unslicked||(b.$slider.trigger("afterChange",[b,a]),b.animating=!1,b.setPosition(),b.swipeLeft=null,b.options.autoplay&&b.autoPlay(),b.options.accessibility===!0&&b.initADA())},b.prototype.prev=b.prototype.slickPrev=function(){var a=this;a.changeSlide({data:{message:"previous"}})},b.prototype.preventDefault=function(a){a.preventDefault()},b.prototype.progressiveLazyLoad=function(b){b=b||1;var e,f,g,c=this,d=a("img[data-lazy]",c.$slider);d.length?(e=d.first(),f=e.attr("data-lazy"),g=document.createElement("img"),g.onload=function(){e.attr("src",f).removeAttr("data-lazy").removeClass("slick-loading"),c.options.adaptiveHeight===!0&&c.setPosition(),c.$slider.trigger("lazyLoaded",[c,e,f]),c.progressiveLazyLoad()},g.onerror=function(){3>b?setTimeout(function(){c.progressiveLazyLoad(b+1)},500):(e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),c.$slider.trigger("lazyLoadError",[c,e,f]),c.progressiveLazyLoad())},g.src=f):c.$slider.trigger("allImagesLoaded",[c])},b.prototype.refresh=function(b){var d,e,c=this;e=c.slideCount-c.options.slidesToShow,!c.options.infinite&&c.currentSlide>e&&(c.currentSlide=e),c.slideCount<=c.options.slidesToShow&&(c.currentSlide=0),d=c.currentSlide,c.destroy(!0),a.extend(c,c.initials,{currentSlide:d}),c.init(),b||c.changeSlide({data:{message:"index",index:d}},!1)},b.prototype.registerBreakpoints=function(){var c,d,e,b=this,f=b.options.responsive||null;if("array"===a.type(f)&&f.length){b.respondTo=b.options.respondTo||"window";for(c in f)if(e=b.breakpoints.length-1,d=f[c].breakpoint,f.hasOwnProperty(c)){for(;e>=0;)b.breakpoints[e]&&b.breakpoints[e]===d&&b.breakpoints.splice(e,1),e--;b.breakpoints.push(d),b.breakpointSettings[d]=f[c].settings}b.breakpoints.sort(function(a,c){return b.options.mobileFirst?a-c:c-a})}},b.prototype.reinit=function(){var b=this;b.$slides=b.$slideTrack.children(b.options.slide).addClass("slick-slide"),b.slideCount=b.$slides.length,b.currentSlide>=b.slideCount&&0!==b.currentSlide&&(b.currentSlide=b.currentSlide-b.options.slidesToScroll),b.slideCount<=b.options.slidesToShow&&(b.currentSlide=0),b.registerBreakpoints(),b.setProps(),b.setupInfinite(),b.buildArrows(),b.updateArrows(),b.initArrowEvents(),b.buildDots(),b.updateDots(),b.initDotEvents(),b.cleanUpSlideEvents(),b.initSlideEvents(),b.checkResponsive(!1,!0),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().on("click.slick",b.selectHandler),b.setSlideClasses("number"==typeof b.currentSlide?b.currentSlide:0),b.setPosition(),b.focusHandler(),b.paused=!b.options.autoplay,b.autoPlay(),b.$slider.trigger("reInit",[b])},b.prototype.resize=function(){var b=this;a(window).width()!==b.windowWidth&&(clearTimeout(b.windowDelay),b.windowDelay=window.setTimeout(function(){b.windowWidth=a(window).width(),b.checkResponsive(),b.unslicked||b.setPosition()},50))},b.prototype.removeSlide=b.prototype.slickRemove=function(a,b,c){var d=this;return"boolean"==typeof a?(b=a,a=b===!0?0:d.slideCount-1):a=b===!0?--a:a,d.slideCount<1||0>a||a>d.slideCount-1?!1:(d.unload(),c===!0?d.$slideTrack.children().remove():d.$slideTrack.children(this.options.slide).eq(a).remove(),d.$slides=d.$slideTrack.children(this.options.slide),d.$slideTrack.children(this.options.slide).detach(),d.$slideTrack.append(d.$slides),d.$slidesCache=d.$slides,void d.reinit())},b.prototype.setCSS=function(a){var d,e,b=this,c={};b.options.rtl===!0&&(a=-a),d="left"==b.positionProp?Math.ceil(a)+"px":"0px",e="top"==b.positionProp?Math.ceil(a)+"px":"0px",c[b.positionProp]=a,b.transformsEnabled===!1?b.$slideTrack.css(c):(c={},b.cssTransitions===!1?(c[b.animType]="translate("+d+", "+e+")",b.$slideTrack.css(c)):(c[b.animType]="translate3d("+d+", "+e+", 0px)",b.$slideTrack.css(c)))},b.prototype.setDimensions=function(){var a=this;a.options.vertical===!1?a.options.centerMode===!0&&a.$list.css({padding:"0px "+a.options.centerPadding}):(a.$list.height(a.$slides.first().outerHeight(!0)*a.options.slidesToShow),a.options.centerMode===!0&&a.$list.css({padding:a.options.centerPadding+" 0px"})),a.listWidth=a.$list.width(),a.listHeight=a.$list.height(),a.options.vertical===!1&&a.options.variableWidth===!1?(a.slideWidth=Math.ceil(a.listWidth/a.options.slidesToShow),a.$slideTrack.width(Math.ceil(a.slideWidth*a.$slideTrack.children(".slick-slide").length))):a.options.variableWidth===!0?a.$slideTrack.width(5e3*a.slideCount):(a.slideWidth=Math.ceil(a.listWidth),a.$slideTrack.height(Math.ceil(a.$slides.first().outerHeight(!0)*a.$slideTrack.children(".slick-slide").length)));var b=a.$slides.first().outerWidth(!0)-a.$slides.first().width();a.options.variableWidth===!1&&a.$slideTrack.children(".slick-slide").width(a.slideWidth-b)},b.prototype.setFade=function(){var c,b=this;b.$slides.each(function(d,e){c=b.slideWidth*d*-1,b.options.rtl===!0?a(e).css({position:"relative",right:c,top:0,zIndex:b.options.zIndex-2,opacity:0}):a(e).css({position:"relative",left:c,top:0,zIndex:b.options.zIndex-2,opacity:0})}),b.$slides.eq(b.currentSlide).css({zIndex:b.options.zIndex-1,opacity:1})},b.prototype.setHeight=function(){var a=this;if(1===a.options.slidesToShow&&a.options.adaptiveHeight===!0&&a.options.vertical===!1){var b=a.$slides.eq(a.currentSlide).outerHeight(!0);a.$list.css("height",b)}},b.prototype.setOption=b.prototype.slickSetOption=function(){var c,d,e,f,h,b=this,g=!1;if("object"===a.type(arguments[0])?(e=arguments[0],g=arguments[1],h="multiple"):"string"===a.type(arguments[0])&&(e=arguments[0],f=arguments[1],g=arguments[2],"responsive"===arguments[0]&&"array"===a.type(arguments[1])?h="responsive":"undefined"!=typeof arguments[1]&&(h="single")),"single"===h)b.options[e]=f;else if("multiple"===h)a.each(e,function(a,c){b.options[a]=c});else if("responsive"===h)for(d in f)if("array"!==a.type(b.options.responsive))b.options.responsive=[f[d]];else{for(c=b.options.responsive.length-1;c>=0;)b.options.responsive[c].breakpoint===f[d].breakpoint&&b.options.responsive.splice(c,1),c--;b.options.responsive.push(f[d])}g&&(b.unload(),b.reinit())},b.prototype.setPosition=function(){var a=this;a.setDimensions(),a.setHeight(),a.options.fade===!1?a.setCSS(a.getLeft(a.currentSlide)):a.setFade(),a.$slider.trigger("setPosition",[a])},b.prototype.setProps=function(){var a=this,b=document.body.style;a.positionProp=a.options.vertical===!0?"top":"left","top"===a.positionProp?a.$slider.addClass("slick-vertical"):a.$slider.removeClass("slick-vertical"),(void 0!==b.WebkitTransition||void 0!==b.MozTransition||void 0!==b.msTransition)&&a.options.useCSS===!0&&(a.cssTransitions=!0),a.options.fade&&("number"==typeof a.options.zIndex?a.options.zIndex<3&&(a.options.zIndex=3):a.options.zIndex=a.defaults.zIndex),void 0!==b.OTransform&&(a.animType="OTransform",a.transformType="-o-transform",a.transitionType="OTransition",void 0===b.perspectiveProperty&&void 0===b.webkitPerspective&&(a.animType=!1)),void 0!==b.MozTransform&&(a.animType="MozTransform",a.transformType="-moz-transform",a.transitionType="MozTransition",void 0===b.perspectiveProperty&&void 0===b.MozPerspective&&(a.animType=!1)),void 0!==b.webkitTransform&&(a.animType="webkitTransform",a.transformType="-webkit-transform",a.transitionType="webkitTransition",void 0===b.perspectiveProperty&&void 0===b.webkitPerspective&&(a.animType=!1)),void 0!==b.msTransform&&(a.animType="msTransform",a.transformType="-ms-transform",a.transitionType="msTransition",void 0===b.msTransform&&(a.animType=!1)),void 0!==b.transform&&a.animType!==!1&&(a.animType="transform",a.transformType="transform",a.transitionType="transition"),a.transformsEnabled=a.options.useTransform&&null!==a.animType&&a.animType!==!1},b.prototype.setSlideClasses=function(a){var c,d,e,f,b=this;d=b.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true"),b.$slides.eq(a).addClass("slick-current"),b.options.centerMode===!0?(c=Math.floor(b.options.slidesToShow/2),b.options.infinite===!0&&(a>=c&&a<=b.slideCount-1-c?b.$slides.slice(a-c,a+c+1).addClass("slick-active").attr("aria-hidden","false"):(e=b.options.slidesToShow+a,
18d.slice(e-c+1,e+c+2).addClass("slick-active").attr("aria-hidden","false")),0===a?d.eq(d.length-1-b.options.slidesToShow).addClass("slick-center"):a===b.slideCount-1&&d.eq(b.options.slidesToShow).addClass("slick-center")),b.$slides.eq(a).addClass("slick-center")):a>=0&&a<=b.slideCount-b.options.slidesToShow?b.$slides.slice(a,a+b.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"):d.length<=b.options.slidesToShow?d.addClass("slick-active").attr("aria-hidden","false"):(f=b.slideCount%b.options.slidesToShow,e=b.options.infinite===!0?b.options.slidesToShow+a:a,b.options.slidesToShow==b.options.slidesToScroll&&b.slideCount-a<b.options.slidesToShow?d.slice(e-(b.options.slidesToShow-f),e+f).addClass("slick-active").attr("aria-hidden","false"):d.slice(e,e+b.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false")),"ondemand"===b.options.lazyLoad&&b.lazyLoad()},b.prototype.setupInfinite=function(){var c,d,e,b=this;if(b.options.fade===!0&&(b.options.centerMode=!1),b.options.infinite===!0&&b.options.fade===!1&&(d=null,b.slideCount>b.options.slidesToShow)){for(e=b.options.centerMode===!0?b.options.slidesToShow+1:b.options.slidesToShow,c=b.slideCount;c>b.slideCount-e;c-=1)d=c-1,a(b.$slides[d]).clone(!0).attr("id","").attr("data-slick-index",d-b.slideCount).prependTo(b.$slideTrack).addClass("slick-cloned");for(c=0;e>c;c+=1)d=c,a(b.$slides[d]).clone(!0).attr("id","").attr("data-slick-index",d+b.slideCount).appendTo(b.$slideTrack).addClass("slick-cloned");b.$slideTrack.find(".slick-cloned").find("[id]").each(function(){a(this).attr("id","")})}},b.prototype.interrupt=function(a){var b=this;a||b.autoPlay(),b.interrupted=a},b.prototype.selectHandler=function(b){var c=this,d=a(b.target).is(".slick-slide")?a(b.target):a(b.target).parents(".slick-slide"),e=parseInt(d.attr("data-slick-index"));return e||(e=0),c.slideCount<=c.options.slidesToShow?(c.setSlideClasses(e),void c.asNavFor(e)):void c.slideHandler(e)},b.prototype.slideHandler=function(a,b,c){var d,e,f,g,j,h=null,i=this;return b=b||!1,i.animating===!0&&i.options.waitForAnimate===!0||i.options.fade===!0&&i.currentSlide===a||i.slideCount<=i.options.slidesToShow?void 0:(b===!1&&i.asNavFor(a),d=a,h=i.getLeft(d),g=i.getLeft(i.currentSlide),i.currentLeft=null===i.swipeLeft?g:i.swipeLeft,i.options.infinite===!1&&i.options.centerMode===!1&&(0>a||a>i.getDotCount()*i.options.slidesToScroll)?void(i.options.fade===!1&&(d=i.currentSlide,c!==!0?i.animateSlide(g,function(){i.postSlide(d)}):i.postSlide(d))):i.options.infinite===!1&&i.options.centerMode===!0&&(0>a||a>i.slideCount-i.options.slidesToScroll)?void(i.options.fade===!1&&(d=i.currentSlide,c!==!0?i.animateSlide(g,function(){i.postSlide(d)}):i.postSlide(d))):(i.options.autoplay&&clearInterval(i.autoPlayTimer),e=0>d?i.slideCount%i.options.slidesToScroll!==0?i.slideCount-i.slideCount%i.options.slidesToScroll:i.slideCount+d:d>=i.slideCount?i.slideCount%i.options.slidesToScroll!==0?0:d-i.slideCount:d,i.animating=!0,i.$slider.trigger("beforeChange",[i,i.currentSlide,e]),f=i.currentSlide,i.currentSlide=e,i.setSlideClasses(i.currentSlide),i.options.asNavFor&&(j=i.getNavTarget(),j=j.slick("getSlick"),j.slideCount<=j.options.slidesToShow&&j.setSlideClasses(i.currentSlide)),i.updateDots(),i.updateArrows(),i.options.fade===!0?(c!==!0?(i.fadeSlideOut(f),i.fadeSlide(e,function(){i.postSlide(e)})):i.postSlide(e),void i.animateHeight()):void(c!==!0?i.animateSlide(h,function(){i.postSlide(e)}):i.postSlide(e))))},b.prototype.startLoad=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.hide(),a.$nextArrow.hide()),a.options.dots===!0&&a.slideCount>a.options.slidesToShow&&a.$dots.hide(),a.$slider.addClass("slick-loading")},b.prototype.swipeDirection=function(){var a,b,c,d,e=this;return a=e.touchObject.startX-e.touchObject.curX,b=e.touchObject.startY-e.touchObject.curY,c=Math.atan2(b,a),d=Math.round(180*c/Math.PI),0>d&&(d=360-Math.abs(d)),45>=d&&d>=0?e.options.rtl===!1?"left":"right":360>=d&&d>=315?e.options.rtl===!1?"left":"right":d>=135&&225>=d?e.options.rtl===!1?"right":"left":e.options.verticalSwiping===!0?d>=35&&135>=d?"down":"up":"vertical"},b.prototype.swipeEnd=function(a){var c,d,b=this;if(b.dragging=!1,b.interrupted=!1,b.shouldClick=b.touchObject.swipeLength>10?!1:!0,void 0===b.touchObject.curX)return!1;if(b.touchObject.edgeHit===!0&&b.$slider.trigger("edge",[b,b.swipeDirection()]),b.touchObject.swipeLength>=b.touchObject.minSwipe){switch(d=b.swipeDirection()){case"left":case"down":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide+b.getSlideCount()):b.currentSlide+b.getSlideCount(),b.currentDirection=0;break;case"right":case"up":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide-b.getSlideCount()):b.currentSlide-b.getSlideCount(),b.currentDirection=1}"vertical"!=d&&(b.slideHandler(c),b.touchObject={},b.$slider.trigger("swipe",[b,d]))}else b.touchObject.startX!==b.touchObject.curX&&(b.slideHandler(b.currentSlide),b.touchObject={})},b.prototype.swipeHandler=function(a){var b=this;if(!(b.options.swipe===!1||"ontouchend"in document&&b.options.swipe===!1||b.options.draggable===!1&&-1!==a.type.indexOf("mouse")))switch(b.touchObject.fingerCount=a.originalEvent&&void 0!==a.originalEvent.touches?a.originalEvent.touches.length:1,b.touchObject.minSwipe=b.listWidth/b.options.touchThreshold,b.options.verticalSwiping===!0&&(b.touchObject.minSwipe=b.listHeight/b.options.touchThreshold),a.data.action){case"start":b.swipeStart(a);break;case"move":b.swipeMove(a);break;case"end":b.swipeEnd(a)}},b.prototype.swipeMove=function(a){var d,e,f,g,h,b=this;return h=void 0!==a.originalEvent?a.originalEvent.touches:null,!b.dragging||h&&1!==h.length?!1:(d=b.getLeft(b.currentSlide),b.touchObject.curX=void 0!==h?h[0].pageX:a.clientX,b.touchObject.curY=void 0!==h?h[0].pageY:a.clientY,b.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(b.touchObject.curX-b.touchObject.startX,2))),b.options.verticalSwiping===!0&&(b.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(b.touchObject.curY-b.touchObject.startY,2)))),e=b.swipeDirection(),"vertical"!==e?(void 0!==a.originalEvent&&b.touchObject.swipeLength>4&&a.preventDefault(),g=(b.options.rtl===!1?1:-1)*(b.touchObject.curX>b.touchObject.startX?1:-1),b.options.verticalSwiping===!0&&(g=b.touchObject.curY>b.touchObject.startY?1:-1),f=b.touchObject.swipeLength,b.touchObject.edgeHit=!1,b.options.infinite===!1&&(0===b.currentSlide&&"right"===e||b.currentSlide>=b.getDotCount()&&"left"===e)&&(f=b.touchObject.swipeLength*b.options.edgeFriction,b.touchObject.edgeHit=!0),b.options.vertical===!1?b.swipeLeft=d+f*g:b.swipeLeft=d+f*(b.$list.height()/b.listWidth)*g,b.options.verticalSwiping===!0&&(b.swipeLeft=d+f*g),b.options.fade===!0||b.options.touchMove===!1?!1:b.animating===!0?(b.swipeLeft=null,!1):void b.setCSS(b.swipeLeft)):void 0)},b.prototype.swipeStart=function(a){var c,b=this;return b.interrupted=!0,1!==b.touchObject.fingerCount||b.slideCount<=b.options.slidesToShow?(b.touchObject={},!1):(void 0!==a.originalEvent&&void 0!==a.originalEvent.touches&&(c=a.originalEvent.touches[0]),b.touchObject.startX=b.touchObject.curX=void 0!==c?c.pageX:a.clientX,b.touchObject.startY=b.touchObject.curY=void 0!==c?c.pageY:a.clientY,void(b.dragging=!0))},b.prototype.unfilterSlides=b.prototype.slickUnfilter=function(){var a=this;null!==a.$slidesCache&&(a.unload(),a.$slideTrack.children(this.options.slide).detach(),a.$slidesCache.appendTo(a.$slideTrack),a.reinit())},b.prototype.unload=function(){var b=this;a(".slick-cloned",b.$slider).remove(),b.$dots&&b.$dots.remove(),b.$prevArrow&&b.htmlExpr.test(b.options.prevArrow)&&b.$prevArrow.remove(),b.$nextArrow&&b.htmlExpr.test(b.options.nextArrow)&&b.$nextArrow.remove(),b.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")},b.prototype.unslick=function(a){var b=this;b.$slider.trigger("unslick",[b,a]),b.destroy()},b.prototype.updateArrows=function(){var b,a=this;b=Math.floor(a.options.slidesToShow/2),a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&!a.options.infinite&&(a.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false"),a.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false"),0===a.currentSlide?(a.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true"),a.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false")):a.currentSlide>=a.slideCount-a.options.slidesToShow&&a.options.centerMode===!1?(a.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),a.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")):a.currentSlide>=a.slideCount-1&&a.options.centerMode===!0&&(a.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),a.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")))},b.prototype.updateDots=function(){var a=this;null!==a.$dots&&(a.$dots.find("li").removeClass("slick-active").attr("aria-hidden","true"),a.$dots.find("li").eq(Math.floor(a.currentSlide/a.options.slidesToScroll)).addClass("slick-active").attr("aria-hidden","false"))},b.prototype.visibility=function(){var a=this;a.options.autoplay&&(document[a.hidden]?a.interrupted=!0:a.interrupted=!1)},a.fn.slick=function(){var f,g,a=this,c=arguments[0],d=Array.prototype.slice.call(arguments,1),e=a.length;for(f=0;e>f;f++)if("object"==typeof c||"undefined"==typeof c?a[f].slick=new b(a[f],c):g=a[f].slick[c].apply(a[f].slick,d),"undefined"!=typeof g)return g;return a}}); \ No newline at end of file
diff --git a/slick/slick.scss b/slick/slick.scss
new file mode 100644
index 0000000..2fa0fb2
--- /dev/null
+++ b/slick/slick.scss
@@ -0,0 +1,98 @@
1/* Slider */
2
3.slick-slider {
4 position: relative;
5 display: block;
6 box-sizing: border-box;
7 -webkit-touch-callout: none;
8 -webkit-user-select: none;
9 -khtml-user-select: none;
10 -moz-user-select: none;
11 -ms-user-select: none;
12 user-select: none;
13 -ms-touch-action: pan-y;
14 touch-action: pan-y;
15 -webkit-tap-highlight-color: transparent;
16}
17.slick-list {
18 position: relative;
19 overflow: hidden;
20 display: block;
21 margin: 0;
22 padding: 0;
23
24 &:focus {
25 outline: none;
26 }
27
28 &.dragging {
29 cursor: pointer;
30 cursor: hand;
31 }
32}
33.slick-slider .slick-track,
34.slick-slider .slick-list {
35 -webkit-transform: translate3d(0, 0, 0);
36 -moz-transform: translate3d(0, 0, 0);
37 -ms-transform: translate3d(0, 0, 0);
38 -o-transform: translate3d(0, 0, 0);
39 transform: translate3d(0, 0, 0);
40}
41
42.slick-track {
43 position: relative;
44 left: 0;
45 top: 0;
46 display: block;
47
48 &:before,
49 &:after {
50 content: "";
51 display: table;
52 }
53
54 &:after {
55 clear: both;
56 }
57
58 .slick-loading & {
59 visibility: hidden;
60 }
61}
62.slick-slide {
63 float: left;
64 height: 100%;
65 min-height: 1px;
66 [dir="rtl"] & {
67 float: right;
68 }
69 img {
70 display: block;
71 }
72 &.slick-loading img {
73 display: none;
74 }
75
76 display: none;
77
78 &.dragging img {
79 pointer-events: none;
80 }
81
82 .slick-initialized & {
83 display: block;
84 }
85
86 .slick-loading & {
87 visibility: hidden;
88 }
89
90 .slick-vertical & {
91 display: block;
92 height: auto;
93 border: 1px solid transparent;
94 }
95}
96.slick-arrow.slick-hidden {
97 display: none;
98}