assets-rails 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 );