hatchy 0.0.5.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (500) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +20 -0
  4. data/app/assets/javascripts/hatchy/admin.js +36 -0
  5. data/app/assets/javascripts/hatchy/admin/dashboard.js +26 -0
  6. data/app/assets/javascripts/hatchy/application.js +88 -0
  7. data/app/assets/javascripts/hatchy/bootstrap/affix.js +162 -0
  8. data/app/assets/javascripts/hatchy/bootstrap/alert.js +94 -0
  9. data/app/assets/javascripts/hatchy/bootstrap/bootstrap.js +12 -0
  10. data/app/assets/javascripts/hatchy/bootstrap/button.js +120 -0
  11. data/app/assets/javascripts/hatchy/bootstrap/carousel.js +237 -0
  12. data/app/assets/javascripts/hatchy/bootstrap/collapse.js +211 -0
  13. data/app/assets/javascripts/hatchy/bootstrap/dropdown.js +165 -0
  14. data/app/assets/javascripts/hatchy/bootstrap/modal.js +337 -0
  15. data/app/assets/javascripts/hatchy/bootstrap/popover.js +108 -0
  16. data/app/assets/javascripts/hatchy/bootstrap/scrollspy.js +172 -0
  17. data/app/assets/javascripts/hatchy/bootstrap/tab.js +155 -0
  18. data/app/assets/javascripts/hatchy/bootstrap/tooltip.js +514 -0
  19. data/app/assets/javascripts/hatchy/bootstrap/transition.js +59 -0
  20. data/app/assets/javascripts/hatchy/dashboard.js +24 -0
  21. data/app/assets/javascripts/hatchy/hatchy.js +8 -0
  22. data/app/assets/javascripts/hatchy/home.js +17 -0
  23. data/app/assets/javascripts/hatchy/libraries/jquery.countdown.js +206 -0
  24. data/app/assets/javascripts/hatchy/libraries/owl.carousel.js +1512 -0
  25. data/app/assets/javascripts/hatchy/libraries/pnotify.custom.js +1421 -0
  26. data/app/assets/javascripts/hatchy/libraries/summernote.js +7300 -0
  27. data/app/assets/javascripts/hatchy/projects/contributions/new_contribution.js +57 -0
  28. data/app/assets/javascripts/hatchy/projects/edit.js +59 -0
  29. data/app/assets/javascripts/hatchy/projects/show.js +16 -0
  30. data/app/assets/javascripts/hatchy/users/edit.js +29 -0
  31. data/app/assets/stylesheets/hatchy/admin.scss.erb +68 -0
  32. data/app/assets/stylesheets/hatchy/base.scss +195 -0
  33. data/app/assets/stylesheets/hatchy/bootstrap/_alerts.scss +73 -0
  34. data/app/assets/stylesheets/hatchy/bootstrap/_badges.scss +68 -0
  35. data/app/assets/stylesheets/hatchy/bootstrap/_breadcrumbs.scss +26 -0
  36. data/app/assets/stylesheets/hatchy/bootstrap/_button-groups.scss +244 -0
  37. data/app/assets/stylesheets/hatchy/bootstrap/_buttons.scss +168 -0
  38. data/app/assets/stylesheets/hatchy/bootstrap/_carousel.scss +269 -0
  39. data/app/assets/stylesheets/hatchy/bootstrap/_close.scss +36 -0
  40. data/app/assets/stylesheets/hatchy/bootstrap/_code.scss +69 -0
  41. data/app/assets/stylesheets/hatchy/bootstrap/_component-animations.scss +37 -0
  42. data/app/assets/stylesheets/hatchy/bootstrap/_dropdowns.scss +216 -0
  43. data/app/assets/stylesheets/hatchy/bootstrap/_forms.scss +611 -0
  44. data/app/assets/stylesheets/hatchy/bootstrap/_glyphicons.scss +307 -0
  45. data/app/assets/stylesheets/hatchy/bootstrap/_grid.scss +84 -0
  46. data/app/assets/stylesheets/hatchy/bootstrap/_input-groups.scss +167 -0
  47. data/app/assets/stylesheets/hatchy/bootstrap/_jumbotron.scss +52 -0
  48. data/app/assets/stylesheets/hatchy/bootstrap/_labels.scss +66 -0
  49. data/app/assets/stylesheets/hatchy/bootstrap/_list-group.scss +130 -0
  50. data/app/assets/stylesheets/hatchy/bootstrap/_media.scss +66 -0
  51. data/app/assets/stylesheets/hatchy/bootstrap/_mixins.scss +40 -0
  52. data/app/assets/stylesheets/hatchy/bootstrap/_modals.scss +150 -0
  53. data/app/assets/stylesheets/hatchy/bootstrap/_navbar.scss +662 -0
  54. data/app/assets/stylesheets/hatchy/bootstrap/_navs.scss +242 -0
  55. data/app/assets/stylesheets/hatchy/bootstrap/_normalize.scss +424 -0
  56. data/app/assets/stylesheets/hatchy/bootstrap/_pager.scss +54 -0
  57. data/app/assets/stylesheets/hatchy/bootstrap/_pagination.scss +89 -0
  58. data/app/assets/stylesheets/hatchy/bootstrap/_panels.scss +271 -0
  59. data/app/assets/stylesheets/hatchy/bootstrap/_popovers.scss +131 -0
  60. data/app/assets/stylesheets/hatchy/bootstrap/_print.scss +101 -0
  61. data/app/assets/stylesheets/hatchy/bootstrap/_progress-bars.scss +87 -0
  62. data/app/assets/stylesheets/hatchy/bootstrap/_responsive-embed.scss +35 -0
  63. data/app/assets/stylesheets/hatchy/bootstrap/_responsive-utilities.scss +179 -0
  64. data/app/assets/stylesheets/hatchy/bootstrap/_scaffolding.scss +161 -0
  65. data/app/assets/stylesheets/hatchy/bootstrap/_tables.scss +234 -0
  66. data/app/assets/stylesheets/hatchy/bootstrap/_theme.scss +291 -0
  67. data/app/assets/stylesheets/hatchy/bootstrap/_thumbnails.scss +38 -0
  68. data/app/assets/stylesheets/hatchy/bootstrap/_tooltip.scss +101 -0
  69. data/app/assets/stylesheets/hatchy/bootstrap/_type.scss +298 -0
  70. data/app/assets/stylesheets/hatchy/bootstrap/_utilities.scss +55 -0
  71. data/app/assets/stylesheets/hatchy/bootstrap/_variables.scss +872 -0
  72. data/app/assets/stylesheets/hatchy/bootstrap/_wells.scss +29 -0
  73. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_alerts.scss +14 -0
  74. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_background-variant.scss +12 -0
  75. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_border-radius.scss +18 -0
  76. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_buttons.scss +68 -0
  77. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_center-block.scss +7 -0
  78. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_clearfix.scss +22 -0
  79. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_forms.scss +88 -0
  80. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_gradients.scss +58 -0
  81. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_grid-framework.scss +81 -0
  82. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_grid.scss +122 -0
  83. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_hide-text.scss +21 -0
  84. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_image.scss +33 -0
  85. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_labels.scss +12 -0
  86. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_list-group.scss +32 -0
  87. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_nav-divider.scss +10 -0
  88. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_nav-vertical-align.scss +9 -0
  89. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_opacity.scss +8 -0
  90. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_pagination.scss +24 -0
  91. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_panels.scss +24 -0
  92. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_progress-bar.scss +10 -0
  93. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_reset-filter.scss +8 -0
  94. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_reset-text.scss +18 -0
  95. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_resize.scss +6 -0
  96. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_responsive-visibility.scss +21 -0
  97. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_size.scss +10 -0
  98. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_tab-focus.scss +9 -0
  99. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_table-row.scss +28 -0
  100. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_text-emphasis.scss +12 -0
  101. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_text-overflow.scss +8 -0
  102. data/app/assets/stylesheets/hatchy/bootstrap/mixins/_vendor-prefixes.scss +222 -0
  103. data/app/assets/stylesheets/hatchy/hatchy.scss.erb +72 -0
  104. data/app/assets/stylesheets/hatchy/libraries/owl/owl.carousel.css +71 -0
  105. data/app/assets/stylesheets/hatchy/libraries/owl/owl.theme.css +79 -0
  106. data/app/assets/stylesheets/hatchy/libraries/pnotify.custom.css +178 -0
  107. data/app/assets/stylesheets/hatchy/libraries/summernote.css +1 -0
  108. data/app/assets/stylesheets/hatchy/themes/default/_variables.scss +0 -0
  109. data/app/assets/stylesheets/hatchy/themes/default/mixins.scss +0 -0
  110. data/app/assets/stylesheets/hatchy/themes/default/theme.scss +0 -0
  111. data/app/controllers/hatchy/admin/announcements_controller.rb +61 -0
  112. data/app/controllers/hatchy/admin/application_controller.rb +30 -0
  113. data/app/controllers/hatchy/admin/banks_controller.rb +61 -0
  114. data/app/controllers/hatchy/admin/categories_controller.rb +61 -0
  115. data/app/controllers/hatchy/admin/countries_controller.rb +61 -0
  116. data/app/controllers/hatchy/admin/dashboard_controller.rb +15 -0
  117. data/app/controllers/hatchy/announcements_controller.rb +11 -0
  118. data/app/controllers/hatchy/application_controller.rb +15 -0
  119. data/app/controllers/hatchy/dashboard_controller.rb +8 -0
  120. data/app/controllers/hatchy/home_controller.rb +20 -0
  121. data/app/controllers/hatchy/projects/contributions_controller.rb +60 -0
  122. data/app/controllers/hatchy/projects_controller.rb +99 -0
  123. data/app/controllers/hatchy/users_controller.rb +47 -0
  124. data/app/helpers/hatchy/application_helper.rb +4 -0
  125. data/app/helpers/hatchy/form_helper.rb +30 -0
  126. data/app/helpers/hatchy/layout_helper.rb +43 -0
  127. data/app/models/concerns/hatchy/project_states.rb +173 -0
  128. data/app/models/hatchy/announcement.rb +9 -0
  129. data/app/models/hatchy/bank.rb +6 -0
  130. data/app/models/hatchy/bank_account.rb +7 -0
  131. data/app/models/hatchy/category.rb +16 -0
  132. data/app/models/hatchy/category_follower.rb +7 -0
  133. data/app/models/hatchy/contribution.rb +45 -0
  134. data/app/models/hatchy/country.rb +5 -0
  135. data/app/models/hatchy/project.rb +46 -0
  136. data/app/models/hatchy/project_account.rb +10 -0
  137. data/app/models/hatchy/reward.rb +8 -0
  138. data/app/models/hatchy/user.rb +25 -0
  139. data/app/policies/hatchy/admin/application_policy.rb +7 -0
  140. data/app/policies/hatchy/application_policy.rb +57 -0
  141. data/app/policies/hatchy/project_policy.rb +19 -0
  142. data/app/policies/hatchy/user_policy.rb +16 -0
  143. data/app/uploaders/hatchy/project_uploader.rb +10 -0
  144. data/app/uploaders/hatchy/user_uploader.rb +9 -0
  145. data/app/views/devise/registrations/new.html.haml +23 -0
  146. data/app/views/devise/sessions/new.html.haml +26 -0
  147. data/app/views/devise/shared/_links.html.erb +25 -0
  148. data/app/views/hatchy/admin/announcements/edit.html.haml +10 -0
  149. data/app/views/hatchy/admin/announcements/index.html.haml +10 -0
  150. data/app/views/hatchy/admin/announcements/new.html.haml +10 -0
  151. data/app/views/hatchy/admin/announcements/show.html.haml +13 -0
  152. data/app/views/hatchy/admin/banks/edit.html.haml +10 -0
  153. data/app/views/hatchy/admin/banks/index.html.haml +10 -0
  154. data/app/views/hatchy/admin/banks/new.html.haml +10 -0
  155. data/app/views/hatchy/admin/banks/show.html.haml +13 -0
  156. data/app/views/hatchy/admin/categories/edit.html.haml +10 -0
  157. data/app/views/hatchy/admin/categories/index.html.haml +10 -0
  158. data/app/views/hatchy/admin/categories/new.html.haml +10 -0
  159. data/app/views/hatchy/admin/categories/show.html.haml +13 -0
  160. data/app/views/hatchy/admin/countries/edit.html.haml +10 -0
  161. data/app/views/hatchy/admin/countries/index.html.haml +10 -0
  162. data/app/views/hatchy/admin/countries/new.html.haml +10 -0
  163. data/app/views/hatchy/admin/countries/show.html.haml +13 -0
  164. data/app/views/hatchy/admin/dashboard/_last_updated_table.html.haml +32 -0
  165. data/app/views/hatchy/admin/dashboard/index.html.haml +14 -0
  166. data/app/views/hatchy/admin/shared/_admin_navtabs.html.haml +17 -0
  167. data/app/views/hatchy/admin/shared/_admin_sidebar.html.haml +38 -0
  168. data/app/views/hatchy/admin/shared/_model_form.html.haml +22 -0
  169. data/app/views/hatchy/admin/shared/_model_index.html.haml +31 -0
  170. data/app/views/hatchy/admin/shared/_model_show.html.haml +10 -0
  171. data/app/views/hatchy/dashboard/_projects_you_support.html.haml +8 -0
  172. data/app/views/hatchy/dashboard/_your_projects.html.haml +10 -0
  173. data/app/views/hatchy/dashboard/index.html.haml +8 -0
  174. data/app/views/hatchy/home/_recommended_projects.html.haml +7 -0
  175. data/app/views/hatchy/home/explore.html.haml +29 -0
  176. data/app/views/hatchy/home/index.html.haml +4 -0
  177. data/app/views/hatchy/projects/_reward_fields.html.haml +21 -0
  178. data/app/views/hatchy/projects/contributions/_billing.html.haml +40 -0
  179. data/app/views/hatchy/projects/contributions/_form.html.haml +7 -0
  180. data/app/views/hatchy/projects/contributions/_payment.html.haml +18 -0
  181. data/app/views/hatchy/projects/contributions/_rewards.html.haml +19 -0
  182. data/app/views/hatchy/projects/contributions/new.html.haml +7 -0
  183. data/app/views/hatchy/projects/edit.html.haml +18 -0
  184. data/app/views/hatchy/projects/edit/_account.html.haml +60 -0
  185. data/app/views/hatchy/projects/edit/_analysis_success.html.haml +12 -0
  186. data/app/views/hatchy/projects/edit/_basic.html.haml +24 -0
  187. data/app/views/hatchy/projects/edit/_budget.html.haml +16 -0
  188. data/app/views/hatchy/projects/edit/_description.html.haml +18 -0
  189. data/app/views/hatchy/projects/edit/_goal.html.haml +25 -0
  190. data/app/views/hatchy/projects/edit/_project_card.html.haml +24 -0
  191. data/app/views/hatchy/projects/edit/_project_sidebar.html.haml +67 -0
  192. data/app/views/hatchy/projects/edit/_rewards.html.haml +16 -0
  193. data/app/views/hatchy/projects/edit/_video.html.haml +17 -0
  194. data/app/views/hatchy/projects/new.html.haml +16 -0
  195. data/app/views/hatchy/projects/show.html.haml +63 -0
  196. data/app/views/hatchy/shared/_project.html.haml +29 -0
  197. data/app/views/hatchy/users/edit.html.haml +17 -0
  198. data/app/views/hatchy/users/edit/_about_you.html.haml +37 -0
  199. data/app/views/hatchy/users/edit/_banks_and_cards.html.haml +17 -0
  200. data/app/views/hatchy/users/edit/_data_and_address.html.haml +47 -0
  201. data/app/views/hatchy/users/edit/_notifications.html.haml +16 -0
  202. data/app/views/hatchy/users/show.html.haml +1 -0
  203. data/app/views/layouts/hatchy/_footer.html.haml +1 -0
  204. data/app/views/layouts/hatchy/_navbar.html.haml +32 -0
  205. data/app/views/layouts/hatchy/admin/admin_layout.html.haml +26 -0
  206. data/app/views/layouts/hatchy/application.html.haml +22 -0
  207. data/config/initializers/devise.rb +266 -0
  208. data/config/locales/devise.en.yml +60 -0
  209. data/config/locales/en.yml +146 -0
  210. data/config/routes.rb +54 -0
  211. data/db/countries.txt +252 -0
  212. data/db/migrate/20160111174923_create_hatchy_announcements.rb +10 -0
  213. data/db/migrate/20160111174945_create_hatchy_banks.rb +10 -0
  214. data/db/migrate/20160111175001_create_hatchy_bank_accounts.rb +12 -0
  215. data/db/migrate/20160111175017_create_hatchy_categories.rb +9 -0
  216. data/db/migrate/20160111175037_create_hatchy_contributions.rb +31 -0
  217. data/db/migrate/20160111175055_create_hatchy_countries.rb +14 -0
  218. data/db/migrate/20160111175124_create_hatchy_rewards.rb +14 -0
  219. data/db/migrate/20160111175139_create_hatchy_projects.rb +27 -0
  220. data/db/migrate/20160111175158_create_hatchy_project_accounts.rb +26 -0
  221. data/db/migrate/20160111175249_devise_create_hatchy_users.rb +64 -0
  222. data/db/migrate/20160111181655_create_hatchy_category_followers.rb +10 -0
  223. data/db/seed.rb +43 -0
  224. data/lib/hatchy.rb +24 -0
  225. data/lib/hatchy/country_importer.rb +32 -0
  226. data/lib/hatchy/engine.rb +43 -0
  227. data/lib/hatchy/setup_generator.rb +10 -0
  228. data/lib/hatchy/version.rb +3 -0
  229. data/lib/tasks/hatchy_tasks.rake +18 -0
  230. data/spec/controllers/hatchy/admin/announcements_controller_spec.rb +7 -0
  231. data/spec/controllers/hatchy/admin/application_controller_spec.rb +7 -0
  232. data/spec/controllers/hatchy/admin/banks_controller_spec.rb +7 -0
  233. data/spec/controllers/hatchy/admin/categories_controller_spec.rb +7 -0
  234. data/spec/controllers/hatchy/admin/countries_controller_spec.rb +7 -0
  235. data/spec/controllers/hatchy/admin/dashboard_controller_spec.rb +7 -0
  236. data/spec/controllers/hatchy/announcements_controller_spec.rb +7 -0
  237. data/spec/controllers/hatchy/dashboard_controller_spec.rb +7 -0
  238. data/spec/controllers/hatchy/home_controller_spec.rb +7 -0
  239. data/spec/controllers/hatchy/projects/contributions_controller_spec.rb +7 -0
  240. data/spec/controllers/hatchy/projects_controller_spec.rb +7 -0
  241. data/spec/controllers/hatchy/users_controller_spec.rb +7 -0
  242. data/spec/dummy/README.rdoc +28 -0
  243. data/spec/dummy/Rakefile +6 -0
  244. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  245. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  246. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  247. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  248. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  249. data/spec/dummy/bin/bundle +3 -0
  250. data/spec/dummy/bin/rails +4 -0
  251. data/spec/dummy/bin/rake +4 -0
  252. data/spec/dummy/config.ru +4 -0
  253. data/spec/dummy/config/application.rb +29 -0
  254. data/spec/dummy/config/boot.rb +5 -0
  255. data/spec/dummy/config/database.yml +25 -0
  256. data/spec/dummy/config/environment.rb +5 -0
  257. data/spec/dummy/config/environments/development.rb +37 -0
  258. data/spec/dummy/config/environments/production.rb +78 -0
  259. data/spec/dummy/config/environments/test.rb +39 -0
  260. data/spec/dummy/config/initializers/assets.rb +8 -0
  261. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  262. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  263. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  264. data/spec/dummy/config/initializers/inflections.rb +16 -0
  265. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  266. data/spec/dummy/config/initializers/session_store.rb +3 -0
  267. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  268. data/spec/dummy/config/locales/en.yml +23 -0
  269. data/spec/dummy/config/routes.rb +3 -0
  270. data/spec/dummy/config/secrets.yml +22 -0
  271. data/spec/dummy/db/development.sqlite3 +0 -0
  272. data/spec/dummy/db/schema.rb +207 -0
  273. data/spec/dummy/log/development.log +20486 -0
  274. data/spec/dummy/public/404.html +67 -0
  275. data/spec/dummy/public/422.html +67 -0
  276. data/spec/dummy/public/500.html +66 -0
  277. data/spec/dummy/public/favicon.ico +0 -0
  278. data/spec/dummy/public/uploads/hatchy/project/project_img/1/circus.jpg +0 -0
  279. data/spec/dummy/public/uploads/hatchy/user/profile_img/1/costanza.jpg +0 -0
  280. data/spec/dummy/public/uploads/tmp/1452646096-14084-2585/circus.jpg +0 -0
  281. data/spec/dummy/tmp/cache/assets/development/sass/1ae7eaad6fbe78b7fa091e1570fc6b83fd216672/admin.scss.erbc +0 -0
  282. data/spec/dummy/tmp/cache/assets/development/sass/1ae7eaad6fbe78b7fa091e1570fc6b83fd216672/base.scssc +0 -0
  283. data/spec/dummy/tmp/cache/assets/development/sass/1ae7eaad6fbe78b7fa091e1570fc6b83fd216672/hatchy.scss.erbc +0 -0
  284. data/spec/dummy/tmp/cache/assets/development/sass/4cd2ed92d25169cb17133dbe165a813de108b092/jquery.dataTables.bootstrap.scssc +0 -0
  285. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_alerts.scssc +0 -0
  286. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_badges.scssc +0 -0
  287. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_breadcrumbs.scssc +0 -0
  288. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_button-groups.scssc +0 -0
  289. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_buttons.scssc +0 -0
  290. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_carousel.scssc +0 -0
  291. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_close.scssc +0 -0
  292. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_code.scssc +0 -0
  293. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_component-animations.scssc +0 -0
  294. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_dropdowns.scssc +0 -0
  295. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_forms.scssc +0 -0
  296. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_glyphicons.scssc +0 -0
  297. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_grid.scssc +0 -0
  298. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_input-groups.scssc +0 -0
  299. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_jumbotron.scssc +0 -0
  300. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_labels.scssc +0 -0
  301. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_list-group.scssc +0 -0
  302. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_media.scssc +0 -0
  303. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_mixins.scssc +0 -0
  304. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_modals.scssc +0 -0
  305. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_navbar.scssc +0 -0
  306. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_navs.scssc +0 -0
  307. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_normalize.scssc +0 -0
  308. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_pager.scssc +0 -0
  309. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_pagination.scssc +0 -0
  310. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_panels.scssc +0 -0
  311. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_popovers.scssc +0 -0
  312. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_print.scssc +0 -0
  313. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_progress-bars.scssc +0 -0
  314. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_responsive-embed.scssc +0 -0
  315. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_responsive-utilities.scssc +0 -0
  316. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_scaffolding.scssc +0 -0
  317. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_tables.scssc +0 -0
  318. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_thumbnails.scssc +0 -0
  319. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_tooltip.scssc +0 -0
  320. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_type.scssc +0 -0
  321. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_utilities.scssc +0 -0
  322. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_variables.scssc +0 -0
  323. data/spec/dummy/tmp/cache/assets/development/sass/5abc7faa8d65750bfbc9bb398645121a327e7af5/_wells.scssc +0 -0
  324. data/spec/dummy/tmp/cache/assets/development/sass/7ffb18582ef75d2e0545e59d54b66a8ac063388e/pnotify.custom.cssc +0 -0
  325. data/spec/dummy/tmp/cache/assets/development/sass/7ffb18582ef75d2e0545e59d54b66a8ac063388e/summernote.cssc +0 -0
  326. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_alerts.scssc +0 -0
  327. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_background-variant.scssc +0 -0
  328. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_border-radius.scssc +0 -0
  329. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_buttons.scssc +0 -0
  330. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_center-block.scssc +0 -0
  331. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_clearfix.scssc +0 -0
  332. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_forms.scssc +0 -0
  333. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_gradients.scssc +0 -0
  334. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_grid-framework.scssc +0 -0
  335. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_grid.scssc +0 -0
  336. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_hide-text.scssc +0 -0
  337. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_image.scssc +0 -0
  338. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_labels.scssc +0 -0
  339. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_list-group.scssc +0 -0
  340. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_nav-divider.scssc +0 -0
  341. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_nav-vertical-align.scssc +0 -0
  342. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_opacity.scssc +0 -0
  343. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_pagination.scssc +0 -0
  344. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_panels.scssc +0 -0
  345. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_progress-bar.scssc +0 -0
  346. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_reset-filter.scssc +0 -0
  347. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_reset-text.scssc +0 -0
  348. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_resize.scssc +0 -0
  349. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_responsive-visibility.scssc +0 -0
  350. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_size.scssc +0 -0
  351. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_tab-focus.scssc +0 -0
  352. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_table-row.scssc +0 -0
  353. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_text-emphasis.scssc +0 -0
  354. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_text-overflow.scssc +0 -0
  355. data/spec/dummy/tmp/cache/assets/development/sass/89c944581dfef47a3aa150f4bf2513c369606c18/_vendor-prefixes.scssc +0 -0
  356. data/spec/dummy/tmp/cache/assets/development/sass/9082de7479e9f9037daea1156327806c827ee4de/owl.carousel.cssc +0 -0
  357. data/spec/dummy/tmp/cache/assets/development/sass/9082de7479e9f9037daea1156327806c827ee4de/owl.theme.cssc +0 -0
  358. data/spec/dummy/tmp/cache/assets/development/sass/b098c6707accd416c04158e97686f3c60d18a5db/_variables.scssc +0 -0
  359. data/spec/dummy/tmp/cache/assets/development/sass/b098c6707accd416c04158e97686f3c60d18a5db/mixins.scssc +0 -0
  360. data/spec/dummy/tmp/cache/assets/development/sass/b098c6707accd416c04158e97686f3c60d18a5db/theme.scssc +0 -0
  361. data/spec/dummy/tmp/cache/assets/development/sass/c3eb61727e774fdd7a4c50d47dc9321d8c03465b/jquery.dataTables.scssc +0 -0
  362. data/spec/dummy/tmp/cache/assets/development/sprockets/02acd5c42920e30100d000381f279ed8 +0 -0
  363. data/spec/dummy/tmp/cache/assets/development/sprockets/06f25975c6b8ed69acfdec01011eb7bb +0 -0
  364. data/spec/dummy/tmp/cache/assets/development/sprockets/07683e3cd4c5faddd8150344d7f8ce74 +0 -0
  365. data/spec/dummy/tmp/cache/assets/development/sprockets/0a95350d1433847b3b929478b039b141 +0 -0
  366. data/spec/dummy/tmp/cache/assets/development/sprockets/114e00ddb52ee022a79ed4560ec79aa8 +0 -0
  367. data/spec/dummy/tmp/cache/assets/development/sprockets/14a82abe97db49e4cfcce62837ebd7b7 +0 -0
  368. data/spec/dummy/tmp/cache/assets/development/sprockets/1c6272244847e7e1fa1b127ea9c66bff +0 -0
  369. data/spec/dummy/tmp/cache/assets/development/sprockets/1ec4fb0db29fbf0cbf12c32449a988a9 +0 -0
  370. data/spec/dummy/tmp/cache/assets/development/sprockets/249e03ac9621a71cb1f7023fcc915530 +0 -0
  371. data/spec/dummy/tmp/cache/assets/development/sprockets/2600e70eaad40390bb6639885a589d2a +0 -0
  372. data/spec/dummy/tmp/cache/assets/development/sprockets/285362fd93ab9c40902bc5d499f699d8 +0 -0
  373. data/spec/dummy/tmp/cache/assets/development/sprockets/2da2ceb289ce39df011db7062d0d1327 +0 -0
  374. data/spec/dummy/tmp/cache/assets/development/sprockets/2f6ded1a00bc3b095f5c479acb5b3095 +0 -0
  375. data/spec/dummy/tmp/cache/assets/development/sprockets/3488bebbfac5a929b11e49b7403b4d7b +0 -0
  376. data/spec/dummy/tmp/cache/assets/development/sprockets/384156f28d835fc24585e681a46cd5d6 +0 -0
  377. data/spec/dummy/tmp/cache/assets/development/sprockets/39843c3b06d4de6199e87dc88d498201 +0 -0
  378. data/spec/dummy/tmp/cache/assets/development/sprockets/3be516ed9e4cd248c26d9921d29295ec +0 -0
  379. data/spec/dummy/tmp/cache/assets/development/sprockets/3d215563f8c60683272face7ff3c1038 +0 -0
  380. data/spec/dummy/tmp/cache/assets/development/sprockets/4276e0e173b6cfc29b9d6050eafe4bf3 +0 -0
  381. data/spec/dummy/tmp/cache/assets/development/sprockets/44f26650184cffb7192a3ad7d98a9d31 +0 -0
  382. data/spec/dummy/tmp/cache/assets/development/sprockets/497d2e4a82764eb58b4fbbb5fcb45aa2 +0 -0
  383. data/spec/dummy/tmp/cache/assets/development/sprockets/4c23aeaa35b27e7a0d5d3be8ee53c27d +0 -0
  384. data/spec/dummy/tmp/cache/assets/development/sprockets/4deda75c514a17f1f937821be49df47b +0 -0
  385. data/spec/dummy/tmp/cache/assets/development/sprockets/55f31fb7b5e9a4e1062acfdd4135432d +0 -0
  386. data/spec/dummy/tmp/cache/assets/development/sprockets/56567ed0854d6dd03a2dea900b2e9185 +0 -0
  387. data/spec/dummy/tmp/cache/assets/development/sprockets/567ed12a623140fb5eb2bb0591c94d70 +0 -0
  388. data/spec/dummy/tmp/cache/assets/development/sprockets/58abb036e1d10f9b42c55b22ffc8dfcf +0 -0
  389. data/spec/dummy/tmp/cache/assets/development/sprockets/59e8ebcc9e2bd48aefe3a211ef9e8d87 +0 -0
  390. data/spec/dummy/tmp/cache/assets/development/sprockets/5f7fb90ab1019225755f94778855fb8b +0 -0
  391. data/spec/dummy/tmp/cache/assets/development/sprockets/63c5d34e8d06c12346aa262d42bd0084 +0 -0
  392. data/spec/dummy/tmp/cache/assets/development/sprockets/6444bc0df41903ea509632e5127abcce +0 -0
  393. data/spec/dummy/tmp/cache/assets/development/sprockets/65b6d4456ef6974271b9a59fc6ec876f +0 -0
  394. data/spec/dummy/tmp/cache/assets/development/sprockets/6762976f03563abb88a60dd2284077f3 +0 -0
  395. data/spec/dummy/tmp/cache/assets/development/sprockets/6978b21857c4cf9d2472adf77f935dfb +0 -0
  396. data/spec/dummy/tmp/cache/assets/development/sprockets/6a402a89434119334a77b09c04ed6bd8 +0 -0
  397. data/spec/dummy/tmp/cache/assets/development/sprockets/6aea5e2eeb52372c0f4dacc9b5e17629 +0 -0
  398. data/spec/dummy/tmp/cache/assets/development/sprockets/6b0b3bc73b6ef3a71ff8c1235076f2fe +0 -0
  399. data/spec/dummy/tmp/cache/assets/development/sprockets/6de647c9f4ed6eab93fde5b1d14fa8d1 +0 -0
  400. data/spec/dummy/tmp/cache/assets/development/sprockets/73a3722d728be6cf120c161d1a504b69 +0 -0
  401. data/spec/dummy/tmp/cache/assets/development/sprockets/74616b97e75a1dd4f47c89c3682a5962 +0 -0
  402. data/spec/dummy/tmp/cache/assets/development/sprockets/746472d5488bcdba743ae6905b4d9349 +0 -0
  403. data/spec/dummy/tmp/cache/assets/development/sprockets/75ef1b07ff3b729901c05d7693c459bd +0 -0
  404. data/spec/dummy/tmp/cache/assets/development/sprockets/77caa48be4dcd5f1d6f7791702ddbf3d +0 -0
  405. data/spec/dummy/tmp/cache/assets/development/sprockets/788ef0523fa5e97bb2ce29fbec1acd3d +0 -0
  406. data/spec/dummy/tmp/cache/assets/development/sprockets/79842d87a8281f97fa6e29373248487a +0 -0
  407. data/spec/dummy/tmp/cache/assets/development/sprockets/79ea9ff8872eea03ff917b2710b89875 +0 -0
  408. data/spec/dummy/tmp/cache/assets/development/sprockets/79f81993fad700117165d85ea5e66f80 +0 -0
  409. data/spec/dummy/tmp/cache/assets/development/sprockets/7abdb6b3ba312e2e713372cfa9ed6fd5 +0 -0
  410. data/spec/dummy/tmp/cache/assets/development/sprockets/7c817753da2ab2a8909c5f67ca1055c4 +0 -0
  411. data/spec/dummy/tmp/cache/assets/development/sprockets/8387ec69aabd9e9e2922644385d82285 +0 -0
  412. data/spec/dummy/tmp/cache/assets/development/sprockets/893f7993845d6e4c08115ef3898fbbe8 +0 -0
  413. data/spec/dummy/tmp/cache/assets/development/sprockets/8bfa3d2073d730eeae5930950577808b +0 -0
  414. data/spec/dummy/tmp/cache/assets/development/sprockets/8cec29e6f07e8b1786d5fdacf8a715d2 +0 -0
  415. data/spec/dummy/tmp/cache/assets/development/sprockets/8df3635dafa13e99eda2cd17dd9f4698 +0 -0
  416. data/spec/dummy/tmp/cache/assets/development/sprockets/8e08251664adb259d48c3ff9019fb9cf +0 -0
  417. data/spec/dummy/tmp/cache/assets/development/sprockets/94686c27c680e4e11436a2262aa72b55 +0 -0
  418. data/spec/dummy/tmp/cache/assets/development/sprockets/95fcb48e995eb3d264567f7534ff91ee +0 -0
  419. data/spec/dummy/tmp/cache/assets/development/sprockets/9c9def80980301503b1376146256ae2f +0 -0
  420. data/spec/dummy/tmp/cache/assets/development/sprockets/9ccf973914706eef2efa9e6e7e443818 +0 -0
  421. data/spec/dummy/tmp/cache/assets/development/sprockets/9d495bd3c398e7d7b507902bb8f71eeb +0 -0
  422. data/spec/dummy/tmp/cache/assets/development/sprockets/9d71f6be7960469b0582464c006ac743 +0 -0
  423. data/spec/dummy/tmp/cache/assets/development/sprockets/9e985e9ae12f0a0f409840f8de50ec85 +0 -0
  424. data/spec/dummy/tmp/cache/assets/development/sprockets/a12f906dc9d7f98d0d33c14534624207 +0 -0
  425. data/spec/dummy/tmp/cache/assets/development/sprockets/a3241713158b6d467b4ff8c0e86260ef +0 -0
  426. data/spec/dummy/tmp/cache/assets/development/sprockets/a38526dbff17aaff93ad71c58a5fac91 +0 -0
  427. data/spec/dummy/tmp/cache/assets/development/sprockets/a563347af44f552d9777160b9bc2f20c +0 -0
  428. data/spec/dummy/tmp/cache/assets/development/sprockets/a5895b06bddc58da1693d54571f58872 +0 -0
  429. data/spec/dummy/tmp/cache/assets/development/sprockets/a6233feba34a45a0550ca7e06ebeb8b2 +0 -0
  430. data/spec/dummy/tmp/cache/assets/development/sprockets/a62d4f134ec8d16ef50bbf15a53d6b57 +0 -0
  431. data/spec/dummy/tmp/cache/assets/development/sprockets/a7c825ce172c4a095653ab0022a0e979 +0 -0
  432. data/spec/dummy/tmp/cache/assets/development/sprockets/a9612f700869ef313dbd4fe5e23e9361 +0 -0
  433. data/spec/dummy/tmp/cache/assets/development/sprockets/aa1ba41473bb9ff1a6d2be1f794719df +0 -0
  434. data/spec/dummy/tmp/cache/assets/development/sprockets/aac3bc57fb221351f292885c5ee21933 +0 -0
  435. data/spec/dummy/tmp/cache/assets/development/sprockets/aad666db3c05857182302664d9b8cc45 +0 -0
  436. data/spec/dummy/tmp/cache/assets/development/sprockets/ab0cb44cae19250b9348dcd66b5c04d7 +0 -0
  437. data/spec/dummy/tmp/cache/assets/development/sprockets/ad6173f532233499e71f4e8c28e6020d +0 -0
  438. data/spec/dummy/tmp/cache/assets/development/sprockets/adc78e9799ac1c95dee7e858df40b4a8 +0 -0
  439. data/spec/dummy/tmp/cache/assets/development/sprockets/adf03687ee42f87002445c1096069d64 +0 -0
  440. data/spec/dummy/tmp/cache/assets/development/sprockets/aeb4122ebead9e5e9f6a3625fefbae3d +0 -0
  441. data/spec/dummy/tmp/cache/assets/development/sprockets/af6aade4734b90299fb7b16e4bb3e737 +0 -0
  442. data/spec/dummy/tmp/cache/assets/development/sprockets/b5f65e3f4319656fcd1dd0a3f1b66e6d +0 -0
  443. data/spec/dummy/tmp/cache/assets/development/sprockets/bc3e3f14e046b451d6f962e59bf22e0b +0 -0
  444. data/spec/dummy/tmp/cache/assets/development/sprockets/bd49e8df5191d3e15d2ffa14fc384869 +0 -0
  445. data/spec/dummy/tmp/cache/assets/development/sprockets/c37311498380e52a91dbfc2c96425eac +0 -0
  446. data/spec/dummy/tmp/cache/assets/development/sprockets/c60cce66e260d24218c7365bc3401b3e +0 -0
  447. data/spec/dummy/tmp/cache/assets/development/sprockets/c8ee3b2ea3203e3955b4db6e857d346e +0 -0
  448. data/spec/dummy/tmp/cache/assets/development/sprockets/cb3ac6ce6a98f3a3fd0443fcf846239d +0 -0
  449. data/spec/dummy/tmp/cache/assets/development/sprockets/cb758c86a19ec6b77f88402c95add6d4 +0 -0
  450. data/spec/dummy/tmp/cache/assets/development/sprockets/ccffcd47c7db3a6ab7e8006abc792752 +0 -0
  451. data/spec/dummy/tmp/cache/assets/development/sprockets/ce0edb89508050d6ce80d9c608b0e478 +0 -0
  452. data/spec/dummy/tmp/cache/assets/development/sprockets/ce4654bef988a1eb28b9da8d16fd2f65 +0 -0
  453. data/spec/dummy/tmp/cache/assets/development/sprockets/d1ba02c2518f1bd8954e5fb38a6fdac1 +0 -0
  454. data/spec/dummy/tmp/cache/assets/development/sprockets/d3ef307aaa54f919818b4dfb65b612f3 +0 -0
  455. data/spec/dummy/tmp/cache/assets/development/sprockets/d85c828a1b79af337db6fa07b91d05f2 +0 -0
  456. data/spec/dummy/tmp/cache/assets/development/sprockets/d8e52300c14f8f97b4ad8849301d7433 +0 -0
  457. data/spec/dummy/tmp/cache/assets/development/sprockets/d986eea7fe11b3e20c563cdc38db62ad +0 -0
  458. data/spec/dummy/tmp/cache/assets/development/sprockets/db8fa1b50c3d48a484b7f5949e075a57 +0 -0
  459. data/spec/dummy/tmp/cache/assets/development/sprockets/de74bb6959d07da7cff09d3b7d85cd7e +0 -0
  460. data/spec/dummy/tmp/cache/assets/development/sprockets/e3254e9ef9c6add6c4ef3a9eee700e7d +0 -0
  461. data/spec/dummy/tmp/cache/assets/development/sprockets/e37cf58bfbd61c44c57446c460ccc066 +0 -0
  462. data/spec/dummy/tmp/cache/assets/development/sprockets/e45751ceff92085477ef49e2c7f7622e +0 -0
  463. data/spec/dummy/tmp/cache/assets/development/sprockets/e64d1a313c5d885c637c9224d54c6cbd +0 -0
  464. data/spec/dummy/tmp/cache/assets/development/sprockets/e6c4ac31d3e7740403f6d8d50903e3b2 +0 -0
  465. data/spec/dummy/tmp/cache/assets/development/sprockets/e8272a81b13334e8f911097487b72702 +0 -0
  466. data/spec/dummy/tmp/cache/assets/development/sprockets/e93f2eac197dae7e9c54b2a4e17675f3 +0 -0
  467. data/spec/dummy/tmp/cache/assets/development/sprockets/ecc139ef2345848cb162ee60e48a008c +0 -0
  468. data/spec/dummy/tmp/cache/assets/development/sprockets/ef919881a8fe5b6d173257130a00adbc +0 -0
  469. data/spec/dummy/tmp/cache/assets/development/sprockets/f041bae6ba73e8a34bdf8603dca6f761 +0 -0
  470. data/spec/dummy/tmp/cache/assets/development/sprockets/f469cae685b83bf116813dc134ed0d2b +0 -0
  471. data/spec/dummy/tmp/cache/assets/development/sprockets/f8c026bc9f28742f8499ae687002da88 +0 -0
  472. data/spec/dummy/tmp/cache/assets/development/sprockets/f9677a86b9c39422d1720fbc89ab727f +0 -0
  473. data/spec/dummy/tmp/cache/assets/development/sprockets/fc35cea81cbc344664892761d90af504 +0 -0
  474. data/spec/dummy/tmp/cache/assets/development/sprockets/fe23e9bb24f73b37f78fcf7523f4ddc7 +0 -0
  475. data/spec/dummy/tmp/cache/assets/development/sprockets/fe79efd19de6388221ed374971484cbc +0 -0
  476. data/spec/factories/hatchy_announcements.rb +6 -0
  477. data/spec/factories/hatchy_bank_accounts.rb +6 -0
  478. data/spec/factories/hatchy_banks.rb +6 -0
  479. data/spec/factories/hatchy_categories.rb +6 -0
  480. data/spec/factories/hatchy_category_followers.rb +6 -0
  481. data/spec/factories/hatchy_contributions.rb +6 -0
  482. data/spec/factories/hatchy_countries.rb +6 -0
  483. data/spec/factories/hatchy_project_accounts.rb +6 -0
  484. data/spec/factories/hatchy_projects.rb +6 -0
  485. data/spec/factories/hatchy_rewards.rb +6 -0
  486. data/spec/factories/hatchy_users.rb +6 -0
  487. data/spec/models/hatchy/announcement_spec.rb +7 -0
  488. data/spec/models/hatchy/bank_account_spec.rb +7 -0
  489. data/spec/models/hatchy/bank_spec.rb +7 -0
  490. data/spec/models/hatchy/category_follower_spec.rb +7 -0
  491. data/spec/models/hatchy/category_spec.rb +7 -0
  492. data/spec/models/hatchy/contribution_spec.rb +7 -0
  493. data/spec/models/hatchy/country_spec.rb +7 -0
  494. data/spec/models/hatchy/project_account_spec.rb +7 -0
  495. data/spec/models/hatchy/project_spec.rb +7 -0
  496. data/spec/models/hatchy/reward_spec.rb +7 -0
  497. data/spec/models/hatchy/user_spec.rb +7 -0
  498. data/spec/rails_helper.rb +49 -0
  499. data/spec/spec_helper.rb +94 -0
  500. metadata +1019 -0
