pwb 1.0.0 → 1.1.1

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