foundation-rails 5.5.3.2 → 6.6.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (369) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +2 -2
  3. data/.ruby-version +1 -1
  4. data/.travis.yml +17 -4
  5. data/Appraisals +19 -0
  6. data/Gemfile +5 -2
  7. data/Gemfile.lock +210 -0
  8. data/LICENSE.txt +1 -1
  9. data/README.md +64 -28
  10. data/Rakefile +30 -0
  11. data/app/views/foundation/rails/styleguide/show.html.erb +10 -13
  12. data/bower.json +3 -2
  13. data/foundation-rails.gemspec +12 -7
  14. data/gemfiles/rails_4.1.gemfile +10 -0
  15. data/gemfiles/rails_4.1.gemfile.lock +181 -0
  16. data/gemfiles/rails_4.2.gemfile +10 -0
  17. data/gemfiles/rails_4.2.gemfile.lock +181 -0
  18. data/gemfiles/rails_5.0.gemfile +10 -0
  19. data/gemfiles/rails_5.0.gemfile.lock +196 -0
  20. data/gemfiles/rails_5.1.gemfile +10 -0
  21. data/gemfiles/rails_5.1.gemfile.lock +196 -0
  22. data/gemfiles/rails_5.2.gemfile +10 -0
  23. data/gemfiles/rails_5.2.gemfile.lock +196 -0
  24. data/lib/foundation/rails/engine.rb +2 -3
  25. data/lib/foundation/rails/version.rb +1 -1
  26. data/lib/foundation-rails.rb +1 -0
  27. data/lib/generators/foundation/install_generator.rb +39 -27
  28. data/lib/generators/foundation/templates/_settings.scss +895 -0
  29. data/lib/generators/foundation/templates/application.html.erb +1 -2
  30. data/lib/generators/foundation/templates/application.html.haml +2 -4
  31. data/lib/generators/foundation/templates/application.html.slim +1 -3
  32. data/lib/generators/foundation/templates/browserslist +4 -0
  33. data/lib/generators/foundation/templates/foundation_and_overrides.scss +56 -0
  34. data/spec/features/generator_spec.rb +1 -1
  35. data/spec/support/helpers.rb +8 -2
  36. data/vendor/assets/_vendor/sassy-lists/stylesheets/functions/_contain.scss +31 -0
  37. data/vendor/assets/_vendor/sassy-lists/stylesheets/functions/_purge.scss +38 -0
  38. data/vendor/assets/_vendor/sassy-lists/stylesheets/functions/_remove.scss +31 -0
  39. data/vendor/assets/_vendor/sassy-lists/stylesheets/functions/_replace.scss +46 -0
  40. data/vendor/assets/_vendor/sassy-lists/stylesheets/functions/_to-list.scss +27 -0
  41. data/vendor/assets/_vendor/sassy-lists/stylesheets/helpers/_missing-dependencies.scss +25 -0
  42. data/vendor/assets/_vendor/sassy-lists/stylesheets/helpers/_true.scss +13 -0
  43. data/vendor/assets/js/foundation.cjs.js +12529 -0
  44. data/vendor/assets/js/foundation.cjs.js.map +1 -0
  45. data/vendor/assets/js/foundation.es6.js +11006 -0
  46. data/vendor/assets/js/foundation.es6.js.map +1 -0
  47. data/vendor/assets/js/foundation.esm.js +12490 -0
  48. data/vendor/assets/js/foundation.esm.js.map +1 -0
  49. data/vendor/assets/js/foundation.js +13897 -0
  50. data/vendor/assets/js/foundation.js.map +1 -0
  51. data/vendor/assets/js/foundation.min.js +2 -0
  52. data/vendor/assets/js/foundation.min.js.map +1 -0
  53. data/vendor/assets/js/plugins/foundation.abide.js +1142 -0
  54. data/vendor/assets/js/plugins/foundation.abide.js.map +1 -0
  55. data/vendor/assets/js/plugins/foundation.abide.min.js +2 -0
  56. data/vendor/assets/js/plugins/foundation.abide.min.js.map +1 -0
  57. data/vendor/assets/js/plugins/foundation.accordion.js +661 -0
  58. data/vendor/assets/js/plugins/foundation.accordion.js.map +1 -0
  59. data/vendor/assets/js/plugins/foundation.accordion.min.js +2 -0
  60. data/vendor/assets/js/plugins/foundation.accordion.min.js.map +1 -0
  61. data/vendor/assets/js/plugins/foundation.accordionMenu.js +616 -0
  62. data/vendor/assets/js/plugins/foundation.accordionMenu.js.map +1 -0
  63. data/vendor/assets/js/plugins/foundation.accordionMenu.min.js +2 -0
  64. data/vendor/assets/js/plugins/foundation.accordionMenu.min.js.map +1 -0
  65. data/vendor/assets/js/plugins/foundation.core.js +1180 -0
  66. data/vendor/assets/js/plugins/foundation.core.js.map +1 -0
  67. data/vendor/assets/js/plugins/foundation.core.min.js +2 -0
  68. data/vendor/assets/js/plugins/foundation.core.min.js.map +1 -0
  69. data/vendor/assets/js/plugins/foundation.drilldown.js +968 -0
  70. data/vendor/assets/js/plugins/foundation.drilldown.js.map +1 -0
  71. data/vendor/assets/js/plugins/foundation.drilldown.min.js +2 -0
  72. data/vendor/assets/js/plugins/foundation.drilldown.min.js.map +1 -0
  73. data/vendor/assets/js/plugins/foundation.dropdown.js +1328 -0
  74. data/vendor/assets/js/plugins/foundation.dropdown.js.map +1 -0
  75. data/vendor/assets/js/plugins/foundation.dropdown.min.js +2 -0
  76. data/vendor/assets/js/plugins/foundation.dropdown.min.js.map +1 -0
  77. data/vendor/assets/js/plugins/foundation.dropdownMenu.js +799 -0
  78. data/vendor/assets/js/plugins/foundation.dropdownMenu.js.map +1 -0
  79. data/vendor/assets/js/plugins/foundation.dropdownMenu.min.js +2 -0
  80. data/vendor/assets/js/plugins/foundation.dropdownMenu.min.js.map +1 -0
  81. data/vendor/assets/js/plugins/foundation.equalizer.js +614 -0
  82. data/vendor/assets/js/plugins/foundation.equalizer.js.map +1 -0
  83. data/vendor/assets/js/plugins/foundation.equalizer.min.js +2 -0
  84. data/vendor/assets/js/plugins/foundation.equalizer.min.js.map +1 -0
  85. data/vendor/assets/js/plugins/foundation.interchange.js +796 -0
  86. data/vendor/assets/js/plugins/foundation.interchange.js.map +1 -0
  87. data/vendor/assets/js/plugins/foundation.interchange.min.js +2 -0
  88. data/vendor/assets/js/plugins/foundation.interchange.min.js.map +1 -0
  89. data/vendor/assets/js/plugins/foundation.magellan.js +850 -0
  90. data/vendor/assets/js/plugins/foundation.magellan.js.map +1 -0
  91. data/vendor/assets/js/plugins/foundation.magellan.min.js +2 -0
  92. data/vendor/assets/js/plugins/foundation.magellan.min.js.map +1 -0
  93. data/vendor/assets/js/plugins/foundation.offcanvas.js +1318 -0
  94. data/vendor/assets/js/plugins/foundation.offcanvas.js.map +1 -0
  95. data/vendor/assets/js/plugins/foundation.offcanvas.min.js +2 -0
  96. data/vendor/assets/js/plugins/foundation.offcanvas.min.js.map +1 -0
  97. data/vendor/assets/js/plugins/foundation.orbit.js +886 -0
  98. data/vendor/assets/js/plugins/foundation.orbit.js.map +1 -0
  99. data/vendor/assets/js/plugins/foundation.orbit.min.js +2 -0
  100. data/vendor/assets/js/plugins/foundation.orbit.min.js.map +1 -0
  101. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.js +585 -0
  102. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.js.map +1 -0
  103. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.min.js +2 -0
  104. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.min.js.map +1 -0
  105. data/vendor/assets/js/plugins/foundation.responsiveMenu.js +413 -0
  106. data/vendor/assets/js/plugins/foundation.responsiveMenu.js.map +1 -0
  107. data/vendor/assets/js/plugins/foundation.responsiveMenu.min.js +2 -0
  108. data/vendor/assets/js/plugins/foundation.responsiveMenu.min.js.map +1 -0
  109. data/vendor/assets/js/plugins/foundation.responsiveToggle.js +394 -0
  110. data/vendor/assets/js/plugins/foundation.responsiveToggle.js.map +1 -0
  111. data/vendor/assets/js/plugins/foundation.responsiveToggle.min.js +2 -0
  112. data/vendor/assets/js/plugins/foundation.responsiveToggle.min.js.map +1 -0
  113. data/vendor/assets/js/plugins/foundation.reveal.js +1275 -0
  114. data/vendor/assets/js/plugins/foundation.reveal.js.map +1 -0
  115. data/vendor/assets/js/plugins/foundation.reveal.min.js +2 -0
  116. data/vendor/assets/js/plugins/foundation.reveal.min.js.map +1 -0
  117. data/vendor/assets/js/plugins/foundation.slider.js +1346 -0
  118. data/vendor/assets/js/plugins/foundation.slider.js.map +1 -0
  119. data/vendor/assets/js/plugins/foundation.slider.min.js +2 -0
  120. data/vendor/assets/js/plugins/foundation.slider.min.js.map +1 -0
  121. data/vendor/assets/js/plugins/foundation.smoothScroll.js +359 -0
  122. data/vendor/assets/js/plugins/foundation.smoothScroll.js.map +1 -0
  123. data/vendor/assets/js/plugins/foundation.smoothScroll.min.js +2 -0
  124. data/vendor/assets/js/plugins/foundation.smoothScroll.min.js.map +1 -0
  125. data/vendor/assets/js/plugins/foundation.sticky.js +1105 -0
  126. data/vendor/assets/js/plugins/foundation.sticky.js.map +1 -0
  127. data/vendor/assets/js/plugins/foundation.sticky.min.js +2 -0
  128. data/vendor/assets/js/plugins/foundation.sticky.min.js.map +1 -0
  129. data/vendor/assets/js/plugins/foundation.tabs.js +792 -0
  130. data/vendor/assets/js/plugins/foundation.tabs.js.map +1 -0
  131. data/vendor/assets/js/plugins/foundation.tabs.min.js +2 -0
  132. data/vendor/assets/js/plugins/foundation.tabs.min.js.map +1 -0
  133. data/vendor/assets/js/plugins/foundation.toggler.js +704 -0
  134. data/vendor/assets/js/plugins/foundation.toggler.js.map +1 -0
  135. data/vendor/assets/js/plugins/foundation.toggler.min.js +2 -0
  136. data/vendor/assets/js/plugins/foundation.toggler.min.js.map +1 -0
  137. data/vendor/assets/js/plugins/foundation.tooltip.js +1333 -0
  138. data/vendor/assets/js/plugins/foundation.tooltip.js.map +1 -0
  139. data/vendor/assets/js/plugins/foundation.tooltip.min.js +2 -0
  140. data/vendor/assets/js/plugins/foundation.tooltip.min.js.map +1 -0
  141. data/vendor/assets/js/plugins/foundation.util.box.js +354 -0
  142. data/vendor/assets/js/plugins/foundation.util.box.js.map +1 -0
  143. data/vendor/assets/js/plugins/foundation.util.box.min.js +2 -0
  144. data/vendor/assets/js/plugins/foundation.util.box.min.js.map +1 -0
  145. data/vendor/assets/js/plugins/foundation.util.imageLoader.js +218 -0
  146. data/vendor/assets/js/plugins/foundation.util.imageLoader.js.map +1 -0
  147. data/vendor/assets/js/plugins/foundation.util.imageLoader.min.js +2 -0
  148. data/vendor/assets/js/plugins/foundation.util.imageLoader.min.js.map +1 -0
  149. data/vendor/assets/js/plugins/foundation.util.keyboard.js +341 -0
  150. data/vendor/assets/js/plugins/foundation.util.keyboard.js.map +1 -0
  151. data/vendor/assets/js/plugins/foundation.util.keyboard.min.js +2 -0
  152. data/vendor/assets/js/plugins/foundation.util.keyboard.min.js.map +1 -0
  153. data/vendor/assets/js/plugins/foundation.util.mediaQuery.js +509 -0
  154. data/vendor/assets/js/plugins/foundation.util.mediaQuery.js.map +1 -0
  155. data/vendor/assets/js/plugins/foundation.util.mediaQuery.min.js +2 -0
  156. data/vendor/assets/js/plugins/foundation.util.mediaQuery.min.js.map +1 -0
  157. data/vendor/assets/js/plugins/foundation.util.motion.js +274 -0
  158. data/vendor/assets/js/plugins/foundation.util.motion.js.map +1 -0
  159. data/vendor/assets/js/plugins/foundation.util.motion.min.js +2 -0
  160. data/vendor/assets/js/plugins/foundation.util.motion.min.js.map +1 -0
  161. data/vendor/assets/js/plugins/foundation.util.nest.js +240 -0
  162. data/vendor/assets/js/plugins/foundation.util.nest.js.map +1 -0
  163. data/vendor/assets/js/plugins/foundation.util.nest.min.js +2 -0
  164. data/vendor/assets/js/plugins/foundation.util.nest.min.js.map +1 -0
  165. data/vendor/assets/js/plugins/foundation.util.timer.js +226 -0
  166. data/vendor/assets/js/plugins/foundation.util.timer.js.map +1 -0
  167. data/vendor/assets/js/plugins/foundation.util.timer.min.js +2 -0
  168. data/vendor/assets/js/plugins/foundation.util.timer.min.js.map +1 -0
  169. data/vendor/assets/js/plugins/foundation.util.touch.js +365 -0
  170. data/vendor/assets/js/plugins/foundation.util.touch.js.map +1 -0
  171. data/vendor/assets/js/plugins/foundation.util.touch.min.js +2 -0
  172. data/vendor/assets/js/plugins/foundation.util.touch.min.js.map +1 -0
  173. data/vendor/assets/js/plugins/foundation.util.triggers.js +470 -0
  174. data/vendor/assets/js/plugins/foundation.util.triggers.js.map +1 -0
  175. data/vendor/assets/js/plugins/foundation.util.triggers.min.js +2 -0
  176. data/vendor/assets/js/plugins/foundation.util.triggers.min.js.map +1 -0
  177. data/vendor/assets/scss/_global.scss +244 -0
  178. data/vendor/assets/scss/components/_accordion-menu.scss +174 -0
  179. data/vendor/assets/scss/components/_accordion.scss +164 -0
  180. data/vendor/assets/scss/components/_badge.scss +63 -0
  181. data/vendor/assets/scss/components/_breadcrumbs.scss +119 -0
  182. data/vendor/assets/scss/components/_button-group.scss +304 -0
  183. data/vendor/assets/scss/components/_button.scss +428 -0
  184. data/vendor/assets/scss/components/_callout.scss +108 -0
  185. data/vendor/assets/scss/components/_card.scss +129 -0
  186. data/vendor/assets/scss/components/_close-button.scss +127 -0
  187. data/vendor/assets/scss/components/_drilldown.scss +140 -0
  188. data/vendor/assets/scss/components/_dropdown-menu.scss +279 -0
  189. data/vendor/assets/scss/components/_dropdown.scss +82 -0
  190. data/vendor/assets/scss/components/_flex-video.scss +1 -0
  191. data/vendor/assets/scss/components/_flex.scss +119 -0
  192. data/vendor/assets/scss/components/_float.scss +27 -0
  193. data/vendor/assets/scss/components/_label.scss +64 -0
  194. data/vendor/assets/scss/components/_media-object.scss +114 -0
  195. data/vendor/assets/scss/components/_menu-icon.scss +9 -0
  196. data/vendor/assets/scss/components/_menu.scss +495 -0
  197. data/vendor/assets/scss/components/_off-canvas.scss +511 -0
  198. data/vendor/assets/scss/components/_orbit.scss +197 -0
  199. data/vendor/assets/scss/components/_pagination.scss +201 -0
  200. data/vendor/assets/scss/components/_progress-bar.scss +63 -0
  201. data/vendor/assets/scss/components/_responsive-embed.scss +57 -0
  202. data/vendor/assets/scss/components/_reveal.scss +185 -0
  203. data/vendor/assets/scss/components/_slider.scss +137 -0
  204. data/vendor/assets/scss/components/_sticky.scss +39 -0
  205. data/vendor/assets/scss/components/_switch.scss +261 -0
  206. data/vendor/assets/scss/components/_table.scss +328 -0
  207. data/vendor/assets/scss/components/_tabs.scss +193 -0
  208. data/vendor/assets/scss/components/_thumbnail.scss +67 -0
  209. data/vendor/assets/scss/components/_title-bar.scss +84 -0
  210. data/vendor/assets/scss/components/_tooltip.scss +160 -0
  211. data/vendor/assets/scss/components/_top-bar.scss +175 -0
  212. data/vendor/assets/scss/components/_visibility.scss +135 -0
  213. data/vendor/assets/scss/forms/_checkbox.scss +41 -0
  214. data/vendor/assets/scss/forms/_error.scss +89 -0
  215. data/vendor/assets/scss/forms/_fieldset.scss +53 -0
  216. data/vendor/assets/scss/forms/_forms.scss +34 -0
  217. data/vendor/assets/scss/forms/_help-text.scss +30 -0
  218. data/vendor/assets/scss/forms/_input-group.scss +142 -0
  219. data/vendor/assets/scss/forms/_label.scss +50 -0
  220. data/vendor/assets/scss/forms/_meter.scss +116 -0
  221. data/vendor/assets/scss/forms/_progress.scss +94 -0
  222. data/vendor/assets/scss/forms/_range.scss +149 -0
  223. data/vendor/assets/scss/forms/_select.scss +90 -0
  224. data/vendor/assets/scss/forms/_text.scss +179 -0
  225. data/vendor/assets/scss/foundation.scss +155 -0
  226. data/vendor/assets/scss/grid/_classes.scss +189 -0
  227. data/vendor/assets/scss/grid/_column.scss +78 -0
  228. data/vendor/assets/scss/grid/_flex-grid.scss +260 -0
  229. data/vendor/assets/scss/grid/_grid.scss +48 -0
  230. data/vendor/assets/scss/grid/_gutter.scss +67 -0
  231. data/vendor/assets/scss/grid/_layout.scss +76 -0
  232. data/vendor/assets/scss/grid/_position.scss +100 -0
  233. data/vendor/assets/scss/grid/_row.scss +99 -0
  234. data/vendor/assets/scss/grid/_size.scss +24 -0
  235. data/vendor/assets/scss/motion-ui/_classes.scss +109 -0
  236. data/vendor/assets/scss/motion-ui/_settings.scss +62 -0
  237. data/vendor/assets/scss/motion-ui/effects/_fade.scss +29 -0
  238. data/vendor/assets/scss/motion-ui/effects/_hinge.scss +66 -0
  239. data/vendor/assets/scss/motion-ui/effects/_shake.scss +15 -0
  240. data/vendor/assets/scss/motion-ui/effects/_slide.scss +42 -0
  241. data/vendor/assets/scss/motion-ui/effects/_spin.scss +29 -0
  242. data/vendor/assets/scss/motion-ui/effects/_wiggle.scss +13 -0
  243. data/vendor/assets/scss/motion-ui/effects/_zoom.scss +15 -0
  244. data/vendor/assets/scss/motion-ui/motion-ui.scss +31 -0
  245. data/vendor/assets/scss/motion-ui/transitions/_fade.scss +30 -0
  246. data/vendor/assets/scss/motion-ui/transitions/_hinge.scss +44 -0
  247. data/vendor/assets/scss/motion-ui/transitions/_slide.scss +43 -0
  248. data/vendor/assets/scss/motion-ui/transitions/_spin.scss +40 -0
  249. data/vendor/assets/scss/motion-ui/transitions/_zoom.scss +41 -0
  250. data/vendor/assets/scss/motion-ui/util/_animation.scss +7 -0
  251. data/vendor/assets/scss/motion-ui/util/_args.scss +15 -0
  252. data/vendor/assets/scss/motion-ui/util/_function.scss +94 -0
  253. data/vendor/assets/scss/motion-ui/util/_keyframe.scss +136 -0
  254. data/vendor/assets/scss/motion-ui/util/_selector.scss +23 -0
  255. data/vendor/assets/scss/motion-ui/util/_series.scss +57 -0
  256. data/vendor/assets/scss/motion-ui/util/_string.scss +36 -0
  257. data/vendor/assets/scss/motion-ui/util/_transition.scss +45 -0
  258. data/vendor/assets/scss/motion-ui/util/_unit.scss +7 -0
  259. data/vendor/assets/scss/prototype/_arrow.scss +36 -0
  260. data/vendor/assets/scss/prototype/_border-box.scss +35 -0
  261. data/vendor/assets/scss/prototype/_border-none.scss +35 -0
  262. data/vendor/assets/scss/prototype/_bordered.scss +54 -0
  263. data/vendor/assets/scss/prototype/_box.scss +23 -0
  264. data/vendor/assets/scss/prototype/_display.scss +50 -0
  265. data/vendor/assets/scss/prototype/_font-styling.scss +95 -0
  266. data/vendor/assets/scss/prototype/_list-style-type.scss +95 -0
  267. data/vendor/assets/scss/prototype/_overflow.scss +72 -0
  268. data/vendor/assets/scss/prototype/_position.scss +114 -0
  269. data/vendor/assets/scss/prototype/_prototype.scss +87 -0
  270. data/vendor/assets/scss/prototype/_relation.scss +157 -0
  271. data/vendor/assets/scss/prototype/_rotate.scss +31 -0
  272. data/vendor/assets/scss/prototype/_rounded.scss +61 -0
  273. data/vendor/assets/scss/prototype/_separator.scss +96 -0
  274. data/vendor/assets/scss/prototype/_shadow.scss +43 -0
  275. data/vendor/assets/scss/prototype/_sizing.scss +73 -0
  276. data/vendor/assets/scss/prototype/_spacing.scss +179 -0
  277. data/vendor/assets/scss/prototype/_text-decoration.scss +48 -0
  278. data/vendor/assets/scss/prototype/_text-transformation.scss +48 -0
  279. data/vendor/assets/scss/prototype/_text-utilities.scss +88 -0
  280. data/vendor/assets/scss/settings/_settings.scss +895 -0
  281. data/vendor/assets/scss/typography/_alignment.scss +22 -0
  282. data/vendor/assets/scss/typography/_base.scss +474 -0
  283. data/vendor/assets/scss/typography/_helpers.scss +180 -0
  284. data/vendor/assets/scss/typography/_print.scss +96 -0
  285. data/vendor/assets/scss/typography/_typography.scss +26 -0
  286. data/vendor/assets/scss/util/_breakpoint.scss +435 -0
  287. data/vendor/assets/scss/util/_color.scss +139 -0
  288. data/vendor/assets/scss/util/_direction.scss +31 -0
  289. data/vendor/assets/scss/util/_flex.scss +90 -0
  290. data/vendor/assets/scss/util/_math.scss +147 -0
  291. data/vendor/assets/scss/util/_mixins.scss +373 -0
  292. data/vendor/assets/scss/util/_selector.scss +41 -0
  293. data/vendor/assets/scss/util/_typography.scss +26 -0
  294. data/vendor/assets/scss/util/_unit.scss +152 -0
  295. data/vendor/assets/scss/util/_util.scss +14 -0
  296. data/vendor/assets/scss/util/_value.scss +200 -0
  297. data/vendor/assets/scss/vendor/normalize.scss +281 -0
  298. data/vendor/assets/scss/xy-grid/_cell.scss +272 -0
  299. data/vendor/assets/scss/xy-grid/_classes.scss +493 -0
  300. data/vendor/assets/scss/xy-grid/_collapse.scss +75 -0
  301. data/vendor/assets/scss/xy-grid/_frame.scss +86 -0
  302. data/vendor/assets/scss/xy-grid/_grid.scss +37 -0
  303. data/vendor/assets/scss/xy-grid/_gutters.scss +45 -0
  304. data/vendor/assets/scss/xy-grid/_layout.scss +36 -0
  305. data/vendor/assets/scss/xy-grid/_position.scss +55 -0
  306. data/vendor/assets/scss/xy-grid/_xy-grid.scss +51 -0
  307. metadata +342 -83
  308. data/update-gem.sh +0 -20
  309. data/vendor/assets/javascripts/foundation/foundation.abide.js +0 -426
  310. data/vendor/assets/javascripts/foundation/foundation.accordion.js +0 -125
  311. data/vendor/assets/javascripts/foundation/foundation.alert.js +0 -43
  312. data/vendor/assets/javascripts/foundation/foundation.clearing.js +0 -586
  313. data/vendor/assets/javascripts/foundation/foundation.dropdown.js +0 -468
  314. data/vendor/assets/javascripts/foundation/foundation.equalizer.js +0 -104
  315. data/vendor/assets/javascripts/foundation/foundation.interchange.js +0 -360
  316. data/vendor/assets/javascripts/foundation/foundation.joyride.js +0 -935
  317. data/vendor/assets/javascripts/foundation/foundation.js +0 -732
  318. data/vendor/assets/javascripts/foundation/foundation.magellan.js +0 -214
  319. data/vendor/assets/javascripts/foundation/foundation.offcanvas.js +0 -225
  320. data/vendor/assets/javascripts/foundation/foundation.orbit.js +0 -476
  321. data/vendor/assets/javascripts/foundation/foundation.reveal.js +0 -522
  322. data/vendor/assets/javascripts/foundation/foundation.slider.js +0 -296
  323. data/vendor/assets/javascripts/foundation/foundation.tab.js +0 -247
  324. data/vendor/assets/javascripts/foundation/foundation.tooltip.js +0 -348
  325. data/vendor/assets/javascripts/foundation/foundation.topbar.js +0 -458
  326. data/vendor/assets/javascripts/foundation.js +0 -17
  327. data/vendor/assets/javascripts/vendor/modernizr.js +0 -1406
  328. data/vendor/assets/stylesheets/foundation/_functions.scss +0 -156
  329. data/vendor/assets/stylesheets/foundation/_settings.scss +0 -1489
  330. data/vendor/assets/stylesheets/foundation/components/_accordion.scss +0 -161
  331. data/vendor/assets/stylesheets/foundation/components/_alert-boxes.scss +0 -128
  332. data/vendor/assets/stylesheets/foundation/components/_block-grid.scss +0 -133
  333. data/vendor/assets/stylesheets/foundation/components/_breadcrumbs.scss +0 -132
  334. data/vendor/assets/stylesheets/foundation/components/_button-groups.scss +0 -208
  335. data/vendor/assets/stylesheets/foundation/components/_buttons.scss +0 -261
  336. data/vendor/assets/stylesheets/foundation/components/_clearing.scss +0 -260
  337. data/vendor/assets/stylesheets/foundation/components/_dropdown-buttons.scss +0 -130
  338. data/vendor/assets/stylesheets/foundation/components/_dropdown.scss +0 -269
  339. data/vendor/assets/stylesheets/foundation/components/_flex-video.scss +0 -51
  340. data/vendor/assets/stylesheets/foundation/components/_forms.scss +0 -607
  341. data/vendor/assets/stylesheets/foundation/components/_global.scss +0 -566
  342. data/vendor/assets/stylesheets/foundation/components/_grid.scss +0 -292
  343. data/vendor/assets/stylesheets/foundation/components/_icon-bar.scss +0 -460
  344. data/vendor/assets/stylesheets/foundation/components/_inline-lists.scss +0 -58
  345. data/vendor/assets/stylesheets/foundation/components/_joyride.scss +0 -220
  346. data/vendor/assets/stylesheets/foundation/components/_keystrokes.scss +0 -60
  347. data/vendor/assets/stylesheets/foundation/components/_labels.scss +0 -106
  348. data/vendor/assets/stylesheets/foundation/components/_magellan.scss +0 -34
  349. data/vendor/assets/stylesheets/foundation/components/_offcanvas.scss +0 -606
  350. data/vendor/assets/stylesheets/foundation/components/_orbit.scss +0 -388
  351. data/vendor/assets/stylesheets/foundation/components/_pagination.scss +0 -163
  352. data/vendor/assets/stylesheets/foundation/components/_panels.scss +0 -107
  353. data/vendor/assets/stylesheets/foundation/components/_pricing-tables.scss +0 -150
  354. data/vendor/assets/stylesheets/foundation/components/_progress-bars.scss +0 -85
  355. data/vendor/assets/stylesheets/foundation/components/_range-slider.scss +0 -177
  356. data/vendor/assets/stylesheets/foundation/components/_reveal.scss +0 -212
  357. data/vendor/assets/stylesheets/foundation/components/_side-nav.scss +0 -120
  358. data/vendor/assets/stylesheets/foundation/components/_split-buttons.scss +0 -203
  359. data/vendor/assets/stylesheets/foundation/components/_sub-nav.scss +0 -125
  360. data/vendor/assets/stylesheets/foundation/components/_switches.scss +0 -241
  361. data/vendor/assets/stylesheets/foundation/components/_tables.scss +0 -135
  362. data/vendor/assets/stylesheets/foundation/components/_tabs.scss +0 -142
  363. data/vendor/assets/stylesheets/foundation/components/_thumbs.scss +0 -66
  364. data/vendor/assets/stylesheets/foundation/components/_tooltips.scss +0 -142
  365. data/vendor/assets/stylesheets/foundation/components/_top-bar.scss +0 -745
  366. data/vendor/assets/stylesheets/foundation/components/_type.scss +0 -525
  367. data/vendor/assets/stylesheets/foundation/components/_visibility.scss +0 -425
  368. data/vendor/assets/stylesheets/foundation.scss +0 -42
  369. data/vendor/assets/stylesheets/normalize.scss +0 -424
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/entries/plugins/foundation.sticky.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.sticky.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.util.triggers.js","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","plugin","Sticky","element","options","$element","$","extend","defaults","data","className","Triggers","init","_init","MediaQuery","$parent","parent","id","GetYoDigits","_this","length","$container","wasWrapped","wrap","container","addClass","containerClass","stickyClass","attr","anchor","scrollCount","checkEvery","isStuck","onLoadListener","onLoad","window","containerHeight","css","getBoundingClientRect","height","elemHeight","$anchor","_parsePoints","_setSizes","scroll","pageYOffset","_calc","_removeSticky","topPoint","_events","split","reverse","join","top","topAnchor","btm","btmAnchor","document","documentElement","scrollHeight","pts","breaks","i","len","pt","place","offset","toLowerCase","points","scrollListener","isOn","canStick","off","on","e","el","_eventsHandler","_pauseListeners","trigger","checkSizes","bottomPoint","_setSticky","stickTo","mrgn","notStuckTo","removeClass","isTop","stickToTop","anchorPt","anchorHeight","topOrBottom","cb","is","stickyOn","newElemWidth","width","comp","getComputedStyle","pdngl","parseInt","pdngr","dynamicHeight","newContainerHeight","hasClass","_setBreakPoints","mTop","emCalc","marginTop","mBtm","marginBottom","winHeight","innerHeight","bottom","unwrap","Plugin","em","body","fontSize","MutationObserver","prefixes","triggers","type","forEach","Listeners","Basic","Global","Initializers","openListener","closeListener","toggleListener","closeableListener","animation","stopPropagation","Motion","animateOut","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","each","closeMeListener","pluginId","namespace","plugins","not","addClosemeListener","pluginName","yetiBoxes","plugNames","push","concat","console","error","listeners","map","name","debounceGlobalListener","debounce","listener","timer","args","Array","prototype","slice","call","arguments","clearTimeout","setTimeout","apply","addResizeListener","addScrollListener","addMutationEventsListener","find","listeningElementsMutation","mutationRecordsList","$target","target","attributeName","closest","elementObserver","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","triggersInitialized","IHearYou"],"mappings":"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","file":"foundation.sticky.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.mediaQuery\", \"./foundation.util.motion\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.sticky\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.sticky\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 17);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","import { Foundation } from './foundation.core';\n\nimport { Sticky } from '../../foundation.sticky';\nFoundation.plugin(Sticky, 'Sticky');\n\nexport { Foundation, Sticky };\n","'use strict';\n\nimport $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Sticky module.\n * @module foundation.sticky\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass Sticky extends Plugin {\n /**\n * Creates a new instance of a sticky thing.\n * @class\n * @name Sticky\n * @param {jQuery} element - jQuery object to make sticky.\n * @param {Object} options - options object passed when creating the element programmatically.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Sticky.defaults, this.$element.data(), options);\n this.className = 'Sticky'; // ie9 back compat\n\n // Triggers init is idempotent, just need to make sure it is initialized\n Triggers.init($);\n\n this._init();\n }\n\n /**\n * Initializes the sticky element by adding classes, getting/setting dimensions, breakpoints and attributes\n * @function\n * @private\n */\n _init() {\n MediaQuery._init();\n\n var $parent = this.$element.parent('[data-sticky-container]'),\n id = this.$element[0].id || GetYoDigits(6, 'sticky'),\n _this = this;\n\n if($parent.length){\n this.$container = $parent;\n } else {\n this.wasWrapped = true;\n this.$element.wrap(this.options.container);\n this.$container = this.$element.parent();\n }\n this.$container.addClass(this.options.containerClass);\n\n this.$element.addClass(this.options.stickyClass).attr({ 'data-resize': id, 'data-mutate': id });\n if (this.options.anchor !== '') {\n $('#' + _this.options.anchor).attr({ 'data-mutate': id });\n }\n\n this.scrollCount = this.options.checkEvery;\n this.isStuck = false;\n this.onLoadListener = onLoad($(window), function () {\n //We calculate the container height to have correct values for anchor points offset calculation.\n _this.containerHeight = _this.$element.css(\"display\") == \"none\" ? 0 : _this.$element[0].getBoundingClientRect().height;\n _this.$container.css('height', _this.containerHeight);\n _this.elemHeight = _this.containerHeight;\n if (_this.options.anchor !== '') {\n _this.$anchor = $('#' + _this.options.anchor);\n } else {\n _this._parsePoints();\n }\n\n _this._setSizes(function () {\n var scroll = window.pageYOffset;\n _this._calc(false, scroll);\n //Unstick the element will ensure that proper classes are set.\n if (!_this.isStuck) {\n _this._removeSticky((scroll >= _this.topPoint) ? false : true);\n }\n });\n _this._events(id.split('-').reverse().join('-'));\n });\n }\n\n /**\n * If using multiple elements as anchors, calculates the top and bottom pixel values the sticky thing should stick and unstick on.\n * @function\n * @private\n */\n _parsePoints() {\n var top = this.options.topAnchor == \"\" ? 1 : this.options.topAnchor,\n btm = this.options.btmAnchor== \"\" ? document.documentElement.scrollHeight : this.options.btmAnchor,\n pts = [top, btm],\n breaks = {};\n for (var i = 0, len = pts.length; i < len && pts[i]; i++) {\n var pt;\n if (typeof pts[i] === 'number') {\n pt = pts[i];\n } else {\n var place = pts[i].split(':'),\n anchor = $(`#${place[0]}`);\n\n pt = anchor.offset().top;\n if (place[1] && place[1].toLowerCase() === 'bottom') {\n pt += anchor[0].getBoundingClientRect().height;\n }\n }\n breaks[i] = pt;\n }\n\n\n this.points = breaks;\n return;\n }\n\n /**\n * Adds event handlers for the scrolling element.\n * @private\n * @param {String} id - pseudo-random id for unique scroll event listener.\n */\n _events(id) {\n var _this = this,\n scrollListener = this.scrollListener = `scroll.zf.${id}`;\n if (this.isOn) { return; }\n if (this.canStick) {\n this.isOn = true;\n $(window).off(scrollListener)\n .on(scrollListener, function(e) {\n if (_this.scrollCount === 0) {\n _this.scrollCount = _this.options.checkEvery;\n _this._setSizes(function() {\n _this._calc(false, window.pageYOffset);\n });\n } else {\n _this.scrollCount--;\n _this._calc(false, window.pageYOffset);\n }\n });\n }\n\n this.$element.off('resizeme.zf.trigger')\n .on('resizeme.zf.trigger', function(e, el) {\n _this._eventsHandler(id);\n });\n\n this.$element.on('mutateme.zf.trigger', function (e, el) {\n _this._eventsHandler(id);\n });\n\n if(this.$anchor) {\n this.$anchor.on('mutateme.zf.trigger', function (e, el) {\n _this._eventsHandler(id);\n });\n }\n }\n\n /**\n * Handler for events.\n * @private\n * @param {String} id - pseudo-random id for unique scroll event listener.\n */\n _eventsHandler(id) {\n var _this = this,\n scrollListener = this.scrollListener = `scroll.zf.${id}`;\n\n _this._setSizes(function() {\n _this._calc(false);\n if (_this.canStick) {\n if (!_this.isOn) {\n _this._events(id);\n }\n } else if (_this.isOn) {\n _this._pauseListeners(scrollListener);\n }\n });\n }\n\n /**\n * Removes event handlers for scroll and change events on anchor.\n * @fires Sticky#pause\n * @param {String} scrollListener - unique, namespaced scroll listener attached to `window`\n */\n _pauseListeners(scrollListener) {\n this.isOn = false;\n $(window).off(scrollListener);\n\n /**\n * Fires when the plugin is paused due to resize event shrinking the view.\n * @event Sticky#pause\n * @private\n */\n this.$element.trigger('pause.zf.sticky');\n }\n\n /**\n * Called on every `scroll` event and on `_init`\n * fires functions based on booleans and cached values\n * @param {Boolean} checkSizes - true if plugin should recalculate sizes and breakpoints.\n * @param {Number} scroll - current scroll position passed from scroll event cb function. If not passed, defaults to `window.pageYOffset`.\n */\n _calc(checkSizes, scroll) {\n if (checkSizes) { this._setSizes(); }\n\n if (!this.canStick) {\n if (this.isStuck) {\n this._removeSticky(true);\n }\n return false;\n }\n\n if (!scroll) { scroll = window.pageYOffset; }\n\n if (scroll >= this.topPoint) {\n if (scroll <= this.bottomPoint) {\n if (!this.isStuck) {\n this._setSticky();\n }\n } else {\n if (this.isStuck) {\n this._removeSticky(false);\n }\n }\n } else {\n if (this.isStuck) {\n this._removeSticky(true);\n }\n }\n }\n\n /**\n * Causes the $element to become stuck.\n * Adds `position: fixed;`, and helper classes.\n * @fires Sticky#stuckto\n * @function\n * @private\n */\n _setSticky() {\n var _this = this,\n stickTo = this.options.stickTo,\n mrgn = stickTo === 'top' ? 'marginTop' : 'marginBottom',\n notStuckTo = stickTo === 'top' ? 'bottom' : 'top',\n css = {};\n\n css[mrgn] = `${this.options[mrgn]}em`;\n css[stickTo] = 0;\n css[notStuckTo] = 'auto';\n this.isStuck = true;\n this.$element.removeClass(`is-anchored is-at-${notStuckTo}`)\n .addClass(`is-stuck is-at-${stickTo}`)\n .css(css)\n /**\n * Fires when the $element has become `position: fixed;`\n * Namespaced to `top` or `bottom`, e.g. `sticky.zf.stuckto:top`\n * @event Sticky#stuckto\n */\n .trigger(`sticky.zf.stuckto:${stickTo}`);\n this.$element.on(\"transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd\", function() {\n _this._setSizes();\n });\n }\n\n /**\n * Causes the $element to become unstuck.\n * Removes `position: fixed;`, and helper classes.\n * Adds other helper classes.\n * @param {Boolean} isTop - tells the function if the $element should anchor to the top or bottom of its $anchor element.\n * @fires Sticky#unstuckfrom\n * @private\n */\n _removeSticky(isTop) {\n var stickTo = this.options.stickTo,\n stickToTop = stickTo === 'top',\n css = {},\n anchorPt = (this.points ? this.points[1] - this.points[0] : this.anchorHeight) - this.elemHeight,\n mrgn = stickToTop ? 'marginTop' : 'marginBottom',\n topOrBottom = isTop ? 'top' : 'bottom';\n\n css[mrgn] = 0;\n\n css['bottom'] = 'auto';\n if(isTop) {\n css['top'] = 0;\n } else {\n css['top'] = anchorPt;\n }\n\n this.isStuck = false;\n this.$element.removeClass(`is-stuck is-at-${stickTo}`)\n .addClass(`is-anchored is-at-${topOrBottom}`)\n .css(css)\n /**\n * Fires when the $element has become anchored.\n * Namespaced to `top` or `bottom`, e.g. `sticky.zf.unstuckfrom:bottom`\n * @event Sticky#unstuckfrom\n */\n .trigger(`sticky.zf.unstuckfrom:${topOrBottom}`);\n }\n\n /**\n * Sets the $element and $container sizes for plugin.\n * Calls `_setBreakPoints`.\n * @param {Function} cb - optional callback function to fire on completion of `_setBreakPoints`.\n * @private\n */\n _setSizes(cb) {\n this.canStick = MediaQuery.is(this.options.stickyOn);\n if (!this.canStick) {\n if (cb && typeof cb === 'function') { cb(); }\n }\n\n var _this = this,\n newElemWidth = this.$container[0].getBoundingClientRect().width,\n comp = window.getComputedStyle(this.$container[0]),\n pdngl = parseInt(comp['padding-left'], 10),\n pdngr = parseInt(comp['padding-right'], 10);\n\n if (this.$anchor && this.$anchor.length) {\n this.anchorHeight = this.$anchor[0].getBoundingClientRect().height;\n } else {\n this._parsePoints();\n }\n\n this.$element.css({\n 'max-width': `${newElemWidth - pdngl - pdngr}px`\n });\n\n // Recalculate the height only if it is \"dynamic\"\n if (this.options.dynamicHeight || !this.containerHeight) {\n // Get the sticked element height and apply it to the container to \"hold the place\"\n var newContainerHeight = this.$element[0].getBoundingClientRect().height || this.containerHeight;\n newContainerHeight = this.$element.css(\"display\") == \"none\" ? 0 : newContainerHeight;\n this.$container.css('height', newContainerHeight);\n this.containerHeight = newContainerHeight;\n }\n this.elemHeight = this.containerHeight;\n\n if (!this.isStuck) {\n if (this.$element.hasClass('is-at-bottom')) {\n var anchorPt = (this.points ? this.points[1] - this.$container.offset().top : this.anchorHeight) - this.elemHeight;\n this.$element.css('top', anchorPt);\n }\n }\n\n this._setBreakPoints(this.containerHeight, function() {\n if (cb && typeof cb === 'function') { cb(); }\n });\n }\n\n /**\n * Sets the upper and lower breakpoints for the element to become sticky/unsticky.\n * @param {Number} elemHeight - px value for sticky.$element height, calculated by `_setSizes`.\n * @param {Function} cb - optional callback function to be called on completion.\n * @private\n */\n _setBreakPoints(elemHeight, cb) {\n if (!this.canStick) {\n if (cb && typeof cb === 'function') { cb(); }\n else { return false; }\n }\n var mTop = emCalc(this.options.marginTop),\n mBtm = emCalc(this.options.marginBottom),\n topPoint = this.points ? this.points[0] : this.$anchor.offset().top,\n bottomPoint = this.points ? this.points[1] : topPoint + this.anchorHeight,\n // topPoint = this.$anchor.offset().top || this.points[0],\n // bottomPoint = topPoint + this.anchorHeight || this.points[1],\n winHeight = window.innerHeight;\n\n if (this.options.stickTo === 'top') {\n topPoint -= mTop;\n bottomPoint -= (elemHeight + mTop);\n } else if (this.options.stickTo === 'bottom') {\n topPoint -= (winHeight - (elemHeight + mBtm));\n bottomPoint -= (winHeight - mBtm);\n } else {\n //this would be the stickTo: both option... tricky\n }\n\n this.topPoint = topPoint;\n this.bottomPoint = bottomPoint;\n\n if (cb && typeof cb === 'function') { cb(); }\n }\n\n /**\n * Destroys the current sticky element.\n * Resets the element to the top position first.\n * Removes event listeners, JS-added css properties and classes, and unwraps the $element if the JS added the $container.\n * @function\n */\n _destroy() {\n this._removeSticky(true);\n\n this.$element.removeClass(`${this.options.stickyClass} is-anchored is-at-top`)\n .css({\n height: '',\n top: '',\n bottom: '',\n 'max-width': ''\n })\n .off('resizeme.zf.trigger')\n .off('mutateme.zf.trigger');\n if (this.$anchor && this.$anchor.length) {\n this.$anchor.off('change.zf.sticky');\n }\n if (this.scrollListener) $(window).off(this.scrollListener)\n if (this.onLoadListener) $(window).off(this.onLoadListener)\n\n if (this.wasWrapped) {\n this.$element.unwrap();\n } else {\n this.$container.removeClass(this.options.containerClass)\n .css({\n height: ''\n });\n }\n }\n}\n\nSticky.defaults = {\n /**\n * Customizable container template. Add your own classes for styling and sizing.\n * @option\n * @type {string}\n * @default '&lt;div data-sticky-container&gt;&lt;/div&gt;'\n */\n container: '<div data-sticky-container></div>',\n /**\n * Location in the view the element sticks to. Can be `'top'` or `'bottom'`.\n * @option\n * @type {string}\n * @default 'top'\n */\n stickTo: 'top',\n /**\n * If anchored to a single element, the id of that element.\n * @option\n * @type {string}\n * @default ''\n */\n anchor: '',\n /**\n * If using more than one element as anchor points, the id of the top anchor.\n * @option\n * @type {string}\n * @default ''\n */\n topAnchor: '',\n /**\n * If using more than one element as anchor points, the id of the bottom anchor.\n * @option\n * @type {string}\n * @default ''\n */\n btmAnchor: '',\n /**\n * Margin, in `em`'s to apply to the top of the element when it becomes sticky.\n * @option\n * @type {number}\n * @default 1\n */\n marginTop: 1,\n /**\n * Margin, in `em`'s to apply to the bottom of the element when it becomes sticky.\n * @option\n * @type {number}\n * @default 1\n */\n marginBottom: 1,\n /**\n * Breakpoint string that is the minimum screen size an element should become sticky.\n * @option\n * @type {string}\n * @default 'medium'\n */\n stickyOn: 'medium',\n /**\n * Class applied to sticky element, and removed on destruction. Foundation defaults to `sticky`.\n * @option\n * @type {string}\n * @default 'sticky'\n */\n stickyClass: 'sticky',\n /**\n * Class applied to sticky container. Foundation defaults to `sticky-container`.\n * @option\n * @type {string}\n * @default 'sticky-container'\n */\n containerClass: 'sticky-container',\n /**\n * If true (by default), keep the sticky container the same height as the element. Otherwise, the container height is set once and does not change.\n * @option\n * @type {boolean}\n * @default true\n */\n dynamicHeight: true,\n /**\n * Number of scroll events between the plugin's recalculating sticky points. Setting it to `0` will cause it to recalc every scroll event, setting it to `-1` will prevent recalc on scroll.\n * @option\n * @type {number}\n * @default -1\n */\n checkEvery: -1\n};\n\n/**\n * Helper function to calculate em values\n * @param Number {em} - number of em's to calculate into pixels\n */\nfunction emCalc(em) {\n return parseInt(window.getComputedStyle(document.body, null).fontSize, 10) * em;\n}\n\nexport {Sticky};\n","'use strict';\n\nimport $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n for (var i=0; i < prefixes.length; i++) {\n if (`${prefixes[i]}MutationObserver` in window) {\n return window[`${prefixes[i]}MutationObserver`];\n }\n }\n return false;\n}());\n\nconst triggers = (el, type) => {\n el.data(type).split(' ').forEach(id => {\n $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n });\n};\n\nvar Triggers = {\n Listeners: {\n Basic: {},\n Global: {}\n },\n Initializers: {}\n}\n\nTriggers.Listeners.Basic = {\n openListener: function() {\n triggers($(this), 'open');\n },\n closeListener: function() {\n let id = $(this).data('close');\n if (id) {\n triggers($(this), 'close');\n }\n else {\n $(this).trigger('close.zf.trigger');\n }\n },\n toggleListener: function() {\n let id = $(this).data('toggle');\n if (id) {\n triggers($(this), 'toggle');\n } else {\n $(this).trigger('toggle.zf.trigger');\n }\n },\n closeableListener: function(e) {\n let animation = $(this).data('closable');\n\n // Only close the first closable element. See https://git.io/zf-7833\n e.stopPropagation();\n\n if(animation !== ''){\n Motion.animateOut($(this), animation, function() {\n $(this).trigger('closed.zf');\n });\n }else{\n $(this).fadeOut().trigger('closed.zf');\n }\n },\n toggleFocusListener: function() {\n let id = $(this).data('toggle-focus');\n $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global = {\n resizeListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('resizeme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a resize event\n $nodes.attr('data-events', \"resize\");\n },\n scrollListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('scrollme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a scroll event\n $nodes.attr('data-events', \"scroll\");\n },\n closeMeListener: function(e, pluginId){\n let plugin = e.namespace.split('.')[0];\n let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n plugins.each(function(){\n let _this = $(this);\n _this.triggerHandler('close.zf.trigger', [_this]);\n });\n }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n var yetiBoxes = $('[data-yeti-box]'),\n plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n if(pluginName){\n if(typeof pluginName === 'string'){\n plugNames.push(pluginName);\n }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n plugNames = plugNames.concat(pluginName);\n }else{\n console.error('Plugin names must be strings');\n }\n }\n if(yetiBoxes.length){\n let listeners = plugNames.map((name) => {\n return `closeme.zf.${name}`;\n }).join(' ');\n\n $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n let timer, args = Array.prototype.slice.call(arguments, 3);\n $(window).off(trigger).on(trigger, function(e) {\n if (timer) { clearTimeout(timer); }\n timer = setTimeout(function(){\n listener.apply(null, args);\n }, debounce || 10);//default time to emit scroll event\n });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n let $nodes = $('[data-resize]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n let $nodes = $('[data-scroll]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n if(!MutationObserver){ return false; }\n let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n //element callback\n var listeningElementsMutation = function (mutationRecordsList) {\n var $target = $(mutationRecordsList[0].target);\n\n //trigger the event handler for the element depending on type\n switch (mutationRecordsList[0].type) {\n case \"attributes\":\n if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n }\n if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('resizeme.zf.trigger', [$target]);\n }\n if (mutationRecordsList[0].attributeName === \"style\") {\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n }\n break;\n\n case \"childList\":\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n break;\n\n default:\n return false;\n //nothing\n }\n };\n\n if ($nodes.length) {\n //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n for (var i = 0; i <= $nodes.length - 1; i++) {\n var elementObserver = new MutationObserver(listeningElementsMutation);\n elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n }\n }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n let $document = $(document);\n\n Triggers.Initializers.addOpenListener($document);\n Triggers.Initializers.addCloseListener($document);\n Triggers.Initializers.addToggleListener($document);\n Triggers.Initializers.addCloseableListener($document);\n Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n let $document = $(document);\n Triggers.Initializers.addMutationEventsListener($document);\n Triggers.Initializers.addResizeListener();\n Triggers.Initializers.addScrollListener();\n Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function ($, Foundation) {\n onLoad($(window), function () {\n if ($.triggersInitialized !== true) {\n Triggers.Initializers.addSimpleListeners();\n Triggers.Initializers.addGlobalListeners();\n $.triggersInitialized = true;\n }\n });\n\n if(Foundation) {\n Foundation.Triggers = Triggers;\n // Legacy included to be backwards compatible for now.\n Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n }\n}\n\nexport {Triggers};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("./foundation.core"),require("./foundation.util.mediaQuery"),require("./foundation.util.motion"),require("jquery")):"function"==typeof define&&define.amd?define(["./foundation.core","./foundation.util.mediaQuery","./foundation.util.motion","jquery"],e):"object"==typeof exports?exports["foundation.sticky"]=e(require("./foundation.core"),require("./foundation.util.mediaQuery"),require("./foundation.util.motion"),require("jquery")):(t.__FOUNDATION_EXTERNAL__=t.__FOUNDATION_EXTERNAL__||{},t.__FOUNDATION_EXTERNAL__["foundation.sticky"]=e(t.__FOUNDATION_EXTERNAL__["foundation.core"],t.__FOUNDATION_EXTERNAL__["foundation.util.mediaQuery"],t.__FOUNDATION_EXTERNAL__["foundation.util.motion"],t.jQuery))}(window,function(i,n,o,s){return c={},r.m=a={"./foundation.core":function(t,e){t.exports=i},"./foundation.util.mediaQuery":function(t,e){t.exports=n},"./foundation.util.motion":function(t,e){t.exports=o},"./js/entries/plugins/foundation.sticky.js":function(t,e,i){"use strict";i.r(e);var n=i("./foundation.core");i.d(e,"Foundation",function(){return n.Foundation});var o=i("./js/foundation.sticky.js");i.d(e,"Sticky",function(){return o.Sticky}),n.Foundation.plugin(o.Sticky,"Sticky")},"./js/foundation.sticky.js":function(t,e,i){"use strict";i.r(e),i.d(e,"Sticky",function(){return h});var n=i("jquery"),a=i.n(n),o=i("./foundation.core"),c=i("./foundation.util.mediaQuery"),s=i("./js/foundation.util.triggers.js");function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function u(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function l(t,e){return!e||"object"!==r(e)&&"function"!=typeof e?function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t):e}function f(t){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function d(t,e){return(d=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}var h=function(){function i(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,i),l(this,f(i).apply(this,arguments))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&d(t,e)}(i,o["Plugin"]),function(t,e,i){e&&u(t.prototype,e),i&&u(t,i)}(i,[{key:"_setup",value:function(t,e){this.$element=t,this.options=a.a.extend({},i.defaults,this.$element.data(),e),this.className="Sticky",s.Triggers.init(a.a),this._init()}},{key:"_init",value:function(){c.MediaQuery._init();var t=this.$element.parent("[data-sticky-container]"),e=this.$element[0].id||Object(o.GetYoDigits)(6,"sticky"),i=this;t.length?this.$container=t:(this.wasWrapped=!0,this.$element.wrap(this.options.container),this.$container=this.$element.parent()),this.$container.addClass(this.options.containerClass),this.$element.addClass(this.options.stickyClass).attr({"data-resize":e,"data-mutate":e}),""!==this.options.anchor&&a()("#"+i.options.anchor).attr({"data-mutate":e}),this.scrollCount=this.options.checkEvery,this.isStuck=!1,this.onLoadListener=Object(o.onLoad)(a()(window),function(){i.containerHeight="none"==i.$element.css("display")?0:i.$element[0].getBoundingClientRect().height,i.$container.css("height",i.containerHeight),i.elemHeight=i.containerHeight,""!==i.options.anchor?i.$anchor=a()("#"+i.options.anchor):i._parsePoints(),i._setSizes(function(){var t=window.pageYOffset;i._calc(!1,t),i.isStuck||i._removeSticky(!(t>=i.topPoint))}),i._events(e.split("-").reverse().join("-"))})}},{key:"_parsePoints",value:function(){for(var t=[""==this.options.topAnchor?1:this.options.topAnchor,""==this.options.btmAnchor?document.documentElement.scrollHeight:this.options.btmAnchor],e={},i=0,n=t.length;i<n&&t[i];i++){var o;if("number"==typeof t[i])o=t[i];else{var s=t[i].split(":"),r=a()("#".concat(s[0]));o=r.offset().top,s[1]&&"bottom"===s[1].toLowerCase()&&(o+=r[0].getBoundingClientRect().height)}e[i]=o}this.points=e}},{key:"_events",value:function(i){var n=this,t=this.scrollListener="scroll.zf.".concat(i);this.isOn||(this.canStick&&(this.isOn=!0,a()(window).off(t).on(t,function(t){0===n.scrollCount?(n.scrollCount=n.options.checkEvery,n._setSizes(function(){n._calc(!1,window.pageYOffset)})):(n.scrollCount--,n._calc(!1,window.pageYOffset))})),this.$element.off("resizeme.zf.trigger").on("resizeme.zf.trigger",function(t,e){n._eventsHandler(i)}),this.$element.on("mutateme.zf.trigger",function(t,e){n._eventsHandler(i)}),this.$anchor&&this.$anchor.on("mutateme.zf.trigger",function(t,e){n._eventsHandler(i)}))}},{key:"_eventsHandler",value:function(t){var e=this,i=this.scrollListener="scroll.zf.".concat(t);e._setSizes(function(){e._calc(!1),e.canStick?e.isOn||e._events(t):e.isOn&&e._pauseListeners(i)})}},{key:"_pauseListeners",value:function(t){this.isOn=!1,a()(window).off(t),this.$element.trigger("pause.zf.sticky")}},{key:"_calc",value:function(t,e){if(t&&this._setSizes(),!this.canStick)return this.isStuck&&this._removeSticky(!0),!1;(e=e||window.pageYOffset)>=this.topPoint?e<=this.bottomPoint?this.isStuck||this._setSticky():this.isStuck&&this._removeSticky(!1):this.isStuck&&this._removeSticky(!0)}},{key:"_setSticky",value:function(){var t=this,e=this.options.stickTo,i="top"===e?"marginTop":"marginBottom",n="top"===e?"bottom":"top",o={};o[i]="".concat(this.options[i],"em"),o[e]=0,o[n]="auto",this.isStuck=!0,this.$element.removeClass("is-anchored is-at-".concat(n)).addClass("is-stuck is-at-".concat(e)).css(o).trigger("sticky.zf.stuckto:".concat(e)),this.$element.on("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd",function(){t._setSizes()})}},{key:"_removeSticky",value:function(t){var e=this.options.stickTo,i="top"===e,n={},o=(this.points?this.points[1]-this.points[0]:this.anchorHeight)-this.elemHeight,s=t?"top":"bottom";n[i?"marginTop":"marginBottom"]=0,n.bottom="auto",n.top=t?0:o,this.isStuck=!1,this.$element.removeClass("is-stuck is-at-".concat(e)).addClass("is-anchored is-at-".concat(s)).css(n).trigger("sticky.zf.unstuckfrom:".concat(s))}},{key:"_setSizes",value:function(t){this.canStick=c.MediaQuery.is(this.options.stickyOn),this.canStick||t&&"function"==typeof t&&t();var e=this.$container[0].getBoundingClientRect().width,i=window.getComputedStyle(this.$container[0]),n=parseInt(i["padding-left"],10),o=parseInt(i["padding-right"],10);if(this.$anchor&&this.$anchor.length?this.anchorHeight=this.$anchor[0].getBoundingClientRect().height:this._parsePoints(),this.$element.css({"max-width":"".concat(e-n-o,"px")}),this.options.dynamicHeight||!this.containerHeight){var s=this.$element[0].getBoundingClientRect().height||this.containerHeight;s="none"==this.$element.css("display")?0:s,this.$container.css("height",s),this.containerHeight=s}if(this.elemHeight=this.containerHeight,!this.isStuck&&this.$element.hasClass("is-at-bottom")){var r=(this.points?this.points[1]-this.$container.offset().top:this.anchorHeight)-this.elemHeight;this.$element.css("top",r)}this._setBreakPoints(this.containerHeight,function(){t&&"function"==typeof t&&t()})}},{key:"_setBreakPoints",value:function(t,e){if(!this.canStick){if(!e||"function"!=typeof e)return!1;e()}var i=g(this.options.marginTop),n=g(this.options.marginBottom),o=this.points?this.points[0]:this.$anchor.offset().top,s=this.points?this.points[1]:o+this.anchorHeight,r=window.innerHeight;"top"===this.options.stickTo?(o-=i,s-=t+i):"bottom"===this.options.stickTo&&(o-=r-(t+n),s-=r-n),this.topPoint=o,this.bottomPoint=s,e&&"function"==typeof e&&e()}},{key:"_destroy",value:function(){this._removeSticky(!0),this.$element.removeClass("".concat(this.options.stickyClass," is-anchored is-at-top")).css({height:"",top:"",bottom:"","max-width":""}).off("resizeme.zf.trigger").off("mutateme.zf.trigger"),this.$anchor&&this.$anchor.length&&this.$anchor.off("change.zf.sticky"),this.scrollListener&&a()(window).off(this.scrollListener),this.onLoadListener&&a()(window).off(this.onLoadListener),this.wasWrapped?this.$element.unwrap():this.$container.removeClass(this.options.containerClass).css({height:""})}}]),i}();function g(t){return parseInt(window.getComputedStyle(document.body,null).fontSize,10)*t}h.defaults={container:"<div data-sticky-container></div>",stickTo:"top",anchor:"",topAnchor:"",btmAnchor:"",marginTop:1,marginBottom:1,stickyOn:"medium",stickyClass:"sticky",containerClass:"sticky-container",dynamicHeight:!0,checkEvery:-1}},"./js/foundation.util.triggers.js":function(t,e,i){"use strict";i.r(e),i.d(e,"Triggers",function(){return l});var n=i("jquery"),s=i.n(n),o=i("./foundation.core"),r=i("./foundation.util.motion");function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(e,i){e.data(i).split(" ").forEach(function(t){s()("#".concat(t))["close"===i?"trigger":"triggerHandler"]("".concat(i,".zf.trigger"),[e])})}var u=function(){for(var t=["WebKit","Moz","O","Ms",""],e=0;e<t.length;e++)if("".concat(t[e],"MutationObserver")in window)return window["".concat(t[e],"MutationObserver")];return!1}(),l={Listeners:{Basic:{},Global:{}},Initializers:{}};function f(e,t,i){var n,o=Array.prototype.slice.call(arguments,3);s()(window).off(t).on(t,function(t){n&&clearTimeout(n),n=setTimeout(function(){i.apply(null,o)},e||10)})}l.Listeners.Basic={openListener:function(){c(s()(this),"open")},closeListener:function(){s()(this).data("close")?c(s()(this),"close"):s()(this).trigger("close.zf.trigger")},toggleListener:function(){s()(this).data("toggle")?c(s()(this),"toggle"):s()(this).trigger("toggle.zf.trigger")},closeableListener:function(t){var e=s()(this).data("closable");t.stopPropagation(),""!==e?r.Motion.animateOut(s()(this),e,function(){s()(this).trigger("closed.zf")}):s()(this).fadeOut().trigger("closed.zf")},toggleFocusListener:function(){var t=s()(this).data("toggle-focus");s()("#".concat(t)).triggerHandler("toggle.zf.trigger",[s()(this)])}},l.Initializers.addOpenListener=function(t){t.off("click.zf.trigger",l.Listeners.Basic.openListener),t.on("click.zf.trigger","[data-open]",l.Listeners.Basic.openListener)},l.Initializers.addCloseListener=function(t){t.off("click.zf.trigger",l.Listeners.Basic.closeListener),t.on("click.zf.trigger","[data-close]",l.Listeners.Basic.closeListener)},l.Initializers.addToggleListener=function(t){t.off("click.zf.trigger",l.Listeners.Basic.toggleListener),t.on("click.zf.trigger","[data-toggle]",l.Listeners.Basic.toggleListener)},l.Initializers.addCloseableListener=function(t){t.off("close.zf.trigger",l.Listeners.Basic.closeableListener),t.on("close.zf.trigger","[data-closeable], [data-closable]",l.Listeners.Basic.closeableListener)},l.Initializers.addToggleFocusListener=function(t){t.off("focus.zf.trigger blur.zf.trigger",l.Listeners.Basic.toggleFocusListener),t.on("focus.zf.trigger blur.zf.trigger","[data-toggle-focus]",l.Listeners.Basic.toggleFocusListener)},l.Listeners.Global={resizeListener:function(t){u||t.each(function(){s()(this).triggerHandler("resizeme.zf.trigger")}),t.attr("data-events","resize")},scrollListener:function(t){u||t.each(function(){s()(this).triggerHandler("scrollme.zf.trigger")}),t.attr("data-events","scroll")},closeMeListener:function(t,e){var i=t.namespace.split(".")[0];s()("[data-".concat(i,"]")).not('[data-yeti-box="'.concat(e,'"]')).each(function(){var t=s()(this);t.triggerHandler("close.zf.trigger",[t])})}},l.Initializers.addClosemeListener=function(t){var e=s()("[data-yeti-box]"),i=["dropdown","tooltip","reveal"];if(t&&("string"==typeof t?i.push(t):"object"===a(t)&&"string"==typeof t[0]?i=i.concat(t):console.error("Plugin names must be strings")),e.length){var n=i.map(function(t){return"closeme.zf.".concat(t)}).join(" ");s()(window).off(n).on(n,l.Listeners.Global.closeMeListener)}},l.Initializers.addResizeListener=function(t){var e=s()("[data-resize]");e.length&&f(t,"resize.zf.trigger",l.Listeners.Global.resizeListener,e)},l.Initializers.addScrollListener=function(t){var e=s()("[data-scroll]");e.length&&f(t,"scroll.zf.trigger",l.Listeners.Global.scrollListener,e)},l.Initializers.addMutationEventsListener=function(t){if(!u)return!1;function e(t){var e=s()(t[0].target);switch(t[0].type){case"attributes":"scroll"===e.attr("data-events")&&"data-events"===t[0].attributeName&&e.triggerHandler("scrollme.zf.trigger",[e,window.pageYOffset]),"resize"===e.attr("data-events")&&"data-events"===t[0].attributeName&&e.triggerHandler("resizeme.zf.trigger",[e]),"style"===t[0].attributeName&&(e.closest("[data-mutate]").attr("data-events","mutate"),e.closest("[data-mutate]").triggerHandler("mutateme.zf.trigger",[e.closest("[data-mutate]")]));break;case"childList":e.closest("[data-mutate]").attr("data-events","mutate"),e.closest("[data-mutate]").triggerHandler("mutateme.zf.trigger",[e.closest("[data-mutate]")]);break;default:return!1}}var i=t.find("[data-resize], [data-scroll], [data-mutate]");if(i.length)for(var n=0;n<=i.length-1;n++){new u(e).observe(i[n],{attributes:!0,childList:!0,characterData:!1,subtree:!0,attributeFilter:["data-events","style"]})}},l.Initializers.addSimpleListeners=function(){var t=s()(document);l.Initializers.addOpenListener(t),l.Initializers.addCloseListener(t),l.Initializers.addToggleListener(t),l.Initializers.addCloseableListener(t),l.Initializers.addToggleFocusListener(t)},l.Initializers.addGlobalListeners=function(){var t=s()(document);l.Initializers.addMutationEventsListener(t),l.Initializers.addResizeListener(),l.Initializers.addScrollListener(),l.Initializers.addClosemeListener()},l.init=function(t,e){Object(o.onLoad)(t(window),function(){!0!==t.triggersInitialized&&(l.Initializers.addSimpleListeners(),l.Initializers.addGlobalListeners(),t.triggersInitialized=!0)}),e&&(e.Triggers=l,e.IHearYou=l.Initializers.addGlobalListeners)}},17:function(t,e,i){t.exports=i("./js/entries/plugins/foundation.sticky.js")},jquery:function(t,e){t.exports=s}},r.c=c,r.d=function(t,e,i){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(i,n,function(t){return e[t]}.bind(null,n));return i},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=17);function r(t){if(c[t])return c[t].exports;var e=c[t]={i:t,l:!1,exports:{}};return a[t].call(e.exports,e,e.exports,r),e.l=!0,e.exports}var a,c});
2
+ //# sourceMappingURL=foundation.sticky.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.sticky.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.sticky.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.triggers.js"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE_jquery__","installedModules","__webpack_require__","m","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_sticky__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Sticky","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__","_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__","element","options","this","$element","$","extend","defaults","data","className","Triggers","init","_init","MediaQuery","$parent","parent","id","GetYoDigits","_this","length","$container","wasWrapped","wrap","container","addClass","containerClass","stickyClass","attr","data-resize","data-mutate","anchor","scrollCount","checkEvery","isStuck","onLoadListener","onLoad","containerHeight","css","getBoundingClientRect","height","elemHeight","$anchor","_parsePoints","_setSizes","scroll","pageYOffset","_calc","_removeSticky","topPoint","_events","split","reverse","join","pts","topAnchor","btmAnchor","document","documentElement","scrollHeight","breaks","i","len","pt","place","concat","offset","top","toLowerCase","points","scrollListener","isOn","canStick","off","on","e","el","_eventsHandler","_pauseListeners","trigger","checkSizes","bottomPoint","_setSticky","stickTo","mrgn","notStuckTo","removeClass","isTop","stickToTop","anchorPt","anchorHeight","topOrBottom","is","stickyOn","cb","width","newElemWidth","getComputedStyle","comp","pdngl","parseInt","max-width","pdngr","newContainerHeight","hasClass","_setBreakPoints","mTop","emCalc","marginTop","mBtm","marginBottom","winHeight","innerHeight","bottom","body","fontSize","em","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","triggers","type","MutationObserver","prefixes","Listeners","Basic","Initializers","timer","Array","prototype","slice","call","arguments","clearTimeout","setTimeout","args","listener","apply","openListener","closeListener","toggleListener","closeableListener","animateOut","animation","Motion","fadeOut","toggleFocusListener","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","$nodes","resizeListener","each","triggerHandler","closeMeListener","pluginId","namespace","not","plugins","yetiBoxes","pluginName","plugNames","_typeof","console","error","map","name","listeners","Global","debounceGlobalListener","debounce","listeningElementsMutation","mutationRecordsList","$target","attributeName","closest","elementObserver","attributes","childList","characterData","subtree","$document","addMutationEventsListener","addResizeListener","addScrollListener","triggersInitialized","addSimpleListeners","addGlobalListeners","c","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","object","property","hasOwnProperty","p","s","moduleId","l","modules"],"mappings":"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","file":"foundation.sticky.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.mediaQuery\", \"./foundation.util.motion\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.sticky\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.sticky\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 17);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","import { Foundation } from './foundation.core';\n\nimport { Sticky } from '../../foundation.sticky';\nFoundation.plugin(Sticky, 'Sticky');\n\nexport { Foundation, Sticky };\n","'use strict';\n\nimport $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Sticky module.\n * @module foundation.sticky\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass Sticky extends Plugin {\n /**\n * Creates a new instance of a sticky thing.\n * @class\n * @name Sticky\n * @param {jQuery} element - jQuery object to make sticky.\n * @param {Object} options - options object passed when creating the element programmatically.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Sticky.defaults, this.$element.data(), options);\n this.className = 'Sticky'; // ie9 back compat\n\n // Triggers init is idempotent, just need to make sure it is initialized\n Triggers.init($);\n\n this._init();\n }\n\n /**\n * Initializes the sticky element by adding classes, getting/setting dimensions, breakpoints and attributes\n * @function\n * @private\n */\n _init() {\n MediaQuery._init();\n\n var $parent = this.$element.parent('[data-sticky-container]'),\n id = this.$element[0].id || GetYoDigits(6, 'sticky'),\n _this = this;\n\n if($parent.length){\n this.$container = $parent;\n } else {\n this.wasWrapped = true;\n this.$element.wrap(this.options.container);\n this.$container = this.$element.parent();\n }\n this.$container.addClass(this.options.containerClass);\n\n this.$element.addClass(this.options.stickyClass).attr({ 'data-resize': id, 'data-mutate': id });\n if (this.options.anchor !== '') {\n $('#' + _this.options.anchor).attr({ 'data-mutate': id });\n }\n\n this.scrollCount = this.options.checkEvery;\n this.isStuck = false;\n this.onLoadListener = onLoad($(window), function () {\n //We calculate the container height to have correct values for anchor points offset calculation.\n _this.containerHeight = _this.$element.css(\"display\") == \"none\" ? 0 : _this.$element[0].getBoundingClientRect().height;\n _this.$container.css('height', _this.containerHeight);\n _this.elemHeight = _this.containerHeight;\n if (_this.options.anchor !== '') {\n _this.$anchor = $('#' + _this.options.anchor);\n } else {\n _this._parsePoints();\n }\n\n _this._setSizes(function () {\n var scroll = window.pageYOffset;\n _this._calc(false, scroll);\n //Unstick the element will ensure that proper classes are set.\n if (!_this.isStuck) {\n _this._removeSticky((scroll >= _this.topPoint) ? false : true);\n }\n });\n _this._events(id.split('-').reverse().join('-'));\n });\n }\n\n /**\n * If using multiple elements as anchors, calculates the top and bottom pixel values the sticky thing should stick and unstick on.\n * @function\n * @private\n */\n _parsePoints() {\n var top = this.options.topAnchor == \"\" ? 1 : this.options.topAnchor,\n btm = this.options.btmAnchor== \"\" ? document.documentElement.scrollHeight : this.options.btmAnchor,\n pts = [top, btm],\n breaks = {};\n for (var i = 0, len = pts.length; i < len && pts[i]; i++) {\n var pt;\n if (typeof pts[i] === 'number') {\n pt = pts[i];\n } else {\n var place = pts[i].split(':'),\n anchor = $(`#${place[0]}`);\n\n pt = anchor.offset().top;\n if (place[1] && place[1].toLowerCase() === 'bottom') {\n pt += anchor[0].getBoundingClientRect().height;\n }\n }\n breaks[i] = pt;\n }\n\n\n this.points = breaks;\n return;\n }\n\n /**\n * Adds event handlers for the scrolling element.\n * @private\n * @param {String} id - pseudo-random id for unique scroll event listener.\n */\n _events(id) {\n var _this = this,\n scrollListener = this.scrollListener = `scroll.zf.${id}`;\n if (this.isOn) { return; }\n if (this.canStick) {\n this.isOn = true;\n $(window).off(scrollListener)\n .on(scrollListener, function(e) {\n if (_this.scrollCount === 0) {\n _this.scrollCount = _this.options.checkEvery;\n _this._setSizes(function() {\n _this._calc(false, window.pageYOffset);\n });\n } else {\n _this.scrollCount--;\n _this._calc(false, window.pageYOffset);\n }\n });\n }\n\n this.$element.off('resizeme.zf.trigger')\n .on('resizeme.zf.trigger', function(e, el) {\n _this._eventsHandler(id);\n });\n\n this.$element.on('mutateme.zf.trigger', function (e, el) {\n _this._eventsHandler(id);\n });\n\n if(this.$anchor) {\n this.$anchor.on('mutateme.zf.trigger', function (e, el) {\n _this._eventsHandler(id);\n });\n }\n }\n\n /**\n * Handler for events.\n * @private\n * @param {String} id - pseudo-random id for unique scroll event listener.\n */\n _eventsHandler(id) {\n var _this = this,\n scrollListener = this.scrollListener = `scroll.zf.${id}`;\n\n _this._setSizes(function() {\n _this._calc(false);\n if (_this.canStick) {\n if (!_this.isOn) {\n _this._events(id);\n }\n } else if (_this.isOn) {\n _this._pauseListeners(scrollListener);\n }\n });\n }\n\n /**\n * Removes event handlers for scroll and change events on anchor.\n * @fires Sticky#pause\n * @param {String} scrollListener - unique, namespaced scroll listener attached to `window`\n */\n _pauseListeners(scrollListener) {\n this.isOn = false;\n $(window).off(scrollListener);\n\n /**\n * Fires when the plugin is paused due to resize event shrinking the view.\n * @event Sticky#pause\n * @private\n */\n this.$element.trigger('pause.zf.sticky');\n }\n\n /**\n * Called on every `scroll` event and on `_init`\n * fires functions based on booleans and cached values\n * @param {Boolean} checkSizes - true if plugin should recalculate sizes and breakpoints.\n * @param {Number} scroll - current scroll position passed from scroll event cb function. If not passed, defaults to `window.pageYOffset`.\n */\n _calc(checkSizes, scroll) {\n if (checkSizes) { this._setSizes(); }\n\n if (!this.canStick) {\n if (this.isStuck) {\n this._removeSticky(true);\n }\n return false;\n }\n\n if (!scroll) { scroll = window.pageYOffset; }\n\n if (scroll >= this.topPoint) {\n if (scroll <= this.bottomPoint) {\n if (!this.isStuck) {\n this._setSticky();\n }\n } else {\n if (this.isStuck) {\n this._removeSticky(false);\n }\n }\n } else {\n if (this.isStuck) {\n this._removeSticky(true);\n }\n }\n }\n\n /**\n * Causes the $element to become stuck.\n * Adds `position: fixed;`, and helper classes.\n * @fires Sticky#stuckto\n * @function\n * @private\n */\n _setSticky() {\n var _this = this,\n stickTo = this.options.stickTo,\n mrgn = stickTo === 'top' ? 'marginTop' : 'marginBottom',\n notStuckTo = stickTo === 'top' ? 'bottom' : 'top',\n css = {};\n\n css[mrgn] = `${this.options[mrgn]}em`;\n css[stickTo] = 0;\n css[notStuckTo] = 'auto';\n this.isStuck = true;\n this.$element.removeClass(`is-anchored is-at-${notStuckTo}`)\n .addClass(`is-stuck is-at-${stickTo}`)\n .css(css)\n /**\n * Fires when the $element has become `position: fixed;`\n * Namespaced to `top` or `bottom`, e.g. `sticky.zf.stuckto:top`\n * @event Sticky#stuckto\n */\n .trigger(`sticky.zf.stuckto:${stickTo}`);\n this.$element.on(\"transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd\", function() {\n _this._setSizes();\n });\n }\n\n /**\n * Causes the $element to become unstuck.\n * Removes `position: fixed;`, and helper classes.\n * Adds other helper classes.\n * @param {Boolean} isTop - tells the function if the $element should anchor to the top or bottom of its $anchor element.\n * @fires Sticky#unstuckfrom\n * @private\n */\n _removeSticky(isTop) {\n var stickTo = this.options.stickTo,\n stickToTop = stickTo === 'top',\n css = {},\n anchorPt = (this.points ? this.points[1] - this.points[0] : this.anchorHeight) - this.elemHeight,\n mrgn = stickToTop ? 'marginTop' : 'marginBottom',\n notStuckTo = stickToTop ? 'bottom' : 'top',\n topOrBottom = isTop ? 'top' : 'bottom';\n\n css[mrgn] = 0;\n\n css['bottom'] = 'auto';\n if(isTop) {\n css['top'] = 0;\n } else {\n css['top'] = anchorPt;\n }\n\n this.isStuck = false;\n this.$element.removeClass(`is-stuck is-at-${stickTo}`)\n .addClass(`is-anchored is-at-${topOrBottom}`)\n .css(css)\n /**\n * Fires when the $element has become anchored.\n * Namespaced to `top` or `bottom`, e.g. `sticky.zf.unstuckfrom:bottom`\n * @event Sticky#unstuckfrom\n */\n .trigger(`sticky.zf.unstuckfrom:${topOrBottom}`);\n }\n\n /**\n * Sets the $element and $container sizes for plugin.\n * Calls `_setBreakPoints`.\n * @param {Function} cb - optional callback function to fire on completion of `_setBreakPoints`.\n * @private\n */\n _setSizes(cb) {\n this.canStick = MediaQuery.is(this.options.stickyOn);\n if (!this.canStick) {\n if (cb && typeof cb === 'function') { cb(); }\n }\n\n var _this = this,\n newElemWidth = this.$container[0].getBoundingClientRect().width,\n comp = window.getComputedStyle(this.$container[0]),\n pdngl = parseInt(comp['padding-left'], 10),\n pdngr = parseInt(comp['padding-right'], 10);\n\n if (this.$anchor && this.$anchor.length) {\n this.anchorHeight = this.$anchor[0].getBoundingClientRect().height;\n } else {\n this._parsePoints();\n }\n\n this.$element.css({\n 'max-width': `${newElemWidth - pdngl - pdngr}px`\n });\n\n // Recalculate the height only if it is \"dynamic\"\n if (this.options.dynamicHeight || !this.containerHeight) {\n // Get the sticked element height and apply it to the container to \"hold the place\"\n var newContainerHeight = this.$element[0].getBoundingClientRect().height || this.containerHeight;\n newContainerHeight = this.$element.css(\"display\") == \"none\" ? 0 : newContainerHeight;\n this.$container.css('height', newContainerHeight);\n this.containerHeight = newContainerHeight;\n }\n this.elemHeight = this.containerHeight;\n\n if (!this.isStuck) {\n if (this.$element.hasClass('is-at-bottom')) {\n var anchorPt = (this.points ? this.points[1] - this.$container.offset().top : this.anchorHeight) - this.elemHeight;\n this.$element.css('top', anchorPt);\n }\n }\n\n this._setBreakPoints(this.containerHeight, function() {\n if (cb && typeof cb === 'function') { cb(); }\n });\n }\n\n /**\n * Sets the upper and lower breakpoints for the element to become sticky/unsticky.\n * @param {Number} elemHeight - px value for sticky.$element height, calculated by `_setSizes`.\n * @param {Function} cb - optional callback function to be called on completion.\n * @private\n */\n _setBreakPoints(elemHeight, cb) {\n if (!this.canStick) {\n if (cb && typeof cb === 'function') { cb(); }\n else { return false; }\n }\n var mTop = emCalc(this.options.marginTop),\n mBtm = emCalc(this.options.marginBottom),\n topPoint = this.points ? this.points[0] : this.$anchor.offset().top,\n bottomPoint = this.points ? this.points[1] : topPoint + this.anchorHeight,\n // topPoint = this.$anchor.offset().top || this.points[0],\n // bottomPoint = topPoint + this.anchorHeight || this.points[1],\n winHeight = window.innerHeight;\n\n if (this.options.stickTo === 'top') {\n topPoint -= mTop;\n bottomPoint -= (elemHeight + mTop);\n } else if (this.options.stickTo === 'bottom') {\n topPoint -= (winHeight - (elemHeight + mBtm));\n bottomPoint -= (winHeight - mBtm);\n } else {\n //this would be the stickTo: both option... tricky\n }\n\n this.topPoint = topPoint;\n this.bottomPoint = bottomPoint;\n\n if (cb && typeof cb === 'function') { cb(); }\n }\n\n /**\n * Destroys the current sticky element.\n * Resets the element to the top position first.\n * Removes event listeners, JS-added css properties and classes, and unwraps the $element if the JS added the $container.\n * @function\n */\n _destroy() {\n this._removeSticky(true);\n\n this.$element.removeClass(`${this.options.stickyClass} is-anchored is-at-top`)\n .css({\n height: '',\n top: '',\n bottom: '',\n 'max-width': ''\n })\n .off('resizeme.zf.trigger')\n .off('mutateme.zf.trigger');\n if (this.$anchor && this.$anchor.length) {\n this.$anchor.off('change.zf.sticky');\n }\n if (this.scrollListener) $(window).off(this.scrollListener)\n if (this.onLoadListener) $(window).off(this.onLoadListener)\n\n if (this.wasWrapped) {\n this.$element.unwrap();\n } else {\n this.$container.removeClass(this.options.containerClass)\n .css({\n height: ''\n });\n }\n }\n}\n\nSticky.defaults = {\n /**\n * Customizable container template. Add your own classes for styling and sizing.\n * @option\n * @type {string}\n * @default '&lt;div data-sticky-container&gt;&lt;/div&gt;'\n */\n container: '<div data-sticky-container></div>',\n /**\n * Location in the view the element sticks to. Can be `'top'` or `'bottom'`.\n * @option\n * @type {string}\n * @default 'top'\n */\n stickTo: 'top',\n /**\n * If anchored to a single element, the id of that element.\n * @option\n * @type {string}\n * @default ''\n */\n anchor: '',\n /**\n * If using more than one element as anchor points, the id of the top anchor.\n * @option\n * @type {string}\n * @default ''\n */\n topAnchor: '',\n /**\n * If using more than one element as anchor points, the id of the bottom anchor.\n * @option\n * @type {string}\n * @default ''\n */\n btmAnchor: '',\n /**\n * Margin, in `em`'s to apply to the top of the element when it becomes sticky.\n * @option\n * @type {number}\n * @default 1\n */\n marginTop: 1,\n /**\n * Margin, in `em`'s to apply to the bottom of the element when it becomes sticky.\n * @option\n * @type {number}\n * @default 1\n */\n marginBottom: 1,\n /**\n * Breakpoint string that is the minimum screen size an element should become sticky.\n * @option\n * @type {string}\n * @default 'medium'\n */\n stickyOn: 'medium',\n /**\n * Class applied to sticky element, and removed on destruction. Foundation defaults to `sticky`.\n * @option\n * @type {string}\n * @default 'sticky'\n */\n stickyClass: 'sticky',\n /**\n * Class applied to sticky container. Foundation defaults to `sticky-container`.\n * @option\n * @type {string}\n * @default 'sticky-container'\n */\n containerClass: 'sticky-container',\n /**\n * If true (by default), keep the sticky container the same height as the element. Otherwise, the container height is set once and does not change.\n * @option\n * @type {boolean}\n * @default true\n */\n dynamicHeight: true,\n /**\n * Number of scroll events between the plugin's recalculating sticky points. Setting it to `0` will cause it to recalc every scroll event, setting it to `-1` will prevent recalc on scroll.\n * @option\n * @type {number}\n * @default -1\n */\n checkEvery: -1\n};\n\n/**\n * Helper function to calculate em values\n * @param Number {em} - number of em's to calculate into pixels\n */\nfunction emCalc(em) {\n return parseInt(window.getComputedStyle(document.body, null).fontSize, 10) * em;\n}\n\nexport {Sticky};\n","'use strict';\n\nimport $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n for (var i=0; i < prefixes.length; i++) {\n if (`${prefixes[i]}MutationObserver` in window) {\n return window[`${prefixes[i]}MutationObserver`];\n }\n }\n return false;\n}());\n\nconst triggers = (el, type) => {\n el.data(type).split(' ').forEach(id => {\n $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n });\n};\n\nvar Triggers = {\n Listeners: {\n Basic: {},\n Global: {}\n },\n Initializers: {}\n}\n\nTriggers.Listeners.Basic = {\n openListener: function() {\n triggers($(this), 'open');\n },\n closeListener: function() {\n let id = $(this).data('close');\n if (id) {\n triggers($(this), 'close');\n }\n else {\n $(this).trigger('close.zf.trigger');\n }\n },\n toggleListener: function() {\n let id = $(this).data('toggle');\n if (id) {\n triggers($(this), 'toggle');\n } else {\n $(this).trigger('toggle.zf.trigger');\n }\n },\n closeableListener: function(e) {\n let animation = $(this).data('closable');\n\n // Only close the first closable element. See https://git.io/zf-7833\n e.stopPropagation();\n\n if(animation !== ''){\n Motion.animateOut($(this), animation, function() {\n $(this).trigger('closed.zf');\n });\n }else{\n $(this).fadeOut().trigger('closed.zf');\n }\n },\n toggleFocusListener: function() {\n let id = $(this).data('toggle-focus');\n $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global = {\n resizeListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('resizeme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a resize event\n $nodes.attr('data-events', \"resize\");\n },\n scrollListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('scrollme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a scroll event\n $nodes.attr('data-events', \"scroll\");\n },\n closeMeListener: function(e, pluginId){\n let plugin = e.namespace.split('.')[0];\n let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n plugins.each(function(){\n let _this = $(this);\n _this.triggerHandler('close.zf.trigger', [_this]);\n });\n }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n var yetiBoxes = $('[data-yeti-box]'),\n plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n if(pluginName){\n if(typeof pluginName === 'string'){\n plugNames.push(pluginName);\n }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n plugNames = plugNames.concat(pluginName);\n }else{\n console.error('Plugin names must be strings');\n }\n }\n if(yetiBoxes.length){\n let listeners = plugNames.map((name) => {\n return `closeme.zf.${name}`;\n }).join(' ');\n\n $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n let timer, args = Array.prototype.slice.call(arguments, 3);\n $(window).off(trigger).on(trigger, function(e) {\n if (timer) { clearTimeout(timer); }\n timer = setTimeout(function(){\n listener.apply(null, args);\n }, debounce || 10);//default time to emit scroll event\n });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n let $nodes = $('[data-resize]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n let $nodes = $('[data-scroll]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n if(!MutationObserver){ return false; }\n let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n //element callback\n var listeningElementsMutation = function (mutationRecordsList) {\n var $target = $(mutationRecordsList[0].target);\n\n //trigger the event handler for the element depending on type\n switch (mutationRecordsList[0].type) {\n case \"attributes\":\n if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n }\n if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('resizeme.zf.trigger', [$target]);\n }\n if (mutationRecordsList[0].attributeName === \"style\") {\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n }\n break;\n\n case \"childList\":\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n break;\n\n default:\n return false;\n //nothing\n }\n };\n\n if ($nodes.length) {\n //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n for (var i = 0; i <= $nodes.length - 1; i++) {\n var elementObserver = new MutationObserver(listeningElementsMutation);\n elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n }\n }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n let $document = $(document);\n\n Triggers.Initializers.addOpenListener($document);\n Triggers.Initializers.addCloseListener($document);\n Triggers.Initializers.addToggleListener($document);\n Triggers.Initializers.addCloseableListener($document);\n Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n let $document = $(document);\n Triggers.Initializers.addMutationEventsListener($document);\n Triggers.Initializers.addResizeListener();\n Triggers.Initializers.addScrollListener();\n Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function ($, Foundation) {\n onLoad($(window), function () {\n if ($.triggersInitialized !== true) {\n Triggers.Initializers.addSimpleListeners();\n Triggers.Initializers.addGlobalListeners();\n $.triggersInitialized = true;\n }\n });\n\n if(Foundation) {\n Foundation.Triggers = Triggers;\n // Legacy included to be backwards compatible for now.\n Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n }\n}\n\nexport {Triggers};\n"]}