j1-template 2023.0.16 → 2023.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (291) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_news_panel_posts.html +2 -2
  3. data/_includes/themes/j1/modules/attics/generator.html +3 -1
  4. data/_includes/themes/j1/modules/navigator/generator.html +2 -2
  5. data/_includes/themes/j1/procedures/collections/create_collection_article_preview.proc +1 -1
  6. data/_layouts/{paginator/autopage_category.html → autopage_category.html} +1 -1
  7. data/_layouts/{paginator/autopage_collection.html → autopage_collection.html} +1 -6
  8. data/_layouts/{paginator/autopage_collections_tags.html → autopage_collections_tags.html} +1 -1
  9. data/_layouts/category.html +67 -0
  10. data/_layouts/readme +2 -0
  11. data/assets/data/banner.html +2 -2
  12. data/assets/data/masonry.4.html +213 -0
  13. data/assets/data/masonry.html +207 -0
  14. data/assets/data/panel.html +1 -1
  15. data/assets/data/quicklinks.html +12 -12
  16. data/assets/data/slick.html +192 -0
  17. data/assets/error_pages/HTTP204.html +9 -5
  18. data/assets/error_pages/HTTP400.html +18 -2
  19. data/assets/error_pages/HTTP401.html +18 -2
  20. data/assets/error_pages/HTTP403.html +18 -2
  21. data/assets/error_pages/HTTP404.html +10 -2
  22. data/assets/error_pages/HTTP444.html +18 -2
  23. data/assets/error_pages/HTTP445.html +18 -2
  24. data/assets/error_pages/HTTP446.html +18 -2
  25. data/assets/error_pages/HTTP447.html +18 -2
  26. data/assets/error_pages/HTTP448.html +18 -2
  27. data/assets/error_pages/HTTP500.html +18 -2
  28. data/assets/error_pages/HTTP501.html +18 -2
  29. data/assets/error_pages/HTTP502.html +18 -2
  30. data/assets/error_pages/HTTP503.html +18 -2
  31. data/assets/themes/j1/adapter/js/attic.js +31 -16
  32. data/assets/themes/j1/adapter/js/cookieConsent.js +41 -25
  33. data/assets/themes/j1/adapter/js/fab.js +3 -1
  34. data/assets/themes/j1/adapter/js/j1.js +94 -22
  35. data/assets/themes/j1/adapter/js/masonry.js +111 -49
  36. data/assets/themes/j1/adapter/js/mmenu.js +4 -3
  37. data/assets/themes/j1/adapter/js/navigator.js +69 -19
  38. data/assets/themes/j1/adapter/js/slick.3.js +365 -0
  39. data/assets/themes/j1/adapter/js/slick.js +365 -0
  40. data/assets/themes/j1/adapter/js/toccer.js +27 -14
  41. data/assets/themes/j1/adapter/js/translator.js +45 -3
  42. data/assets/themes/j1/adapter/js/waves.js +3 -1
  43. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +51 -368
  44. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +2 -2
  45. data/assets/themes/j1/core/js/template.js +1 -3
  46. data/assets/themes/j1/core/js/template.min.js +1 -1
  47. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  48. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.js +10 -4
  49. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.min.js +1 -1
  50. data/assets/themes/j1/modules/masonry/css/theme/uno.css +35 -0
  51. data/assets/themes/j1/modules/masonry/css/theme/uno.min.css +15 -0
  52. data/assets/themes/j1/modules/mmenuLight/css/theme/uno/mmenu.css +3 -3
  53. data/assets/themes/j1/modules/mmenuLight/css/theme/uno/mmenu.min.css +1 -1
  54. data/assets/themes/j1/modules/slick/lightbox/LICENSE +20 -0
  55. data/assets/themes/j1/modules/slick/lightbox/README.md +133 -0
  56. data/assets/themes/j1/modules/slick/lightbox/css/slick-lightbox.css +128 -0
  57. data/assets/themes/j1/modules/slick/lightbox/css/slick-lightbox.min.css +1 -0
  58. data/assets/themes/j1/modules/slick/lightbox/js/slick-lightbox.js +353 -0
  59. data/assets/themes/j1/modules/slick/lightbox/js/slick-lightbox.min.js +2 -0
  60. data/assets/themes/j1/modules/slick/lightbox/js/slick-lightbox.min.js.map +1 -0
  61. data/assets/themes/j1/modules/slick/slider/LICENSE +20 -0
  62. data/assets/themes/j1/modules/slick/slider/README.md +291 -0
  63. data/assets/themes/j1/modules/slick/slider/css/slick.css +135 -0
  64. data/assets/themes/j1/modules/slick/slider/css/slick.min.css +15 -0
  65. data/assets/themes/j1/modules/slick/slider/css/theme/uno.css +256 -0
  66. data/assets/themes/j1/modules/slick/slider/css/theme/uno.min.css +15 -0
  67. data/assets/themes/j1/modules/slick/slider/fonts/slick.eot +0 -0
  68. data/assets/themes/j1/modules/slick/slider/fonts/slick.svg +14 -0
  69. data/assets/themes/j1/modules/slick/slider/fonts/slick.ttf +0 -0
  70. data/assets/themes/j1/modules/slick/slider/fonts/slick.woff +0 -0
  71. data/assets/themes/j1/modules/slick/slider/images/ajax-loader.gif +0 -0
  72. data/assets/themes/j1/modules/slick/slider/js/slick.js +2300 -0
  73. data/assets/themes/j1/modules/slick/slider/js/slick.min.js +1 -0
  74. data/assets/themes/j1/modules/translator/css/translator.css +3 -3
  75. data/assets/themes/j1/modules/translator/css/translator.min.css +1 -1
  76. data/assets/themes/j1/modules/translator/js/translator.js +19 -7
  77. data/lib/j1/patches/rubygems/eventmachine-1.2.7-x64-mingw32/lib/3.2/fastfilereaderext.so +0 -0
  78. data/lib/j1/patches/rubygems/eventmachine-1.2.7-x64-mingw32/lib/3.2/rubyeventmachine.so +0 -0
  79. data/lib/j1/version.rb +1 -1
  80. data/lib/j1_app/log4r/yamlconfigurator.rb +41 -41
  81. data/lib/starter_web/Gemfile +5 -5
  82. data/lib/starter_web/README.md +142 -143
  83. data/lib/starter_web/_config.yml +34 -26
  84. data/lib/starter_web/_data/blocks/defaults/banner.yml +4 -4
  85. data/lib/starter_web/_data/blocks/defaults/panel.yml +11 -11
  86. data/lib/starter_web/_data/blocks/footer.yml +2 -2
  87. data/lib/starter_web/_data/blocks/panel.yml +8 -8
  88. data/lib/starter_web/_data/layouts/collection.yml +9 -0
  89. data/lib/starter_web/_data/layouts/home.yml +12 -0
  90. data/lib/starter_web/_data/layouts/page.yml +36 -3
  91. data/lib/starter_web/_data/layouts/post.yml +36 -3
  92. data/lib/starter_web/_data/layouts/raw.yml +35 -3
  93. data/lib/starter_web/_data/modules/advertising.yml +1 -2
  94. data/lib/starter_web/_data/modules/analytics.yml +1 -2
  95. data/lib/starter_web/_data/modules/attics.yml +2 -2
  96. data/lib/starter_web/_data/modules/blog_navigator.yml +1 -2
  97. data/lib/starter_web/_data/modules/carousel.yml +1 -2
  98. data/lib/starter_web/_data/modules/comments.yml +1 -2
  99. data/lib/starter_web/_data/modules/cookieconsent.yml +1 -2
  100. data/lib/starter_web/_data/modules/cookies.yml +1 -2
  101. data/lib/starter_web/_data/modules/defaults/advertising.yml +1 -2
  102. data/lib/starter_web/_data/modules/defaults/analytics.yml +1 -2
  103. data/lib/starter_web/_data/modules/defaults/attics.yml +2 -2
  104. data/lib/starter_web/_data/modules/defaults/authentication.yml +1 -2
  105. data/lib/starter_web/_data/modules/defaults/blog_navigator.yml +1 -1
  106. data/lib/starter_web/_data/modules/defaults/carousel.yml +1 -2
  107. data/lib/starter_web/_data/modules/defaults/comments.yml +1 -1
  108. data/lib/starter_web/_data/modules/defaults/cookieconsent.yml +1 -2
  109. data/lib/starter_web/_data/modules/defaults/cookies.yml +2 -3
  110. data/lib/starter_web/_data/modules/defaults/dropdowns.yml +1 -2
  111. data/lib/starter_web/_data/modules/defaults/fab.yml +1 -2
  112. data/lib/starter_web/_data/modules/defaults/framer.yml +1 -2
  113. data/lib/starter_web/_data/modules/defaults/justifiedGallery.yml +1 -2
  114. data/lib/starter_web/_data/modules/defaults/lightGallery.yml +1 -2
  115. data/lib/starter_web/_data/modules/defaults/lightbox.yml +1 -2
  116. data/lib/starter_web/_data/modules/defaults/log4javascript.yml +1 -2
  117. data/lib/starter_web/_data/modules/defaults/log4r.yml +7 -9
  118. data/lib/starter_web/_data/modules/defaults/lunr.yml +1 -2
  119. data/lib/starter_web/_data/modules/defaults/masonry.yml +52 -23
  120. data/lib/starter_web/_data/modules/defaults/navigator.yml +13 -12
  121. data/lib/starter_web/_data/modules/defaults/nbinteract.yml +1 -2
  122. data/lib/starter_web/_data/modules/defaults/particles.yml +1 -2
  123. data/lib/starter_web/_data/modules/defaults/rangeSlider.yml +1 -2
  124. data/lib/starter_web/_data/modules/defaults/rtable.yml +1 -2
  125. data/lib/starter_web/_data/modules/defaults/{scoller.yml → scroller.yml} +8 -2
  126. data/lib/starter_web/_data/modules/defaults/slick.yml +493 -0
  127. data/lib/starter_web/_data/modules/defaults/themer.yml +1 -2
  128. data/lib/starter_web/_data/modules/defaults/toccer.yml +2 -3
  129. data/lib/starter_web/_data/modules/defaults/translator.yml +2 -3
  130. data/lib/starter_web/_data/modules/defaults/waves.yml +1 -2
  131. data/lib/starter_web/_data/modules/dropdowns.yml +1 -2
  132. data/lib/starter_web/_data/modules/fab.yml +1 -2
  133. data/lib/starter_web/_data/modules/framer.yml +1 -2
  134. data/lib/starter_web/_data/modules/justifiedGallery.yml +1 -2
  135. data/lib/starter_web/_data/modules/lightGallery.yml +1 -2
  136. data/lib/starter_web/_data/modules/lightbox.yml +1 -2
  137. data/lib/starter_web/_data/modules/log4r.yml +140 -7
  138. data/lib/starter_web/_data/modules/lunr.yml +1 -2
  139. data/lib/starter_web/_data/modules/masonry.yml +178 -23
  140. data/lib/starter_web/_data/modules/masterslider.yml +2 -1
  141. data/lib/starter_web/_data/modules/navigator.yml +13 -25
  142. data/lib/starter_web/_data/modules/navigator_menu.yml +34 -0
  143. data/lib/starter_web/_data/modules/particles.yml +1 -2
  144. data/lib/starter_web/_data/modules/rangeSlider.yml +1 -2
  145. data/lib/starter_web/_data/modules/rtable.yml +1 -2
  146. data/lib/starter_web/_data/modules/scroller.yml +8 -2
  147. data/lib/starter_web/_data/modules/slick.yml +295 -0
  148. data/lib/starter_web/_data/modules/themer.yml +1 -2
  149. data/lib/starter_web/_data/modules/toccer.yml +1 -2
  150. data/lib/starter_web/_data/modules/translator.yml +1 -2
  151. data/lib/starter_web/_data/modules/waves.yml +1 -2
  152. data/lib/starter_web/_data/plugins/defaults/paginator.yml +23 -4
  153. data/lib/starter_web/_data/plugins/paginator.yml +10 -13
  154. data/lib/starter_web/_data/resources.yml +58 -26
  155. data/lib/starter_web/_data/templates/feed.xml +1 -1
  156. data/lib/starter_web/_data/utilities/defaults/util_srv.yml +2 -2
  157. data/lib/starter_web/_data/utilities/util_srv.yml +2 -3
  158. data/lib/starter_web/_includes/custom/templates/custom_header.html +76 -0
  159. data/lib/starter_web/_plugins/asciidoctor/masonry-block.rb +50 -0
  160. data/lib/starter_web/_plugins/asciidoctor/masterslider-block.rb +6 -5
  161. data/lib/starter_web/_plugins/asciidoctor/slick-block.rb +49 -0
  162. data/lib/starter_web/_plugins/index/lunr.rb +1 -1
  163. data/lib/starter_web/assets/images/custom/header/avatar.svg +248 -0
  164. data/lib/starter_web/assets/images/custom/header/family.svg +2209 -0
  165. data/lib/starter_web/assets/images/parsa/customers/200x150/img1.png +0 -0
  166. data/lib/starter_web/assets/images/parsa/customers/200x150/img2.png +0 -0
  167. data/lib/starter_web/assets/images/parsa/customers/200x150/img3.png +0 -0
  168. data/lib/starter_web/assets/images/parsa/customers/200x150/img4.png +0 -0
  169. data/lib/starter_web/assets/images/parsa/customers/200x150/img5.png +0 -0
  170. data/lib/starter_web/assets/images/parsa/customers/200x150/img6.png +0 -0
  171. data/lib/starter_web/assets/images/parsa/customers/200x150/img7.png +0 -0
  172. data/lib/starter_web/assets/images/parsa/customers/200x150/img8.png +0 -0
  173. data/lib/starter_web/assets/images/parsa/customers/200x150/img9.png +0 -0
  174. data/lib/starter_web/assets/images/parsa/customers/client-1.png +0 -0
  175. data/lib/starter_web/assets/images/parsa/customers/client-2.png +0 -0
  176. data/lib/starter_web/assets/images/parsa/customers/client-3.png +0 -0
  177. data/lib/starter_web/assets/images/parsa/customers/client-4.png +0 -0
  178. data/lib/starter_web/assets/images/parsa/customers/client-5.png +0 -0
  179. data/lib/starter_web/assets/images/parsa/customers/client-6.png +0 -0
  180. data/lib/starter_web/assets/images/parsa/customers/client-7.png +0 -0
  181. data/lib/starter_web/assets/images/parsa/icons/close-icon.svg +1 -0
  182. data/lib/starter_web/assets/images/parsa/icons/favicon.ico +0 -0
  183. data/lib/starter_web/assets/images/parsa/icons/icon.png +0 -0
  184. data/lib/starter_web/assets/images/parsa/icons/icon.svg +152 -0
  185. data/lib/starter_web/assets/images/parsa/icons/logo.svg +172 -0
  186. data/lib/starter_web/assets/images/parsa/icons/up.svg +1 -0
  187. data/lib/starter_web/assets/images/parsa/masthead/19-02-_2023_09-05-46.jpg +0 -0
  188. data/lib/starter_web/assets/images/parsa/masthead/banner-img.png +0 -0
  189. data/lib/starter_web/assets/images/parsa/pages/1920x1280/author.jpg +0 -0
  190. data/lib/starter_web/assets/images/parsa/pages/1920x1280/contact.jpg +0 -0
  191. data/lib/starter_web/assets/images/parsa/pages/author.jpg +0 -0
  192. data/lib/starter_web/assets/images/parsa/pages/contact.jpg +0 -0
  193. data/lib/starter_web/assets/images/parsa/partners/scalable/facebook.svg +34 -0
  194. data/lib/starter_web/assets/images/parsa/partners/scalable/google.svg +35 -0
  195. data/lib/starter_web/assets/images/parsa/partners/scalable/ibm.svg +24 -0
  196. data/lib/starter_web/assets/images/parsa/partners/scalable/microsoft.svg +42 -0
  197. data/lib/starter_web/assets/images/parsa/portfolio/1.jpg +0 -0
  198. data/lib/starter_web/assets/images/parsa/portfolio/2.jpg +0 -0
  199. data/lib/starter_web/assets/images/parsa/portfolio/3.jpg +0 -0
  200. data/lib/starter_web/assets/images/parsa/portfolio/4.jpg +0 -0
  201. data/lib/starter_web/assets/images/parsa/portfolio/5.jpg +0 -0
  202. data/lib/starter_web/assets/images/parsa/portfolio/6.jpg +0 -0
  203. data/lib/starter_web/assets/images/parsa/posts/1280x1024/post-img.jpg +0 -0
  204. data/lib/starter_web/assets/images/parsa/posts/1280x1024/post-single.jpg +0 -0
  205. data/lib/starter_web/assets/images/parsa/posts/featured/post-1.jpg +0 -0
  206. data/lib/starter_web/assets/images/parsa/posts/featured/post-2.jpg +0 -0
  207. data/lib/starter_web/assets/images/parsa/posts/featured/post-3.jpg +0 -0
  208. data/lib/starter_web/assets/images/parsa/posts/featured/post-4.jpg +0 -0
  209. data/lib/starter_web/assets/images/parsa/posts/featured/post-5.jpg +0 -0
  210. data/lib/starter_web/assets/images/parsa/posts/natural_food/post-1.jpg +0 -0
  211. data/lib/starter_web/assets/images/parsa/posts/natural_food/post-10.jpg +0 -0
  212. data/lib/starter_web/assets/images/parsa/posts/natural_food/post-11.jpg +0 -0
  213. data/lib/starter_web/assets/images/parsa/posts/natural_food/post-12.jpg +0 -0
  214. data/lib/starter_web/assets/images/parsa/posts/natural_food/post-13.jpg +0 -0
  215. data/lib/starter_web/assets/images/parsa/posts/natural_food/post-2.jpg +0 -0
  216. data/lib/starter_web/assets/images/parsa/posts/natural_food/post-3.jpg +0 -0
  217. data/lib/starter_web/assets/images/parsa/posts/natural_food/post-4.jpg +0 -0
  218. data/lib/starter_web/assets/images/parsa/posts/natural_food/post-5.jpg +0 -0
  219. data/lib/starter_web/assets/images/parsa/posts/natural_food/post-6.jpg +0 -0
  220. data/lib/starter_web/assets/images/parsa/posts/natural_food/post-7.jpg +0 -0
  221. data/lib/starter_web/assets/images/parsa/posts/natural_food/post-8.jpg +0 -0
  222. data/lib/starter_web/assets/images/parsa/posts/natural_food/post-9.jpg +0 -0
  223. data/lib/starter_web/assets/images/parsa/posts/post-img.jpg +0 -0
  224. data/lib/starter_web/assets/images/parsa/posts/post-single.jpg +0 -0
  225. data/lib/starter_web/assets/images/parsa/promo/home/screenshot.jpg +0 -0
  226. data/lib/starter_web/collections/_biography/a-life-in-questions.adoc +7 -3
  227. data/lib/starter_web/collections/_biography/becoming.adoc +6 -3
  228. data/lib/starter_web/collections/_biography/born-to-run.adoc +6 -3
  229. data/lib/starter_web/collections/_biography/forty-autumns.adoc +6 -2
  230. data/lib/starter_web/collections/_biography/not-dead-yet.adoc +6 -3
  231. data/lib/starter_web/collections/_biography/princess-diarist-the.adoc +6 -2
  232. data/lib/starter_web/collections/_biography/when-breath-becomes-air.adoc +6 -3
  233. data/lib/starter_web/collections/_fantasy/harry-potter-deathly-hallows.adoc +82 -0
  234. data/lib/starter_web/collections/_fantasy/harry-potter-philosophers-stone.adoc +82 -0
  235. data/lib/starter_web/collections/_fantasy/mistborn-trilogy.adoc +80 -0
  236. data/lib/starter_web/collections/_fantasy/ready-player-one.adoc +82 -0
  237. data/lib/starter_web/collections/_fantasy/sword-of-destiny.adoc +80 -0
  238. data/lib/starter_web/collections/_fantasy/terry-pratchet-diary-2017.adoc +78 -0
  239. data/lib/starter_web/collections/_romance/breath-of-snow-and-ashes-a.adoc +86 -0
  240. data/lib/starter_web/collections/_romance/dressmaker-the.adoc +79 -0
  241. data/lib/starter_web/collections/_romance/fiery-cross-the.adoc +87 -0
  242. data/lib/starter_web/collections/_romance/it-ends-with-us.adoc +84 -0
  243. data/lib/starter_web/collections/_romance/outlander-novel.adoc +96 -0
  244. data/lib/starter_web/collections/_romance/virgins-outlander-short-story.adoc +80 -0
  245. data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1.adoc.erb +49 -6
  246. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +0 -13
  247. data/lib/starter_web/collections/posts/public/series/_posts/2022-08-01-organize-your-life.adoc +118 -0
  248. data/lib/starter_web/collections/posts/public/series/_posts/2022-08-02-organize-your-life.adoc +118 -0
  249. data/lib/starter_web/collections/posts/public/series/_posts/2022-08-03-organize-your-life.adoc +118 -0
  250. data/lib/starter_web/collections/posts/public/series/_posts/2022-09-01-organize-your-life.adoc +117 -0
  251. data/lib/starter_web/collections/posts/public/series/_posts/2022-09-02-organize-your-life.adoc +117 -0
  252. data/lib/starter_web/dot.bundle/config +2 -0
  253. data/lib/starter_web/index.html +129 -114
  254. data/lib/starter_web/package.json +9 -9
  255. data/lib/starter_web/pages/public/about/site.adoc +2 -2
  256. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +1 -1
  257. data/lib/starter_web/pages/public/blog/navigator/archive/allview.html +1 -1
  258. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +1 -1
  259. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +1 -1
  260. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +1 -1
  261. data/lib/starter_web/pages/public/bookshelf/article_previewer/viewer_biography.adoc +89 -0
  262. data/lib/starter_web/pages/public/bookshelf/article_previewer/viewer_fantasy.adoc +81 -0
  263. data/lib/starter_web/pages/public/bookshelf/article_previewer/viewer_romance.adoc +81 -0
  264. data/lib/starter_web/pages/public/bookshelf/{whats_up.adoc → jekyll_collections.adoc} +31 -23
  265. data/lib/starter_web/pages/public/features/template.adoc +1 -1
  266. data/lib/starter_web/pages/public/learn/roundtrip/asciidoc_extensions.adoc +8 -4
  267. data/lib/starter_web/pages/public/learn/roundtrip/bootstrap_themes.adoc +21 -13
  268. data/lib/starter_web/pages/public/learn/roundtrip/icon_fonts.adoc +10 -1
  269. data/lib/starter_web/pages/public/learn/roundtrip/lunr_search.adoc +22 -5
  270. data/lib/starter_web/pages/public/learn/roundtrip/modal_extentions.adoc +14 -8
  271. data/lib/starter_web/pages/public/learn/roundtrip/present_images.adoc +8 -1
  272. data/lib/starter_web/pages/public/learn/roundtrip/present_videos.adoc +15 -3
  273. data/lib/starter_web/pages/public/learn/roundtrip/responsive_tables.adoc +13 -1
  274. data/lib/starter_web/pages/public/learn/roundtrip/typography.adoc +10 -3
  275. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +0 -1
  276. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +4 -4
  277. data/lib/starter_web/pages/public/previewer/preview_bootstrap_theme.adoc +118 -117
  278. data/lib/starter_web/pages/public/previewer/preview_masonry.adoc +361 -0
  279. data/lib/starter_web/pages/public/previewer/preview_slick_slider.adoc +375 -0
  280. data/lib/starter_web/utilsrv/_defaults/package.json +2 -2
  281. data/lib/starter_web/utilsrv/package.json +2 -2
  282. metadata +133 -19
  283. data/_layouts/paginator/readme +0 -2
  284. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-wiki-series.adoc +0 -144
  285. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-wiki-series.adoc +0 -103
  286. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-wiki-series.adoc +0 -117
  287. data/lib/starter_web/collections/posts/public/series/_posts/_includes/attributes.asciidoc +0 -44
  288. data/lib/starter_web/collections/posts/public/series/_posts/_includes/documents/readme +0 -0
  289. data/lib/starter_web/collections/posts/public/series/_posts/_includes/tables/readme +0 -0
  290. data/lib/starter_web/pages/public/bookshelf/viewer_biography.adoc +0 -58
  291. /data/_layouts/{paginator/autopage_tags.html → autopage_tags.html} +0 -0
