assets-rails 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (322) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +65 -0
  8. data/Rakefile +2 -0
  9. data/assets-rails.gemspec +25 -0
  10. data/lib/assets-rails.rb +7 -0
  11. data/lib/assets-rails/engine.rb +9 -0
  12. data/lib/assets-rails/version.rb +5 -0
  13. data/vendor/assets/fonts/bootstrap/v3.2.0/glyphicons-halflings-regular.eot +0 -0
  14. data/vendor/assets/fonts/bootstrap/v3.2.0/glyphicons-halflings-regular.svg +229 -0
  15. data/vendor/assets/fonts/bootstrap/v3.2.0/glyphicons-halflings-regular.ttf +0 -0
  16. data/vendor/assets/fonts/bootstrap/v3.2.0/glyphicons-halflings-regular.woff +0 -0
  17. data/vendor/assets/fonts/bootstrap/v3.3.0/glyphicons-halflings-regular.eot +0 -0
  18. data/vendor/assets/fonts/bootstrap/v3.3.0/glyphicons-halflings-regular.svg +229 -0
  19. data/vendor/assets/fonts/bootstrap/v3.3.0/glyphicons-halflings-regular.ttf +0 -0
  20. data/vendor/assets/fonts/bootstrap/v3.3.0/glyphicons-halflings-regular.woff +0 -0
  21. data/vendor/assets/fonts/font-awesome/v4.2.0/FontAwesome.otf +0 -0
  22. data/vendor/assets/fonts/font-awesome/v4.2.0/fontawesome-webfont.eot +0 -0
  23. data/vendor/assets/fonts/font-awesome/v4.2.0/fontawesome-webfont.svg +520 -0
  24. data/vendor/assets/fonts/font-awesome/v4.2.0/fontawesome-webfont.ttf +0 -0
  25. data/vendor/assets/fonts/font-awesome/v4.2.0/fontawesome-webfont.woff +0 -0
  26. data/vendor/assets/fonts/jquery.flexslider/flexslider-icon.eot +0 -0
  27. data/vendor/assets/fonts/jquery.flexslider/flexslider-icon.svg +19 -0
  28. data/vendor/assets/fonts/jquery.flexslider/flexslider-icon.ttf +0 -0
  29. data/vendor/assets/fonts/jquery.flexslider/flexslider-icon.woff +0 -0
  30. data/vendor/assets/images/fancybox/blank.gif +0 -0
  31. data/vendor/assets/images/fancybox/fancybox_buttons.png +0 -0
  32. data/vendor/assets/images/fancybox/fancybox_loading.gif +0 -0
  33. data/vendor/assets/images/fancybox/fancybox_loading@2x.gif +0 -0
  34. data/vendor/assets/images/fancybox/fancybox_overlay.png +0 -0
  35. data/vendor/assets/images/fancybox/fancybox_sprite.png +0 -0
  36. data/vendor/assets/images/fancybox/fancybox_sprite@2x.png +0 -0
  37. data/vendor/assets/images/jquery.colorbox/v1.5.14/example1/border.png +0 -0
  38. data/vendor/assets/images/jquery.colorbox/v1.5.14/example1/controls.png +0 -0
  39. data/vendor/assets/images/jquery.colorbox/v1.5.14/example1/loading.gif +0 -0
  40. data/vendor/assets/images/jquery.colorbox/v1.5.14/example1/loading_background.png +0 -0
  41. data/vendor/assets/images/jquery.colorbox/v1.5.14/example1/overlay.png +0 -0
  42. data/vendor/assets/images/jquery.colorbox/v1.5.14/example2/controls.png +0 -0
  43. data/vendor/assets/images/jquery.colorbox/v1.5.14/example2/loading.gif +0 -0
  44. data/vendor/assets/images/jquery.colorbox/v1.5.14/example3/controls.png +0 -0
  45. data/vendor/assets/images/jquery.colorbox/v1.5.14/example3/loading.gif +0 -0
  46. data/vendor/assets/images/jquery.colorbox/v1.5.14/example4/border1.png +0 -0
  47. data/vendor/assets/images/jquery.colorbox/v1.5.14/example4/border2.png +0 -0
  48. data/vendor/assets/images/jquery.colorbox/v1.5.14/example4/loading.gif +0 -0
  49. data/vendor/assets/images/jquery.colorbox/v1.5.14/example5/border.png +0 -0
  50. data/vendor/assets/images/jquery.colorbox/v1.5.14/example5/controls.png +0 -0
  51. data/vendor/assets/images/jquery.colorbox/v1.5.14/example5/loading.gif +0 -0
  52. data/vendor/assets/images/jquery.colorbox/v1.5.14/example5/loading_background.png +0 -0
  53. data/vendor/assets/images/jquery.flexslider/bg_play_pause.png +0 -0
  54. data/vendor/assets/images/jquery.owlcarousel/AjaxLoader.gif +0 -0
  55. data/vendor/assets/images/jquery.owlcarousel/grabbing.png +0 -0
  56. data/vendor/assets/images/zebra_datepicker/calendar-disabled.png +0 -0
  57. data/vendor/assets/images/zebra_datepicker/calendar.png +0 -0
  58. data/vendor/assets/images/zebra_datepicker/metallic/default-date.png +0 -0
  59. data/vendor/assets/images/zebra_datepicker/metallic/disabled-date.png +0 -0
  60. data/vendor/assets/images/zebra_datepicker/metallic/header.png +0 -0
  61. data/vendor/assets/images/zebra_datepicker/metallic/selected-date.png +0 -0
  62. data/vendor/assets/javascripts/bootstrap/v3.2.0.js +12 -0
  63. data/vendor/assets/javascripts/bootstrap/v3.2.0/affix.js +142 -0
  64. data/vendor/assets/javascripts/bootstrap/v3.2.0/alert.js +92 -0
  65. data/vendor/assets/javascripts/bootstrap/v3.2.0/button.js +110 -0
  66. data/vendor/assets/javascripts/bootstrap/v3.2.0/carousel.js +223 -0
  67. data/vendor/assets/javascripts/bootstrap/v3.2.0/collapse.js +170 -0
  68. data/vendor/assets/javascripts/bootstrap/v3.2.0/dropdown.js +151 -0
  69. data/vendor/assets/javascripts/bootstrap/v3.2.0/modal.js +280 -0
  70. data/vendor/assets/javascripts/bootstrap/v3.2.0/popover.js +113 -0
  71. data/vendor/assets/javascripts/bootstrap/v3.2.0/scrollspy.js +170 -0
  72. data/vendor/assets/javascripts/bootstrap/v3.2.0/tab.js +128 -0
  73. data/vendor/assets/javascripts/bootstrap/v3.2.0/tooltip.js +457 -0
  74. data/vendor/assets/javascripts/bootstrap/v3.2.0/transition.js +59 -0
  75. data/vendor/assets/javascripts/bootstrap/v3.3.0/affix.js +162 -0
  76. data/vendor/assets/javascripts/bootstrap/v3.3.0/alert.js +94 -0
  77. data/vendor/assets/javascripts/bootstrap/v3.3.0/button.js +116 -0
  78. data/vendor/assets/javascripts/bootstrap/v3.3.0/carousel.js +239 -0
  79. data/vendor/assets/javascripts/bootstrap/v3.3.0/collapse.js +211 -0
  80. data/vendor/assets/javascripts/bootstrap/v3.3.0/dropdown.js +161 -0
  81. data/vendor/assets/javascripts/bootstrap/v3.3.0/modal.js +281 -0
  82. data/vendor/assets/javascripts/bootstrap/v3.3.0/popover.js +119 -0
  83. data/vendor/assets/javascripts/bootstrap/v3.3.0/scrollspy.js +175 -0
  84. data/vendor/assets/javascripts/bootstrap/v3.3.0/tab.js +153 -0
  85. data/vendor/assets/javascripts/bootstrap/v3.3.0/tooltip.js +478 -0
  86. data/vendor/assets/javascripts/bootstrap/v3.3.0/transition.js +59 -0
  87. data/vendor/assets/javascripts/draggabilly/v1.1.1.js +2 -0
  88. data/vendor/assets/javascripts/draggabilly/v1.1.1/draggabilly.js +615 -0
  89. data/vendor/assets/javascripts/imagesloaded/v3.1.8.js +2 -0
  90. data/vendor/assets/javascripts/imagesloaded/v3.1.8/imagesloaded.js +335 -0
  91. data/vendor/assets/javascripts/isotope/v2.0.1.js +1 -0
  92. data/vendor/assets/javascripts/isotope/v2.0.1/isotope.js +628 -0
  93. data/vendor/assets/javascripts/jquery.collageplus/v0.3.3.js +2 -0
  94. data/vendor/assets/javascripts/jquery.collageplus/v0.3.3/jquery.collagecaption.js +143 -0
  95. data/vendor/assets/javascripts/jquery.collageplus/v0.3.3/jquery.collageplus.js +401 -0
  96. data/vendor/assets/javascripts/jquery.collageplus/v0.3.3/remove_whitespace.js +13 -0
  97. data/vendor/assets/javascripts/jquery.colorbox/v1.5.14.js +2 -0
  98. data/vendor/assets/javascripts/jquery.colorbox/v1.5.14/jquery.colorbox.js +1090 -0
  99. data/vendor/assets/javascripts/jquery.expander/v1.4.12.js +1 -0
  100. data/vendor/assets/javascripts/jquery.expander/v1.4.12/jquery.expander.js +453 -0
  101. data/vendor/assets/javascripts/jquery.fakecrop.js +1 -0
  102. data/vendor/assets/javascripts/jquery.fakecrop/jquery.fakecrop.js +153 -0
  103. data/vendor/assets/javascripts/jquery.fancybox/v2.1.5.js +4 -0
  104. data/vendor/assets/javascripts/jquery.fancybox/v2.1.5/jquery.fancybox-buttons.js +122 -0
  105. data/vendor/assets/javascripts/jquery.fancybox/v2.1.5/jquery.fancybox-media.js +199 -0
  106. data/vendor/assets/javascripts/jquery.fancybox/v2.1.5/jquery.fancybox-thumbs.js +162 -0
  107. data/vendor/assets/javascripts/jquery.fancybox/v2.1.5/jquery.fancybox.js +2020 -0
  108. data/vendor/assets/javascripts/jquery.flexslider/v2.2.2.js +1 -0
  109. data/vendor/assets/javascripts/jquery.flexslider/v2.2.2/jquery.flexslider.js +1157 -0
  110. data/vendor/assets/javascripts/jquery.infinitescroll/v2.0.2.js +2 -0
  111. data/vendor/assets/javascripts/jquery.infinitescroll/v2.0.2/jquery.infinitescroll.js +821 -0
  112. data/vendor/assets/javascripts/jquery.nivo.slider/v3.2.js +2 -0
  113. data/vendor/assets/javascripts/jquery.nivo.slider/v3.2/jquery.nivo.slider.js +662 -0
  114. data/vendor/assets/javascripts/jquery.owlcarousel/v1.3.3.js +2 -0
  115. data/vendor/assets/javascripts/jquery.owlcarousel/v1.3.3/jquery.owlcarousel.js +1517 -0
  116. data/vendor/assets/javascripts/jquery.pageless.js +2 -0
  117. data/vendor/assets/javascripts/jquery.pageless/jquery.pageless.js +251 -0
  118. data/vendor/assets/javascripts/jquery.render/v1.1.0.js +2 -0
  119. data/vendor/assets/javascripts/jquery.render/v1.1.0/jquery.render.js +56 -0
  120. data/vendor/assets/javascripts/jquery.scrollto/v1.4.13.js +2 -0
  121. data/vendor/assets/javascripts/jquery.scrollto/v1.4.13/jquery.scrollto.js +187 -0
  122. data/vendor/assets/javascripts/jquery.timeago/v1.4.1.js +1 -0
  123. data/vendor/assets/javascripts/jquery.timeago/v1.4.1/jquery.timeago.js +214 -0
  124. data/vendor/assets/javascripts/jquery.turbolinks/v2.1.0.js +1 -0
  125. data/vendor/assets/javascripts/jquery.turbolinks/v2.1.0/jquery.turbolinks.js +49 -0
  126. data/vendor/assets/javascripts/jquery/v1.11.1.js +1 -0
  127. data/vendor/assets/javascripts/jquery/v1.11.1/jquery.js +10308 -0
  128. data/vendor/assets/javascripts/jquery/v2.1.1.js +1 -0
  129. data/vendor/assets/javascripts/jquery/v2.1.1/jquery.js +9190 -0
  130. data/vendor/assets/javascripts/masonry/v3.1.5.js +2 -0
  131. data/vendor/assets/javascripts/masonry/v3.1.5/masonry.js +205 -0
  132. data/vendor/assets/javascripts/nprogress/v0.1.6.js +2 -0
  133. data/vendor/assets/javascripts/nprogress/v0.1.6/nprogress-ajax.js +4 -0
  134. data/vendor/assets/javascripts/nprogress/v0.1.6/nprogress-turbolinks.js +5 -0
  135. data/vendor/assets/javascripts/nprogress/v0.1.6/nprogress.js +475 -0
  136. data/vendor/assets/javascripts/responsiveCarousel/v1.2.0.js +2 -0
  137. data/vendor/assets/javascripts/responsiveCarousel/v1.2.0/responsiveCarousel.js +410 -0
  138. data/vendor/assets/javascripts/responsiveslides/v1.54.js +2 -0
  139. data/vendor/assets/javascripts/responsiveslides/v1.54/responsiveslides.js +391 -0
  140. data/vendor/assets/javascripts/zebra_datepicker/v1.8.9.js +2 -0
  141. data/vendor/assets/javascripts/zebra_datepicker/v1.8.9/zebra_datepicker.js +2965 -0
  142. data/vendor/assets/stylesheets/bootstrap/_v3.2.0.scss +52 -0
  143. data/vendor/assets/stylesheets/bootstrap/_v3.3.0.scss +52 -0
  144. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_alerts.scss +68 -0
  145. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_badges.scss +57 -0
  146. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_bootstrap-sprockets.scss +7 -0
  147. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_breadcrumbs.scss +26 -0
  148. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_button-groups.scss +240 -0
  149. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_buttons.scss +157 -0
  150. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_carousel.scss +243 -0
  151. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_close.scss +35 -0
  152. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_code.scss +68 -0
  153. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_component-animations.scss +35 -0
  154. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_dropdowns.scss +215 -0
  155. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_forms.scss +538 -0
  156. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_glyphicons.scss +237 -0
  157. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_grid.scss +84 -0
  158. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_input-groups.scss +166 -0
  159. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_jumbotron.scss +48 -0
  160. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_labels.scss +66 -0
  161. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_list-group.scss +131 -0
  162. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_media.scss +56 -0
  163. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_mixins.scss +39 -0
  164. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_modals.scss +150 -0
  165. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_navbar.scss +659 -0
  166. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_navs.scss +242 -0
  167. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_normalize.scss +425 -0
  168. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_pager.scss +55 -0
  169. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_pagination.scss +88 -0
  170. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_panels.scss +243 -0
  171. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_popovers.scss +133 -0
  172. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_print.scss +101 -0
  173. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_progress-bars.scss +105 -0
  174. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_responsive-embed.scss +34 -0
  175. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_responsive-utilities.scss +174 -0
  176. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_scaffolding.scss +150 -0
  177. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_tables.scss +233 -0
  178. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_theme.scss +258 -0
  179. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_thumbnails.scss +38 -0
  180. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_tooltip.scss +95 -0
  181. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_type.scss +304 -0
  182. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_utilities.scss +57 -0
  183. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_variables.scss +854 -0
  184. data/vendor/assets/stylesheets/bootstrap/v3.2.0/_wells.scss +29 -0
  185. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_alerts.scss +14 -0
  186. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_background-variant.scss +11 -0
  187. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_border-radius.scss +18 -0
  188. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_buttons.scss +50 -0
  189. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_center-block.scss +7 -0
  190. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_clearfix.scss +22 -0
  191. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_forms.scss +84 -0
  192. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_gradients.scss +58 -0
  193. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_grid-framework.scss +81 -0
  194. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_grid.scss +122 -0
  195. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_hide-text.scss +21 -0
  196. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_image.scss +34 -0
  197. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_labels.scss +12 -0
  198. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_list-group.scss +31 -0
  199. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_nav-divider.scss +10 -0
  200. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_nav-vertical-align.scss +9 -0
  201. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_opacity.scss +8 -0
  202. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_pagination.scss +23 -0
  203. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_panels.scss +24 -0
  204. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_progress-bar.scss +10 -0
  205. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_reset-filter.scss +8 -0
  206. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_resize.scss +6 -0
  207. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_responsive-visibility.scss +21 -0
  208. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_size.scss +10 -0
  209. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_tab-focus.scss +9 -0
  210. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_table-row.scss +28 -0
  211. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_text-emphasis.scss +11 -0
  212. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_text-overflow.scss +8 -0
  213. data/vendor/assets/stylesheets/bootstrap/v3.2.0/mixins/_vendor-prefixes.scss +219 -0
  214. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_alerts.scss +68 -0
  215. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_badges.scss +57 -0
  216. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_bootstrap-sprockets.scss +7 -0
  217. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_breadcrumbs.scss +26 -0
  218. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_button-groups.scss +247 -0
  219. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_buttons.scss +160 -0
  220. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_carousel.scss +267 -0
  221. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_close.scss +35 -0
  222. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_code.scss +69 -0
  223. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_component-animations.scss +38 -0
  224. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_dropdowns.scss +213 -0
  225. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_forms.scss +561 -0
  226. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_glyphicons.scss +234 -0
  227. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_grid.scss +84 -0
  228. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_input-groups.scss +166 -0
  229. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_jumbotron.scss +48 -0
  230. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_labels.scss +66 -0
  231. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_list-group.scss +132 -0
  232. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_media.scss +47 -0
  233. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_mixins.scss +39 -0
  234. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_modals.scss +149 -0
  235. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_navbar.scss +661 -0
  236. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_navs.scss +244 -0
  237. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_normalize.scss +427 -0
  238. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_pager.scss +54 -0
  239. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_pagination.scss +88 -0
  240. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_panels.scss +261 -0
  241. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_popovers.scss +134 -0
  242. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_print.scss +107 -0
  243. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_progress-bars.scss +87 -0
  244. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_responsive-embed.scss +35 -0
  245. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_responsive-utilities.scss +174 -0
  246. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_scaffolding.scss +150 -0
  247. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_tables.scss +234 -0
  248. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_theme.scss +260 -0
  249. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_thumbnails.scss +38 -0
  250. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_tooltip.scss +95 -0
  251. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_type.scss +298 -0
  252. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_utilities.scss +56 -0
  253. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_variables.scss +864 -0
  254. data/vendor/assets/stylesheets/bootstrap/v3.3.0/_wells.scss +29 -0
  255. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_alerts.scss +14 -0
  256. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_background-variant.scss +11 -0
  257. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_border-radius.scss +18 -0
  258. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_buttons.scss +52 -0
  259. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_center-block.scss +7 -0
  260. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_clearfix.scss +22 -0
  261. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_forms.scss +88 -0
  262. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_gradients.scss +58 -0
  263. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_grid-framework.scss +81 -0
  264. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_grid.scss +122 -0
  265. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_hide-text.scss +21 -0
  266. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_image.scss +33 -0
  267. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_labels.scss +12 -0
  268. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_list-group.scss +31 -0
  269. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_nav-divider.scss +10 -0
  270. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_nav-vertical-align.scss +9 -0
  271. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_opacity.scss +8 -0
  272. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_pagination.scss +23 -0
  273. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_panels.scss +24 -0
  274. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_progress-bar.scss +10 -0
  275. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_reset-filter.scss +8 -0
  276. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_resize.scss +6 -0
  277. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_responsive-visibility.scss +21 -0
  278. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_size.scss +10 -0
  279. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_tab-focus.scss +9 -0
  280. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_table-row.scss +28 -0
  281. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_text-emphasis.scss +11 -0
  282. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_text-overflow.scss +8 -0
  283. data/vendor/assets/stylesheets/bootstrap/v3.3.0/mixins/_vendor-prefixes.scss +222 -0
  284. data/vendor/assets/stylesheets/font-awesome/v4.2.0.css +3 -0
  285. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_bordered-pulled.scss +16 -0
  286. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_core.scss +11 -0
  287. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_extras.scss +44 -0
  288. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_fixed-width.scss +6 -0
  289. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_icons.scss +552 -0
  290. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_larger.scss +13 -0
  291. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_list.scss +19 -0
  292. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_mixins.scss +25 -0
  293. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_path.scss +14 -0
  294. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_rotated-flipped.scss +20 -0
  295. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_spinning.scss +29 -0
  296. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_stacked.scss +20 -0
  297. data/vendor/assets/stylesheets/font-awesome/v4.2.0/_variables.scss +561 -0
  298. data/vendor/assets/stylesheets/font-awesome/v4.2.0/font-awesome.scss +17 -0
  299. data/vendor/assets/stylesheets/jquery.colorbox/v1.5.14/example1.css.scss +70 -0
  300. data/vendor/assets/stylesheets/jquery.colorbox/v1.5.14/example2.css.scss +50 -0
  301. data/vendor/assets/stylesheets/jquery.colorbox/v1.5.14/example3.css.scss +45 -0
  302. data/vendor/assets/stylesheets/jquery.colorbox/v1.5.14/example4.css.scss +66 -0
  303. data/vendor/assets/stylesheets/jquery.colorbox/v1.5.14/example5.css.scss +58 -0
  304. data/vendor/assets/stylesheets/jquery.fancybox/v2.1.5.css +5 -0
  305. data/vendor/assets/stylesheets/jquery.fancybox/v2.1.5/jquery.fancybox-buttons.css.erb +97 -0
  306. data/vendor/assets/stylesheets/jquery.fancybox/v2.1.5/jquery.fancybox-thumbs.css +55 -0
  307. data/vendor/assets/stylesheets/jquery.fancybox/v2.1.5/jquery.fancybox.css.erb +274 -0
  308. data/vendor/assets/stylesheets/jquery.flexslider/v2.2.2.css +3 -0
  309. data/vendor/assets/stylesheets/jquery.flexslider/v2.2.2/jquery.flexslider.scss +96 -0
  310. data/vendor/assets/stylesheets/jquery.nivo.slider/v3.2.css +3 -0
  311. data/vendor/assets/stylesheets/jquery.nivo.slider/v3.2/jquery.nivo.slider.css +113 -0
  312. data/vendor/assets/stylesheets/jquery.owlcarousel/v1.3.3/jquery.owlcarousel.scss +71 -0
  313. data/vendor/assets/stylesheets/jquery.owlcarousel/v1.3.3/theme.scss +79 -0
  314. data/vendor/assets/stylesheets/jquery.owlcarousel/v1.3.3/transitions.scss +163 -0
  315. data/vendor/assets/stylesheets/nprogress/v0.1.6/nprogress-bootstrap.css +4 -0
  316. data/vendor/assets/stylesheets/nprogress/v0.1.6/nprogress.css.scss +77 -0
  317. data/vendor/assets/stylesheets/responsiveslides/v1.54.css +3 -0
  318. data/vendor/assets/stylesheets/responsiveslides/v1.54/responsiveslides.css +33 -0
  319. data/vendor/assets/stylesheets/zebra_datepicker/v1.8.9/bootstrap.scss +95 -0
  320. data/vendor/assets/stylesheets/zebra_datepicker/v1.8.9/default.scss +102 -0
  321. data/vendor/assets/stylesheets/zebra_datepicker/v1.8.9/metallic.scss +106 -0
  322. metadata +407 -0