@@ -0,0 +1,59 @@
1
+ /* ========================================================================
2
+ * Bootstrap: transition.js v3.3.5
3
+ * http://getbootstrap.com/javascript/#transitions
4
+ * ========================================================================
5
+ * Copyright 2011-2015 Twitter, Inc.
6
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7
+ * ======================================================================== */
8
+
9
+
10
+ +function ($) {
11
+ 'use strict';
12
+
13
+ // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
14
+ // ============================================================
15
+
16
+ function transitionEnd() {
17
+ var el = document.createElement('bootstrap')
18
+
19
+ var transEndEventNames = {
20
+ WebkitTransition : 'webkitTransitionEnd',
21
+ MozTransition : 'transitionend',
22
+ OTransition : 'oTransitionEnd otransitionend',
23
+ transition : 'transitionend'
24
+ }
25
+
26
+ for (var name in transEndEventNames) {
27
+ if (el.style[name] !== undefined) {
28
+ return { end: transEndEventNames[name] }
29
+ }
30
+ }
31
+
32
+ return false // explicit for ie8 ( ._.)
33
+ }
34
+
35
+ // http://blog.alexmaccaw.com/css-transitions
36
+ $.fn.emulateTransitionEnd = function (duration) {
37
+ var called = false
38
+ var $el = this
39
+ $(this).one('bsTransitionEnd', function () { called = true })
40
+ var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
41
+ setTimeout(callback, duration)
42
+ return this
43
+ }
44
+
45
+ $(function () {
46
+ $.support.transition = transitionEnd()
47
+
48
+ if (!$.support.transition) return
49
+
50
+ $.event.special.bsTransitionEnd = {
51
+ bindType: $.support.transition.end,
52
+ delegateType: $.support.transition.end,
53
+ handle: function (e) {
54
+ if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
55
+ }
56
+ }
57
+ })
58
+
59
+ }(jQuery);
@@ -0,0 +1,24 @@
1
+ var dashboard = (function(){
2
+ // Cache DOM
3
+ var $owl_your_projects = $('#owl-your-projects');
4
+ var $owl_projects_you_support = $('#owl-projects-you-support')
5
+
6
+ // Functions
7
+ function projectsCarousel() {
8
+ $owl_your_projects.owlCarousel({
9
+ autoPlay: true,
10
+ stopOnHover: true,
11
+ items: 3
12
+ });
13
+
14
+ $owl_projects_you_support.owlCarousel({
15
+ autoPlay: true,
16
+ stopOnHover: true,
17
+ items: 3
18
+ });
19
+ }
20
+
21
+ projectsCarousel();
22
+
23
+ return {};
24
+ })();
@@ -0,0 +1,8 @@
1
+ //= require 'jquery'
2
+ //= require 'jquery_ujs'
3
+ //= require 'hatchy/bootstrap/bootstrap'
4
+ //= require 'hatchy/libraries/pnotify.custom.js'
5
+ //= require 'hatchy/libraries/owl.carousel.js'
6
+ //= require 'hatchy/libraries/summernote.js'
7
+ //= require 'hatchy/libraries/jquery.countdown.js'
8
+ //= require 'hatchy/application.js'
@@ -0,0 +1,17 @@
1
+ var home = (function(){
2
+ // Cache DOM
3
+ var $owl_projects = $('#owl-projects');
4
+
5
+ // Functions
6
+ function projectsCarousel() {
7
+ $owl_projects.owlCarousel({
8
+ autoPlay: true,
9
+ stopOnHover: true,
10
+ items: 3
11
+ });
12
+ }
13
+
14
+ projectsCarousel();
15
+
16
+ return {};
17
+ })();
@@ -0,0 +1,206 @@
1
+ /*!
2
+ * The Final Countdown for jQuery v2.0.4 (http://hilios.github.io/jQuery.countdown/)
3
+ * Copyright (c) 2014 Edson Hilios
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ * this software and associated documentation files (the "Software"), to deal in
7
+ * the Software without restriction, including without limitation the rights to
8
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ * the Software, and to permit persons to whom the Software is furnished to do so,
10
+ * subject to the following conditions:
11
+ *
12
+ * The above copyright notice and this permission notice shall be included in all
13
+ * copies or substantial portions of the Software.
14
+ *
15
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+ */
22
+ (function(factory) {
23
+ "use strict";
24
+ if (typeof define === "function" && define.amd) {
25
+ define([ "jquery" ], factory);
26
+ } else {
27
+ factory(jQuery);
28
+ }
29
+ })(function($) {
30
+ "use strict";
31
+ var PRECISION = 100;
32
+ var instances = [], matchers = [];
33
+ matchers.push(/^[0-9]*$/.source);
34
+ matchers.push(/([0-9]{1,2}\/){2}[0-9]{4}( [0-9]{1,2}(:[0-9]{2}){2})?/.source);
35
+ matchers.push(/[0-9]{4}([\/\-][0-9]{1,2}){2}( [0-9]{1,2}(:[0-9]{2}){2})?/.source);
36
+ matchers = new RegExp(matchers.join("|"));
37
+ function parseDateString(dateString) {
38
+ if (dateString instanceof Date) {
39
+ return dateString;
40
+ }
41
+ if (String(dateString).match(matchers)) {
42
+ if (String(dateString).match(/^[0-9]*$/)) {
43
+ dateString = Number(dateString);
44
+ }
45
+ if (String(dateString).match(/\-/)) {
46
+ dateString = String(dateString).replace(/\-/g, "/");
47
+ }
48
+ return new Date(dateString);
49
+ } else {
50
+ throw new Error("Couldn't cast `" + dateString + "` to a date object.");
51
+ }
52
+ }
53
+ var DIRECTIVE_KEY_MAP = {
54
+ Y: "years",
55
+ m: "months",
56
+ w: "weeks",
57
+ d: "days",
58
+ D: "totalDays",
59
+ H: "hours",
60
+ M: "minutes",
61
+ S: "seconds"
62
+ };
63
+ function strftime(offsetObject) {
64
+ return function(format) {
65
+ var directives = format.match(/%(-|!)?[A-Z]{1}(:[^;]+;)?/gi);
66
+ if (directives) {
67
+ for (var i = 0, len = directives.length; i < len; ++i) {
68
+ var directive = directives[i].match(/%(-|!)?([a-zA-Z]{1})(:[^;]+;)?/), regexp = new RegExp(directive[0]), modifier = directive[1] || "", plural = directive[3] || "", value = null;
69
+ directive = directive[2];
70
+ if (DIRECTIVE_KEY_MAP.hasOwnProperty(directive)) {
71
+ value = DIRECTIVE_KEY_MAP[directive];
72
+ value = Number(offsetObject[value]);
73
+ }
74
+ if (value !== null) {
75
+ if (modifier === "!") {
76
+ value = pluralize(plural, value);
77
+ }
78
+ if (modifier === "") {
79
+ if (value < 10) {
80
+ value = "0" + value.toString();
81
+ }
82
+ }
83
+ format = format.replace(regexp, value.toString());
84
+ }
85
+ }
86
+ }
87
+ format = format.replace(/%%/, "%");
88
+ return format;
89
+ };
90
+ }
91
+ function pluralize(format, count) {
92
+ var plural = "s", singular = "";
93
+ if (format) {
94
+ format = format.replace(/(:|;|\s)/gi, "").split(/\,/);
95
+ if (format.length === 1) {
96
+ plural = format[0];
97
+ } else {
98
+ singular = format[0];
99
+ plural = format[1];
100
+ }
101
+ }
102
+ if (Math.abs(count) === 1) {
103
+ return singular;
104
+ } else {
105
+ return plural;
106
+ }
107
+ }
108
+ var Countdown = function(el, finalDate, callback) {
109
+ this.el = el;
110
+ this.$el = $(el);
111
+ this.interval = null;
112
+ this.offset = {};
113
+ this.instanceNumber = instances.length;
114
+ instances.push(this);
115
+ this.$el.data("countdown-instance", this.instanceNumber);
116
+ if (callback) {
117
+ this.$el.on("update.countdown", callback);
118
+ this.$el.on("stoped.countdown", callback);
119
+ this.$el.on("finish.countdown", callback);
120
+ }
121
+ this.setFinalDate(finalDate);
122
+ this.start();
123
+ };
124
+ $.extend(Countdown.prototype, {
125
+ start: function() {
126
+ if (this.interval !== null) {
127
+ clearInterval(this.interval);
128
+ }
129
+ var self = this;
130
+ this.update();
131
+ this.interval = setInterval(function() {
132
+ self.update.call(self);
133
+ }, PRECISION);
134
+ },
135
+ stop: function() {
136
+ clearInterval(this.interval);
137
+ this.interval = null;
138
+ this.dispatchEvent("stoped");
139
+ },
140
+ pause: function() {
141
+ this.stop.call(this);
142
+ },
143
+ resume: function() {
144
+ this.start.call(this);
145
+ },
146
+ remove: function() {
147
+ this.stop();
148
+ instances[this.instanceNumber] = null;
149
+ delete this.$el.data().countdownInstance;
150
+ },
151
+ setFinalDate: function(value) {
152
+ this.finalDate = parseDateString(value);
153
+ },
154
+ update: function() {
155
+ if (this.$el.closest("html").length === 0) {
156
+ this.remove();
157
+ return;
158
+ }
159
+ this.totalSecsLeft = this.finalDate.getTime() - new Date().getTime();
160
+ this.totalSecsLeft = Math.ceil(this.totalSecsLeft / 1e3);
161
+ this.totalSecsLeft = this.totalSecsLeft < 0 ? 0 : this.totalSecsLeft;
162
+ this.offset = {
163
+ seconds: this.totalSecsLeft % 60,
164
+ minutes: Math.floor(this.totalSecsLeft / 60) % 60,
165
+ hours: Math.floor(this.totalSecsLeft / 60 / 60) % 24,
166
+ days: Math.floor(this.totalSecsLeft / 60 / 60 / 24) % 7,
167
+ totalDays: Math.floor(this.totalSecsLeft / 60 / 60 / 24),
168
+ weeks: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 7),
169
+ months: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 30),
170
+ years: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 365)
171
+ };
172
+ if (this.totalSecsLeft === 0) {
173
+ this.stop();
174
+ this.dispatchEvent("finish");
175
+ } else {
176
+ this.dispatchEvent("update");
177
+ }
178
+ },
179
+ dispatchEvent: function(eventName) {
180
+ var event = $.Event(eventName + ".countdown");
181
+ event.finalDate = this.finalDate;
182
+ event.offset = $.extend({}, this.offset);
183
+ event.strftime = strftime(this.offset);
184
+ this.$el.trigger(event);
185
+ }
186
+ });
187
+ $.fn.countdown = function() {
188
+ var argumentsArray = Array.prototype.slice.call(arguments, 0);
189
+ return this.each(function() {
190
+ var instanceNumber = $(this).data("countdown-instance");
191
+ if (instanceNumber !== undefined) {
192
+ var instance = instances[instanceNumber], method = argumentsArray[0];
193
+ if (Countdown.prototype.hasOwnProperty(method)) {
194
+ instance[method].apply(instance, argumentsArray.slice(1));
195
+ } else if (String(method).match(/^[$A-Z_][0-9A-Z_$]*$/i) === null) {
196
+ instance.setFinalDate.call(instance, method);
197
+ instance.start();
198
+ } else {
199
+ $.error("Method %s does not exist on jQuery.countdown".replace(/\%s/gi, method));
200
+ }
201
+ } else {
202
+ new Countdown(this, argumentsArray[0], argumentsArray[1]);
203
+ }
204
+ });
205
+ };
206
+ });
@@ -0,0 +1,1512 @@
1
+ /*
2
+ * jQuery OwlCarousel v1.3.3
3
+ *
4
+ * Copyright (c) 2013 Bartosz Wojciechowski
5
+ * http://www.owlgraphic.com/owlcarousel/
6
+ *
7
+ * Licensed under MIT
8
+ *
9
+ */
10
+
11
+ /*JS Lint helpers: */
12
+ /*global dragMove: false, dragEnd: false, $, jQuery, alert, window, document */
13
+ /*jslint nomen: true, continue:true */
14
+
15
+ if (typeof Object.create !== "function") {
16
+ Object.create = function (obj) {
17
+ function F() {}
18
+ F.prototype = obj;
19
+ return new F();
20
+ };
21
+ }
22
+ (function ($, window, document) {
23
+
24
+ var Carousel = {
25
+ init : function (options, el) {
26
+ var base = this;
27
+
28
+ base.$elem = $(el);
29
+ base.options = $.extend({}, $.fn.owlCarousel.options, base.$elem.data(), options);
30
+
31
+ base.userOptions = options;
32
+ base.loadContent();
33
+ },
34
+
35
+ loadContent : function () {
36
+ var base = this, url;
37
+
38
+ function getData(data) {
39
+ var i, content = "";
40
+ if (typeof base.options.jsonSuccess === "function") {
41
+ base.options.jsonSuccess.apply(this, [data]);
42
+ } else {
43
+ for (i in data.owl) {
44
+ if (data.owl.hasOwnProperty(i)) {
45
+ content += data.owl[i].item;
46
+ }
47
+ }
48
+ base.$elem.html(content);
49
+ }
50
+ base.logIn();
51
+ }
52
+
53
+ if (typeof base.options.beforeInit === "function") {
54
+ base.options.beforeInit.apply(this, [base.$elem]);
55
+ }
56
+
57
+ if (typeof base.options.jsonPath === "string") {
58
+ url = base.options.jsonPath;
59
+ $.getJSON(url, getData);
60
+ } else {
61
+ base.logIn();
62
+ }
63
+ },
64
+
65
+ logIn : function () {
66
+ var base = this;
67
+
68
+ base.$elem.data("owl-originalStyles", base.$elem.attr("style"));
69
+ base.$elem.data("owl-originalClasses", base.$elem.attr("class"));
70
+
71
+ base.$elem.css({opacity: 0});
72
+ base.orignalItems = base.options.items;
73
+ base.checkBrowser();
74
+ base.wrapperWidth = 0;
75
+ base.checkVisible = null;
76
+ base.setVars();
77
+ },
78
+
79
+ setVars : function () {
80
+ var base = this;
81
+ if (base.$elem.children().length === 0) {return false; }
82
+ base.baseClass();
83
+ base.eventTypes();
84
+ base.$userItems = base.$elem.children();
85
+ base.itemsAmount = base.$userItems.length;
86
+ base.wrapItems();
87
+ base.$owlItems = base.$elem.find(".owl-item");
88
+ base.$owlWrapper = base.$elem.find(".owl-wrapper");
89
+ base.playDirection = "next";
90
+ base.prevItem = 0;
91
+ base.prevArr = [0];
92
+ base.currentItem = 0;
93
+ base.customEvents();
94
+ base.onStartup();
95
+ },
96
+
97
+ onStartup : function () {
98
+ var base = this;
99
+ base.updateItems();
100
+ base.calculateAll();
101
+ base.buildControls();
102
+ base.updateControls();
103
+ base.response();
104
+ base.moveEvents();
105
+ base.stopOnHover();
106
+ base.owlStatus();
107
+
108
+ if (base.options.transitionStyle !== false) {
109
+ base.transitionTypes(base.options.transitionStyle);
110
+ }
111
+ if (base.options.autoPlay === true) {
112
+ base.options.autoPlay = 5000;
113
+ }
114
+ base.play();
115
+
116
+ base.$elem.find(".owl-wrapper").css("display", "block");
117
+
118
+ if (!base.$elem.is(":visible")) {
119
+ base.watchVisibility();
120
+ } else {
121
+ base.$elem.css("opacity", 1);
122
+ }
123
+ base.onstartup = false;
124
+ base.eachMoveUpdate();
125
+ if (typeof base.options.afterInit === "function") {
126
+ base.options.afterInit.apply(this, [base.$elem]);
127
+ }
128
+ },
129
+
130
+ eachMoveUpdate : function () {
131
+ var base = this;
132
+
133
+ if (base.options.lazyLoad === true) {
134
+ base.lazyLoad();
135
+ }
136
+ if (base.options.autoHeight === true) {
137
+ base.autoHeight();
138
+ }
139
+ base.onVisibleItems();
140
+
141
+ if (typeof base.options.afterAction === "function") {
142
+ base.options.afterAction.apply(this, [base.$elem]);
143
+ }
144
+ },
145
+
146
+ updateVars : function () {
147
+ var base = this;
148
+ if (typeof base.options.beforeUpdate === "function") {
149
+ base.options.beforeUpdate.apply(this, [base.$elem]);
150
+ }
151
+ base.watchVisibility();
152
+ base.updateItems();
153
+ base.calculateAll();
154
+ base.updatePosition();
155
+ base.updateControls();
156
+ base.eachMoveUpdate();
157
+ if (typeof base.options.afterUpdate === "function") {
158
+ base.options.afterUpdate.apply(this, [base.$elem]);
159
+ }
160
+ },
161
+
162
+ reload : function () {
163
+ var base = this;
164
+ window.setTimeout(function () {
165
+ base.updateVars();
166
+ }, 0);
167
+ },
168
+
169
+ watchVisibility : function () {
170
+ var base = this;
171
+
172
+ if (base.$elem.is(":visible") === false) {
173
+ base.$elem.css({opacity: 0});
174
+ window.clearInterval(base.autoPlayInterval);
175
+ window.clearInterval(base.checkVisible);
176
+ } else {
177
+ return false;
178
+ }
179
+ base.checkVisible = window.setInterval(function () {
180
+ if (base.$elem.is(":visible")) {
181
+ base.reload();
182
+ base.$elem.animate({opacity: 1}, 200);
183
+ window.clearInterval(base.checkVisible);
184
+ }
185
+ }, 500);
186
+ },
187
+
188
+ wrapItems : function () {
189
+ var base = this;
190
+ base.$userItems.wrapAll("<div class=\"owl-wrapper\">").wrap("<div class=\"owl-item\"></div>");
191
+ base.$elem.find(".owl-wrapper").wrap("<div class=\"owl-wrapper-outer\">");
192
+ base.wrapperOuter = base.$elem.find(".owl-wrapper-outer");
193
+ base.$elem.css("display", "block");
194
+ },
195
+
196
+ baseClass : function () {
197
+ var base = this,
198
+ hasBaseClass = base.$elem.hasClass(base.options.baseClass),
199
+ hasThemeClass = base.$elem.hasClass(base.options.theme);
200
+
201
+ if (!hasBaseClass) {
202
+ base.$elem.addClass(base.options.baseClass);
203
+ }
204
+
205
+ if (!hasThemeClass) {
206
+ base.$elem.addClass(base.options.theme);
207
+ }
208
+ },
209
+
210
+ updateItems : function () {
211
+ var base = this, width, i;
212
+
213
+ if (base.options.responsive === false) {
214
+ return false;
215
+ }
216
+ if (base.options.singleItem === true) {
217
+ base.options.items = base.orignalItems = 1;
218
+ base.options.itemsCustom = false;
219
+ base.options.itemsDesktop = false;
220
+ base.options.itemsDesktopSmall = false;
221
+ base.options.itemsTablet = false;
222
+ base.options.itemsTabletSmall = false;
223
+ base.options.itemsMobile = false;
224
+ return false;
225
+ }
226
+
227
+ width = $(base.options.responsiveBaseWidth).width();
228
+
229
+ if (width > (base.options.itemsDesktop[0] || base.orignalItems)) {
230
+ base.options.items = base.orignalItems;
231
+ }
232
+ if (base.options.itemsCustom !== false) {
233
+ //Reorder array by screen size
234
+ base.options.itemsCustom.sort(function (a, b) {return a[0] - b[0]; });
235
+
236
+ for (i = 0; i < base.options.itemsCustom.length; i += 1) {
237
+ if (base.options.itemsCustom[i][0] <= width) {
238
+ base.options.items = base.options.itemsCustom[i][1];
239
+ }
240
+ }
241
+
242
+ } else {
243
+
244
+ if (width <= base.options.itemsDesktop[0] && base.options.itemsDesktop !== false) {
245
+ base.options.items = base.options.itemsDesktop[1];
246
+ }
247
+
248
+ if (width <= base.options.itemsDesktopSmall[0] && base.options.itemsDesktopSmall !== false) {
249
+ base.options.items = base.options.itemsDesktopSmall[1];
250
+ }
251
+
252
+ if (width <= base.options.itemsTablet[0] && base.options.itemsTablet !== false) {
253
+ base.options.items = base.options.itemsTablet[1];
254
+ }
255
+
256
+ if (width <= base.options.itemsTabletSmall[0] && base.options.itemsTabletSmall !== false) {
257
+ base.options.items = base.options.itemsTabletSmall[1];
258
+ }
259
+
260
+ if (width <= base.options.itemsMobile[0] && base.options.itemsMobile !== false) {
261
+ base.options.items = base.options.itemsMobile[1];
262
+ }
263
+ }
264
+
265
+ //if number of items is less than declared
266
+ if (base.options.items > base.itemsAmount && base.options.itemsScaleUp === true) {
267
+ base.options.items = base.itemsAmount;
268
+ }
269
+ },
270
+
271
+ response : function () {
272
+ var base = this,
273
+ smallDelay,
274
+ lastWindowWidth;
275
+
276
+ if (base.options.responsive !== true) {
277
+ return false;
278
+ }
279
+ lastWindowWidth = $(window).width();
280
+
281
+ base.resizer = function () {
282
+ if ($(window).width() !== lastWindowWidth) {
283
+ if (base.options.autoPlay !== false) {
284
+ window.clearInterval(base.autoPlayInterval);
285
+ }
286
+ window.clearTimeout(smallDelay);
287
+ smallDelay = window.setTimeout(function () {
288
+ lastWindowWidth = $(window).width();
289
+ base.updateVars();
290
+ }, base.options.responsiveRefreshRate);
291
+ }
292
+ };
293
+ $(window).resize(base.resizer);
294
+ },
295
+
296
+ updatePosition : function () {
297
+ var base = this;
298
+ base.jumpTo(base.currentItem);
299
+ if (base.options.autoPlay !== false) {
300
+ base.checkAp();
301
+ }
302
+ },
303
+
304
+ appendItemsSizes : function () {
305
+ var base = this,
306
+ roundPages = 0,
307
+ lastItem = base.itemsAmount - base.options.items;
308
+
309
+ base.$owlItems.each(function (index) {
310
+ var $this = $(this);
311
+ $this
312
+ .css({"width": base.itemWidth})
313
+ .data("owl-item", Number(index));
314
+
315
+ if (index % base.options.items === 0 || index === lastItem) {
316
+ if (!(index > lastItem)) {
317
+ roundPages += 1;
318
+ }
319
+ }
320
+ $this.data("owl-roundPages", roundPages);
321
+ });
322
+ },
323
+
324
+ appendWrapperSizes : function () {
325
+ var base = this,
326
+ width = base.$owlItems.length * base.itemWidth;
327
+
328
+ base.$owlWrapper.css({
329
+ "width": width * 2,
330
+ "left": 0
331
+ });
332
+ base.appendItemsSizes();
333
+ },
334
+
335
+ calculateAll : function () {
336
+ var base = this;
337
+ base.calculateWidth();
338
+ base.appendWrapperSizes();
339
+ base.loops();
340
+ base.max();
341
+ },
342
+
343
+ calculateWidth : function () {
344
+ var base = this;
345
+ base.itemWidth = Math.round(base.$elem.width() / base.options.items);
346
+ },
347
+
348
+ max : function () {
349
+ var base = this,
350
+ maximum = ((base.itemsAmount * base.itemWidth) - base.options.items * base.itemWidth) * -1;
351
+ if (base.options.items > base.itemsAmount) {
352
+ base.maximumItem = 0;
353
+ maximum = 0;
354
+ base.maximumPixels = 0;
355
+ } else {
356
+ base.maximumItem = base.itemsAmount - base.options.items;
357
+ base.maximumPixels = maximum;
358
+ }
359
+ return maximum;
360
+ },
361
+
362
+ min : function () {
363
+ return 0;
364
+ },
365
+
366
+ loops : function () {
367
+ var base = this,
368
+ prev = 0,
369
+ elWidth = 0,
370
+ i,
371
+ item,
372
+ roundPageNum;
373
+
374
+ base.positionsInArray = [0];
375
+ base.pagesInArray = [];
376
+
377
+ for (i = 0; i < base.itemsAmount; i += 1) {
378
+ elWidth += base.itemWidth;
379
+ base.positionsInArray.push(-elWidth);
380
+
381
+ if (base.options.scrollPerPage === true) {
382
+ item = $(base.$owlItems[i]);
383
+ roundPageNum = item.data("owl-roundPages");
384
+ if (roundPageNum !== prev) {
385
+ base.pagesInArray[prev] = base.positionsInArray[i];
386
+ prev = roundPageNum;
387
+ }
388
+ }
389
+ }
390
+ },
391
+
392
+ buildControls : function () {
393
+ var base = this;
394
+ if (base.options.navigation === true || base.options.pagination === true) {
395
+ base.owlControls = $("<div class=\"owl-controls\"/>").toggleClass("clickable", !base.browser.isTouch).appendTo(base.$elem);
396
+ }
397
+ if (base.options.pagination === true) {
398
+ base.buildPagination();
399
+ }
400
+ if (base.options.navigation === true) {
401
+ base.buildButtons();
402
+ }
403
+ },
404
+
405
+ buildButtons : function () {
406
+ var base = this,
407
+ buttonsWrapper = $("<div class=\"owl-buttons\"/>");
408
+ base.owlControls.append(buttonsWrapper);
409
+
410
+ base.buttonPrev = $("<div/>", {
411
+ "class" : "owl-prev",
412
+ "html" : base.options.navigationText[0] || ""
413
+ });
414
+
415
+ base.buttonNext = $("<div/>", {
416
+ "class" : "owl-next",
417
+ "html" : base.options.navigationText[1] || ""
418
+ });
419
+
420
+ buttonsWrapper
421
+ .append(base.buttonPrev)
422
+ .append(base.buttonNext);
423
+
424
+ buttonsWrapper.on("touchstart.owlControls mousedown.owlControls", "div[class^=\"owl\"]", function (event) {
425
+ event.preventDefault();
426
+ });
427
+
428
+ buttonsWrapper.on("touchend.owlControls mouseup.owlControls", "div[class^=\"owl\"]", function (event) {
429
+ event.preventDefault();
430
+ if ($(this).hasClass("owl-next")) {
431
+ base.next();
432
+ } else {
433
+ base.prev();
434
+ }
435
+ });
436
+ },
437
+
438
+ buildPagination : function () {
439
+ var base = this;
440
+
441
+ base.paginationWrapper = $("<div class=\"owl-pagination\"/>");
442
+ base.owlControls.append(base.paginationWrapper);
443
+
444
+ base.paginationWrapper.on("touchend.owlControls mouseup.owlControls", ".owl-page", function (event) {
445
+ event.preventDefault();
446
+ if (Number($(this).data("owl-page")) !== base.currentItem) {
447
+ base.goTo(Number($(this).data("owl-page")), true);
448
+ }
449
+ });
450
+ },
451
+
452
+ updatePagination : function () {
453
+ var base = this,
454
+ counter,
455
+ lastPage,
456
+ lastItem,
457
+ i,
458
+ paginationButton,
459
+ paginationButtonInner;
460
+
461
+ if (base.options.pagination === false) {
462
+ return false;
463
+ }
464
+
465
+ base.paginationWrapper.html("");
466
+
467
+ counter = 0;
468
+ lastPage = base.itemsAmount - base.itemsAmount % base.options.items;
469
+
470
+ for (i = 0; i < base.itemsAmount; i += 1) {
471
+ if (i % base.options.items === 0) {
472
+ counter += 1;
473
+ if (lastPage === i) {
474
+ lastItem = base.itemsAmount - base.options.items;
475
+ }
476
+ paginationButton = $("<div/>", {
477
+ "class" : "owl-page"
478
+ });
479
+ paginationButtonInner = $("<span></span>", {
480
+ "text": base.options.paginationNumbers === true ? counter : "",
481
+ "class": base.options.paginationNumbers === true ? "owl-numbers" : ""
482
+ });
483
+ paginationButton.append(paginationButtonInner);
484
+
485
+ paginationButton.data("owl-page", lastPage === i ? lastItem : i);
486
+ paginationButton.data("owl-roundPages", counter);
487
+
488
+ base.paginationWrapper.append(paginationButton);
489
+ }
490
+ }
491
+ base.checkPagination();
492
+ },
493
+ checkPagination : function () {
494
+ var base = this;
495
+ if (base.options.pagination === false) {
496
+ return false;
497
+ }
498
+ base.paginationWrapper.find(".owl-page").each(function () {
499
+ if ($(this).data("owl-roundPages") === $(base.$owlItems[base.currentItem]).data("owl-roundPages")) {
500
+ base.paginationWrapper
501
+ .find(".owl-page")
502
+ .removeClass("active");
503
+ $(this).addClass("active");
504
+ }
505
+ });
506
+ },
507
+
508
+ checkNavigation : function () {
509
+ var base = this;
510
+
511
+ if (base.options.navigation === false) {
512
+ return false;
513
+ }
514
+ if (base.options.rewindNav === false) {
515
+ if (base.currentItem === 0 && base.maximumItem === 0) {
516
+ base.buttonPrev.addClass("disabled");
517
+ base.buttonNext.addClass("disabled");
518
+ } else if (base.currentItem === 0 && base.maximumItem !== 0) {
519
+ base.buttonPrev.addClass("disabled");
520
+ base.buttonNext.removeClass("disabled");
521
+ } else if (base.currentItem === base.maximumItem) {
522
+ base.buttonPrev.removeClass("disabled");
523
+ base.buttonNext.addClass("disabled");
524
+ } else if (base.currentItem !== 0 && base.currentItem !== base.maximumItem) {
525
+ base.buttonPrev.removeClass("disabled");
526
+ base.buttonNext.removeClass("disabled");
527
+ }
528
+ }
529
+ },
530
+
531
+ updateControls : function () {
532
+ var base = this;
533
+ base.updatePagination();
534
+ base.checkNavigation();
535
+ if (base.owlControls) {
536
+ if (base.options.items >= base.itemsAmount) {
537
+ base.owlControls.hide();
538
+ } else {
539
+ base.owlControls.show();
540
+ }
541
+ }
542
+ },
543
+
544
+ destroyControls : function () {
545
+ var base = this;
546
+ if (base.owlControls) {
547
+ base.owlControls.remove();
548
+ }
549
+ },
550
+
551
+ next : function (speed) {
552
+ var base = this;
553
+
554
+ if (base.isTransition) {
555
+ return false;
556
+ }
557
+
558
+ base.currentItem += base.options.scrollPerPage === true ? base.options.items : 1;
559
+ if (base.currentItem > base.maximumItem + (base.options.scrollPerPage === true ? (base.options.items - 1) : 0)) {
560
+ if (base.options.rewindNav === true) {
561
+ base.currentItem = 0;
562
+ speed = "rewind";
563
+ } else {
564
+ base.currentItem = base.maximumItem;
565
+ return false;
566
+ }
567
+ }
568
+ base.goTo(base.currentItem, speed);
569
+ },
570
+
571
+ prev : function (speed) {
572
+ var base = this;
573
+
574
+ if (base.isTransition) {
575
+ return false;
576
+ }
577
+
578
+ if (base.options.scrollPerPage === true && base.currentItem > 0 && base.currentItem < base.options.items) {
579
+ base.currentItem = 0;
580
+ } else {
581
+ base.currentItem -= base.options.scrollPerPage === true ? base.options.items : 1;
582
+ }
583
+ if (base.currentItem < 0) {
584
+ if (base.options.rewindNav === true) {
585
+ base.currentItem = base.maximumItem;
586
+ speed = "rewind";
587
+ } else {
588
+ base.currentItem = 0;
589
+ return false;
590
+ }
591
+ }
592
+ base.goTo(base.currentItem, speed);
593
+ },
594
+
595
+ goTo : function (position, speed, drag) {
596
+ var base = this,
597
+ goToPixel;
598
+
599
+ if (base.isTransition) {
600
+ return false;
601
+ }
602
+ if (typeof base.options.beforeMove === "function") {
603
+ base.options.beforeMove.apply(this, [base.$elem]);
604
+ }
605
+ if (position >= base.maximumItem) {
606
+ position = base.maximumItem;
607
+ } else if (position <= 0) {
608
+ position = 0;
609
+ }
610
+
611
+ base.currentItem = base.owl.currentItem = position;
612
+ if (base.options.transitionStyle !== false && drag !== "drag" && base.options.items === 1 && base.browser.support3d === true) {
613
+ base.swapSpeed(0);
614
+ if (base.browser.support3d === true) {
615
+ base.transition3d(base.positionsInArray[position]);
616
+ } else {
617
+ base.css2slide(base.positionsInArray[position], 1);
618
+ }
619
+ base.afterGo();
620
+ base.singleItemTransition();
621
+ return false;
622
+ }
623
+ goToPixel = base.positionsInArray[position];
624
+
625
+ if (base.browser.support3d === true) {
626
+ base.isCss3Finish = false;
627
+
628
+ if (speed === true) {
629
+ base.swapSpeed("paginationSpeed");
630
+ window.setTimeout(function () {
631
+ base.isCss3Finish = true;
632
+ }, base.options.paginationSpeed);
633
+
634
+ } else if (speed === "rewind") {
635
+ base.swapSpeed(base.options.rewindSpeed);
636
+ window.setTimeout(function () {
637
+ base.isCss3Finish = true;
638
+ }, base.options.rewindSpeed);
639
+
640
+ } else {
641
+ base.swapSpeed("slideSpeed");
642
+ window.setTimeout(function () {
643
+ base.isCss3Finish = true;
644
+ }, base.options.slideSpeed);
645
+ }
646
+ base.transition3d(goToPixel);
647
+ } else {
648
+ if (speed === true) {
649
+ base.css2slide(goToPixel, base.options.paginationSpeed);
650
+ } else if (speed === "rewind") {
651
+ base.css2slide(goToPixel, base.options.rewindSpeed);
652
+ } else {
653
+ base.css2slide(goToPixel, base.options.slideSpeed);
654
+ }
655
+ }
656
+ base.afterGo();
657
+ },
658
+
659
+ jumpTo : function (position) {
660
+ var base = this;
661
+ if (typeof base.options.beforeMove === "function") {
662
+ base.options.beforeMove.apply(this, [base.$elem]);
663
+ }
664
+ if (position >= base.maximumItem || position === -1) {
665
+ position = base.maximumItem;
666
+ } else if (position <= 0) {
667
+ position = 0;
668
+ }
669
+ base.swapSpeed(0);
670
+ if (base.browser.support3d === true) {
671
+ base.transition3d(base.positionsInArray[position]);
672
+ } else {
673
+ base.css2slide(base.positionsInArray[position], 1);
674
+ }
675
+ base.currentItem = base.owl.currentItem = position;
676
+ base.afterGo();
677
+ },
678
+
679
+ afterGo : function () {
680
+ var base = this;
681
+
682
+ base.prevArr.push(base.currentItem);
683
+ base.prevItem = base.owl.prevItem = base.prevArr[base.prevArr.length - 2];
684
+ base.prevArr.shift(0);
685
+
686
+ if (base.prevItem !== base.currentItem) {
687
+ base.checkPagination();
688
+ base.checkNavigation();
689
+ base.eachMoveUpdate();
690
+
691
+ if (base.options.autoPlay !== false) {
692
+ base.checkAp();
693
+ }
694
+ }
695
+ if (typeof base.options.afterMove === "function" && base.prevItem !== base.currentItem) {
696
+ base.options.afterMove.apply(this, [base.$elem]);
697
+ }
698
+ },
699
+
700
+ stop : function () {
701
+ var base = this;
702
+ base.apStatus = "stop";
703
+ window.clearInterval(base.autoPlayInterval);
704
+ },
705
+
706
+ checkAp : function () {
707
+ var base = this;
708
+ if (base.apStatus !== "stop") {
709
+ base.play();
710
+ }
711
+ },
712
+
713
+ play : function () {
714
+ var base = this;
715
+ base.apStatus = "play";
716
+ if (base.options.autoPlay === false) {
717
+ return false;
718
+ }
719
+ window.clearInterval(base.autoPlayInterval);
720
+ base.autoPlayInterval = window.setInterval(function () {
721
+ base.next(true);
722
+ }, base.options.autoPlay);
723
+ },
724
+
725
+ swapSpeed : function (action) {
726
+ var base = this;
727
+ if (action === "slideSpeed") {
728
+ base.$owlWrapper.css(base.addCssSpeed(base.options.slideSpeed));
729
+ } else if (action === "paginationSpeed") {
730
+ base.$owlWrapper.css(base.addCssSpeed(base.options.paginationSpeed));
731
+ } else if (typeof action !== "string") {
732
+ base.$owlWrapper.css(base.addCssSpeed(action));
733
+ }
734
+ },
735
+
736
+ addCssSpeed : function (speed) {
737
+ return {
738
+ "-webkit-transition": "all " + speed + "ms ease",
739
+ "-moz-transition": "all " + speed + "ms ease",
740
+ "-o-transition": "all " + speed + "ms ease",
741
+ "transition": "all " + speed + "ms ease"
742
+ };
743
+ },
744
+
745
+ removeTransition : function () {
746
+ return {
747
+ "-webkit-transition": "",
748
+ "-moz-transition": "",
749
+ "-o-transition": "",
750
+ "transition": ""
751
+ };
752
+ },
753
+
754
+ doTranslate : function (pixels) {
755
+ return {
756
+ "-webkit-transform": "translate3d(" + pixels + "px, 0px, 0px)",
757
+ "-moz-transform": "translate3d(" + pixels + "px, 0px, 0px)",
758
+ "-o-transform": "translate3d(" + pixels + "px, 0px, 0px)",
759
+ "-ms-transform": "translate3d(" + pixels + "px, 0px, 0px)",
760
+ "transform": "translate3d(" + pixels + "px, 0px,0px)"
761
+ };
762
+ },
763
+
764
+ transition3d : function (value) {
765
+ var base = this;
766
+ base.$owlWrapper.css(base.doTranslate(value));
767
+ },
768
+
769
+ css2move : function (value) {
770
+ var base = this;
771
+ base.$owlWrapper.css({"left" : value});
772
+ },
773
+
774
+ css2slide : function (value, speed) {
775
+ var base = this;
776
+
777
+ base.isCssFinish = false;
778
+ base.$owlWrapper.stop(true, true).animate({
779
+ "left" : value
780
+ }, {
781
+ duration : speed || base.options.slideSpeed,
782
+ complete : function () {
783
+ base.isCssFinish = true;
784
+ }
785
+ });
786
+ },
787
+
788
+ checkBrowser : function () {
789
+ var base = this,
790
+ translate3D = "translate3d(0px, 0px, 0px)",
791
+ tempElem = document.createElement("div"),
792
+ regex,
793
+ asSupport,
794
+ support3d,
795
+ isTouch;
796
+
797
+ tempElem.style.cssText = " -moz-transform:" + translate3D +
798
+ "; -ms-transform:" + translate3D +
799
+ "; -o-transform:" + translate3D +
800
+ "; -webkit-transform:" + translate3D +
801
+ "; transform:" + translate3D;
802
+ regex = /translate3d\(0px, 0px, 0px\)/g;
803
+ asSupport = tempElem.style.cssText.match(regex);
804
+ support3d = (asSupport !== null && asSupport.length === 1);
805
+
806
+ isTouch = "ontouchstart" in window || window.navigator.msMaxTouchPoints;
807
+
808
+ base.browser = {
809
+ "support3d" : support3d,
810
+ "isTouch" : isTouch
811
+ };
812
+ },
813
+
814
+ moveEvents : function () {
815
+ var base = this;
816
+ if (base.options.mouseDrag !== false || base.options.touchDrag !== false) {
817
+ base.gestures();
818
+ base.disabledEvents();
819
+ }
820
+ },
821
+
822
+ eventTypes : function () {
823
+ var base = this,
824
+ types = ["s", "e", "x"];
825
+
826
+ base.ev_types = {};
827
+
828
+ if (base.options.mouseDrag === true && base.options.touchDrag === true) {
829
+ types = [
830
+ "touchstart.owl mousedown.owl",
831
+ "touchmove.owl mousemove.owl",
832
+ "touchend.owl touchcancel.owl mouseup.owl"
833
+ ];
834
+ } else if (base.options.mouseDrag === false && base.options.touchDrag === true) {
835
+ types = [
836
+ "touchstart.owl",
837
+ "touchmove.owl",
838
+ "touchend.owl touchcancel.owl"
839
+ ];
840
+ } else if (base.options.mouseDrag === true && base.options.touchDrag === false) {
841
+ types = [
842
+ "mousedown.owl",
843
+ "mousemove.owl",
844
+ "mouseup.owl"
845
+ ];
846
+ }
847
+
848
+ base.ev_types.start = types[0];
849
+ base.ev_types.move = types[1];
850
+ base.ev_types.end = types[2];
851
+ },
852
+
853
+ disabledEvents : function () {
854
+ var base = this;
855
+ base.$elem.on("dragstart.owl", function (event) { event.preventDefault(); });
856
+ base.$elem.on("mousedown.disableTextSelect", function (e) {
857
+ return $(e.target).is('input, textarea, select, option');
858
+ });
859
+ },
860
+
861
+ gestures : function () {
862
+ /*jslint unparam: true*/
863
+ var base = this,
864
+ locals = {
865
+ offsetX : 0,
866
+ offsetY : 0,
867
+ baseElWidth : 0,
868
+ relativePos : 0,
869
+ position: null,
870
+ minSwipe : null,
871
+ maxSwipe: null,
872
+ sliding : null,
873
+ dargging: null,
874
+ targetElement : null
875
+ };
876
+
877
+ base.isCssFinish = true;
878
+
879
+ function getTouches(event) {
880
+ if (event.touches !== undefined) {
881
+ return {
882
+ x : event.touches[0].pageX,
883
+ y : event.touches[0].pageY
884
+ };
885
+ }
886
+
887
+ if (event.touches === undefined) {
888
+ if (event.pageX !== undefined) {
889
+ return {
890
+ x : event.pageX,
891
+ y : event.pageY
892
+ };
893
+ }
894
+ if (event.pageX === undefined) {
895
+ return {
896
+ x : event.clientX,
897
+ y : event.clientY
898
+ };
899
+ }
900
+ }
901
+ }
902
+
903
+ function swapEvents(type) {
904
+ if (type === "on") {
905
+ $(document).on(base.ev_types.move, dragMove);
906
+ $(document).on(base.ev_types.end, dragEnd);
907
+ } else if (type === "off") {
908
+ $(document).off(base.ev_types.move);
909
+ $(document).off(base.ev_types.end);
910
+ }
911
+ }
912
+
913
+ function dragStart(event) {
914
+ var ev = event.originalEvent || event || window.event,
915
+ position;
916
+
917
+ if (ev.which === 3) {
918
+ return false;
919
+ }
920
+ if (base.itemsAmount <= base.options.items) {
921
+ return;
922
+ }
923
+ if (base.isCssFinish === false && !base.options.dragBeforeAnimFinish) {
924
+ return false;
925
+ }
926
+ if (base.isCss3Finish === false && !base.options.dragBeforeAnimFinish) {
927
+ return false;
928
+ }
929
+
930
+ if (base.options.autoPlay !== false) {
931
+ window.clearInterval(base.autoPlayInterval);
932
+ }
933
+
934
+ if (base.browser.isTouch !== true && !base.$owlWrapper.hasClass("grabbing")) {
935
+ base.$owlWrapper.addClass("grabbing");
936
+ }
937
+
938
+ base.newPosX = 0;
939
+ base.newRelativeX = 0;
940
+
941
+ $(this).css(base.removeTransition());
942
+
943
+ position = $(this).position();
944
+ locals.relativePos = position.left;
945
+
946
+ locals.offsetX = getTouches(ev).x - position.left;
947
+ locals.offsetY = getTouches(ev).y - position.top;
948
+
949
+ swapEvents("on");
950
+
951
+ locals.sliding = false;
952
+ locals.targetElement = ev.target || ev.srcElement;
953
+ }
954
+
955
+ function dragMove(event) {
956
+ var ev = event.originalEvent || event || window.event,
957
+ minSwipe,
958
+ maxSwipe;
959
+
960
+ base.newPosX = getTouches(ev).x - locals.offsetX;
961
+ base.newPosY = getTouches(ev).y - locals.offsetY;
962
+ base.newRelativeX = base.newPosX - locals.relativePos;
963
+
964
+ if (typeof base.options.startDragging === "function" && locals.dragging !== true && base.newRelativeX !== 0) {
965
+ locals.dragging = true;
966
+ base.options.startDragging.apply(base, [base.$elem]);
967
+ }
968
+
969
+ if ((base.newRelativeX > 8 || base.newRelativeX < -8) && (base.browser.isTouch === true)) {
970
+ if (ev.preventDefault !== undefined) {
971
+ ev.preventDefault();
972
+ } else {
973
+ ev.returnValue = false;
974
+ }
975
+ locals.sliding = true;
976
+ }
977
+
978
+ if ((base.newPosY > 10 || base.newPosY < -10) && locals.sliding === false) {
979
+ $(document).off("touchmove.owl");
980
+ }
981
+
982
+ minSwipe = function () {
983
+ return base.newRelativeX / 5;
984
+ };
985
+
986
+ maxSwipe = function () {
987
+ return base.maximumPixels + base.newRelativeX / 5;
988
+ };
989
+
990
+ base.newPosX = Math.max(Math.min(base.newPosX, minSwipe()), maxSwipe());
991
+ if (base.browser.support3d === true) {
992
+ base.transition3d(base.newPosX);
993
+ } else {
994
+ base.css2move(base.newPosX);
995
+ }
996
+ }
997
+
998
+ function dragEnd(event) {
999
+ var ev = event.originalEvent || event || window.event,
1000
+ newPosition,
1001
+ handlers,
1002
+ owlStopEvent;
1003
+
1004
+ ev.target = ev.target || ev.srcElement;
1005
+
1006
+ locals.dragging = false;
1007
+
1008
+ if (base.browser.isTouch !== true) {
1009
+ base.$owlWrapper.removeClass("grabbing");
1010
+ }
1011
+
1012
+ if (base.newRelativeX < 0) {
1013
+ base.dragDirection = base.owl.dragDirection = "left";
1014
+ } else {
1015
+ base.dragDirection = base.owl.dragDirection = "right";
1016
+ }
1017
+
1018
+ if (base.newRelativeX !== 0) {
1019
+ newPosition = base.getNewPosition();
1020
+ base.goTo(newPosition, false, "drag");
1021
+ if (locals.targetElement === ev.target && base.browser.isTouch !== true) {
1022
+ $(ev.target).on("click.disable", function (ev) {
1023
+ ev.stopImmediatePropagation();
1024
+ ev.stopPropagation();
1025
+ ev.preventDefault();
1026
+ $(ev.target).off("click.disable");
1027
+ });
1028
+ handlers = $._data(ev.target, "events").click;
1029
+ owlStopEvent = handlers.pop();
1030
+ handlers.splice(0, 0, owlStopEvent);
1031
+ }
1032
+ }
1033
+ swapEvents("off");
1034
+ }
1035
+ base.$elem.on(base.ev_types.start, ".owl-wrapper", dragStart);
1036
+ },
1037
+
1038
+ getNewPosition : function () {
1039
+ var base = this,
1040
+ newPosition = base.closestItem();
1041
+
1042
+ if (newPosition > base.maximumItem) {
1043
+ base.currentItem = base.maximumItem;
1044
+ newPosition = base.maximumItem;
1045
+ } else if (base.newPosX >= 0) {
1046
+ newPosition = 0;
1047
+ base.currentItem = 0;
1048
+ }
1049
+ return newPosition;
1050
+ },
1051
+ closestItem : function () {
1052
+ var base = this,
1053
+ array = base.options.scrollPerPage === true ? base.pagesInArray : base.positionsInArray,
1054
+ goal = base.newPosX,
1055
+ closest = null;
1056
+
1057
+ $.each(array, function (i, v) {
1058
+ if (goal - (base.itemWidth / 20) > array[i + 1] && goal - (base.itemWidth / 20) < v && base.moveDirection() === "left") {
1059
+ closest = v;
1060
+ if (base.options.scrollPerPage === true) {
1061
+ base.currentItem = $.inArray(closest, base.positionsInArray);
1062
+ } else {
1063
+ base.currentItem = i;
1064
+ }
1065
+ } else if (goal + (base.itemWidth / 20) < v && goal + (base.itemWidth / 20) > (array[i + 1] || array[i] - base.itemWidth) && base.moveDirection() === "right") {
1066
+ if (base.options.scrollPerPage === true) {
1067
+ closest = array[i + 1] || array[array.length - 1];
1068
+ base.currentItem = $.inArray(closest, base.positionsInArray);
1069
+ } else {
1070
+ closest = array[i + 1];
1071
+ base.currentItem = i + 1;
1072
+ }
1073
+ }
1074
+ });
1075
+ return base.currentItem;
1076
+ },
1077
+
1078
+ moveDirection : function () {
1079
+ var base = this,
1080
+ direction;
1081
+ if (base.newRelativeX < 0) {
1082
+ direction = "right";
1083
+ base.playDirection = "next";
1084
+ } else {
1085
+ direction = "left";
1086
+ base.playDirection = "prev";
1087
+ }
1088
+ return direction;
1089
+ },
1090
+
1091
+ customEvents : function () {
1092
+ /*jslint unparam: true*/
1093
+ var base = this;
1094
+ base.$elem.on("owl.next", function () {
1095
+ base.next();
1096
+ });
1097
+ base.$elem.on("owl.prev", function () {
1098
+ base.prev();
1099
+ });
1100
+ base.$elem.on("owl.play", function (event, speed) {
1101
+ base.options.autoPlay = speed;
1102
+ base.play();
1103
+ base.hoverStatus = "play";
1104
+ });
1105
+ base.$elem.on("owl.stop", function () {
1106
+ base.stop();
1107
+ base.hoverStatus = "stop";
1108
+ });
1109
+ base.$elem.on("owl.goTo", function (event, item) {
1110
+ base.goTo(item);
1111
+ });
1112
+ base.$elem.on("owl.jumpTo", function (event, item) {
1113
+ base.jumpTo(item);
1114
+ });
1115
+ },
1116
+
1117
+ stopOnHover : function () {
1118
+ var base = this;
1119
+ if (base.options.stopOnHover === true && base.browser.isTouch !== true && base.options.autoPlay !== false) {
1120
+ base.$elem.on("mouseover", function () {
1121
+ base.stop();
1122
+ });
1123
+ base.$elem.on("mouseout", function () {
1124
+ if (base.hoverStatus !== "stop") {
1125
+ base.play();
1126
+ }
1127
+ });
1128
+ }
1129
+ },
1130
+
1131
+ lazyLoad : function () {
1132
+ var base = this,
1133
+ i,
1134
+ $item,
1135
+ itemNumber,
1136
+ $lazyImg,
1137
+ follow;
1138
+
1139
+ if (base.options.lazyLoad === false) {
1140
+ return false;
1141
+ }
1142
+ for (i = 0; i < base.itemsAmount; i += 1) {
1143
+ $item = $(base.$owlItems[i]);
1144
+
1145
+ if ($item.data("owl-loaded") === "loaded") {
1146
+ continue;
1147
+ }
1148
+
1149
+ itemNumber = $item.data("owl-item");
1150
+ $lazyImg = $item.find(".lazyOwl");
1151
+
1152
+ if (typeof $lazyImg.data("src") !== "string") {
1153
+ $item.data("owl-loaded", "loaded");
1154
+ continue;
1155
+ }
1156
+ if ($item.data("owl-loaded") === undefined) {
1157
+ $lazyImg.hide();
1158
+ $item.addClass("loading").data("owl-loaded", "checked");
1159
+ }
1160
+ if (base.options.lazyFollow === true) {
1161
+ follow = itemNumber >= base.currentItem;
1162
+ } else {
1163
+ follow = true;
1164
+ }
1165
+ if (follow && itemNumber < base.currentItem + base.options.items && $lazyImg.length) {
1166
+ base.lazyPreload($item, $lazyImg);
1167
+ }
1168
+ }
1169
+ },
1170
+
1171
+ lazyPreload : function ($item, $lazyImg) {
1172
+ var base = this,
1173
+ iterations = 0,
1174
+ isBackgroundImg;
1175
+
1176
+ if ($lazyImg.prop("tagName") === "DIV") {
1177
+ $lazyImg.css("background-image", "url(" + $lazyImg.data("src") + ")");
1178
+ isBackgroundImg = true;
1179
+ } else {
1180
+ $lazyImg[0].src = $lazyImg.data("src");
1181
+ }
1182
+
1183
+ function showImage() {
1184
+ $item.data("owl-loaded", "loaded").removeClass("loading");
1185
+ $lazyImg.removeAttr("data-src");
1186
+ if (base.options.lazyEffect === "fade") {
1187
+ $lazyImg.fadeIn(400);
1188
+ } else {
1189
+ $lazyImg.show();
1190
+ }
1191
+ if (typeof base.options.afterLazyLoad === "function") {
1192
+ base.options.afterLazyLoad.apply(this, [base.$elem]);
1193
+ }
1194
+ }
1195
+
1196
+ function checkLazyImage() {
1197
+ iterations += 1;
1198
+ if (base.completeImg($lazyImg.get(0)) || isBackgroundImg === true) {
1199
+ showImage();
1200
+ } else if (iterations <= 100) {//if image loads in less than 10 seconds
1201
+ window.setTimeout(checkLazyImage, 100);
1202
+ } else {
1203
+ showImage();
1204
+ }
1205
+ }
1206
+
1207
+ checkLazyImage();
1208
+ },
1209
+
1210
+ autoHeight : function () {
1211
+ var base = this,
1212
+ $currentimg = $(base.$owlItems[base.currentItem]).find("img"),
1213
+ iterations;
1214
+
1215
+ function addHeight() {
1216
+ var $currentItem = $(base.$owlItems[base.currentItem]).height();
1217
+ base.wrapperOuter.css("height", $currentItem + "px");
1218
+ if (!base.wrapperOuter.hasClass("autoHeight")) {
1219
+ window.setTimeout(function () {
1220
+ base.wrapperOuter.addClass("autoHeight");
1221
+ }, 0);
1222
+ }
1223
+ }
1224
+
1225
+ function checkImage() {
1226
+ iterations += 1;
1227
+ if (base.completeImg($currentimg.get(0))) {
1228
+ addHeight();
1229
+ } else if (iterations <= 100) { //if image loads in less than 10 seconds
1230
+ window.setTimeout(checkImage, 100);
1231
+ } else {
1232
+ base.wrapperOuter.css("height", ""); //Else remove height attribute
1233
+ }
1234
+ }
1235
+
1236
+ if ($currentimg.get(0) !== undefined) {
1237
+ iterations = 0;
1238
+ checkImage();
1239
+ } else {
1240
+ addHeight();
1241
+ }
1242
+ },
1243
+
1244
+ completeImg : function (img) {
1245
+ var naturalWidthType;
1246
+
1247
+ if (!img.complete) {
1248
+ return false;
1249
+ }
1250
+ naturalWidthType = typeof img.naturalWidth;
1251
+ if (naturalWidthType !== "undefined" && img.naturalWidth === 0) {
1252
+ return false;
1253
+ }
1254
+ return true;
1255
+ },
1256
+
1257
+ onVisibleItems : function () {
1258
+ var base = this,
1259
+ i;
1260
+
1261
+ if (base.options.addClassActive === true) {
1262
+ base.$owlItems.removeClass("active");
1263
+ }
1264
+ base.visibleItems = [];
1265
+ for (i = base.currentItem; i < base.currentItem + base.options.items; i += 1) {
1266
+ base.visibleItems.push(i);
1267
+
1268
+ if (base.options.addClassActive === true) {
1269
+ $(base.$owlItems[i]).addClass("active");
1270
+ }
1271
+ }
1272
+ base.owl.visibleItems = base.visibleItems;
1273
+ },
1274
+
1275
+ transitionTypes : function (className) {
1276
+ var base = this;
1277
+ //Currently available: "fade", "backSlide", "goDown", "fadeUp"
1278
+ base.outClass = "owl-" + className + "-out";
1279
+ base.inClass = "owl-" + className + "-in";
1280
+ },
1281
+
1282
+ singleItemTransition : function () {
1283
+ var base = this,
1284
+ outClass = base.outClass,
1285
+ inClass = base.inClass,
1286
+ $currentItem = base.$owlItems.eq(base.currentItem),
1287
+ $prevItem = base.$owlItems.eq(base.prevItem),
1288
+ prevPos = Math.abs(base.positionsInArray[base.currentItem]) + base.positionsInArray[base.prevItem],
1289
+ origin = Math.abs(base.positionsInArray[base.currentItem]) + base.itemWidth / 2,
1290
+ animEnd = 'webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend';
1291
+
1292
+ base.isTransition = true;
1293
+
1294
+ base.$owlWrapper
1295
+ .addClass('owl-origin')
1296
+ .css({
1297
+ "-webkit-transform-origin" : origin + "px",
1298
+ "-moz-perspective-origin" : origin + "px",
1299
+ "perspective-origin" : origin + "px"
1300
+ });
1301
+ function transStyles(prevPos) {
1302
+ return {
1303
+ "position" : "relative",
1304
+ "left" : prevPos + "px"
1305
+ };
1306
+ }
1307
+
1308
+ $prevItem
1309
+ .css(transStyles(prevPos, 10))
1310
+ .addClass(outClass)
1311
+ .on(animEnd, function () {
1312
+ base.endPrev = true;
1313
+ $prevItem.off(animEnd);
1314
+ base.clearTransStyle($prevItem, outClass);
1315
+ });
1316
+
1317
+ $currentItem
1318
+ .addClass(inClass)
1319
+ .on(animEnd, function () {
1320
+ base.endCurrent = true;
1321
+ $currentItem.off(animEnd);
1322
+ base.clearTransStyle($currentItem, inClass);
1323
+ });
1324
+ },
1325
+
1326
+ clearTransStyle : function (item, classToRemove) {
1327
+ var base = this;
1328
+ item.css({
1329
+ "position" : "",
1330
+ "left" : ""
1331
+ }).removeClass(classToRemove);
1332
+
1333
+ if (base.endPrev && base.endCurrent) {
1334
+ base.$owlWrapper.removeClass('owl-origin');
1335
+ base.endPrev = false;
1336
+ base.endCurrent = false;
1337
+ base.isTransition = false;
1338
+ }
1339
+ },
1340
+
1341
+ owlStatus : function () {
1342
+ var base = this;
1343
+ base.owl = {
1344
+ "userOptions" : base.userOptions,
1345
+ "baseElement" : base.$elem,
1346
+ "userItems" : base.$userItems,
1347
+ "owlItems" : base.$owlItems,
1348
+ "currentItem" : base.currentItem,
1349
+ "prevItem" : base.prevItem,
1350
+ "visibleItems" : base.visibleItems,
1351
+ "isTouch" : base.browser.isTouch,
1352
+ "browser" : base.browser,
1353
+ "dragDirection" : base.dragDirection
1354
+ };
1355
+ },
1356
+
1357
+ clearEvents : function () {
1358
+ var base = this;
1359
+ base.$elem.off(".owl owl mousedown.disableTextSelect");
1360
+ $(document).off(".owl owl");
1361
+ $(window).off("resize", base.resizer);
1362
+ },
1363
+
1364
+ unWrap : function () {
1365
+ var base = this;
1366
+ if (base.$elem.children().length !== 0) {
1367
+ base.$owlWrapper.unwrap();
1368
+ base.$userItems.unwrap().unwrap();
1369
+ if (base.owlControls) {
1370
+ base.owlControls.remove();
1371
+ }
1372
+ }
1373
+ base.clearEvents();
1374
+ base.$elem
1375
+ .attr("style", base.$elem.data("owl-originalStyles") || "")
1376
+ .attr("class", base.$elem.data("owl-originalClasses"));
1377
+ },
1378
+
1379
+ destroy : function () {
1380
+ var base = this;
1381
+ base.stop();
1382
+ window.clearInterval(base.checkVisible);
1383
+ base.unWrap();
1384
+ base.$elem.removeData();
1385
+ },
1386
+
1387
+ reinit : function (newOptions) {
1388
+ var base = this,
1389
+ options = $.extend({}, base.userOptions, newOptions);
1390
+ base.unWrap();
1391
+ base.init(options, base.$elem);
1392
+ },
1393
+
1394
+ addItem : function (htmlString, targetPosition) {
1395
+ var base = this,
1396
+ position;
1397
+
1398
+ if (!htmlString) {return false; }
1399
+
1400
+ if (base.$elem.children().length === 0) {
1401
+ base.$elem.append(htmlString);
1402
+ base.setVars();
1403
+ return false;
1404
+ }
1405
+ base.unWrap();
1406
+ if (targetPosition === undefined || targetPosition === -1) {
1407
+ position = -1;
1408
+ } else {
1409
+ position = targetPosition;
1410
+ }
1411
+ if (position >= base.$userItems.length || position === -1) {
1412
+ base.$userItems.eq(-1).after(htmlString);
1413
+ } else {
1414
+ base.$userItems.eq(position).before(htmlString);
1415
+ }
1416
+
1417
+ base.setVars();
1418
+ },
1419
+
1420
+ removeItem : function (targetPosition) {
1421
+ var base = this,
1422
+ position;
1423
+
1424
+ if (base.$elem.children().length === 0) {
1425
+ return false;
1426
+ }
1427
+ if (targetPosition === undefined || targetPosition === -1) {
1428
+ position = -1;
1429
+ } else {
1430
+ position = targetPosition;
1431
+ }
1432
+
1433
+ base.unWrap();
1434
+ base.$userItems.eq(position).remove();
1435
+ base.setVars();
1436
+ }
1437
+
1438
+ };
1439
+
1440
+ $.fn.owlCarousel = function (options) {
1441
+ return this.each(function () {
1442
+ if ($(this).data("owl-init") === true) {
1443
+ return false;
1444
+ }
1445
+ $(this).data("owl-init", true);
1446
+ var carousel = Object.create(Carousel);
1447
+ carousel.init(options, this);
1448
+ $.data(this, "owlCarousel", carousel);
1449
+ });
1450
+ };
1451
+
1452
+ $.fn.owlCarousel.options = {
1453
+
1454
+ items : 5,
1455
+ itemsCustom : false,
1456
+ itemsDesktop : [1199, 4],
1457
+ itemsDesktopSmall : [979, 3],
1458
+ itemsTablet : [768, 2],
1459
+ itemsTabletSmall : false,
1460
+ itemsMobile : [479, 1],
1461
+ singleItem : false,
1462
+ itemsScaleUp : false,
1463
+
1464
+ slideSpeed : 200,
1465
+ paginationSpeed : 800,
1466
+ rewindSpeed : 1000,
1467
+
1468
+ autoPlay : false,
1469
+ stopOnHover : false,
1470
+
1471
+ navigation : false,
1472
+ navigationText : ["prev", "next"],
1473
+ rewindNav : true,
1474
+ scrollPerPage : false,
1475
+
1476
+ pagination : true,
1477
+ paginationNumbers : false,
1478
+
1479
+ responsive : true,
1480
+ responsiveRefreshRate : 200,
1481
+ responsiveBaseWidth : window,
1482
+
1483
+ baseClass : "owl-carousel",
1484
+ theme : "owl-theme",
1485
+
1486
+ lazyLoad : false,
1487
+ lazyFollow : true,
1488
+ lazyEffect : "fade",
1489
+
1490
+ autoHeight : false,
1491
+
1492
+ jsonPath : false,
1493
+ jsonSuccess : false,
1494
+
1495
+ dragBeforeAnimFinish : true,
1496
+ mouseDrag : true,
1497
+ touchDrag : true,
1498
+
1499
+ addClassActive : false,
1500
+ transitionStyle : false,
1501
+
1502
+ beforeUpdate : false,
1503
+ afterUpdate : false,
1504
+ beforeInit : false,
1505
+ afterInit : false,
1506
+ beforeMove : false,
1507
+ afterMove : false,
1508
+ afterAction : false,
1509
+ startDragging : false,
1510
+ afterLazyLoad: false
1511
+ };
1512
+ }(jQuery, window, document));