@@ -0,0 +1,2300 @@
1
+ /*
2
+ _ _ _ _
3
+ ___| (_) ___| | __ (_)___
4
+ / __| | |/ __| |/ / | / __|
5
+ \__ \ | | (__| < _ | \__ \
6
+ |___/_|_|\___|_|\_(_)/ |___/
7
+ |__/
8
+ Version: 1.8.1
9
+ Author: Ken Wheeler
10
+ Website: http://kenwheeler.github.io
11
+ Docs: http://kenwheeler.github.io/slick
12
+ Repo: http://github.com/kenwheeler/slick
13
+ Issues: http://github.com/kenwheeler/slick/issues
14
+ */
15
+ /* global window, document, define, jQuery, setInterval, clearInterval */
16
+ ;
17
+ (function (factory) {
18
+ 'use strict';
19
+ if (typeof define === 'function' && define.amd) {
20
+ define(['jquery'], factory);
21
+ } else if (typeof exports !== 'undefined') {
22
+ module.exports = factory(require('jquery'));
23
+ } else {
24
+ factory(jQuery);
25
+ }
26
+ }(function ($) {
27
+ 'use strict';
28
+ var Slick = window.Slick || {};
29
+ Slick = (function () {
30
+ var instanceUid = 0;
31
+
32
+ function Slick(element, settings) {
33
+ var _ = this,
34
+ dataSettings;
35
+ _.defaults = {
36
+ accessibility: true,
37
+ adaptiveHeight: false,
38
+ appendArrows: $(element),
39
+ appendDots: $(element),
40
+ arrows: true,
41
+ asNavFor: null,
42
+ prevArrow: '<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',
43
+ nextArrow: '<button class="slick-next" aria-label="Next" type="button">Next</button>',
44
+ autoplay: false,
45
+ autoplaySpeed: 3000,
46
+ centerMode: false,
47
+ centerPadding: '50px',
48
+ cssEase: 'ease',
49
+ customPaging: function (slider, i) {
50
+ return $('<button type="button" />').text(i + 1);
51
+ },
52
+
53
+ dots: false,
54
+ dotsClass: 'slick-dots',
55
+ draggable: true,
56
+ easing: 'linear',
57
+ edgeFriction: 0.35,
58
+ fade: false,
59
+ focusOnSelect: false,
60
+ focusOnChange: false,
61
+ infinite: true,
62
+ initialSlide: 0,
63
+ lazyLoad: 'ondemand',
64
+ mobileFirst: false,
65
+ pauseOnHover: true,
66
+ pauseOnFocus: true,
67
+ pauseOnDotsHover: false,
68
+ respondTo: 'window',
69
+ responsive: null,
70
+ rows: 1,
71
+ rtl: false,
72
+ slide: '',
73
+ slidesPerRow: 1,
74
+ slidesToShow: 1,
75
+ slidesToScroll: 1,
76
+ speed: 500,
77
+ swipe: true,
78
+ swipeToSlide: false,
79
+ touchMove: true,
80
+ touchThreshold: 5,
81
+ useCSS: true,
82
+ useTransform: true,
83
+ variableWidth: false,
84
+ vertical: false,
85
+ verticalSwiping: false,
86
+ waitForAnimate: true,
87
+ zIndex: 1000
88
+ };
89
+
90
+ _.initials = {
91
+ animating: false,
92
+ dragging: false,
93
+ autoPlayTimer: null,
94
+ currentDirection: 0,
95
+ currentLeft: null,
96
+ currentSlide: 0,
97
+ direction: 1,
98
+ $dots: null,
99
+ listWidth: null,
100
+ listHeight: null,
101
+ loadIndex: 0,
102
+ $nextArrow: null,
103
+ $prevArrow: null,
104
+ scrolling: false,
105
+ slideCount: null,
106
+ slideWidth: null,
107
+ $slideTrack: null,
108
+ $slides: null,
109
+ sliding: false,
110
+ slideOffset: 0,
111
+ swipeLeft: null,
112
+ swiping: false,
113
+ $list: null,
114
+ touchObject: {},
115
+ transformsEnabled: false,
116
+ unslicked: false
117
+ };
118
+
119
+ $.extend(_, _.initials);
120
+ _.activeBreakpoint = null;
121
+ _.animType = null;
122
+ _.animProp = null;
123
+ _.breakpoints = [];
124
+ _.breakpointSettings = [];
125
+ _.cssTransitions = false;
126
+ _.focussed = false;
127
+ _.interrupted = false;
128
+ _.hidden = 'hidden';
129
+ _.paused = true;
130
+ _.positionProp = null;
131
+ _.respondTo = null;
132
+ _.rowCount = 1;
133
+ _.shouldClick = true;
134
+ _.$slider = $(element);
135
+ _.$slidesCache = null;
136
+ _.transformType = null;
137
+ _.transitionType = null;
138
+ _.visibilityChange = 'visibilitychange';
139
+ _.windowWidth = 0;
140
+ _.windowTimer = null;
141
+ dataSettings = $(element).data('slick') || {};
142
+ _.options = $.extend({}, _.defaults, settings, dataSettings);
143
+ _.currentSlide = _.options.initialSlide;
144
+ _.originalSettings = _.options;
145
+ if (typeof document.mozHidden !== 'undefined') {
146
+ _.hidden = 'mozHidden';
147
+ _.visibilityChange = 'mozvisibilitychange';
148
+ } else if (typeof document.webkitHidden !== 'undefined') {
149
+ _.hidden = 'webkitHidden';
150
+ _.visibilityChange = 'webkitvisibilitychange';
151
+ }
152
+ _.autoPlay = $.proxy(_.autoPlay, _);
153
+ _.autoPlayClear = $.proxy(_.autoPlayClear, _);
154
+ _.autoPlayIterator = $.proxy(_.autoPlayIterator, _);
155
+ _.changeSlide = $.proxy(_.changeSlide, _);
156
+ _.clickHandler = $.proxy(_.clickHandler, _);
157
+ _.selectHandler = $.proxy(_.selectHandler, _);
158
+ _.setPosition = $.proxy(_.setPosition, _);
159
+ _.swipeHandler = $.proxy(_.swipeHandler, _);
160
+ _.dragHandler = $.proxy(_.dragHandler, _);
161
+ _.keyHandler = $.proxy(_.keyHandler, _);
162
+ _.instanceUid = instanceUid++;
163
+ // A simple way to check for HTML strings
164
+ // Strict HTML recognition (must start with <)
165
+ // Extracted from jQuery v1.11 source
166
+ _.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/;
167
+ _.registerBreakpoints();
168
+ _.init(true);
169
+ }
170
+ return Slick;
171
+ }());
172
+
173
+ Slick.prototype.activateADA = function () {
174
+ var _ = this;
175
+ _.$slideTrack.find('.slick-active').attr({
176
+ 'aria-hidden': 'false'
177
+ }).find('a, input, button, select').attr({
178
+ 'tabindex': '0'
179
+ });
180
+ };
181
+
182
+ Slick.prototype.addSlide = Slick.prototype.slickAdd = function (markup, index, addBefore) {
183
+ var _ = this;
184
+ if (typeof (index) === 'boolean') {
185
+ addBefore = index;
186
+ index = null;
187
+ } else if (index < 0 || (index >= _.slideCount)) {
188
+ return false;
189
+ }
190
+ _.unload();
191
+ if (typeof (index) === 'number') {
192
+ if (index === 0 && _.$slides.length === 0) {
193
+ $(markup).appendTo(_.$slideTrack);
194
+ } else if (addBefore) {
195
+ $(markup).insertBefore(_.$slides.eq(index));
196
+ } else {
197
+ $(markup).insertAfter(_.$slides.eq(index));
198
+ }
199
+ } else {
200
+ if (addBefore === true) {
201
+ $(markup).prependTo(_.$slideTrack);
202
+ } else {
203
+ $(markup).appendTo(_.$slideTrack);
204
+ }
205
+ }
206
+ _.$slides = _.$slideTrack.children(this.options.slide);
207
+ _.$slideTrack.children(this.options.slide).detach();
208
+ _.$slideTrack.append(_.$slides);
209
+ _.$slides.each(function (index, element) {
210
+ $(element).attr('data-slick-index', index);
211
+ });
212
+ _.$slidesCache = _.$slides;
213
+ _.reinit();
214
+ };
215
+
216
+ Slick.prototype.animateHeight = function () {
217
+ var _ = this;
218
+ if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {
219
+ var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
220
+ _.$list.animate({
221
+ height: targetHeight
222
+ }, _.options.speed);
223
+ }
224
+ };
225
+
226
+ Slick.prototype.animateSlide = function (targetLeft, callback) {
227
+ var animProps = {},
228
+ _ = this;
229
+ _.animateHeight();
230
+ if (_.options.rtl === true && _.options.vertical === false) {
231
+ targetLeft = -targetLeft;
232
+ }
233
+ if (_.transformsEnabled === false) {
234
+ if (_.options.vertical === false) {
235
+ _.$slideTrack.animate({
236
+ left: targetLeft
237
+ }, _.options.speed, _.options.easing, callback);
238
+ } else {
239
+ _.$slideTrack.animate({
240
+ top: targetLeft
241
+ }, _.options.speed, _.options.easing, callback);
242
+ }
243
+ } else {
244
+ if (_.cssTransitions === false) {
245
+ if (_.options.rtl === true) {
246
+ _.currentLeft = -(_.currentLeft);
247
+ }
248
+ $({
249
+ animStart: _.currentLeft
250
+ }).animate({
251
+ animStart: targetLeft
252
+ }, {
253
+ duration: _.options.speed,
254
+ easing: _.options.easing,
255
+ step: function (now) {
256
+ now = Math.ceil(now);
257
+ if (_.options.vertical === false) {
258
+ animProps[_.animType] = 'translate(' +
259
+ now + 'px, 0px)';
260
+ _.$slideTrack.css(animProps);
261
+ } else {
262
+ animProps[_.animType] = 'translate(0px,' +
263
+ now + 'px)';
264
+ _.$slideTrack.css(animProps);
265
+ }
266
+ },
267
+ complete: function () {
268
+ if (callback) {
269
+ callback.call();
270
+ }
271
+ }
272
+ });
273
+ } else {
274
+ _.applyTransition();
275
+ targetLeft = Math.ceil(targetLeft);
276
+ if (_.options.vertical === false) {
277
+ animProps[_.animType] = 'translate3d(' + targetLeft + 'px, 0px, 0px)';
278
+ } else {
279
+ animProps[_.animType] = 'translate3d(0px,' + targetLeft + 'px, 0px)';
280
+ }
281
+ _.$slideTrack.css(animProps);
282
+ if (callback) {
283
+ setTimeout(function () {
284
+ _.disableTransition();
285
+ callback.call();
286
+ }, _.options.speed);
287
+ }
288
+ }
289
+ }
290
+ };
291
+
292
+ Slick.prototype.getNavTarget = function () {
293
+ var _ = this,
294
+ asNavFor = _.options.asNavFor;
295
+ if (asNavFor && asNavFor !== null) {
296
+ asNavFor = $(asNavFor).not(_.$slider);
297
+ }
298
+ return asNavFor;
299
+ };
300
+
301
+ Slick.prototype.asNavFor = function (index) {
302
+ var _ = this,
303
+ asNavFor = _.getNavTarget();
304
+ if (asNavFor !== null && typeof asNavFor === 'object') {
305
+ asNavFor.each(function () {
306
+ var target = $(this).slick('getSlick');
307
+ if (!target.unslicked) {
308
+ target.slideHandler(index, true);
309
+ }
310
+ });
311
+ }
312
+ };
313
+
314
+ Slick.prototype.applyTransition = function (slide) {
315
+ var _ = this,
316
+ transition = {};
317
+ if (_.options.fade === false) {
318
+ transition[_.transitionType] = _.transformType + ' ' + _.options.speed + 'ms ' + _.options.cssEase;
319
+ } else {
320
+ transition[_.transitionType] = 'opacity ' + _.options.speed + 'ms ' + _.options.cssEase;
321
+ }
322
+ if (_.options.fade === false) {
323
+ _.$slideTrack.css(transition);
324
+ } else {
325
+ _.$slides.eq(slide).css(transition);
326
+ }
327
+ };
328
+
329
+ Slick.prototype.autoPlay = function () {
330
+ var _ = this;
331
+ _.autoPlayClear();
332
+ if (_.slideCount > _.options.slidesToShow) {
333
+ _.autoPlayTimer = setInterval(_.autoPlayIterator, _.options.autoplaySpeed);
334
+ }
335
+ };
336
+
337
+ Slick.prototype.autoPlayClear = function () {
338
+ var _ = this;
339
+ if (_.autoPlayTimer) {
340
+ clearInterval(_.autoPlayTimer);
341
+ }
342
+ };
343
+
344
+ Slick.prototype.autoPlayIterator = function () {
345
+ var _ = this,
346
+ slideTo = _.currentSlide + _.options.slidesToScroll;
347
+ if (!_.paused && !_.interrupted && !_.focussed) {
348
+ if (_.options.infinite === false) {
349
+ if (_.direction === 1 && (_.currentSlide + 1) === (_.slideCount - 1)) {
350
+ _.direction = 0;
351
+ } else if (_.direction === 0) {
352
+ slideTo = _.currentSlide - _.options.slidesToScroll;
353
+ if (_.currentSlide - 1 === 0) {
354
+ _.direction = 1;
355
+ }
356
+ }
357
+ }
358
+ _.slideHandler(slideTo);
359
+ }
360
+ };
361
+
362
+ Slick.prototype.buildArrows = function () {
363
+ var _ = this;
364
+ if (_.options.arrows === true) {
365
+ _.$prevArrow = $(_.options.prevArrow).addClass('slick-arrow');
366
+ _.$nextArrow = $(_.options.nextArrow).addClass('slick-arrow');
367
+ if (_.slideCount > _.options.slidesToShow) {
368
+ _.$prevArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex');
369
+ _.$nextArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex');
370
+ if (_.htmlExpr.test(_.options.prevArrow)) {
371
+ _.$prevArrow.prependTo(_.options.appendArrows);
372
+ }
373
+ if (_.htmlExpr.test(_.options.nextArrow)) {
374
+ _.$nextArrow.appendTo(_.options.appendArrows);
375
+ }
376
+ if (_.options.infinite !== true) {
377
+ _.$prevArrow
378
+ .addClass('slick-disabled')
379
+ .attr('aria-disabled', 'true');
380
+ }
381
+ } else {
382
+ _.$prevArrow.add(_.$nextArrow)
383
+ .addClass('slick-hidden')
384
+ .attr({
385
+ 'aria-disabled': 'true',
386
+ 'tabindex': '-1'
387
+ });
388
+ }
389
+ }
390
+ };
391
+
392
+ Slick.prototype.buildDots = function () {
393
+ var _ = this,
394
+ i, dot;
395
+ if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
396
+ _.$slider.addClass('slick-dotted');
397
+ dot = $('<ul />').addClass(_.options.dotsClass);
398
+ for (i = 0; i <= _.getDotCount(); i += 1) {
399
+ dot.append($('<li />').append(_.options.customPaging.call(this, _, i)));
400
+ }
401
+ _.$dots = dot.appendTo(_.options.appendDots);
402
+ _.$dots.find('li').first().addClass('slick-active');
403
+ }
404
+ };
405
+
406
+ Slick.prototype.buildOut = function () {
407
+ var _ = this;
408
+ _.$slides =
409
+ _.$slider
410
+ .children(_.options.slide + ':not(.slick-cloned)')
411
+ .addClass('slick-slide');
412
+ _.slideCount = _.$slides.length;
413
+ _.$slides.each(function (index, element) {
414
+ $(element)
415
+ .attr('data-slick-index', index)
416
+ .data('originalStyling', $(element).attr('style') || '');
417
+ });
418
+ _.$slider.addClass('slick-slider');
419
+ _.$slideTrack = (_.slideCount === 0) ?
420
+ $('<div class="slick-track"/>').appendTo(_.$slider) :
421
+ _.$slides.wrapAll('<div class="slick-track"/>').parent();
422
+ _.$list = _.$slideTrack.wrap(
423
+ '<div class="slick-list"/>').parent();
424
+ _.$slideTrack.css('opacity', 0);
425
+ if (_.options.centerMode === true || _.options.swipeToSlide === true) {
426
+ _.options.slidesToScroll = 1;
427
+ }
428
+ $('img[data-lazy]', _.$slider).not('[src]').addClass('slick-loading');
429
+ _.setupInfinite();
430
+ _.buildArrows();
431
+ _.buildDots();
432
+ _.updateDots();
433
+ _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);
434
+ if (_.options.draggable === true) {
435
+ _.$list.addClass('draggable');
436
+ }
437
+ };
438
+
439
+ Slick.prototype.buildRows = function () {
440
+ var _ = this,
441
+ a, b, c, newSlides, numOfSlides, originalSlides, slidesPerSection;
442
+ newSlides = document.createDocumentFragment();
443
+ originalSlides = _.$slider.children();
444
+ if (_.options.rows > 0) {
445
+ slidesPerSection = _.options.slidesPerRow * _.options.rows;
446
+ numOfSlides = Math.ceil(
447
+ originalSlides.length / slidesPerSection
448
+ );
449
+ for (a = 0; a < numOfSlides; a++) {
450
+ var slide = document.createElement('div');
451
+ for (b = 0; b < _.options.rows; b++) {
452
+ var row = document.createElement('div');
453
+ for (c = 0; c < _.options.slidesPerRow; c++) {
454
+ var target = (a * slidesPerSection + ((b * _.options.slidesPerRow) + c));
455
+ if (originalSlides.get(target)) {
456
+ row.appendChild(originalSlides.get(target));
457
+ }
458
+ }
459
+ slide.appendChild(row);
460
+ }
461
+ newSlides.appendChild(slide);
462
+ }
463
+ _.$slider.empty().append(newSlides);
464
+ _.$slider.children().children().children()
465
+ .css({
466
+ 'width': (100 / _.options.slidesPerRow) + '%',
467
+ 'display': 'inline-block'
468
+ });
469
+ }
470
+ };
471
+
472
+ Slick.prototype.checkResponsive = function (initial, forceUpdate) {
473
+ var _ = this,
474
+ breakpoint, targetBreakpoint, respondToWidth, triggerBreakpoint = false;
475
+ var sliderWidth = _.$slider.width();
476
+ var windowWidth = window.innerWidth || $(window).width();
477
+
478
+ if (_.respondTo === 'window') {
479
+ respondToWidth = windowWidth;
480
+ } else if (_.respondTo === 'slider') {
481
+ respondToWidth = sliderWidth;
482
+ } else if (_.respondTo === 'min') {
483
+ respondToWidth = Math.min(windowWidth, sliderWidth);
484
+ }
485
+
486
+ if (_.options.responsive &&
487
+ _.options.responsive.length &&
488
+ _.options.responsive !== null) {
489
+ targetBreakpoint = null;
490
+
491
+ for (breakpoint in _.breakpoints) {
492
+ if (_.breakpoints.hasOwnProperty(breakpoint)) {
493
+ if (_.originalSettings.mobileFirst === false) {
494
+ if (respondToWidth < _.breakpoints[breakpoint]) {
495
+ targetBreakpoint = _.breakpoints[breakpoint];
496
+ }
497
+ } else {
498
+ if (respondToWidth > _.breakpoints[breakpoint]) {
499
+ targetBreakpoint = _.breakpoints[breakpoint];
500
+ }
501
+ }
502
+ }
503
+ }
504
+
505
+ if (targetBreakpoint !== null) {
506
+ if (_.activeBreakpoint !== null) {
507
+ if (targetBreakpoint !== _.activeBreakpoint || forceUpdate) {
508
+ _.activeBreakpoint =
509
+ targetBreakpoint;
510
+ if (_.breakpointSettings[targetBreakpoint] === 'unslick') {
511
+ _.unslick(targetBreakpoint);
512
+ } else {
513
+ _.options = $.extend({}, _.originalSettings,
514
+ _.breakpointSettings[
515
+ targetBreakpoint]);
516
+ if (initial === true) {
517
+ _.currentSlide = _.options.initialSlide;
518
+ }
519
+ _.refresh(initial);
520
+ }
521
+ triggerBreakpoint = targetBreakpoint;
522
+ }
523
+ } else {
524
+ _.activeBreakpoint = targetBreakpoint;
525
+ if (_.breakpointSettings[targetBreakpoint] === 'unslick') {
526
+ _.unslick(targetBreakpoint);
527
+ } else {
528
+ _.options = $.extend({}, _.originalSettings,
529
+ _.breakpointSettings[
530
+ targetBreakpoint]);
531
+ if (initial === true) {
532
+ _.currentSlide = _.options.initialSlide;
533
+ }
534
+ _.refresh(initial);
535
+ }
536
+ triggerBreakpoint = targetBreakpoint;
537
+ }
538
+ } else {
539
+ if (_.activeBreakpoint !== null) {
540
+ _.activeBreakpoint = null;
541
+ _.options = _.originalSettings;
542
+ if (initial === true) {
543
+ _.currentSlide = _.options.initialSlide;
544
+ }
545
+ _.refresh(initial);
546
+ triggerBreakpoint = targetBreakpoint;
547
+ }
548
+ }
549
+
550
+ // only trigger breakpoints during an actual break and not on initialize
551
+ if (!initial && triggerBreakpoint !== false) {
552
+ _.$slider.trigger('breakpoint', [_, triggerBreakpoint]);
553
+ }
554
+ }
555
+ };
556
+
557
+ Slick.prototype.changeSlide = function (event, dontAnimate) {
558
+ var _ = this,
559
+ $target = $(event.currentTarget),
560
+ indexOffset, slideOffset, unevenOffset;
561
+ // If target is a link, prevent default action.
562
+ if ($target.is('a')) {
563
+ event.preventDefault();
564
+ }
565
+ // If target is not the <li> element (ie: a child), find the <li>.
566
+ if (!$target.is('li')) {
567
+ $target = $target.closest('li');
568
+ }
569
+ unevenOffset = (_.slideCount % _.options.slidesToScroll !== 0);
570
+ indexOffset = unevenOffset ? 0 : (_.slideCount - _.currentSlide) % _.options.slidesToScroll;
571
+ switch (event.data.message) {
572
+ case 'previous':
573
+ slideOffset = indexOffset === 0 ? _.options.slidesToScroll : _.options.slidesToShow - indexOffset;
574
+ if (_.slideCount > _.options.slidesToShow) {
575
+ _.slideHandler(_.currentSlide - slideOffset, false, dontAnimate);
576
+ }
577
+ break;
578
+ case 'next':
579
+ slideOffset = indexOffset === 0 ? _.options.slidesToScroll : indexOffset;
580
+ if (_.slideCount > _.options.slidesToShow) {
581
+ _.slideHandler(_.currentSlide + slideOffset, false, dontAnimate);
582
+ }
583
+ break;
584
+ case 'index':
585
+ var index = event.data.index === 0 ? 0 :
586
+ event.data.index || $target.index() * _.options.slidesToScroll;
587
+ _.slideHandler(_.checkNavigable(index), false, dontAnimate);
588
+ $target.children().trigger('focus');
589
+ break;
590
+ default:
591
+ return;
592
+ }
593
+ };
594
+
595
+ Slick.prototype.checkNavigable = function (index) {
596
+ var _ = this,
597
+ navigables, prevNavigable;
598
+ navigables = _.getNavigableIndexes();
599
+ prevNavigable = 0;
600
+ if (index > navigables[navigables.length - 1]) {
601
+ index = navigables[navigables.length - 1];
602
+ } else {
603
+ for (var n in navigables) {
604
+ if (index < navigables[n]) {
605
+ index = prevNavigable;
606
+ break;
607
+ }
608
+ prevNavigable = navigables[n];
609
+ }
610
+ }
611
+ return index;
612
+ };
613
+
614
+ Slick.prototype.cleanUpEvents = function () {
615
+ var _ = this;
616
+ if (_.options.dots && _.$dots !== null) {
617
+ $('li', _.$dots)
618
+ .off('click.slick', _.changeSlide)
619
+ .off('mouseenter.slick', $.proxy(_.interrupt, _, true))
620
+ .off('mouseleave.slick', $.proxy(_.interrupt, _, false));
621
+ if (_.options.accessibility === true) {
622
+ _.$dots.off('keydown.slick', _.keyHandler);
623
+ }
624
+ }
625
+ _.$slider.off('focus.slick blur.slick');
626
+ if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
627
+ _.$prevArrow && _.$prevArrow.off('click.slick', _.changeSlide);
628
+ _.$nextArrow && _.$nextArrow.off('click.slick', _.changeSlide);
629
+ if (_.options.accessibility === true) {
630
+ _.$prevArrow && _.$prevArrow.off('keydown.slick', _.keyHandler);
631
+ _.$nextArrow && _.$nextArrow.off('keydown.slick', _.keyHandler);
632
+ }
633
+ }
634
+ _.$list.off('touchstart.slick mousedown.slick', _.swipeHandler);
635
+ _.$list.off('touchmove.slick mousemove.slick', _.swipeHandler);
636
+ _.$list.off('touchend.slick mouseup.slick', _.swipeHandler);
637
+ _.$list.off('touchcancel.slick mouseleave.slick', _.swipeHandler);
638
+ _.$list.off('click.slick', _.clickHandler);
639
+ $(document).off(_.visibilityChange, _.visibility);
640
+ _.cleanUpSlideEvents();
641
+ if (_.options.accessibility === true) {
642
+ _.$list.off('keydown.slick', _.keyHandler);
643
+ }
644
+ if (_.options.focusOnSelect === true) {
645
+ $(_.$slideTrack).children().off('click.slick', _.selectHandler);
646
+ }
647
+ $(window).off('orientationchange.slick.slick-' + _.instanceUid, _.orientationChange);
648
+ $(window).off('resize.slick.slick-' + _.instanceUid, _.resize);
649
+ $('[draggable!=true]', _.$slideTrack).off('dragstart', _.preventDefault);
650
+ $(window).off('load.slick.slick-' + _.instanceUid, _.setPosition);
651
+ };
652
+
653
+ Slick.prototype.cleanUpSlideEvents = function () {
654
+ var _ = this;
655
+ _.$list.off('mouseenter.slick', $.proxy(_.interrupt, _, true));
656
+ _.$list.off('mouseleave.slick', $.proxy(_.interrupt, _, false));
657
+ };
658
+
659
+ Slick.prototype.cleanUpRows = function () {
660
+ var _ = this,
661
+ originalSlides;
662
+ if (_.options.rows > 0) {
663
+ originalSlides = _.$slides.children().children();
664
+ originalSlides.removeAttr('style');
665
+ _.$slider.empty().append(originalSlides);
666
+ }
667
+ };
668
+
669
+ Slick.prototype.clickHandler = function (event) {
670
+ var _ = this;
671
+ if (_.shouldClick === false) {
672
+ event.stopImmediatePropagation();
673
+ event.stopPropagation();
674
+ event.preventDefault();
675
+ }
676
+ };
677
+
678
+ Slick.prototype.destroy = function (refresh) {
679
+ var _ = this;
680
+ _.autoPlayClear();
681
+ _.touchObject = {};
682
+ _.cleanUpEvents();
683
+ $('.slick-cloned', _.$slider).detach();
684
+ if (_.$dots) {
685
+ _.$dots.remove();
686
+ }
687
+ if (_.$prevArrow && _.$prevArrow.length) {
688
+ _.$prevArrow
689
+ .removeClass('slick-disabled slick-arrow slick-hidden')
690
+ .removeAttr('aria-hidden aria-disabled tabindex')
691
+ .css('display', '');
692
+ if (_.htmlExpr.test(_.options.prevArrow)) {
693
+ _.$prevArrow.remove();
694
+ }
695
+ }
696
+ if (_.$nextArrow && _.$nextArrow.length) {
697
+ _.$nextArrow
698
+ .removeClass('slick-disabled slick-arrow slick-hidden')
699
+ .removeAttr('aria-hidden aria-disabled tabindex')
700
+ .css('display', '');
701
+ if (_.htmlExpr.test(_.options.nextArrow)) {
702
+ _.$nextArrow.remove();
703
+ }
704
+ }
705
+ if (_.$slides) {
706
+ _.$slides
707
+ .removeClass('slick-slide slick-active slick-center slick-visible slick-current')
708
+ .removeAttr('aria-hidden')
709
+ .removeAttr('data-slick-index')
710
+ .each(function () {
711
+ $(this).attr('style', $(this).data('originalStyling'));
712
+ });
713
+ _.$slideTrack.children(this.options.slide).detach();
714
+ _.$slideTrack.detach();
715
+ _.$list.detach();
716
+ _.$slider.append(_.$slides);
717
+ }
718
+ _.cleanUpRows();
719
+ _.$slider.removeClass('slick-slider');
720
+ _.$slider.removeClass('slick-initialized');
721
+ _.$slider.removeClass('slick-dotted');
722
+ _.unslicked = true;
723
+ if (!refresh) {
724
+ _.$slider.trigger('destroy', [_]);
725
+ }
726
+ };
727
+
728
+ Slick.prototype.disableTransition = function (slide) {
729
+ var _ = this,
730
+ transition = {};
731
+ transition[_.transitionType] = '';
732
+ if (_.options.fade === false) {
733
+ _.$slideTrack.css(transition);
734
+ } else {
735
+ _.$slides.eq(slide).css(transition);
736
+ }
737
+ };
738
+
739
+ Slick.prototype.fadeSlide = function (slideIndex, callback) {
740
+ var _ = this;
741
+ if (_.cssTransitions === false) {
742
+ _.$slides.eq(slideIndex).css({
743
+ zIndex: _.options.zIndex
744
+ });
745
+ _.$slides.eq(slideIndex).animate({
746
+ opacity: 1
747
+ }, _.options.speed, _.options.easing, callback);
748
+ } else {
749
+ _.applyTransition(slideIndex);
750
+ _.$slides.eq(slideIndex).css({
751
+ opacity: 1,
752
+ zIndex: _.options.zIndex
753
+ });
754
+ if (callback) {
755
+ setTimeout(function () {
756
+ _.disableTransition(slideIndex);
757
+ callback.call();
758
+ }, _.options.speed);
759
+ }
760
+ }
761
+ };
762
+
763
+ Slick.prototype.fadeSlideOut = function (slideIndex) {
764
+ var _ = this;
765
+ if (_.cssTransitions === false) {
766
+ _.$slides.eq(slideIndex).animate({
767
+ opacity: 0,
768
+ zIndex: _.options.zIndex - 2
769
+ }, _.options.speed, _.options.easing);
770
+ } else {
771
+ _.applyTransition(slideIndex);
772
+ _.$slides.eq(slideIndex).css({
773
+ opacity: 0,
774
+ zIndex: _.options.zIndex - 2
775
+ });
776
+ }
777
+ };
778
+
779
+ Slick.prototype.filterSlides = Slick.prototype.slickFilter = function (filter) {
780
+ var _ = this;
781
+ if (filter !== null) {
782
+ _.$slidesCache = _.$slides;
783
+ _.unload();
784
+ _.$slideTrack.children(this.options.slide).detach();
785
+ _.$slidesCache.filter(filter).appendTo(_.$slideTrack);
786
+ _.reinit();
787
+ }
788
+ };
789
+
790
+ Slick.prototype.focusHandler = function () {
791
+ var _ = this;
792
+ // If any child element receives focus within the slider we need to pause the autoplay
793
+ _.$slider
794
+ .off('focus.slick blur.slick')
795
+ .on(
796
+ 'focus.slick',
797
+ '*',
798
+ function (event) {
799
+ var $sf = $(this);
800
+ setTimeout(function () {
801
+ if (_.options.pauseOnFocus) {
802
+ if ($sf.is(':focus')) {
803
+ _.focussed = true;
804
+ _.autoPlay();
805
+ }
806
+ }
807
+ }, 0);
808
+ }
809
+ ).on(
810
+ 'blur.slick',
811
+ '*',
812
+ function (event) {
813
+ var $sf = $(this);
814
+ // When a blur occurs on any elements within the slider we become unfocused
815
+ if (_.options.pauseOnFocus) {
816
+ _.focussed = false;
817
+ _.autoPlay();
818
+ }
819
+ }
820
+ );
821
+ };
822
+
823
+ Slick.prototype.getCurrent = Slick.prototype.slickCurrentSlide = function () {
824
+ var _ = this;
825
+ return _.currentSlide;
826
+ };
827
+
828
+ Slick.prototype.getDotCount = function () {
829
+ var _ = this;
830
+ var breakPoint = 0;
831
+ var counter = 0;
832
+ var pagerQty = 0;
833
+ if (_.options.infinite === true) {
834
+ if (_.slideCount <= _.options.slidesToShow) {
835
+ ++pagerQty;
836
+ } else {
837
+ while (breakPoint < _.slideCount) {
838
+ ++pagerQty;
839
+ breakPoint = counter + _.options.slidesToScroll;
840
+ counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
841
+ }
842
+ }
843
+ } else if (_.options.centerMode === true) {
844
+ pagerQty = _.slideCount;
845
+ } else if (!_.options.asNavFor) {
846
+ pagerQty = 1 + Math.ceil((_.slideCount - _.options.slidesToShow) / _.options.slidesToScroll);
847
+ } else {
848
+ while (breakPoint < _.slideCount) {
849
+ ++pagerQty;
850
+ breakPoint = counter + _.options.slidesToScroll;
851
+ counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
852
+ }
853
+ }
854
+ return pagerQty - 1;
855
+ };
856
+
857
+ Slick.prototype.getLeft = function (slideIndex) {
858
+ var _ = this,
859
+ targetLeft,
860
+ verticalHeight,
861
+ verticalOffset = 0,
862
+ targetSlide,
863
+ coef;
864
+ _.slideOffset = 0;
865
+ verticalHeight = _.$slides.first().outerHeight(true);
866
+ if (_.options.infinite === true) {
867
+ if (_.slideCount > _.options.slidesToShow) {
868
+ _.slideOffset = (_.slideWidth * _.options.slidesToShow) * -1;
869
+ coef = -1
870
+ if (_.options.vertical === true && _.options.centerMode === true) {
871
+ if (_.options.slidesToShow === 2) {
872
+ coef = -1.5;
873
+ } else if (_.options.slidesToShow === 1) {
874
+ coef = -2
875
+ }
876
+ }
877
+ verticalOffset = (verticalHeight * _.options.slidesToShow) * coef;
878
+ }
879
+ if (_.slideCount % _.options.slidesToScroll !== 0) {
880
+ if (slideIndex + _.options.slidesToScroll > _.slideCount && _.slideCount > _.options.slidesToShow) {
881
+ if (slideIndex > _.slideCount) {
882
+ _.slideOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * _.slideWidth) * -1;
883
+ verticalOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * verticalHeight) * -1;
884
+ } else {
885
+ _.slideOffset = ((_.slideCount % _.options.slidesToScroll) * _.slideWidth) * -1;
886
+ verticalOffset = ((_.slideCount % _.options.slidesToScroll) * verticalHeight) * -1;
887
+ }
888
+ }
889
+ }
890
+ } else {
891
+ if (slideIndex + _.options.slidesToShow > _.slideCount) {
892
+ _.slideOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * _.slideWidth;
893
+ verticalOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * verticalHeight;
894
+ }
895
+ }
896
+ if (_.slideCount <= _.options.slidesToShow) {
897
+ _.slideOffset = 0;
898
+ verticalOffset = 0;
899
+ }
900
+ if (_.options.centerMode === true && _.slideCount <= _.options.slidesToShow) {
901
+ _.slideOffset = ((_.slideWidth * Math.floor(_.options.slidesToShow)) / 2) - ((_.slideWidth * _.slideCount) / 2);
902
+ } else if (_.options.centerMode === true && _.options.infinite === true) {
903
+ _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2) - _.slideWidth;
904
+ } else if (_.options.centerMode === true) {
905
+ _.slideOffset = 0;
906
+ _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2);
907
+ }
908
+ if (_.options.vertical === false) {
909
+ targetLeft = ((slideIndex * _.slideWidth) * -1) + _.slideOffset;
910
+ } else {
911
+ targetLeft = ((slideIndex * verticalHeight) * -1) + verticalOffset;
912
+ }
913
+ if (_.options.variableWidth === true) {
914
+ if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {
915
+ targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);
916
+ } else {
917
+ targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow);
918
+ }
919
+ if (_.options.rtl === true) {
920
+ if (targetSlide[0]) {
921
+ targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;
922
+ } else {
923
+ targetLeft = 0;
924
+ }
925
+ } else {
926
+ targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;
927
+ }
928
+ if (_.options.centerMode === true) {
929
+ if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {
930
+ targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);
931
+ } else {
932
+ targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow + 1);
933
+ }
934
+ if (_.options.rtl === true) {
935
+ if (targetSlide[0]) {
936
+ targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;
937
+ } else {
938
+ targetLeft = 0;
939
+ }
940
+ } else {
941
+ targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;
942
+ }
943
+ targetLeft += (_.$list.width() - targetSlide.outerWidth()) / 2;
944
+ }
945
+ }
946
+ return targetLeft;
947
+ };
948
+
949
+ Slick.prototype.getOption = Slick.prototype.slickGetOption = function (option) {
950
+ var _ = this;
951
+ return _.options[option];
952
+ };
953
+
954
+ Slick.prototype.getNavigableIndexes = function () {
955
+ var _ = this,
956
+ breakPoint = 0,
957
+ counter = 0,
958
+ indexes = [],
959
+ max;
960
+ if (_.options.infinite === false) {
961
+ max = _.slideCount;
962
+ } else {
963
+ breakPoint = _.options.slidesToScroll * -1;
964
+ counter = _.options.slidesToScroll * -1;
965
+ max = _.slideCount * 2;
966
+ }
967
+ while (breakPoint < max) {
968
+ indexes.push(breakPoint);
969
+ breakPoint = counter + _.options.slidesToScroll;
970
+ counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
971
+ }
972
+ return indexes;
973
+ };
974
+
975
+ Slick.prototype.getSlick = function () {
976
+ return this;
977
+ };
978
+
979
+ Slick.prototype.getSlideCount = function () {
980
+ var _ = this,
981
+ slidesTraversed, swipedSlide, swipeTarget, centerOffset;
982
+ centerOffset = _.options.centerMode === true ? Math.floor(_.$list.width() / 2) : 0;
983
+ swipeTarget = (_.swipeLeft * -1) + centerOffset;
984
+ if (_.options.swipeToSlide === true) {
985
+ _.$slideTrack.find('.slick-slide').each(function (index, slide) {
986
+ var slideOuterWidth, slideOffset, slideRightBoundary;
987
+ slideOuterWidth = $(slide).outerWidth();
988
+ slideOffset = slide.offsetLeft;
989
+ if (_.options.centerMode !== true) {
990
+ slideOffset += (slideOuterWidth / 2);
991
+ }
992
+ slideRightBoundary = slideOffset + (slideOuterWidth);
993
+ if (swipeTarget < slideRightBoundary) {
994
+ swipedSlide = slide;
995
+ return false;
996
+ }
997
+ });
998
+ slidesTraversed = Math.abs($(swipedSlide).attr('data-slick-index') - _.currentSlide) || 1;
999
+ return slidesTraversed;
1000
+ } else {
1001
+ return _.options.slidesToScroll;
1002
+ }
1003
+ };
1004
+
1005
+ Slick.prototype.goTo = Slick.prototype.slickGoTo = function (slide, dontAnimate) {
1006
+ var _ = this;
1007
+ _.changeSlide({
1008
+ data: {
1009
+ message: 'index',
1010
+ index: parseInt(slide)
1011
+ }
1012
+ }, dontAnimate);
1013
+ };
1014
+
1015
+ Slick.prototype.init = function (creation) {
1016
+ var _ = this;
1017
+ if (!$(_.$slider).hasClass('slick-initialized')) {
1018
+ $(_.$slider).addClass('slick-initialized');
1019
+ _.buildRows();
1020
+ _.buildOut();
1021
+ _.setProps();
1022
+ _.startLoad();
1023
+ _.loadSlider();
1024
+ _.initializeEvents();
1025
+ _.updateArrows();
1026
+ _.updateDots();
1027
+ _.checkResponsive(true);
1028
+ _.focusHandler();
1029
+ }
1030
+ if (creation) {
1031
+ _.$slider.trigger('init', [_]);
1032
+ }
1033
+ if (_.options.accessibility === true) {
1034
+ _.initADA();
1035
+ }
1036
+ if (_.options.autoplay) {
1037
+ _.paused = false;
1038
+ _.autoPlay();
1039
+ }
1040
+ };
1041
+
1042
+ Slick.prototype.initADA = function () {
1043
+ var _ = this,
1044
+ numDotGroups = Math.ceil(_.slideCount / _.options.slidesToScroll),
1045
+ tabControlIndexes = _.getNavigableIndexes().filter(function (val) {
1046
+ return (val >= 0) && (val < _.slideCount);
1047
+ });
1048
+ _.$slides.add(_.$slideTrack.find('.slick-cloned')).attr({
1049
+ 'aria-hidden': 'true',
1050
+ 'tabindex': '-1'
1051
+ }).find('a, input, button, select').attr({
1052
+ 'tabindex': '-1'
1053
+ });
1054
+ if (_.$dots !== null) {
1055
+ _.$slides.not(_.$slideTrack.find('.slick-cloned')).each(function (i) {
1056
+ var slideControlIndex = tabControlIndexes.indexOf(i);
1057
+ $(this).attr({
1058
+ 'role': 'tabpanel',
1059
+ 'id': 'slick-slide' + _.instanceUid + i,
1060
+ 'tabindex': -1
1061
+ });
1062
+ if (slideControlIndex !== -1) {
1063
+ var ariaButtonControl = 'slick-slide-control' + _.instanceUid + slideControlIndex
1064
+ if ($('#' + ariaButtonControl).length) {
1065
+ $(this).attr({
1066
+ 'aria-describedby': ariaButtonControl
1067
+ });
1068
+ }
1069
+ }
1070
+ });
1071
+ _.$dots.attr('role', 'tablist').find('li').each(function (i) {
1072
+ var mappedSlideIndex = tabControlIndexes[i];
1073
+ $(this).attr({
1074
+ 'role': 'presentation'
1075
+ });
1076
+ $(this).find('button').first().attr({
1077
+ 'role': 'tab',
1078
+ 'id': 'slick-slide-control' + _.instanceUid + i,
1079
+ 'aria-controls': 'slick-slide' + _.instanceUid + mappedSlideIndex,
1080
+ 'aria-label': (i + 1) + ' of ' + numDotGroups,
1081
+ 'aria-selected': null,
1082
+ 'tabindex': '-1'
1083
+ });
1084
+ }).eq(_.currentSlide).find('button').attr({
1085
+ 'aria-selected': 'true',
1086
+ 'tabindex': '0'
1087
+ }).end();
1088
+ }
1089
+ for (var i = _.currentSlide, max = i + _.options.slidesToShow; i < max; i++) {
1090
+ if (_.options.focusOnChange) {
1091
+ _.$slides.eq(i).attr({
1092
+ 'tabindex': '0'
1093
+ });
1094
+ } else {
1095
+ _.$slides.eq(i).removeAttr('tabindex');
1096
+ }
1097
+ }
1098
+ _.activateADA();
1099
+ };
1100
+
1101
+ Slick.prototype.initArrowEvents = function () {
1102
+ var _ = this;
1103
+ if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
1104
+ _.$prevArrow
1105
+ .off('click.slick')
1106
+ .on('click.slick', {
1107
+ message: 'previous'
1108
+ }, _.changeSlide);
1109
+ _.$nextArrow
1110
+ .off('click.slick')
1111
+ .on('click.slick', {
1112
+ message: 'next'
1113
+ }, _.changeSlide);
1114
+ if (_.options.accessibility === true) {
1115
+ _.$prevArrow.on('keydown.slick', _.keyHandler);
1116
+ _.$nextArrow.on('keydown.slick', _.keyHandler);
1117
+ }
1118
+ }
1119
+ };
1120
+
1121
+ Slick.prototype.initDotEvents = function () {
1122
+ var _ = this;
1123
+ if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
1124
+ $('li', _.$dots).on('click.slick', {
1125
+ message: 'index'
1126
+ }, _.changeSlide);
1127
+ if (_.options.accessibility === true) {
1128
+ _.$dots.on('keydown.slick', _.keyHandler);
1129
+ }
1130
+ }
1131
+ if (_.options.dots === true && _.options.pauseOnDotsHover === true && _.slideCount > _.options.slidesToShow) {
1132
+ $('li', _.$dots)
1133
+ .on('mouseenter.slick', $.proxy(_.interrupt, _, true))
1134
+ .on('mouseleave.slick', $.proxy(_.interrupt, _, false));
1135
+ }
1136
+ };
1137
+
1138
+ Slick.prototype.initSlideEvents = function () {
1139
+ var _ = this;
1140
+ if (_.options.pauseOnHover) {
1141
+ _.$list.on('mouseenter.slick', $.proxy(_.interrupt, _, true));
1142
+ _.$list.on('mouseleave.slick', $.proxy(_.interrupt, _, false));
1143
+ }
1144
+ };
1145
+
1146
+ Slick.prototype.initializeEvents = function () {
1147
+ var _ = this;
1148
+ _.initArrowEvents();
1149
+ _.initDotEvents();
1150
+ _.initSlideEvents();
1151
+ _.$list.on('touchstart.slick mousedown.slick', {
1152
+ action: 'start'
1153
+ }, _.swipeHandler);
1154
+ _.$list.on('touchmove.slick mousemove.slick', {
1155
+ action: 'move'
1156
+ }, _.swipeHandler);
1157
+ _.$list.on('touchend.slick mouseup.slick', {
1158
+ action: 'end'
1159
+ }, _.swipeHandler);
1160
+ _.$list.on('touchcancel.slick mouseleave.slick', {
1161
+ action: 'end'
1162
+ }, _.swipeHandler);
1163
+ _.$list.on('click.slick', _.clickHandler);
1164
+ $(document).on(_.visibilityChange, $.proxy(_.visibility, _));
1165
+ if (_.options.accessibility === true) {
1166
+ _.$list.on('keydown.slick', _.keyHandler);
1167
+ }
1168
+ if (_.options.focusOnSelect === true) {
1169
+ $(_.$slideTrack).children().on('click.slick', _.selectHandler);
1170
+ }
1171
+ $(window).on('orientationchange.slick.slick-' + _.instanceUid, $.proxy(_.orientationChange, _));
1172
+ $(window).on('resize.slick.slick-' + _.instanceUid, $.proxy(_.resize, _));
1173
+ $('[draggable!=true]', _.$slideTrack).on('dragstart', _.preventDefault);
1174
+ $(window).on('load.slick.slick-' + _.instanceUid, _.setPosition);
1175
+ $(_.setPosition);
1176
+ };
1177
+
1178
+ Slick.prototype.initUI = function () {
1179
+ var _ = this;
1180
+ if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
1181
+ _.$prevArrow.show();
1182
+ _.$nextArrow.show();
1183
+ }
1184
+ if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
1185
+ _.$dots.show();
1186
+ }
1187
+ };
1188
+
1189
+ Slick.prototype.keyHandler = function (event) {
1190
+ var _ = this;
1191
+ //Dont slide if the cursor is inside the form fields and arrow keys are pressed
1192
+ if (!event.target.tagName.match('TEXTAREA|INPUT|SELECT')) {
1193
+ if (event.keyCode === 37 && _.options.accessibility === true) {
1194
+ _.changeSlide({
1195
+ data: {
1196
+ message: _.options.rtl === true ? 'next' : 'previous'
1197
+ }
1198
+ });
1199
+ } else if (event.keyCode === 39 && _.options.accessibility === true) {
1200
+ _.changeSlide({
1201
+ data: {
1202
+ message: _.options.rtl === true ? 'previous' : 'next'
1203
+ }
1204
+ });
1205
+ }
1206
+ }
1207
+ };
1208
+
1209
+ Slick.prototype.lazyLoad = function () {
1210
+ var _ = this,
1211
+ loadRange, cloneRange, rangeStart, rangeEnd;
1212
+
1213
+ function loadImages(imagesScope) {
1214
+ $('img[data-lazy]', imagesScope).each(function () {
1215
+ var image = $(this),
1216
+ imageSource = $(this).attr('data-lazy'),
1217
+ imageSrcSet = $(this).attr('data-srcset'),
1218
+ imageSizes = $(this).attr('data-sizes') || _.$slider.attr('data-sizes'),
1219
+ imageToLoad = document.createElement('img');
1220
+ imageToLoad.onload = function () {
1221
+ image
1222
+ .animate({
1223
+ opacity: 0
1224
+ }, 100, function () {
1225
+ if (imageSrcSet) {
1226
+ image
1227
+ .attr('srcset', imageSrcSet);
1228
+ if (imageSizes) {
1229
+ image
1230
+ .attr('sizes', imageSizes);
1231
+ }
1232
+ }
1233
+ image
1234
+ .attr('src', imageSource)
1235
+ .animate({
1236
+ opacity: 1
1237
+ }, 200, function () {
1238
+ image
1239
+ .removeAttr('data-lazy data-srcset data-sizes')
1240
+ .removeClass('slick-loading');
1241
+ });
1242
+ _.$slider.trigger('lazyLoaded', [_, image, imageSource]);
1243
+ });
1244
+ };
1245
+ imageToLoad.onerror = function () {
1246
+ image
1247
+ .removeAttr('data-lazy')
1248
+ .removeClass('slick-loading')
1249
+ .addClass('slick-lazyload-error');
1250
+ _.$slider.trigger('lazyLoadError', [_, image, imageSource]);
1251
+ };
1252
+ imageToLoad.src = imageSource;
1253
+ });
1254
+ }
1255
+ if (_.options.centerMode === true) {
1256
+ if (_.options.infinite === true) {
1257
+ rangeStart = _.currentSlide + (_.options.slidesToShow / 2 + 1);
1258
+ rangeEnd = rangeStart + _.options.slidesToShow + 2;
1259
+ } else {
1260
+ rangeStart = Math.max(0, _.currentSlide - (_.options.slidesToShow / 2 + 1));
1261
+ rangeEnd = 2 + (_.options.slidesToShow / 2 + 1) + _.currentSlide;
1262
+ }
1263
+ } else {
1264
+ rangeStart = _.options.infinite ? _.options.slidesToShow + _.currentSlide : _.currentSlide;
1265
+ rangeEnd = Math.ceil(rangeStart + _.options.slidesToShow);
1266
+ if (_.options.fade === true) {
1267
+ if (rangeStart > 0) rangeStart--;
1268
+ if (rangeEnd <= _.slideCount) rangeEnd++;
1269
+ }
1270
+ }
1271
+ loadRange = _.$slider.find('.slick-slide').slice(rangeStart, rangeEnd);
1272
+ if (_.options.lazyLoad === 'anticipated') {
1273
+ var prevSlide = rangeStart - 1,
1274
+ nextSlide = rangeEnd,
1275
+ $slides = _.$slider.find('.slick-slide');
1276
+ for (var i = 0; i < _.options.slidesToScroll; i++) {
1277
+ if (prevSlide < 0) prevSlide = _.slideCount - 1;
1278
+ loadRange = loadRange.add($slides.eq(prevSlide));
1279
+ loadRange = loadRange.add($slides.eq(nextSlide));
1280
+ prevSlide--;
1281
+ nextSlide++;
1282
+ }
1283
+ }
1284
+ loadImages(loadRange);
1285
+ if (_.slideCount <= _.options.slidesToShow) {
1286
+ cloneRange = _.$slider.find('.slick-slide');
1287
+ loadImages(cloneRange);
1288
+ } else
1289
+ if (_.currentSlide >= _.slideCount - _.options.slidesToShow) {
1290
+ cloneRange = _.$slider.find('.slick-cloned').slice(0, _.options.slidesToShow);
1291
+ loadImages(cloneRange);
1292
+ } else if (_.currentSlide === 0) {
1293
+ cloneRange = _.$slider.find('.slick-cloned').slice(_.options.slidesToShow * -1);
1294
+ loadImages(cloneRange);
1295
+ }
1296
+ };
1297
+
1298
+ Slick.prototype.loadSlider = function () {
1299
+ var _ = this;
1300
+ _.setPosition();
1301
+ _.$slideTrack.css({
1302
+ opacity: 1
1303
+ });
1304
+ _.$slider.removeClass('slick-loading');
1305
+ _.initUI();
1306
+ if (_.options.lazyLoad === 'progressive') {
1307
+ _.progressiveLazyLoad();
1308
+ }
1309
+ };
1310
+
1311
+ Slick.prototype.next = Slick.prototype.slickNext = function () {
1312
+ var _ = this;
1313
+ _.changeSlide({
1314
+ data: {
1315
+ message: 'next'
1316
+ }
1317
+ });
1318
+ };
1319
+
1320
+ Slick.prototype.orientationChange = function () {
1321
+ var _ = this;
1322
+ _.checkResponsive();
1323
+ _.setPosition();
1324
+ };
1325
+
1326
+ Slick.prototype.pause = Slick.prototype.slickPause = function () {
1327
+ var _ = this;
1328
+ _.autoPlayClear();
1329
+ _.paused = true;
1330
+ };
1331
+
1332
+ Slick.prototype.play = Slick.prototype.slickPlay = function () {
1333
+ var _ = this;
1334
+ _.autoPlay();
1335
+ _.options.autoplay = true;
1336
+ _.paused = false;
1337
+ _.focussed = false;
1338
+ _.interrupted = false;
1339
+ };
1340
+
1341
+ Slick.prototype.postSlide = function (index) {
1342
+ var _ = this;
1343
+ if (!_.unslicked) {
1344
+ _.$slider.trigger('afterChange', [_, index]);
1345
+ _.animating = false;
1346
+ if (_.slideCount > _.options.slidesToShow) {
1347
+ _.setPosition();
1348
+ }
1349
+ _.swipeLeft = null;
1350
+ if (_.options.autoplay) {
1351
+ _.autoPlay();
1352
+ }
1353
+ if (_.options.accessibility === true) {
1354
+ _.initADA();
1355
+ if (_.options.focusOnChange) {
1356
+ var $currentSlide = $(_.$slides.get(_.currentSlide));
1357
+ $currentSlide.attr('tabindex', 0).focus();
1358
+ }
1359
+ }
1360
+ }
1361
+ };
1362
+
1363
+ Slick.prototype.prev = Slick.prototype.slickPrev = function () {
1364
+ var _ = this;
1365
+ _.changeSlide({
1366
+ data: {
1367
+ message: 'previous'
1368
+ }
1369
+ });
1370
+ };
1371
+
1372
+ Slick.prototype.preventDefault = function (event) {
1373
+ event.preventDefault();
1374
+ };
1375
+
1376
+ Slick.prototype.progressiveLazyLoad = function (tryCount) {
1377
+ tryCount = tryCount || 1;
1378
+ var _ = this,
1379
+ $imgsToLoad = $('img[data-lazy]', _.$slider),
1380
+ image,
1381
+ imageSource,
1382
+ imageSrcSet,
1383
+ imageSizes,
1384
+ imageToLoad;
1385
+ if ($imgsToLoad.length) {
1386
+ image = $imgsToLoad.first();
1387
+ imageSource = image.attr('data-lazy');
1388
+ imageSrcSet = image.attr('data-srcset');
1389
+ imageSizes = image.attr('data-sizes') || _.$slider.attr('data-sizes');
1390
+ imageToLoad = document.createElement('img');
1391
+ imageToLoad.onload = function () {
1392
+ if (imageSrcSet) {
1393
+ image
1394
+ .attr('srcset', imageSrcSet);
1395
+ if (imageSizes) {
1396
+ image
1397
+ .attr('sizes', imageSizes);
1398
+ }
1399
+ }
1400
+ image
1401
+ .attr('src', imageSource)
1402
+ .removeAttr('data-lazy data-srcset data-sizes')
1403
+ .removeClass('slick-loading');
1404
+ if (_.options.adaptiveHeight === true) {
1405
+ _.setPosition();
1406
+ }
1407
+ _.$slider.trigger('lazyLoaded', [_, image, imageSource]);
1408
+ _.progressiveLazyLoad();
1409
+ };
1410
+ imageToLoad.onerror = function () {
1411
+ if (tryCount < 3) {
1412
+ /**
1413
+ * try to load the image 3 times,
1414
+ * leave a slight delay so we don't get
1415
+ * servers blocking the request.
1416
+ */
1417
+ setTimeout(function () {
1418
+ _.progressiveLazyLoad(tryCount + 1);
1419
+ }, 500);
1420
+ } else {
1421
+ image
1422
+ .removeAttr('data-lazy')
1423
+ .removeClass('slick-loading')
1424
+ .addClass('slick-lazyload-error');
1425
+ _.$slider.trigger('lazyLoadError', [_, image, imageSource]);
1426
+ _.progressiveLazyLoad();
1427
+ }
1428
+ };
1429
+ imageToLoad.src = imageSource;
1430
+ } else {
1431
+ _.$slider.trigger('allImagesLoaded', [_]);
1432
+ }
1433
+ };
1434
+
1435
+ Slick.prototype.refresh = function (initializing) {
1436
+ var _ = this,
1437
+ currentSlide, lastVisibleIndex;
1438
+ lastVisibleIndex = _.slideCount - _.options.slidesToShow;
1439
+ // in non-infinite sliders, we don't want to go past the
1440
+ // last visible index.
1441
+ if (!_.options.infinite && (_.currentSlide > lastVisibleIndex)) {
1442
+ _.currentSlide = lastVisibleIndex;
1443
+ }
1444
+ // if less slides than to show, go to start.
1445
+ if (_.slideCount <= _.options.slidesToShow) {
1446
+ _.currentSlide = 0;
1447
+ }
1448
+ currentSlide = _.currentSlide;
1449
+ _.destroy(true);
1450
+ $.extend(_, _.initials, {
1451
+ currentSlide: currentSlide
1452
+ });
1453
+ _.init();
1454
+ if (!initializing) {
1455
+ _.changeSlide({
1456
+ data: {
1457
+ message: 'index',
1458
+ index: currentSlide
1459
+ }
1460
+ }, false);
1461
+ }
1462
+ };
1463
+
1464
+ Slick.prototype.registerBreakpoints = function () {
1465
+ var _ = this,
1466
+ breakpoint, currentBreakpoint, l,
1467
+ responsiveSettings = _.options.responsive || null;
1468
+ if ($.type(responsiveSettings) === 'array' && responsiveSettings.length) {
1469
+ _.respondTo = _.options.respondTo || 'window';
1470
+ for (breakpoint in responsiveSettings) {
1471
+ l = _.breakpoints.length - 1;
1472
+ if (responsiveSettings.hasOwnProperty(breakpoint)) {
1473
+ currentBreakpoint = responsiveSettings[breakpoint].breakpoint;
1474
+ // loop through the breakpoints and cut out any existing
1475
+ // ones with the same breakpoint number, we don't want dupes.
1476
+ while (l >= 0) {
1477
+ if (_.breakpoints[l] && _.breakpoints[l] === currentBreakpoint) {
1478
+ _.breakpoints.splice(l, 1);
1479
+ }
1480
+ l--;
1481
+ }
1482
+ _.breakpoints.push(currentBreakpoint);
1483
+ _.breakpointSettings[currentBreakpoint] = responsiveSettings[breakpoint].settings;
1484
+ }
1485
+ }
1486
+ _.breakpoints.sort(function (a, b) {
1487
+ return (_.options.mobileFirst) ? a - b : b - a;
1488
+ });
1489
+ }
1490
+ };
1491
+
1492
+ Slick.prototype.reinit = function () {
1493
+ var _ = this;
1494
+ _.$slides =
1495
+ _.$slideTrack
1496
+ .children(_.options.slide)
1497
+ .addClass('slick-slide');
1498
+ _.slideCount = _.$slides.length;
1499
+ if (_.currentSlide >= _.slideCount && _.currentSlide !== 0) {
1500
+ _.currentSlide = _.currentSlide - _.options.slidesToScroll;
1501
+ }
1502
+ if (_.slideCount <= _.options.slidesToShow) {
1503
+ _.currentSlide = 0;
1504
+ }
1505
+ _.registerBreakpoints();
1506
+ _.setProps();
1507
+ _.setupInfinite();
1508
+ _.buildArrows();
1509
+ _.updateArrows();
1510
+ _.initArrowEvents();
1511
+ _.buildDots();
1512
+ _.updateDots();
1513
+ _.initDotEvents();
1514
+ _.cleanUpSlideEvents();
1515
+ _.initSlideEvents();
1516
+ _.checkResponsive(false, true);
1517
+ if (_.options.focusOnSelect === true) {
1518
+ $(_.$slideTrack).children().on('click.slick', _.selectHandler);
1519
+ }
1520
+ _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);
1521
+ _.setPosition();
1522
+ _.focusHandler();
1523
+ _.paused = !_.options.autoplay;
1524
+ _.autoPlay();
1525
+ _.$slider.trigger('reInit', [_]);
1526
+ };
1527
+
1528
+ Slick.prototype.resize = function () {
1529
+ var _ = this;
1530
+ if ($(window).width() !== _.windowWidth) {
1531
+ clearTimeout(_.windowDelay);
1532
+ _.windowDelay = window.setTimeout(function () {
1533
+ _.windowWidth = $(window).width();
1534
+ _.checkResponsive();
1535
+ if (!_.unslicked) {
1536
+ _.setPosition();
1537
+ }
1538
+ }, 50);
1539
+ }
1540
+ };
1541
+
1542
+ Slick.prototype.removeSlide = Slick.prototype.slickRemove = function (index, removeBefore, removeAll) {
1543
+ var _ = this;
1544
+ if (typeof (index) === 'boolean') {
1545
+ removeBefore = index;
1546
+ index = removeBefore === true ? 0 : _.slideCount - 1;
1547
+ } else {
1548
+ index = removeBefore === true ? --index : index;
1549
+ }
1550
+ if (_.slideCount < 1 || index < 0 || index > _.slideCount - 1) {
1551
+ return false;
1552
+ }
1553
+ _.unload();
1554
+ if (removeAll === true) {
1555
+ _.$slideTrack.children().remove();
1556
+ } else {
1557
+ _.$slideTrack.children(this.options.slide).eq(index).remove();
1558
+ }
1559
+ _.$slides = _.$slideTrack.children(this.options.slide);
1560
+ _.$slideTrack.children(this.options.slide).detach();
1561
+ _.$slideTrack.append(_.$slides);
1562
+ _.$slidesCache = _.$slides;
1563
+ _.reinit();
1564
+ };
1565
+
1566
+ Slick.prototype.setCSS = function (position) {
1567
+ var _ = this,
1568
+ positionProps = {},
1569
+ x, y;
1570
+ if (_.options.rtl === true) {
1571
+ position = -position;
1572
+ }
1573
+ x = _.positionProp == 'left' ? Math.ceil(position) + 'px' : '0px';
1574
+ y = _.positionProp == 'top' ? Math.ceil(position) + 'px' : '0px';
1575
+ positionProps[_.positionProp] = position;
1576
+ if (_.transformsEnabled === false) {
1577
+ _.$slideTrack.css(positionProps);
1578
+ } else {
1579
+ positionProps = {};
1580
+ if (_.cssTransitions === false) {
1581
+ positionProps[_.animType] = 'translate(' + x + ', ' + y + ')';
1582
+ _.$slideTrack.css(positionProps);
1583
+ } else {
1584
+ positionProps[_.animType] = 'translate3d(' + x + ', ' + y + ', 0px)';
1585
+ _.$slideTrack.css(positionProps);
1586
+ }
1587
+ }
1588
+ };
1589
+
1590
+ Slick.prototype.setDimensions = function () {
1591
+ var _ = this;
1592
+ if (_.options.vertical === false) {
1593
+ if (_.options.centerMode === true) {
1594
+ _.$list.css({
1595
+ padding: ('0px ' + _.options.centerPadding)
1596
+ });
1597
+ }
1598
+ } else {
1599
+ _.$list.height(_.$slides.first().outerHeight(true) * _.options.slidesToShow);
1600
+ if (_.options.centerMode === true) {
1601
+ _.$list.css({
1602
+ padding: (_.options.centerPadding + ' 0px')
1603
+ });
1604
+ }
1605
+ }
1606
+ _.listWidth = _.$list.width();
1607
+ _.listHeight = _.$list.height();
1608
+ if (_.options.vertical === false && _.options.variableWidth === false) {
1609
+ _.slideWidth = Math.ceil(_.listWidth / _.options.slidesToShow);
1610
+ _.$slideTrack.width(Math.ceil((_.slideWidth * _.$slideTrack.children('.slick-slide').length)));
1611
+ } else if (_.options.variableWidth === true) {
1612
+ _.$slideTrack.width(5000 * _.slideCount);
1613
+ } else {
1614
+ _.slideWidth = Math.ceil(_.listWidth);
1615
+ _.$slideTrack.height(Math.ceil((_.$slides.first().outerHeight(true) * _.$slideTrack.children('.slick-slide').length)));
1616
+ }
1617
+ var offset = _.$slides.first().outerWidth(true) - _.$slides.first().width();
1618
+ if (_.options.variableWidth === false) _.$slideTrack.children('.slick-slide').width(_.slideWidth - offset);
1619
+ };
1620
+
1621
+ Slick.prototype.setFade = function () {
1622
+ var _ = this,
1623
+ targetLeft;
1624
+ _.$slides.each(function (index, element) {
1625
+ targetLeft = (_.slideWidth * index) * -1;
1626
+ if (_.options.rtl === true) {
1627
+ $(element).css({
1628
+ position: 'relative',
1629
+ right: targetLeft,
1630
+ top: 0,
1631
+ zIndex: _.options.zIndex - 2,
1632
+ opacity: 0
1633
+ });
1634
+ } else {
1635
+ $(element).css({
1636
+ position: 'relative',
1637
+ left: targetLeft,
1638
+ top: 0,
1639
+ zIndex: _.options.zIndex - 2,
1640
+ opacity: 0
1641
+ });
1642
+ }
1643
+ });
1644
+ _.$slides.eq(_.currentSlide).css({
1645
+ zIndex: _.options.zIndex - 1,
1646
+ opacity: 1
1647
+ });
1648
+ };
1649
+
1650
+ Slick.prototype.setHeight = function () {
1651
+ var _ = this;
1652
+ if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {
1653
+ var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
1654
+ _.$list.css('height', targetHeight);
1655
+ }
1656
+ };
1657
+
1658
+ Slick.prototype.setOption =
1659
+ Slick.prototype.slickSetOption = function () {
1660
+ /**
1661
+ * accepts arguments in format of:
1662
+ *
1663
+ * - for changing a single option's value:
1664
+ * .slick("setOption", option, value, refresh )
1665
+ *
1666
+ * - for changing a set of responsive options:
1667
+ * .slick("setOption", 'responsive', [{}, ...], refresh )
1668
+ *
1669
+ * - for updating multiple values at once (not responsive)
1670
+ * .slick("setOption", { 'option': value, ... }, refresh )
1671
+ */
1672
+ var _ = this,
1673
+ l, item, option, value, refresh = false,
1674
+ type;
1675
+ if ($.type(arguments[0]) === 'object') {
1676
+ option = arguments[0];
1677
+ refresh = arguments[1];
1678
+ type = 'multiple';
1679
+ } else if ($.type(arguments[0]) === 'string') {
1680
+ option = arguments[0];
1681
+ value = arguments[1];
1682
+ refresh = arguments[2];
1683
+ if (arguments[0] === 'responsive' && $.type(arguments[1]) === 'array') {
1684
+ type = 'responsive';
1685
+ } else if (typeof arguments[1] !== 'undefined') {
1686
+ type = 'single';
1687
+ }
1688
+ }
1689
+ if (type === 'single') {
1690
+ _.options[option] = value;
1691
+ } else if (type === 'multiple') {
1692
+ $.each(option, function (opt, val) {
1693
+ _.options[opt] = val;
1694
+ });
1695
+ } else if (type === 'responsive') {
1696
+ for (item in value) {
1697
+ if ($.type(_.options.responsive) !== 'array') {
1698
+ _.options.responsive = [value[item]];
1699
+ } else {
1700
+ l = _.options.responsive.length - 1;
1701
+ // loop through the responsive object and splice out duplicates.
1702
+ while (l >= 0) {
1703
+ if (_.options.responsive[l].breakpoint === value[item].breakpoint) {
1704
+ _.options.responsive.splice(l, 1);
1705
+ }
1706
+ l--;
1707
+ }
1708
+ _.options.responsive.push(value[item]);
1709
+ }
1710
+ }
1711
+ }
1712
+ if (refresh) {
1713
+ _.unload();
1714
+ _.reinit();
1715
+ }
1716
+ };
1717
+
1718
+ Slick.prototype.setPosition = function () {
1719
+ var _ = this;
1720
+ _.setDimensions();
1721
+ _.setHeight();
1722
+ if (_.options.fade === false) {
1723
+ _.setCSS(_.getLeft(_.currentSlide));
1724
+ } else {
1725
+ _.setFade();
1726
+ }
1727
+ _.$slider.trigger('setPosition', [_]);
1728
+ };
1729
+
1730
+ Slick.prototype.setProps = function () {
1731
+ var _ = this,
1732
+ bodyStyle = document.body.style;
1733
+ _.positionProp = _.options.vertical === true ? 'top' : 'left';
1734
+ if (_.positionProp === 'top') {
1735
+ _.$slider.addClass('slick-vertical');
1736
+ } else {
1737
+ _.$slider.removeClass('slick-vertical');
1738
+ }
1739
+ if (bodyStyle.WebkitTransition !== undefined ||
1740
+ bodyStyle.MozTransition !== undefined ||
1741
+ bodyStyle.msTransition !== undefined) {
1742
+ if (_.options.useCSS === true) {
1743
+ _.cssTransitions = true;
1744
+ }
1745
+ }
1746
+ if (_.options.fade) {
1747
+ if (typeof _.options.zIndex === 'number') {
1748
+ if (_.options.zIndex < 3) {
1749
+ _.options.zIndex = 3;
1750
+ }
1751
+ } else {
1752
+ _.options.zIndex = _.defaults.zIndex;
1753
+ }
1754
+ }
1755
+ if (bodyStyle.OTransform !== undefined) {
1756
+ _.animType = 'OTransform';
1757
+ _.transformType = '-o-transform';
1758
+ _.transitionType = 'OTransition';
1759
+ if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;
1760
+ }
1761
+ if (bodyStyle.MozTransform !== undefined) {
1762
+ _.animType = 'MozTransform';
1763
+ _.transformType = '-moz-transform';
1764
+ _.transitionType = 'MozTransition';
1765
+ if (bodyStyle.perspectiveProperty === undefined && bodyStyle.MozPerspective === undefined) _.animType = false;
1766
+ }
1767
+ if (bodyStyle.webkitTransform !== undefined) {
1768
+ _.animType = 'webkitTransform';
1769
+ _.transformType = '-webkit-transform';
1770
+ _.transitionType = 'webkitTransition';
1771
+ if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;
1772
+ }
1773
+ if (bodyStyle.msTransform !== undefined) {
1774
+ _.animType = 'msTransform';
1775
+ _.transformType = '-ms-transform';
1776
+ _.transitionType = 'msTransition';
1777
+ if (bodyStyle.msTransform === undefined) _.animType = false;
1778
+ }
1779
+ if (bodyStyle.transform !== undefined && _.animType !== false) {
1780
+ _.animType = 'transform';
1781
+ _.transformType = 'transform';
1782
+ _.transitionType = 'transition';
1783
+ }
1784
+ _.transformsEnabled = _.options.useTransform && (_.animType !== null && _.animType !== false);
1785
+ };
1786
+
1787
+ Slick.prototype.setSlideClasses = function (index) {
1788
+ var _ = this,
1789
+ centerOffset, allSlides, indexOffset, remainder;
1790
+ allSlides = _.$slider
1791
+ .find('.slick-slide')
1792
+ .removeClass('slick-active slick-center slick-current')
1793
+ .attr('aria-hidden', 'true');
1794
+ _.$slides
1795
+ .eq(index)
1796
+ .addClass('slick-current');
1797
+ if (_.options.centerMode === true) {
1798
+ var evenCoef = _.options.slidesToShow % 2 === 0 ? 1 : 0;
1799
+ centerOffset = Math.floor(_.options.slidesToShow / 2);
1800
+ if (_.options.infinite === true) {
1801
+ if (index >= centerOffset && index <= (_.slideCount - 1) - centerOffset) {
1802
+ _.$slides
1803
+ .slice(index - centerOffset + evenCoef, index + centerOffset + 1)
1804
+ .addClass('slick-active')
1805
+ .attr('aria-hidden', 'false');
1806
+ } else {
1807
+ indexOffset = _.options.slidesToShow + index;
1808
+ allSlides
1809
+ .slice(indexOffset - centerOffset + 1 + evenCoef, indexOffset + centerOffset + 2)
1810
+ .addClass('slick-active')
1811
+ .attr('aria-hidden', 'false');
1812
+ }
1813
+ if (index === 0) {
1814
+ allSlides
1815
+ .eq(_.options.slidesToShow + _.slideCount + 1)
1816
+ .addClass('slick-center');
1817
+ } else if (index === _.slideCount - 1) {
1818
+ allSlides
1819
+ .eq(_.options.slidesToShow)
1820
+ .addClass('slick-center');
1821
+ }
1822
+ }
1823
+ _.$slides
1824
+ .eq(index)
1825
+ .addClass('slick-center');
1826
+ } else {
1827
+ if (index >= 0 && index <= (_.slideCount - _.options.slidesToShow)) {
1828
+ _.$slides
1829
+ .slice(index, index + _.options.slidesToShow)
1830
+ .addClass('slick-active')
1831
+ .attr('aria-hidden', 'false');
1832
+ } else if (allSlides.length <= _.options.slidesToShow) {
1833
+ allSlides
1834
+ .addClass('slick-active')
1835
+ .attr('aria-hidden', 'false');
1836
+ } else {
1837
+ remainder = _.slideCount % _.options.slidesToShow;
1838
+ indexOffset = _.options.infinite === true ? _.options.slidesToShow + index : index;
1839
+ if (_.options.slidesToShow == _.options.slidesToScroll && (_.slideCount - index) < _.options.slidesToShow) {
1840
+ allSlides
1841
+ .slice(indexOffset - (_.options.slidesToShow - remainder), indexOffset + remainder)
1842
+ .addClass('slick-active')
1843
+ .attr('aria-hidden', 'false');
1844
+ } else {
1845
+ allSlides
1846
+ .slice(indexOffset, indexOffset + _.options.slidesToShow)
1847
+ .addClass('slick-active')
1848
+ .attr('aria-hidden', 'false');
1849
+ }
1850
+ }
1851
+ }
1852
+ if (_.options.lazyLoad === 'ondemand' || _.options.lazyLoad === 'anticipated') {
1853
+ _.lazyLoad();
1854
+ }
1855
+ };
1856
+
1857
+ Slick.prototype.setupInfinite = function () {
1858
+ var _ = this,
1859
+ i, slideIndex, infiniteCount;
1860
+ if (_.options.fade === true) {
1861
+ _.options.centerMode = false;
1862
+ }
1863
+ if (_.options.infinite === true && _.options.fade === false) {
1864
+ slideIndex = null;
1865
+ if (_.slideCount > _.options.slidesToShow) {
1866
+ if (_.options.centerMode === true) {
1867
+ infiniteCount = _.options.slidesToShow + 1;
1868
+ } else {
1869
+ infiniteCount = _.options.slidesToShow;
1870
+ }
1871
+ for (i = _.slideCount; i > (_.slideCount -
1872
+ infiniteCount); i -= 1) {
1873
+ slideIndex = i - 1;
1874
+ $(_.$slides[slideIndex]).clone(true).attr('id', '')
1875
+ .attr('data-slick-index', slideIndex - _.slideCount)
1876
+ .prependTo(_.$slideTrack).addClass('slick-cloned');
1877
+ }
1878
+ for (i = 0; i < infiniteCount + _.slideCount; i += 1) {
1879
+ slideIndex = i;
1880
+ $(_.$slides[slideIndex]).clone(true).attr('id', '')
1881
+ .attr('data-slick-index', slideIndex + _.slideCount)
1882
+ .appendTo(_.$slideTrack).addClass('slick-cloned');
1883
+ }
1884
+ _.$slideTrack.find('.slick-cloned').find('[id]').each(function () {
1885
+ $(this).attr('id', '');
1886
+ });
1887
+ }
1888
+ }
1889
+ };
1890
+
1891
+ Slick.prototype.interrupt = function (toggle) {
1892
+ var _ = this;
1893
+ if (!toggle) {
1894
+ _.autoPlay();
1895
+ }
1896
+ _.interrupted = toggle;
1897
+ };
1898
+
1899
+ Slick.prototype.selectHandler = function (event) {
1900
+ var _ = this;
1901
+ var targetElement =
1902
+ $(event.target).is('.slick-slide') ?
1903
+ $(event.target) :
1904
+ $(event.target).parents('.slick-slide');
1905
+ var index = parseInt(targetElement.attr('data-slick-index'));
1906
+ if (!index) index = 0;
1907
+ if (_.slideCount <= _.options.slidesToShow) {
1908
+ _.slideHandler(index, false, true);
1909
+ return;
1910
+ }
1911
+ _.slideHandler(index);
1912
+ };
1913
+
1914
+ Slick.prototype.slideHandler = function (index, sync, dontAnimate) {
1915
+ var targetSlide, animSlide, oldSlide, slideLeft, targetLeft = null,
1916
+ _ = this,
1917
+ navTarget;
1918
+ sync = sync || false;
1919
+ if (_.animating === true && _.options.waitForAnimate === true) {
1920
+ return;
1921
+ }
1922
+ if (_.options.fade === true && _.currentSlide === index) {
1923
+ return;
1924
+ }
1925
+ if (sync === false) {
1926
+ _.asNavFor(index);
1927
+ }
1928
+ targetSlide = index;
1929
+ targetLeft = _.getLeft(targetSlide);
1930
+ slideLeft = _.getLeft(_.currentSlide);
1931
+ _.currentLeft = _.swipeLeft === null ? slideLeft : _.swipeLeft;
1932
+ if (_.options.infinite === false && _.options.centerMode === false && (index < 0 || index > _.getDotCount() * _.options.slidesToScroll)) {
1933
+ if (_.options.fade === false) {
1934
+ targetSlide = _.currentSlide;
1935
+ if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {
1936
+ _.animateSlide(slideLeft, function () {
1937
+ _.postSlide(targetSlide);
1938
+ });
1939
+ } else {
1940
+ _.postSlide(targetSlide);
1941
+ }
1942
+ }
1943
+ return;
1944
+ } else if (_.options.infinite === false && _.options.centerMode === true && (index < 0 || index > (_.slideCount - _.options.slidesToScroll))) {
1945
+ if (_.options.fade === false) {
1946
+ targetSlide = _.currentSlide;
1947
+ if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {
1948
+ _.animateSlide(slideLeft, function () {
1949
+ _.postSlide(targetSlide);
1950
+ });
1951
+ } else {
1952
+ _.postSlide(targetSlide);
1953
+ }
1954
+ }
1955
+ return;
1956
+ }
1957
+ if (_.options.autoplay) {
1958
+ clearInterval(_.autoPlayTimer);
1959
+ }
1960
+ if (targetSlide < 0) {
1961
+ if (_.slideCount % _.options.slidesToScroll !== 0) {
1962
+ animSlide = _.slideCount - (_.slideCount % _.options.slidesToScroll);
1963
+ } else {
1964
+ animSlide = _.slideCount + targetSlide;
1965
+ }
1966
+ } else if (targetSlide >= _.slideCount) {
1967
+ if (_.slideCount % _.options.slidesToScroll !== 0) {
1968
+ animSlide = 0;
1969
+ } else {
1970
+ animSlide = targetSlide - _.slideCount;
1971
+ }
1972
+ } else {
1973
+ animSlide = targetSlide;
1974
+ }
1975
+ _.animating = true;
1976
+ _.$slider.trigger('beforeChange', [_, _.currentSlide, animSlide]);
1977
+ oldSlide = _.currentSlide;
1978
+ _.currentSlide = animSlide;
1979
+ _.setSlideClasses(_.currentSlide);
1980
+ if (_.options.asNavFor) {
1981
+ navTarget = _.getNavTarget();
1982
+ navTarget = navTarget.slick('getSlick');
1983
+ if (navTarget.slideCount <= navTarget.options.slidesToShow) {
1984
+ navTarget.setSlideClasses(_.currentSlide);
1985
+ }
1986
+ }
1987
+ _.updateDots();
1988
+ _.updateArrows();
1989
+ if (_.options.fade === true) {
1990
+ if (dontAnimate !== true) {
1991
+ _.fadeSlideOut(oldSlide);
1992
+ _.fadeSlide(animSlide, function () {
1993
+ _.postSlide(animSlide);
1994
+ });
1995
+ } else {
1996
+ _.postSlide(animSlide);
1997
+ }
1998
+ _.animateHeight();
1999
+ return;
2000
+ }
2001
+ if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {
2002
+ _.animateSlide(targetLeft, function () {
2003
+ _.postSlide(animSlide);
2004
+ });
2005
+ } else {
2006
+ _.postSlide(animSlide);
2007
+ }
2008
+ };
2009
+
2010
+ Slick.prototype.startLoad = function () {
2011
+ var _ = this;
2012
+ if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
2013
+ _.$prevArrow.hide();
2014
+ _.$nextArrow.hide();
2015
+ }
2016
+ if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
2017
+ _.$dots.hide();
2018
+ }
2019
+ _.$slider.addClass('slick-loading');
2020
+ };
2021
+
2022
+ Slick.prototype.swipeDirection = function () {
2023
+ var xDist, yDist, r, swipeAngle, _ = this;
2024
+ xDist = _.touchObject.startX - _.touchObject.curX;
2025
+ yDist = _.touchObject.startY - _.touchObject.curY;
2026
+ r = Math.atan2(yDist, xDist);
2027
+ swipeAngle = Math.round(r * 180 / Math.PI);
2028
+ if (swipeAngle < 0) {
2029
+ swipeAngle = 360 - Math.abs(swipeAngle);
2030
+ }
2031
+ if ((swipeAngle <= 45) && (swipeAngle >= 0)) {
2032
+ return (_.options.rtl === false ? 'left' : 'right');
2033
+ }
2034
+ if ((swipeAngle <= 360) && (swipeAngle >= 315)) {
2035
+ return (_.options.rtl === false ? 'left' : 'right');
2036
+ }
2037
+ if ((swipeAngle >= 135) && (swipeAngle <= 225)) {
2038
+ return (_.options.rtl === false ? 'right' : 'left');
2039
+ }
2040
+ if (_.options.verticalSwiping === true) {
2041
+ if ((swipeAngle >= 35) && (swipeAngle <= 135)) {
2042
+ return 'down';
2043
+ } else {
2044
+ return 'up';
2045
+ }
2046
+ }
2047
+ return 'vertical';
2048
+ };
2049
+
2050
+ Slick.prototype.swipeEnd = function (event) {
2051
+ var _ = this,
2052
+ slideCount,
2053
+ direction;
2054
+ _.dragging = false;
2055
+ _.swiping = false;
2056
+ if (_.scrolling) {
2057
+ _.scrolling = false;
2058
+ return false;
2059
+ }
2060
+ _.interrupted = false;
2061
+ _.shouldClick = (_.touchObject.swipeLength > 10) ? false : true;
2062
+ if (_.touchObject.curX === undefined) {
2063
+ return false;
2064
+ }
2065
+ if (_.touchObject.edgeHit === true) {
2066
+ _.$slider.trigger('edge', [_, _.swipeDirection()]);
2067
+ }
2068
+ if (_.touchObject.swipeLength >= _.touchObject.minSwipe) {
2069
+ direction = _.swipeDirection();
2070
+ switch (direction) {
2071
+ case 'left':
2072
+ case 'down':
2073
+ slideCount =
2074
+ _.options.swipeToSlide ?
2075
+ _.checkNavigable(_.currentSlide + _.getSlideCount()) :
2076
+ _.currentSlide + _.getSlideCount();
2077
+ _.currentDirection = 0;
2078
+ break;
2079
+ case 'right':
2080
+ case 'up':
2081
+ slideCount =
2082
+ _.options.swipeToSlide ?
2083
+ _.checkNavigable(_.currentSlide - _.getSlideCount()) :
2084
+ _.currentSlide - _.getSlideCount();
2085
+ _.currentDirection = 1;
2086
+ break;
2087
+ default:
2088
+ }
2089
+ if (direction != 'vertical') {
2090
+ _.slideHandler(slideCount);
2091
+ _.touchObject = {};
2092
+ _.$slider.trigger('swipe', [_, direction]);
2093
+ }
2094
+ } else {
2095
+ if (_.touchObject.startX !== _.touchObject.curX) {
2096
+ _.slideHandler(_.currentSlide);
2097
+ _.touchObject = {};
2098
+ }
2099
+ }
2100
+ };
2101
+
2102
+ Slick.prototype.swipeHandler = function (event) {
2103
+ var _ = this;
2104
+ if ((_.options.swipe === false) || ('ontouchend' in document && _.options.swipe === false)) {
2105
+ return;
2106
+ } else if (_.options.draggable === false && event.type.indexOf('mouse') !== -1) {
2107
+ return;
2108
+ }
2109
+ _.touchObject.fingerCount = event.originalEvent && event.originalEvent.touches !== undefined ?
2110
+ event.originalEvent.touches.length : 1;
2111
+ _.touchObject.minSwipe = _.listWidth / _.options
2112
+ .touchThreshold;
2113
+ if (_.options.verticalSwiping === true) {
2114
+ _.touchObject.minSwipe = _.listHeight / _.options
2115
+ .touchThreshold;
2116
+ }
2117
+ switch (event.data.action) {
2118
+ case 'start':
2119
+ _.swipeStart(event);
2120
+ break;
2121
+ case 'move':
2122
+ _.swipeMove(event);
2123
+ break;
2124
+ case 'end':
2125
+ _.swipeEnd(event);
2126
+ break;
2127
+ }
2128
+ };
2129
+
2130
+ Slick.prototype.swipeMove = function (event) {
2131
+ var _ = this,
2132
+ edgeWasHit = false,
2133
+ curLeft, swipeDirection, swipeLength, positionOffset, touches, verticalSwipeLength;
2134
+ touches = event.originalEvent !== undefined ? event.originalEvent.touches : null;
2135
+ if (!_.dragging || _.scrolling || touches && touches.length !== 1) {
2136
+ return false;
2137
+ }
2138
+ curLeft = _.getLeft(_.currentSlide);
2139
+ _.touchObject.curX = touches !== undefined ? touches[0].pageX : event.clientX;
2140
+ _.touchObject.curY = touches !== undefined ? touches[0].pageY : event.clientY;
2141
+ _.touchObject.swipeLength = Math.round(Math.sqrt(
2142
+ Math.pow(_.touchObject.curX - _.touchObject.startX, 2)));
2143
+ verticalSwipeLength = Math.round(Math.sqrt(
2144
+ Math.pow(_.touchObject.curY - _.touchObject.startY, 2)));
2145
+ if (!_.options.verticalSwiping && !_.swiping && verticalSwipeLength > 4) {
2146
+ _.scrolling = true;
2147
+ return false;
2148
+ }
2149
+ if (_.options.verticalSwiping === true) {
2150
+ _.touchObject.swipeLength = verticalSwipeLength;
2151
+ }
2152
+ swipeDirection = _.swipeDirection();
2153
+ if (event.originalEvent !== undefined && _.touchObject.swipeLength > 4) {
2154
+ _.swiping = true;
2155
+ event.preventDefault();
2156
+ }
2157
+ positionOffset = (_.options.rtl === false ? 1 : -1) * (_.touchObject.curX > _.touchObject.startX ? 1 : -1);
2158
+ if (_.options.verticalSwiping === true) {
2159
+ positionOffset = _.touchObject.curY > _.touchObject.startY ? 1 : -1;
2160
+ }
2161
+ swipeLength = _.touchObject.swipeLength;
2162
+ _.touchObject.edgeHit = false;
2163
+ if (_.options.infinite === false) {
2164
+ if ((_.currentSlide === 0 && swipeDirection === 'right') || (_.currentSlide >= _.getDotCount() && swipeDirection === 'left')) {
2165
+ swipeLength = _.touchObject.swipeLength * _.options.edgeFriction;
2166
+ _.touchObject.edgeHit = true;
2167
+ }
2168
+ }
2169
+ if (_.options.vertical === false) {
2170
+ _.swipeLeft = curLeft + swipeLength * positionOffset;
2171
+ } else {
2172
+ _.swipeLeft = curLeft + (swipeLength * (_.$list.height() / _.listWidth)) * positionOffset;
2173
+ }
2174
+ if (_.options.verticalSwiping === true) {
2175
+ _.swipeLeft = curLeft + swipeLength * positionOffset;
2176
+ }
2177
+ if (_.options.fade === true || _.options.touchMove === false) {
2178
+ return false;
2179
+ }
2180
+ if (_.animating === true) {
2181
+ _.swipeLeft = null;
2182
+ return false;
2183
+ }
2184
+ _.setCSS(_.swipeLeft);
2185
+ };
2186
+
2187
+ Slick.prototype.swipeStart = function (event) {
2188
+ var _ = this,
2189
+ touches;
2190
+ _.interrupted = true;
2191
+ if (_.touchObject.fingerCount !== 1 || _.slideCount <= _.options.slidesToShow) {
2192
+ _.touchObject = {};
2193
+ return false;
2194
+ }
2195
+ if (event.originalEvent !== undefined && event.originalEvent.touches !== undefined) {
2196
+ touches = event.originalEvent.touches[0];
2197
+ }
2198
+ _.touchObject.startX = _.touchObject.curX = touches !== undefined ? touches.pageX : event.clientX;
2199
+ _.touchObject.startY = _.touchObject.curY = touches !== undefined ? touches.pageY : event.clientY;
2200
+ _.dragging = true;
2201
+ };
2202
+
2203
+ Slick.prototype.unfilterSlides = Slick.prototype.slickUnfilter = function () {
2204
+ var _ = this;
2205
+ if (_.$slidesCache !== null) {
2206
+ _.unload();
2207
+ _.$slideTrack.children(this.options.slide).detach();
2208
+ _.$slidesCache.appendTo(_.$slideTrack);
2209
+ _.reinit();
2210
+ }
2211
+ };
2212
+
2213
+ Slick.prototype.unload = function () {
2214
+ var _ = this;
2215
+ $('.slick-cloned', _.$slider).remove();
2216
+ if (_.$dots) {
2217
+ _.$dots.remove();
2218
+ }
2219
+ if (_.$prevArrow && _.htmlExpr.test(_.options.prevArrow)) {
2220
+ _.$prevArrow.remove();
2221
+ }
2222
+ if (_.$nextArrow && _.htmlExpr.test(_.options.nextArrow)) {
2223
+ _.$nextArrow.remove();
2224
+ }
2225
+ _.$slides
2226
+ .removeClass('slick-slide slick-active slick-visible slick-current')
2227
+ .attr('aria-hidden', 'true')
2228
+ .css('width', '');
2229
+ };
2230
+
2231
+ Slick.prototype.unslick = function (fromBreakpoint) {
2232
+ var _ = this;
2233
+ _.$slider.trigger('unslick', [_, fromBreakpoint]);
2234
+ _.destroy();
2235
+ };
2236
+
2237
+ Slick.prototype.updateArrows = function () {
2238
+ var _ = this,
2239
+ centerOffset;
2240
+ centerOffset = Math.floor(_.options.slidesToShow / 2);
2241
+ if (_.options.arrows === true &&
2242
+ _.slideCount > _.options.slidesToShow &&
2243
+ !_.options.infinite) {
2244
+ _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2245
+ _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2246
+ if (_.currentSlide === 0) {
2247
+ _.$prevArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
2248
+ _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2249
+ } else if (_.currentSlide >= _.slideCount - _.options.slidesToShow && _.options.centerMode === false) {
2250
+ _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
2251
+ _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2252
+ } else if (_.currentSlide >= _.slideCount - 1 && _.options.centerMode === true) {
2253
+ _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
2254
+ _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2255
+ }
2256
+ }
2257
+ };
2258
+
2259
+ Slick.prototype.updateDots = function () {
2260
+ var _ = this;
2261
+ if (_.$dots !== null) {
2262
+ _.$dots
2263
+ .find('li')
2264
+ .removeClass('slick-active')
2265
+ .end();
2266
+ _.$dots
2267
+ .find('li')
2268
+ .eq(Math.floor(_.currentSlide / _.options.slidesToScroll))
2269
+ .addClass('slick-active');
2270
+ }
2271
+ };
2272
+
2273
+ Slick.prototype.visibility = function () {
2274
+ var _ = this;
2275
+ if (_.options.autoplay) {
2276
+ if (document[_.hidden]) {
2277
+ _.interrupted = true;
2278
+ } else {
2279
+ _.interrupted = false;
2280
+ }
2281
+ }
2282
+ };
2283
+ $.fn.slick = function () {
2284
+ var _ = this,
2285
+ opt = arguments[0],
2286
+ args = Array.prototype.slice.call(arguments, 1),
2287
+ l = _.length,
2288
+ i,
2289
+ ret;
2290
+ for (i = 0; i < l; i++) {
2291
+ if (typeof opt == 'object' || typeof opt == 'undefined')
2292
+ _[i].slick = new Slick(_[i], opt);
2293
+ else
2294
+ ret = _[i].slick[opt].apply(_[i].slick, args);
2295
+ if (typeof ret != 'undefined') return ret;
2296
+ }
2297
+ return _;
2298
+ };
2299
+
2300
+ }));