@@ -0,0 +1,2 @@
1
+ // https://github.com/desandro/imagesloaded/
2
+ //= require imagesloaded/v1.8.9/imagesloaded.js
@@ -0,0 +1,335 @@
1
+ /*!
2
+ * imagesLoaded v3.1.8
3
+ * JavaScript is all like "You images are done yet or what?"
4
+ * MIT License
5
+ */
6
+
7
+ ( function( window, factory ) { 'use strict';
8
+ // universal module definition
9
+
10
+ /*global define: false, module: false, require: false */
11
+
12
+ if ( typeof define === 'function' && define.amd ) {
13
+ // AMD
14
+ define( [
15
+ 'eventEmitter/EventEmitter',
16
+ 'eventie/eventie'
17
+ ], function( EventEmitter, eventie ) {
18
+ return factory( window, EventEmitter, eventie );
19
+ });
20
+ } else if ( typeof exports === 'object' ) {
21
+ // CommonJS
22
+ module.exports = factory(
23
+ window,
24
+ require('wolfy87-eventemitter'),
25
+ require('eventie')
26
+ );
27
+ } else {
28
+ // browser global
29
+ window.imagesLoaded = factory(
30
+ window,
31
+ window.EventEmitter,
32
+ window.eventie
33
+ );
34
+ }
35
+
36
+ })( window,
37
+
38
+ // -------------------------- factory -------------------------- //
39
+
40
+ function factory( window, EventEmitter, eventie ) {
41
+
42
+ 'use strict';
43
+
44
+ var $ = window.jQuery;
45
+ var console = window.console;
46
+ var hasConsole = typeof console !== 'undefined';
47
+
48
+ // -------------------------- helpers -------------------------- //
49
+
50
+ // extend objects
51
+ function extend( a, b ) {
52
+ for ( var prop in b ) {
53
+ a[ prop ] = b[ prop ];
54
+ }
55
+ return a;
56
+ }
57
+
58
+ var objToString = Object.prototype.toString;
59
+ function isArray( obj ) {
60
+ return objToString.call( obj ) === '[object Array]';
61
+ }
62
+
63
+ // turn element or nodeList into an array
64
+ function makeArray( obj ) {
65
+ var ary = [];
66
+ if ( isArray( obj ) ) {
67
+ // use object if already an array
68
+ ary = obj;
69
+ } else if ( typeof obj.length === 'number' ) {
70
+ // convert nodeList to array
71
+ for ( var i=0, len = obj.length; i < len; i++ ) {
72
+ ary.push( obj[i] );
73
+ }
74
+ } else {
75
+ // array of single index
76
+ ary.push( obj );
77
+ }
78
+ return ary;
79
+ }
80
+
81
+ // -------------------------- imagesLoaded -------------------------- //
82
+
83
+ /**
84
+ * @param {Array, Element, NodeList, String} elem
85
+ * @param {Object or Function} options - if function, use as callback
86
+ * @param {Function} onAlways - callback function
87
+ */
88
+ function ImagesLoaded( elem, options, onAlways ) {
89
+ // coerce ImagesLoaded() without new, to be new ImagesLoaded()
90
+ if ( !( this instanceof ImagesLoaded ) ) {
91
+ return new ImagesLoaded( elem, options );
92
+ }
93
+ // use elem as selector string
94
+ if ( typeof elem === 'string' ) {
95
+ elem = document.querySelectorAll( elem );
96
+ }
97
+
98
+ this.elements = makeArray( elem );
99
+ this.options = extend( {}, this.options );
100
+
101
+ if ( typeof options === 'function' ) {
102
+ onAlways = options;
103
+ } else {
104
+ extend( this.options, options );
105
+ }
106
+
107
+ if ( onAlways ) {
108
+ this.on( 'always', onAlways );
109
+ }
110
+
111
+ this.getImages();
112
+
113
+ if ( $ ) {
114
+ // add jQuery Deferred object
115
+ this.jqDeferred = new $.Deferred();
116
+ }
117
+
118
+ // HACK check async to allow time to bind listeners
119
+ var _this = this;
120
+ setTimeout( function() {
121
+ _this.check();
122
+ });
123
+ }
124
+
125
+ ImagesLoaded.prototype = new EventEmitter();
126
+
127
+ ImagesLoaded.prototype.options = {};
128
+
129
+ ImagesLoaded.prototype.getImages = function() {
130
+ this.images = [];
131
+
132
+ // filter & find items if we have an item selector
133
+ for ( var i=0, len = this.elements.length; i < len; i++ ) {
134
+ var elem = this.elements[i];
135
+ // filter siblings
136
+ if ( elem.nodeName === 'IMG' ) {
137
+ this.addImage( elem );
138
+ }
139
+ // find children
140
+ // no non-element nodes, #143
141
+ var nodeType = elem.nodeType;
142
+ if ( !nodeType || !( nodeType === 1 || nodeType === 9 || nodeType === 11 ) ) {
143
+ continue;
144
+ }
145
+ var childElems = elem.querySelectorAll('img');
146
+ // concat childElems to filterFound array
147
+ for ( var j=0, jLen = childElems.length; j < jLen; j++ ) {
148
+ var img = childElems[j];
149
+ this.addImage( img );
150
+ }
151
+ }
152
+ };
153
+
154
+ /**
155
+ * @param {Image} img
156
+ */
157
+ ImagesLoaded.prototype.addImage = function( img ) {
158
+ var loadingImage = new LoadingImage( img );
159
+ this.images.push( loadingImage );
160
+ };
161
+
162
+ ImagesLoaded.prototype.check = function() {
163
+ var _this = this;
164
+ var checkedCount = 0;
165
+ var length = this.images.length;
166
+ this.hasAnyBroken = false;
167
+ // complete if no images
168
+ if ( !length ) {
169
+ this.complete();
170
+ return;
171
+ }
172
+
173
+ function onConfirm( image, message ) {
174
+ if ( _this.options.debug && hasConsole ) {
175
+ console.log( 'confirm', image, message );
176
+ }
177
+
178
+ _this.progress( image );
179
+ checkedCount++;
180
+ if ( checkedCount === length ) {
181
+ _this.complete();
182
+ }
183
+ return true; // bind once
184
+ }
185
+
186
+ for ( var i=0; i < length; i++ ) {
187
+ var loadingImage = this.images[i];
188
+ loadingImage.on( 'confirm', onConfirm );
189
+ loadingImage.check();
190
+ }
191
+ };
192
+
193
+ ImagesLoaded.prototype.progress = function( image ) {
194
+ this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;
195
+ // HACK - Chrome triggers event before object properties have changed. #83
196
+ var _this = this;
197
+ setTimeout( function() {
198
+ _this.emit( 'progress', _this, image );
199
+ if ( _this.jqDeferred && _this.jqDeferred.notify ) {
200
+ _this.jqDeferred.notify( _this, image );
201
+ }
202
+ });
203
+ };
204
+
205
+ ImagesLoaded.prototype.complete = function() {
206
+ var eventName = this.hasAnyBroken ? 'fail' : 'done';
207
+ this.isComplete = true;
208
+ var _this = this;
209
+ // HACK - another setTimeout so that confirm happens after progress
210
+ setTimeout( function() {
211
+ _this.emit( eventName, _this );
212
+ _this.emit( 'always', _this );
213
+ if ( _this.jqDeferred ) {
214
+ var jqMethod = _this.hasAnyBroken ? 'reject' : 'resolve';
215
+ _this.jqDeferred[ jqMethod ]( _this );
216
+ }
217
+ });
218
+ };
219
+
220
+ // -------------------------- jquery -------------------------- //
221
+
222
+ if ( $ ) {
223
+ $.fn.imagesLoaded = function( options, callback ) {
224
+ var instance = new ImagesLoaded( this, options, callback );
225
+ return instance.jqDeferred.promise( $(this) );
226
+ };
227
+ }
228
+
229
+
230
+ // -------------------------- -------------------------- //
231
+
232
+ function LoadingImage( img ) {
233
+ this.img = img;
234
+ }
235
+
236
+ LoadingImage.prototype = new EventEmitter();
237
+
238
+ LoadingImage.prototype.check = function() {
239
+ // first check cached any previous images that have same src
240
+ var resource = cache[ this.img.src ] || new Resource( this.img.src );
241
+ if ( resource.isConfirmed ) {
242
+ this.confirm( resource.isLoaded, 'cached was confirmed' );
243
+ return;
244
+ }
245
+
246
+ // If complete is true and browser supports natural sizes,
247
+ // try to check for image status manually.
248
+ if ( this.img.complete && this.img.naturalWidth !== undefined ) {
249
+ // report based on naturalWidth
250
+ this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );
251
+ return;
252
+ }
253
+
254
+ // If none of the checks above matched, simulate loading on detached element.
255
+ var _this = this;
256
+ resource.on( 'confirm', function( resrc, message ) {
257
+ _this.confirm( resrc.isLoaded, message );
258
+ return true;
259
+ });
260
+
261
+ resource.check();
262
+ };
263
+
264
+ LoadingImage.prototype.confirm = function( isLoaded, message ) {
265
+ this.isLoaded = isLoaded;
266
+ this.emit( 'confirm', this, message );
267
+ };
268
+
269
+ // -------------------------- Resource -------------------------- //
270
+
271
+ // Resource checks each src, only once
272
+ // separate class from LoadingImage to prevent memory leaks. See #115
273
+
274
+ var cache = {};
275
+
276
+ function Resource( src ) {
277
+ this.src = src;
278
+ // add to cache
279
+ cache[ src ] = this;
280
+ }
281
+
282
+ Resource.prototype = new EventEmitter();
283
+
284
+ Resource.prototype.check = function() {
285
+ // only trigger checking once
286
+ if ( this.isChecked ) {
287
+ return;
288
+ }
289
+ // simulate loading on detached element
290
+ var proxyImage = new Image();
291
+ eventie.bind( proxyImage, 'load', this );
292
+ eventie.bind( proxyImage, 'error', this );
293
+ proxyImage.src = this.src;
294
+ // set flag
295
+ this.isChecked = true;
296
+ };
297
+
298
+ // ----- events ----- //
299
+
300
+ // trigger specified handler for event type
301
+ Resource.prototype.handleEvent = function( event ) {
302
+ var method = 'on' + event.type;
303
+ if ( this[ method ] ) {
304
+ this[ method ]( event );
305
+ }
306
+ };
307
+
308
+ Resource.prototype.onload = function( event ) {
309
+ this.confirm( true, 'onload' );
310
+ this.unbindProxyEvents( event );
311
+ };
312
+
313
+ Resource.prototype.onerror = function( event ) {
314
+ this.confirm( false, 'onerror' );
315
+ this.unbindProxyEvents( event );
316
+ };
317
+
318
+ // ----- confirm ----- //
319
+
320
+ Resource.prototype.confirm = function( isLoaded, message ) {
321
+ this.isConfirmed = true;
322
+ this.isLoaded = isLoaded;
323
+ this.emit( 'confirm', this, message );
324
+ };
325
+
326
+ Resource.prototype.unbindProxyEvents = function( event ) {
327
+ eventie.unbind( event.target, 'load', this );
328
+ eventie.unbind( event.target, 'error', this );
329
+ };
330
+
331
+ // ----- ----- //
332
+
333
+ return ImagesLoaded;
334
+
335
+ });
@@ -0,0 +1 @@
1
+ //= require isotope/v2.0.1/isotope.js
@@ -0,0 +1,628 @@
1
+ /*!
2
+ * Isotope v2.0.1
3
+ * Filter & sort magical layouts
4
+ * http://isotope.metafizzy.co
5
+ */
6
+
7
+ ( function( window ) {
8
+
9
+ 'use strict';
10
+
11
+ // -------------------------- vars -------------------------- //
12
+
13
+ var jQuery = window.jQuery;
14
+
15
+ // -------------------------- helpers -------------------------- //
16
+
17
+ // extend objects
18
+ function extend( a, b ) {
19
+ for ( var prop in b ) {
20
+ a[ prop ] = b[ prop ];
21
+ }
22
+ return a;
23
+ }
24
+
25
+ var trim = String.prototype.trim ?
26
+ function( str ) {
27
+ return str.trim();
28
+ } :
29
+ function( str ) {
30
+ return str.replace( /^\s+|\s+$/g, '' );
31
+ };
32
+
33
+ var docElem = document.documentElement;
34
+
35
+ var getText = docElem.textContent ?
36
+ function( elem ) {
37
+ return elem.textContent;
38
+ } :
39
+ function( elem ) {
40
+ return elem.innerText;
41
+ };
42
+
43
+ var objToString = Object.prototype.toString;
44
+ function isArray( obj ) {
45
+ return objToString.call( obj ) === '[object Array]';
46
+ }
47
+
48
+ // index of helper cause IE8
49
+ var indexOf = Array.prototype.indexOf ? function( ary, obj ) {
50
+ return ary.indexOf( obj );
51
+ } : function( ary, obj ) {
52
+ for ( var i=0, len = ary.length; i < len; i++ ) {
53
+ if ( ary[i] === obj ) {
54
+ return i;
55
+ }
56
+ }
57
+ return -1;
58
+ };
59
+
60
+ // turn element or nodeList into an array
61
+ function makeArray( obj ) {
62
+ var ary = [];
63
+ if ( isArray( obj ) ) {
64
+ // use object if already an array
65
+ ary = obj;
66
+ } else if ( obj && typeof obj.length === 'number' ) {
67
+ // convert nodeList to array
68
+ for ( var i=0, len = obj.length; i < len; i++ ) {
69
+ ary.push( obj[i] );
70
+ }
71
+ } else {
72
+ // array of single index
73
+ ary.push( obj );
74
+ }
75
+ return ary;
76
+ }
77
+
78
+ function removeFrom( obj, ary ) {
79
+ var index = indexOf( ary, obj );
80
+ if ( index !== -1 ) {
81
+ ary.splice( index, 1 );
82
+ }
83
+ }
84
+
85
+ // -------------------------- isotopeDefinition -------------------------- //
86
+
87
+ // used for AMD definition and requires
88
+ function isotopeDefinition( Outlayer, getSize, matchesSelector, Item, LayoutMode ) {
89
+ // create an Outlayer layout class
90
+ var Isotope = Outlayer.create( 'isotope', {
91
+ layoutMode: "masonry",
92
+ isJQueryFiltering: true,
93
+ sortAscending: true
94
+ });
95
+
96
+ Isotope.Item = Item;
97
+ Isotope.LayoutMode = LayoutMode;
98
+
99
+ Isotope.prototype._create = function() {
100
+ this.itemGUID = 0;
101
+ // functions that sort items
102
+ this._sorters = {};
103
+ this._getSorters();
104
+ // call super
105
+ Outlayer.prototype._create.call( this );
106
+
107
+ // create layout modes
108
+ this.modes = {};
109
+ // start filteredItems with all items
110
+ this.filteredItems = this.items;
111
+ // keep of track of sortBys
112
+ this.sortHistory = [ 'original-order' ];
113
+ // create from registered layout modes
114
+ for ( var name in LayoutMode.modes ) {
115
+ this._initLayoutMode( name );
116
+ }
117
+ };
118
+
119
+ Isotope.prototype.reloadItems = function() {
120
+ // reset item ID counter
121
+ this.itemGUID = 0;
122
+ // call super
123
+ Outlayer.prototype.reloadItems.call( this );
124
+ };
125
+
126
+ Isotope.prototype._itemize = function() {
127
+ var items = Outlayer.prototype._itemize.apply( this, arguments );
128
+ // assign ID for original-order
129
+ for ( var i=0, len = items.length; i < len; i++ ) {
130
+ var item = items[i];
131
+ item.id = this.itemGUID++;
132
+ }
133
+ this._updateItemsSortData( items );
134
+ return items;
135
+ };
136
+
137
+
138
+ // -------------------------- layout -------------------------- //
139
+
140
+ Isotope.prototype._initLayoutMode = function( name ) {
141
+ var Mode = LayoutMode.modes[ name ];
142
+ // set mode options
143
+ // HACK extend initial options, back-fill in default options
144
+ var initialOpts = this.options[ name ] || {};
145
+ this.options[ name ] = Mode.options ?
146
+ extend( Mode.options, initialOpts ) : initialOpts;
147
+ // init layout mode instance
148
+ this.modes[ name ] = new Mode( this );
149
+ };
150
+
151
+
152
+ Isotope.prototype.layout = function() {
153
+ // if first time doing layout, do all magic
154
+ if ( !this._isLayoutInited && this.options.isInitLayout ) {
155
+ this.arrange();
156
+ return;
157
+ }
158
+ this._layout();
159
+ };
160
+
161
+ // private method to be used in layout() & magic()
162
+ Isotope.prototype._layout = function() {
163
+ // don't animate first layout
164
+ var isInstant = this._getIsInstant();
165
+ // layout flow
166
+ this._resetLayout();
167
+ this._manageStamps();
168
+ this.layoutItems( this.filteredItems, isInstant );
169
+
170
+ // flag for initalized
171
+ this._isLayoutInited = true;
172
+ };
173
+
174
+ // filter + sort + layout
175
+ Isotope.prototype.arrange = function( opts ) {
176
+ // set any options pass
177
+ this.option( opts );
178
+ this._getIsInstant();
179
+ // filter, sort, and layout
180
+ this.filteredItems = this._filter( this.items );
181
+ this._sort();
182
+ this._layout();
183
+ };
184
+ // alias to _init for main plugin method
185
+ Isotope.prototype._init = Isotope.prototype.arrange;
186
+
187
+ // HACK
188
+ // Don't animate/transition first layout
189
+ // Or don't animate/transition other layouts
190
+ Isotope.prototype._getIsInstant = function() {
191
+ var isInstant = this.options.isLayoutInstant !== undefined ?
192
+ this.options.isLayoutInstant : !this._isLayoutInited;
193
+ this._isInstant = isInstant;
194
+ return isInstant;
195
+ };
196
+
197
+ // -------------------------- filter -------------------------- //
198
+
199
+ Isotope.prototype._filter = function( items ) {
200
+ var filter = this.options.filter;
201
+ filter = filter || '*';
202
+ var matches = [];
203
+ var hiddenMatched = [];
204
+ var visibleUnmatched = [];
205
+
206
+ var test = this._getFilterTest( filter );
207
+
208
+ // test each item
209
+ for ( var i=0, len = items.length; i < len; i++ ) {
210
+ var item = items[i];
211
+ if ( item.isIgnored ) {
212
+ continue;
213
+ }
214
+ // add item to either matched or unmatched group
215
+ var isMatched = test( item );
216
+ // item.isFilterMatched = isMatched;
217
+ // add to matches if its a match
218
+ if ( isMatched ) {
219
+ matches.push( item );
220
+ }
221
+ // add to additional group if item needs to be hidden or revealed
222
+ if ( isMatched && item.isHidden ) {
223
+ hiddenMatched.push( item );
224
+ } else if ( !isMatched && !item.isHidden ) {
225
+ visibleUnmatched.push( item );
226
+ }
227
+ }
228
+
229
+ var _this = this;
230
+ function hideReveal() {
231
+ _this.reveal( hiddenMatched );
232
+ _this.hide( visibleUnmatched );
233
+ }
234
+
235
+ if ( this._isInstant ) {
236
+ this._noTransition( hideReveal );
237
+ } else {
238
+ hideReveal();
239
+ }
240
+
241
+ return matches;
242
+ };
243
+
244
+ // get a jQuery, function, or a matchesSelector test given the filter
245
+ Isotope.prototype._getFilterTest = function( filter ) {
246
+ if ( jQuery && this.options.isJQueryFiltering ) {
247
+ // use jQuery
248
+ return function( item ) {
249
+ return jQuery( item.element ).is( filter );
250
+ };
251
+ }
252
+ if ( typeof filter === 'function' ) {
253
+ // use filter as function
254
+ return function( item ) {
255
+ return filter( item.element );
256
+ };
257
+ }
258
+ // default, use filter as selector string
259
+ return function( item ) {
260
+ return matchesSelector( item.element, filter );
261
+ };
262
+ };
263
+
264
+ // -------------------------- sorting -------------------------- //
265
+
266
+ /**
267
+ * @params {Array} elems
268
+ * @public
269
+ */
270
+ Isotope.prototype.updateSortData = function( elems ) {
271
+ this._getSorters();
272
+ // update item sort data
273
+ // default to all items if none are passed in
274
+ elems = makeArray( elems );
275
+ var items = this.getItems( elems );
276
+ // if no items found, update all items
277
+ items = items.length ? items : this.items;
278
+ this._updateItemsSortData( items );
279
+ };
280
+
281
+ Isotope.prototype._getSorters = function() {
282
+ var getSortData = this.options.getSortData;
283
+ for ( var key in getSortData ) {
284
+ var sorter = getSortData[ key ];
285
+ this._sorters[ key ] = mungeSorter( sorter );
286
+ }
287
+ };
288
+
289
+ /**
290
+ * @params {Array} items - of Isotope.Items
291
+ * @private
292
+ */
293
+ Isotope.prototype._updateItemsSortData = function( items ) {
294
+ for ( var i=0, len = items.length; i < len; i++ ) {
295
+ var item = items[i];
296
+ item.updateSortData();
297
+ }
298
+ };
299
+
300
+ // ----- munge sorter ----- //
301
+
302
+ // encapsulate this, as we just need mungeSorter
303
+ // other functions in here are just for munging
304
+ var mungeSorter = ( function() {
305
+ // add a magic layer to sorters for convienent shorthands
306
+ // `.foo-bar` will use the text of .foo-bar querySelector
307
+ // `[foo-bar]` will use attribute
308
+ // you can also add parser
309
+ // `.foo-bar parseInt` will parse that as a number
310
+ function mungeSorter( sorter ) {
311
+ // if not a string, return function or whatever it is
312
+ if ( typeof sorter !== 'string' ) {
313
+ return sorter;
314
+ }
315
+ // parse the sorter string
316
+ var args = trim( sorter ).split(' ');
317
+ var query = args[0];
318
+ // check if query looks like [an-attribute]
319
+ var attrMatch = query.match( /^\[(.+)\]$/ );
320
+ var attr = attrMatch && attrMatch[1];
321
+ var getValue = getValueGetter( attr, query );
322
+ // use second argument as a parser
323
+ var parser = Isotope.sortDataParsers[ args[1] ];
324
+ // parse the value, if there was a parser
325
+ sorter = parser ? function( elem ) {
326
+ return elem && parser( getValue( elem ) );
327
+ } :
328
+ // otherwise just return value
329
+ function( elem ) {
330
+ return elem && getValue( elem );
331
+ };
332
+
333
+ return sorter;
334
+ }
335
+
336
+ // get an attribute getter, or get text of the querySelector
337
+ function getValueGetter( attr, query ) {
338
+ var getValue;
339
+ // if query looks like [foo-bar], get attribute
340
+ if ( attr ) {
341
+ getValue = function( elem ) {
342
+ return elem.getAttribute( attr );
343
+ };
344
+ } else {
345
+ // otherwise, assume its a querySelector, and get its text
346
+ getValue = function( elem ) {
347
+ var child = elem.querySelector( query );
348
+ return child && getText( child );
349
+ };
350
+ }
351
+ return getValue;
352
+ }
353
+
354
+ return mungeSorter;
355
+ })();
356
+
357
+ // parsers used in getSortData shortcut strings
358
+ Isotope.sortDataParsers = {
359
+ 'parseInt': function( val ) {
360
+ return parseInt( val, 10 );
361
+ },
362
+ 'parseFloat': function( val ) {
363
+ return parseFloat( val );
364
+ }
365
+ };
366
+
367
+ // ----- sort method ----- //
368
+
369
+ // sort filteredItem order
370
+ Isotope.prototype._sort = function() {
371
+ var sortByOpt = this.options.sortBy;
372
+ if ( !sortByOpt ) {
373
+ return;
374
+ }
375
+ // concat all sortBy and sortHistory
376
+ var sortBys = [].concat.apply( sortByOpt, this.sortHistory );
377
+ // sort magic
378
+ var itemSorter = getItemSorter( sortBys, this.options.sortAscending );
379
+ this.filteredItems.sort( itemSorter );
380
+ // keep track of sortBy History
381
+ if ( sortByOpt !== this.sortHistory[0] ) {
382
+ // add to front, oldest goes in last
383
+ this.sortHistory.unshift( sortByOpt );
384
+ }
385
+ };
386
+
387
+ // returns a function used for sorting
388
+ function getItemSorter( sortBys, sortAsc ) {
389
+ return function sorter( itemA, itemB ) {
390
+ // cycle through all sortKeys
391
+ for ( var i = 0, len = sortBys.length; i < len; i++ ) {
392
+ var sortBy = sortBys[i];
393
+ var a = itemA.sortData[ sortBy ];
394
+ var b = itemB.sortData[ sortBy ];
395
+ if ( a > b || a < b ) {
396
+ // if sortAsc is an object, use the value given the sortBy key
397
+ var isAscending = sortAsc[ sortBy ] !== undefined ? sortAsc[ sortBy ] : sortAsc;
398
+ var direction = isAscending ? 1 : -1;
399
+ return ( a > b ? 1 : -1 ) * direction;
400
+ }
401
+ }
402
+ return 0;
403
+ };
404
+ }
405
+
406
+ // -------------------------- methods -------------------------- //
407
+
408
+ // get layout mode
409
+ Isotope.prototype._mode = function() {
410
+ var layoutMode = this.options.layoutMode;
411
+ var mode = this.modes[ layoutMode ];
412
+ if ( !mode ) {
413
+ // TODO console.error
414
+ throw new Error( 'No layout mode: ' + layoutMode );
415
+ }
416
+ // HACK sync mode's options
417
+ // any options set after init for layout mode need to be synced
418
+ mode.options = this.options[ layoutMode ];
419
+ return mode;
420
+ };
421
+
422
+ Isotope.prototype._resetLayout = function() {
423
+ // trigger original reset layout
424
+ Outlayer.prototype._resetLayout.call( this );
425
+ this._mode()._resetLayout();
426
+ };
427
+
428
+ Isotope.prototype._getItemLayoutPosition = function( item ) {
429
+ return this._mode()._getItemLayoutPosition( item );
430
+ };
431
+
432
+ Isotope.prototype._manageStamp = function( stamp ) {
433
+ this._mode()._manageStamp( stamp );
434
+ };
435
+
436
+ Isotope.prototype._getContainerSize = function() {
437
+ return this._mode()._getContainerSize();
438
+ };
439
+
440
+ Isotope.prototype.needsResizeLayout = function() {
441
+ return this._mode().needsResizeLayout();
442
+ };
443
+
444
+ // -------------------------- adding & removing -------------------------- //
445
+
446
+ // HEADS UP overwrites default Outlayer appended
447
+ Isotope.prototype.appended = function( elems ) {
448
+ var items = this.addItems( elems );
449
+ if ( !items.length ) {
450
+ return;
451
+ }
452
+ var filteredItems = this._filterRevealAdded( items );
453
+ // add to filteredItems
454
+ this.filteredItems = this.filteredItems.concat( filteredItems );
455
+ };
456
+
457
+ // HEADS UP overwrites default Outlayer prepended
458
+ Isotope.prototype.prepended = function( elems ) {
459
+ var items = this._itemize( elems );
460
+ if ( !items.length ) {
461
+ return;
462
+ }
463
+ // add items to beginning of collection
464
+ var previousItems = this.items.slice(0);
465
+ this.items = items.concat( previousItems );
466
+ // start new layout
467
+ this._resetLayout();
468
+ this._manageStamps();
469
+ // layout new stuff without transition
470
+ var filteredItems = this._filterRevealAdded( items );
471
+ // layout previous items
472
+ this.layoutItems( previousItems );
473
+ // add to filteredItems
474
+ this.filteredItems = filteredItems.concat( this.filteredItems );
475
+ };
476
+
477
+ Isotope.prototype._filterRevealAdded = function( items ) {
478
+ var filteredItems = this._noTransition( function() {
479
+ return this._filter( items );
480
+ });
481
+ // layout and reveal just the new items
482
+ this.layoutItems( filteredItems, true );
483
+ this.reveal( filteredItems );
484
+ return items;
485
+ };
486
+
487
+ /**
488
+ * Filter, sort, and layout newly-appended item elements
489
+ * @param {Array or NodeList or Element} elems
490
+ */
491
+ Isotope.prototype.insert = function( elems ) {
492
+ var items = this.addItems( elems );
493
+ if ( !items.length ) {
494
+ return;
495
+ }
496
+ // append item elements
497
+ var i, item;
498
+ var len = items.length;
499
+ for ( i=0; i < len; i++ ) {
500
+ item = items[i];
501
+ this.element.appendChild( item.element );
502
+ }
503
+ // filter new stuff
504
+ /*
505
+ // this way adds hides new filtered items with NO transition
506
+ // so user can't see if new hidden items have been inserted
507
+ var filteredInsertItems;
508
+ this._noTransition( function() {
509
+ filteredInsertItems = this._filter( items );
510
+ // hide all new items
511
+ this.hide( filteredInsertItems );
512
+ });
513
+ // */
514
+ // this way hides new filtered items with transition
515
+ // so user at least sees that something has been added
516
+ var filteredInsertItems = this._filter( items );
517
+ // hide all newitems
518
+ this._noTransition( function() {
519
+ this.hide( filteredInsertItems );
520
+ });
521
+ // */
522
+ // set flag
523
+ for ( i=0; i < len; i++ ) {
524
+ items[i].isLayoutInstant = true;
525
+ }
526
+ this.arrange();
527
+ // reset flag
528
+ for ( i=0; i < len; i++ ) {
529
+ delete items[i].isLayoutInstant;
530
+ }
531
+ this.reveal( filteredInsertItems );
532
+ };
533
+
534
+ var _remove = Isotope.prototype.remove;
535
+ Isotope.prototype.remove = function( elems ) {
536
+ elems = makeArray( elems );
537
+ var removeItems = this.getItems( elems );
538
+ // do regular thing
539
+ _remove.call( this, elems );
540
+ // bail if no items to remove
541
+ if ( !removeItems || !removeItems.length ) {
542
+ return;
543
+ }
544
+ // remove elems from filteredItems
545
+ for ( var i=0, len = removeItems.length; i < len; i++ ) {
546
+ var item = removeItems[i];
547
+ // remove item from collection
548
+ removeFrom( item, this.filteredItems );
549
+ }
550
+ };
551
+
552
+ Isotope.prototype.shuffle = function() {
553
+ // update random sortData
554
+ for ( var i=0, len = this.items.length; i < len; i++ ) {
555
+ var item = this.items[i];
556
+ item.sortData.random = Math.random();
557
+ }
558
+ this.options.sortBy = 'random';
559
+ this._sort();
560
+ this._layout();
561
+ };
562
+
563
+ /**
564
+ * trigger fn without transition
565
+ * kind of hacky to have this in the first place
566
+ * @param {Function} fn
567
+ * @returns ret
568
+ * @private
569
+ */
570
+ Isotope.prototype._noTransition = function( fn ) {
571
+ // save transitionDuration before disabling
572
+ var transitionDuration = this.options.transitionDuration;
573
+ // disable transition
574
+ this.options.transitionDuration = 0;
575
+ // do it
576
+ var returnValue = fn.call( this );
577
+ // re-enable transition for reveal
578
+ this.options.transitionDuration = transitionDuration;
579
+ return returnValue;
580
+ };
581
+
582
+ // ----- helper methods ----- //
583
+
584
+ /**
585
+ * getter method for getting filtered item elements
586
+ * @returns {Array} elems - collection of item elements
587
+ */
588
+ Isotope.prototype.getFilteredItemElements = function() {
589
+ var elems = [];
590
+ for ( var i=0, len = this.filteredItems.length; i < len; i++ ) {
591
+ elems.push( this.filteredItems[i].element );
592
+ }
593
+ return elems;
594
+ };
595
+
596
+ // ----- ----- //
597
+
598
+ return Isotope;
599
+ }
600
+
601
+ // -------------------------- transport -------------------------- //
602
+
603
+ if ( typeof define === 'function' && define.amd ) {
604
+ // AMD
605
+ define( [
606
+ 'outlayer/outlayer',
607
+ 'get-size/get-size',
608
+ 'matches-selector/matches-selector',
609
+ './item',
610
+ './layout-mode',
611
+ // include default layout modes
612
+ './layout-modes/masonry',
613
+ './layout-modes/fit-rows',
614
+ './layout-modes/vertical'
615
+ ],
616
+ isotopeDefinition );
617
+ } else {
618
+ // browser global
619
+ window.Isotope = isotopeDefinition(
620
+ window.Outlayer,
621
+ window.getSize,
622
+ window.matchesSelector,
623
+ window.Isotope.Item,
624
+ window.Isotope.LayoutMode
625
+ );
626
+ }
627
+
628
+ })( window );