foundation-rails 6.4.3.0 → 6.5.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (268) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -1
  3. data/.ruby-version +1 -1
  4. data/.travis.yml +14 -3
  5. data/Appraisals +19 -0
  6. data/Gemfile +5 -2
  7. data/Gemfile.lock +193 -0
  8. data/README.md +53 -24
  9. data/Rakefile +11 -12
  10. data/bower.json +3 -3
  11. data/foundation-rails.gemspec +5 -5
  12. data/gemfiles/rails_4.1.gemfile +10 -0
  13. data/gemfiles/rails_4.1.gemfile.lock +178 -0
  14. data/gemfiles/rails_4.2.gemfile +10 -0
  15. data/gemfiles/rails_4.2.gemfile.lock +178 -0
  16. data/gemfiles/rails_5.0.gemfile +10 -0
  17. data/gemfiles/rails_5.0.gemfile.lock +193 -0
  18. data/gemfiles/rails_5.1.gemfile +10 -0
  19. data/gemfiles/rails_5.1.gemfile.lock +193 -0
  20. data/gemfiles/rails_5.2.gemfile +10 -0
  21. data/gemfiles/rails_5.2.gemfile.lock +193 -0
  22. data/lib/foundation/rails/version.rb +1 -1
  23. data/lib/generators/foundation/install_generator.rb +1 -1
  24. data/lib/generators/foundation/templates/_settings.scss +5 -5
  25. data/spec/support/helpers.rb +1 -1
  26. data/vendor/assets/js/foundation.cjs.js +11795 -0
  27. data/vendor/assets/js/foundation.cjs.js.map +1 -0
  28. data/vendor/assets/js/foundation.es6.js +10361 -0
  29. data/vendor/assets/js/foundation.es6.js.map +1 -0
  30. data/vendor/assets/js/foundation.esm.js +11756 -0
  31. data/vendor/assets/js/foundation.esm.js.map +1 -0
  32. data/vendor/assets/js/foundation.js +13214 -31
  33. data/vendor/assets/js/foundation.js.map +1 -0
  34. data/vendor/assets/js/foundation.min.js +2 -0
  35. data/vendor/assets/js/foundation.min.js.map +1 -0
  36. data/vendor/assets/js/foundation.sprockets.js +38 -0
  37. data/vendor/assets/js/{foundation.abide.js → plugins/foundation.abide.js} +317 -138
  38. data/vendor/assets/js/plugins/foundation.abide.js.map +1 -0
  39. data/vendor/assets/js/plugins/foundation.abide.min.js +2 -0
  40. data/vendor/assets/js/plugins/foundation.abide.min.js.map +1 -0
  41. data/vendor/assets/js/plugins/foundation.accordion.js +676 -0
  42. data/vendor/assets/js/plugins/foundation.accordion.js.map +1 -0
  43. data/vendor/assets/js/plugins/foundation.accordion.min.js +2 -0
  44. data/vendor/assets/js/plugins/foundation.accordion.min.js.map +1 -0
  45. data/vendor/assets/js/plugins/foundation.accordionMenu.js +637 -0
  46. data/vendor/assets/js/plugins/foundation.accordionMenu.js.map +1 -0
  47. data/vendor/assets/js/plugins/foundation.accordionMenu.min.js +2 -0
  48. data/vendor/assets/js/plugins/foundation.accordionMenu.min.js.map +1 -0
  49. data/vendor/assets/js/plugins/foundation.core.js +1072 -0
  50. data/vendor/assets/js/plugins/foundation.core.js.map +1 -0
  51. data/vendor/assets/js/plugins/foundation.core.min.js +2 -0
  52. data/vendor/assets/js/plugins/foundation.core.min.js.map +1 -0
  53. data/vendor/assets/js/plugins/foundation.drilldown.js +982 -0
  54. data/vendor/assets/js/plugins/foundation.drilldown.js.map +1 -0
  55. data/vendor/assets/js/plugins/foundation.drilldown.min.js +2 -0
  56. data/vendor/assets/js/plugins/foundation.drilldown.min.js.map +1 -0
  57. data/vendor/assets/js/plugins/foundation.dropdown.js +1324 -0
  58. data/vendor/assets/js/plugins/foundation.dropdown.js.map +1 -0
  59. data/vendor/assets/js/plugins/foundation.dropdown.min.js +2 -0
  60. data/vendor/assets/js/plugins/foundation.dropdown.min.js.map +1 -0
  61. data/vendor/assets/js/plugins/foundation.dropdownMenu.js +792 -0
  62. data/vendor/assets/js/plugins/foundation.dropdownMenu.js.map +1 -0
  63. data/vendor/assets/js/plugins/foundation.dropdownMenu.min.js +2 -0
  64. data/vendor/assets/js/plugins/foundation.dropdownMenu.min.js.map +1 -0
  65. data/vendor/assets/js/plugins/foundation.equalizer.js +638 -0
  66. data/vendor/assets/js/plugins/foundation.equalizer.js.map +1 -0
  67. data/vendor/assets/js/plugins/foundation.equalizer.min.js +2 -0
  68. data/vendor/assets/js/plugins/foundation.equalizer.min.js.map +1 -0
  69. data/vendor/assets/js/plugins/foundation.interchange.js +471 -0
  70. data/vendor/assets/js/plugins/foundation.interchange.js.map +1 -0
  71. data/vendor/assets/js/plugins/foundation.interchange.min.js +2 -0
  72. data/vendor/assets/js/plugins/foundation.interchange.min.js.map +1 -0
  73. data/vendor/assets/js/plugins/foundation.magellan.js +551 -0
  74. data/vendor/assets/js/plugins/foundation.magellan.js.map +1 -0
  75. data/vendor/assets/js/plugins/foundation.magellan.min.js +2 -0
  76. data/vendor/assets/js/plugins/foundation.magellan.min.js.map +1 -0
  77. data/vendor/assets/js/plugins/foundation.offcanvas.js +1164 -0
  78. data/vendor/assets/js/plugins/foundation.offcanvas.js.map +1 -0
  79. data/vendor/assets/js/plugins/foundation.offcanvas.min.js +2 -0
  80. data/vendor/assets/js/plugins/foundation.offcanvas.min.js.map +1 -0
  81. data/vendor/assets/js/plugins/foundation.orbit.js +883 -0
  82. data/vendor/assets/js/plugins/foundation.orbit.js.map +1 -0
  83. data/vendor/assets/js/plugins/foundation.orbit.min.js +2 -0
  84. data/vendor/assets/js/plugins/foundation.orbit.min.js.map +1 -0
  85. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.js +546 -0
  86. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.js.map +1 -0
  87. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.min.js +2 -0
  88. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.min.js.map +1 -0
  89. data/vendor/assets/js/plugins/foundation.responsiveMenu.js +437 -0
  90. data/vendor/assets/js/plugins/foundation.responsiveMenu.js.map +1 -0
  91. data/vendor/assets/js/plugins/foundation.responsiveMenu.min.js +2 -0
  92. data/vendor/assets/js/plugins/foundation.responsiveMenu.min.js.map +1 -0
  93. data/vendor/assets/js/plugins/foundation.responsiveToggle.js +405 -0
  94. data/vendor/assets/js/plugins/foundation.responsiveToggle.js.map +1 -0
  95. data/vendor/assets/js/plugins/foundation.responsiveToggle.min.js +2 -0
  96. data/vendor/assets/js/plugins/foundation.responsiveToggle.min.js.map +1 -0
  97. data/vendor/assets/js/plugins/foundation.reveal.js +1278 -0
  98. data/vendor/assets/js/plugins/foundation.reveal.js.map +1 -0
  99. data/vendor/assets/js/plugins/foundation.reveal.min.js +2 -0
  100. data/vendor/assets/js/plugins/foundation.reveal.min.js.map +1 -0
  101. data/vendor/assets/js/{foundation.slider.js → plugins/foundation.slider.js} +405 -271
  102. data/vendor/assets/js/plugins/foundation.slider.js.map +1 -0
  103. data/vendor/assets/js/plugins/foundation.slider.min.js +2 -0
  104. data/vendor/assets/js/plugins/foundation.slider.min.js.map +1 -0
  105. data/vendor/assets/js/plugins/foundation.smoothScroll.js +382 -0
  106. data/vendor/assets/js/plugins/foundation.smoothScroll.js.map +1 -0
  107. data/vendor/assets/js/plugins/foundation.smoothScroll.min.js +2 -0
  108. data/vendor/assets/js/plugins/foundation.smoothScroll.min.js.map +1 -0
  109. data/vendor/assets/js/{foundation.sticky.js → plugins/foundation.sticky.js} +325 -203
  110. data/vendor/assets/js/plugins/foundation.sticky.js.map +1 -0
  111. data/vendor/assets/js/plugins/foundation.sticky.min.js +2 -0
  112. data/vendor/assets/js/plugins/foundation.sticky.min.js.map +1 -0
  113. data/vendor/assets/js/plugins/foundation.tabs.js +813 -0
  114. data/vendor/assets/js/plugins/foundation.tabs.js.map +1 -0
  115. data/vendor/assets/js/plugins/foundation.tabs.min.js +2 -0
  116. data/vendor/assets/js/plugins/foundation.tabs.min.js.map +1 -0
  117. data/vendor/assets/js/plugins/foundation.toggler.js +713 -0
  118. data/vendor/assets/js/plugins/foundation.toggler.js.map +1 -0
  119. data/vendor/assets/js/plugins/foundation.toggler.min.js +2 -0
  120. data/vendor/assets/js/plugins/foundation.toggler.min.js.map +1 -0
  121. data/vendor/assets/js/plugins/foundation.tooltip.js +1346 -0
  122. data/vendor/assets/js/plugins/foundation.tooltip.js.map +1 -0
  123. data/vendor/assets/js/plugins/foundation.tooltip.min.js +2 -0
  124. data/vendor/assets/js/plugins/foundation.tooltip.min.js.map +1 -0
  125. data/vendor/assets/js/{foundation.util.box.js → plugins/foundation.util.box.js} +136 -54
  126. data/vendor/assets/js/plugins/foundation.util.box.js.map +1 -0
  127. data/vendor/assets/js/plugins/foundation.util.box.min.js +2 -0
  128. data/vendor/assets/js/plugins/foundation.util.box.min.js.map +1 -0
  129. data/vendor/assets/js/plugins/foundation.util.imageLoader.js +218 -0
  130. data/vendor/assets/js/plugins/foundation.util.imageLoader.js.map +1 -0
  131. data/vendor/assets/js/plugins/foundation.util.imageLoader.min.js +2 -0
  132. data/vendor/assets/js/plugins/foundation.util.imageLoader.min.js.map +1 -0
  133. data/vendor/assets/js/plugins/foundation.util.keyboard.js +351 -0
  134. data/vendor/assets/js/plugins/foundation.util.keyboard.js.map +1 -0
  135. data/vendor/assets/js/plugins/foundation.util.keyboard.min.js +2 -0
  136. data/vendor/assets/js/plugins/foundation.util.keyboard.min.js.map +1 -0
  137. data/vendor/assets/js/plugins/foundation.util.mediaQuery.js +405 -0
  138. data/vendor/assets/js/plugins/foundation.util.mediaQuery.js.map +1 -0
  139. data/vendor/assets/js/plugins/foundation.util.mediaQuery.min.js +2 -0
  140. data/vendor/assets/js/plugins/foundation.util.mediaQuery.min.js.map +1 -0
  141. data/vendor/assets/js/plugins/foundation.util.motion.js +282 -0
  142. data/vendor/assets/js/plugins/foundation.util.motion.js.map +1 -0
  143. data/vendor/assets/js/plugins/foundation.util.motion.min.js +2 -0
  144. data/vendor/assets/js/plugins/foundation.util.motion.min.js.map +1 -0
  145. data/vendor/assets/js/plugins/foundation.util.nest.js +240 -0
  146. data/vendor/assets/js/plugins/foundation.util.nest.js.map +1 -0
  147. data/vendor/assets/js/plugins/foundation.util.nest.min.js +2 -0
  148. data/vendor/assets/js/plugins/foundation.util.nest.min.js.map +1 -0
  149. data/vendor/assets/js/plugins/foundation.util.timer.js +226 -0
  150. data/vendor/assets/js/plugins/foundation.util.timer.js.map +1 -0
  151. data/vendor/assets/js/plugins/foundation.util.timer.min.js +2 -0
  152. data/vendor/assets/js/plugins/foundation.util.timer.min.js.map +1 -0
  153. data/vendor/assets/js/plugins/foundation.util.touch.js +365 -0
  154. data/vendor/assets/js/plugins/foundation.util.touch.js.map +1 -0
  155. data/vendor/assets/js/plugins/foundation.util.touch.min.js +2 -0
  156. data/vendor/assets/js/plugins/foundation.util.touch.min.js.map +1 -0
  157. data/vendor/assets/js/plugins/foundation.util.triggers.js +480 -0
  158. data/vendor/assets/js/plugins/foundation.util.triggers.js.map +1 -0
  159. data/vendor/assets/js/plugins/foundation.util.triggers.min.js +2 -0
  160. data/vendor/assets/js/plugins/foundation.util.triggers.min.js.map +1 -0
  161. data/vendor/assets/scss/_global.scss +10 -15
  162. data/vendor/assets/scss/components/_accordion-menu.scss +6 -3
  163. data/vendor/assets/scss/components/_accordion.scss +1 -0
  164. data/vendor/assets/scss/components/_breadcrumbs.scss +8 -6
  165. data/vendor/assets/scss/components/_button-group.scss +27 -8
  166. data/vendor/assets/scss/components/_button.scss +36 -8
  167. data/vendor/assets/scss/components/_card.scss +2 -2
  168. data/vendor/assets/scss/components/_drilldown.scss +5 -6
  169. data/vendor/assets/scss/components/_dropdown-menu.scss +15 -10
  170. data/vendor/assets/scss/components/_dropdown.scss +7 -4
  171. data/vendor/assets/scss/components/_flex.scss +6 -4
  172. data/vendor/assets/scss/components/_media-object.scss +33 -33
  173. data/vendor/assets/scss/components/_menu.scss +0 -4
  174. data/vendor/assets/scss/components/_off-canvas.scss +4 -4
  175. data/vendor/assets/scss/components/_orbit.scss +1 -0
  176. data/vendor/assets/scss/components/_responsive-embed.scss +0 -13
  177. data/vendor/assets/scss/components/_reveal.scss +19 -14
  178. data/vendor/assets/scss/components/_table.scss +3 -6
  179. data/vendor/assets/scss/components/_tabs.scss +1 -4
  180. data/vendor/assets/scss/components/_thumbnail.scss +1 -1
  181. data/vendor/assets/scss/components/_visibility.scss +5 -2
  182. data/vendor/assets/scss/forms/_error.scss +1 -0
  183. data/vendor/assets/scss/forms/_input-group.scss +10 -10
  184. data/vendor/assets/scss/forms/_meter.scss +5 -5
  185. data/vendor/assets/scss/forms/_progress.scss +6 -6
  186. data/vendor/assets/scss/forms/_range.scss +5 -5
  187. data/vendor/assets/scss/forms/_text.scss +7 -7
  188. data/vendor/assets/scss/foundation.scss +74 -57
  189. data/vendor/assets/scss/grid/_column.scss +2 -6
  190. data/vendor/assets/scss/grid/_flex-grid.scss +1 -0
  191. data/vendor/assets/scss/grid/_gutter.scss +0 -15
  192. data/vendor/assets/scss/grid/_position.scss +28 -4
  193. data/vendor/assets/scss/motion-ui/_settings.scss +1 -0
  194. data/vendor/assets/scss/motion-ui/effects/_fade.scss +1 -4
  195. data/vendor/assets/scss/motion-ui/effects/_hinge.scss +4 -3
  196. data/vendor/assets/scss/motion-ui/effects/_shake.scss +1 -1
  197. data/vendor/assets/scss/motion-ui/effects/_slide.scss +4 -3
  198. data/vendor/assets/scss/motion-ui/effects/_spin.scss +4 -3
  199. data/vendor/assets/scss/motion-ui/effects/_wiggle.scss +1 -1
  200. data/vendor/assets/scss/motion-ui/effects/_zoom.scss +2 -2
  201. data/vendor/assets/scss/motion-ui/motion-ui.scss +2 -0
  202. data/vendor/assets/scss/motion-ui/transitions/_fade.scss +6 -4
  203. data/vendor/assets/scss/motion-ui/transitions/_hinge.scss +3 -2
  204. data/vendor/assets/scss/motion-ui/transitions/_slide.scss +3 -2
  205. data/vendor/assets/scss/motion-ui/transitions/_spin.scss +2 -1
  206. data/vendor/assets/scss/motion-ui/transitions/_zoom.scss +6 -4
  207. data/vendor/assets/scss/motion-ui/util/_animation.scss +1 -1
  208. data/vendor/assets/scss/motion-ui/util/_args.scss +2 -2
  209. data/vendor/assets/scss/motion-ui/util/_function.scss +94 -0
  210. data/vendor/assets/scss/motion-ui/util/_keyframe.scss +5 -5
  211. data/vendor/assets/scss/motion-ui/util/_series.scss +20 -17
  212. data/vendor/assets/scss/motion-ui/util/_string.scss +36 -0
  213. data/vendor/assets/scss/prototype/_relation.scss +1 -1
  214. data/vendor/assets/scss/prototype/_rounded.scss +3 -0
  215. data/vendor/assets/scss/prototype/_spacing.scss +94 -121
  216. data/vendor/assets/scss/settings/_settings.scss +5 -5
  217. data/vendor/assets/scss/typography/_base.scss +2 -2
  218. data/vendor/assets/scss/typography/_helpers.scss +1 -1
  219. data/vendor/assets/scss/typography/_print.scss +4 -0
  220. data/vendor/assets/scss/util/_breakpoint.scss +22 -10
  221. data/vendor/assets/scss/util/_color.scss +11 -1
  222. data/vendor/assets/scss/util/_direction.scss +1 -1
  223. data/vendor/assets/scss/util/_flex.scss +12 -7
  224. data/vendor/assets/scss/util/_mixins.scss +7 -3
  225. data/vendor/assets/scss/util/_unit.scss +3 -3
  226. data/vendor/assets/scss/vendor/normalize.scss +281 -0
  227. data/vendor/assets/scss/xy-grid/_cell.scss +33 -17
  228. data/vendor/assets/scss/xy-grid/_classes.scss +31 -11
  229. data/vendor/assets/scss/xy-grid/_collapse.scss +2 -1
  230. data/vendor/assets/scss/xy-grid/_frame.scss +2 -1
  231. data/vendor/assets/scss/xy-grid/_grid.scss +1 -0
  232. data/vendor/assets/scss/xy-grid/_gutters.scss +1 -1
  233. data/vendor/assets/scss/xy-grid/_layout.scss +2 -1
  234. data/vendor/assets/scss/xy-grid/_position.scss +5 -1
  235. metadata +172 -80
  236. data/vendor/assets/_vendor/normalize-scss/sass/_normalize.scss +0 -3
  237. data/vendor/assets/_vendor/normalize-scss/sass/normalize/_import-now.scss +0 -11
  238. data/vendor/assets/_vendor/normalize-scss/sass/normalize/_normalize-mixin.scss +0 -676
  239. data/vendor/assets/_vendor/normalize-scss/sass/normalize/_variables.scss +0 -36
  240. data/vendor/assets/_vendor/normalize-scss/sass/normalize/_vertical-rhythm.scss +0 -61
  241. data/vendor/assets/js/foundation.accordion.js +0 -511
  242. data/vendor/assets/js/foundation.accordionMenu.js +0 -527
  243. data/vendor/assets/js/foundation.core.js +0 -860
  244. data/vendor/assets/js/foundation.drilldown.js +0 -759
  245. data/vendor/assets/js/foundation.dropdown.js +0 -1151
  246. data/vendor/assets/js/foundation.dropdownMenu.js +0 -677
  247. data/vendor/assets/js/foundation.equalizer.js +0 -542
  248. data/vendor/assets/js/foundation.interchange.js +0 -399
  249. data/vendor/assets/js/foundation.magellan.js +0 -449
  250. data/vendor/assets/js/foundation.offcanvas.js +0 -1054
  251. data/vendor/assets/js/foundation.orbit.js +0 -767
  252. data/vendor/assets/js/foundation.responsiveAccordionTabs.js +0 -440
  253. data/vendor/assets/js/foundation.responsiveMenu.js +0 -362
  254. data/vendor/assets/js/foundation.responsiveToggle.js +0 -336
  255. data/vendor/assets/js/foundation.reveal.js +0 -1065
  256. data/vendor/assets/js/foundation.smoothScroll.js +0 -303
  257. data/vendor/assets/js/foundation.tabs.js +0 -678
  258. data/vendor/assets/js/foundation.toggler.js +0 -601
  259. data/vendor/assets/js/foundation.tooltip.js +0 -1194
  260. data/vendor/assets/js/foundation.util.imageLoader.js +0 -163
  261. data/vendor/assets/js/foundation.util.keyboard.js +0 -298
  262. data/vendor/assets/js/foundation.util.mediaQuery.js +0 -354
  263. data/vendor/assets/js/foundation.util.motion.js +0 -231
  264. data/vendor/assets/js/foundation.util.nest.js +0 -181
  265. data/vendor/assets/js/foundation.util.timer.js +0 -170
  266. data/vendor/assets/js/foundation.util.touch.js +0 -275
  267. data/vendor/assets/js/foundation.util.triggers.js +0 -398
  268. data/vendor/assets/scss/prototype/_typescale.scss +0 -20
@@ -1,1151 +0,0 @@
1
- /******/ (function(modules) { // webpackBootstrap
2
- /******/ // The module cache
3
- /******/ var installedModules = {};
4
- /******/
5
- /******/ // The require function
6
- /******/ function __webpack_require__(moduleId) {
7
- /******/
8
- /******/ // Check if module is in cache
9
- /******/ if(installedModules[moduleId]) {
10
- /******/ return installedModules[moduleId].exports;
11
- /******/ }
12
- /******/ // Create a new module (and put it into the cache)
13
- /******/ var module = installedModules[moduleId] = {
14
- /******/ i: moduleId,
15
- /******/ l: false,
16
- /******/ exports: {}
17
- /******/ };
18
- /******/
19
- /******/ // Execute the module function
20
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
- /******/
22
- /******/ // Flag the module as loaded
23
- /******/ module.l = true;
24
- /******/
25
- /******/ // Return the exports of the module
26
- /******/ return module.exports;
27
- /******/ }
28
- /******/
29
- /******/
30
- /******/ // expose the modules object (__webpack_modules__)
31
- /******/ __webpack_require__.m = modules;
32
- /******/
33
- /******/ // expose the module cache
34
- /******/ __webpack_require__.c = installedModules;
35
- /******/
36
- /******/ // identity function for calling harmony imports with the correct context
37
- /******/ __webpack_require__.i = function(value) { return value; };
38
- /******/
39
- /******/ // define getter function for harmony exports
40
- /******/ __webpack_require__.d = function(exports, name, getter) {
41
- /******/ if(!__webpack_require__.o(exports, name)) {
42
- /******/ Object.defineProperty(exports, name, {
43
- /******/ configurable: false,
44
- /******/ enumerable: true,
45
- /******/ get: getter
46
- /******/ });
47
- /******/ }
48
- /******/ };
49
- /******/
50
- /******/ // getDefaultExport function for compatibility with non-harmony modules
51
- /******/ __webpack_require__.n = function(module) {
52
- /******/ var getter = module && module.__esModule ?
53
- /******/ function getDefault() { return module['default']; } :
54
- /******/ function getModuleExports() { return module; };
55
- /******/ __webpack_require__.d(getter, 'a', getter);
56
- /******/ return getter;
57
- /******/ };
58
- /******/
59
- /******/ // Object.prototype.hasOwnProperty.call
60
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
61
- /******/
62
- /******/ // __webpack_public_path__
63
- /******/ __webpack_require__.p = "";
64
- /******/
65
- /******/ // Load entry module and return exports
66
- /******/ return __webpack_require__(__webpack_require__.s = 83);
67
- /******/ })
68
- /************************************************************************/
69
- /******/ ({
70
-
71
- /***/ 0:
72
- /***/ (function(module, exports) {
73
-
74
- module.exports = jQuery;
75
-
76
- /***/ }),
77
-
78
- /***/ 1:
79
- /***/ (function(module, exports) {
80
-
81
- module.exports = {Foundation: window.Foundation};
82
-
83
- /***/ }),
84
-
85
- /***/ 11:
86
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
87
-
88
- "use strict";
89
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Positionable; });
90
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__foundation_util_box__ = __webpack_require__(8);
91
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__foundation_util_box___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__foundation_util_box__);
92
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation_plugin__ = __webpack_require__(2);
93
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation_plugin___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__foundation_plugin__);
94
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation_util_core__ = __webpack_require__(3);
95
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation_util_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__foundation_util_core__);
96
-
97
-
98
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
99
-
100
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
101
-
102
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
103
-
104
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
105
-
106
-
107
-
108
-
109
-
110
- var POSITIONS = ['left', 'right', 'top', 'bottom'];
111
- var VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];
112
- var HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];
113
-
114
- var ALIGNMENTS = {
115
- 'left': VERTICAL_ALIGNMENTS,
116
- 'right': VERTICAL_ALIGNMENTS,
117
- 'top': HORIZONTAL_ALIGNMENTS,
118
- 'bottom': HORIZONTAL_ALIGNMENTS
119
- };
120
-
121
- function nextItem(item, array) {
122
- var currentIdx = array.indexOf(item);
123
- if (currentIdx === array.length - 1) {
124
- return array[0];
125
- } else {
126
- return array[currentIdx + 1];
127
- }
128
- }
129
-
130
- var Positionable = function (_Plugin) {
131
- _inherits(Positionable, _Plugin);
132
-
133
- function Positionable() {
134
- _classCallCheck(this, Positionable);
135
-
136
- return _possibleConstructorReturn(this, (Positionable.__proto__ || Object.getPrototypeOf(Positionable)).apply(this, arguments));
137
- }
138
-
139
- _createClass(Positionable, [{
140
- key: '_init',
141
-
142
- /**
143
- * Abstract class encapsulating the tether-like explicit positioning logic
144
- * including repositioning based on overlap.
145
- * Expects classes to define defaults for vOffset, hOffset, position,
146
- * alignment, allowOverlap, and allowBottomOverlap. They can do this by
147
- * extending the defaults, or (for now recommended due to the way docs are
148
- * generated) by explicitly declaring them.
149
- *
150
- **/
151
-
152
- value: function _init() {
153
- this.triedPositions = {};
154
- this.position = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;
155
- this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;
156
- }
157
- }, {
158
- key: '_getDefaultPosition',
159
- value: function _getDefaultPosition() {
160
- return 'bottom';
161
- }
162
- }, {
163
- key: '_getDefaultAlignment',
164
- value: function _getDefaultAlignment() {
165
- switch (this.position) {
166
- case 'bottom':
167
- case 'top':
168
- return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__foundation_util_core__["rtl"])() ? 'right' : 'left';
169
- case 'left':
170
- case 'right':
171
- return 'bottom';
172
- }
173
- }
174
-
175
- /**
176
- * Adjusts the positionable possible positions by iterating through alignments
177
- * and positions.
178
- * @function
179
- * @private
180
- */
181
-
182
- }, {
183
- key: '_reposition',
184
- value: function _reposition() {
185
- if (this._alignmentsExhausted(this.position)) {
186
- this.position = nextItem(this.position, POSITIONS);
187
- this.alignment = ALIGNMENTS[this.position][0];
188
- } else {
189
- this._realign();
190
- }
191
- }
192
-
193
- /**
194
- * Adjusts the dropdown pane possible positions by iterating through alignments
195
- * on the current position.
196
- * @function
197
- * @private
198
- */
199
-
200
- }, {
201
- key: '_realign',
202
- value: function _realign() {
203
- this._addTriedPosition(this.position, this.alignment);
204
- this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position]);
205
- }
206
- }, {
207
- key: '_addTriedPosition',
208
- value: function _addTriedPosition(position, alignment) {
209
- this.triedPositions[position] = this.triedPositions[position] || [];
210
- this.triedPositions[position].push(alignment);
211
- }
212
- }, {
213
- key: '_positionsExhausted',
214
- value: function _positionsExhausted() {
215
- var isExhausted = true;
216
- for (var i = 0; i < POSITIONS.length; i++) {
217
- isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);
218
- }
219
- return isExhausted;
220
- }
221
- }, {
222
- key: '_alignmentsExhausted',
223
- value: function _alignmentsExhausted(position) {
224
- return this.triedPositions[position] && this.triedPositions[position].length == ALIGNMENTS[position].length;
225
- }
226
-
227
- // When we're trying to center, we don't want to apply offset that's going to
228
- // take us just off center, so wrap around to return 0 for the appropriate
229
- // offset in those alignments. TODO: Figure out if we want to make this
230
- // configurable behavior... it feels more intuitive, especially for tooltips, but
231
- // it's possible someone might actually want to start from center and then nudge
232
- // slightly off.
233
-
234
- }, {
235
- key: '_getVOffset',
236
- value: function _getVOffset() {
237
- return this.options.vOffset;
238
- }
239
- }, {
240
- key: '_getHOffset',
241
- value: function _getHOffset() {
242
- return this.options.hOffset;
243
- }
244
- }, {
245
- key: '_setPosition',
246
- value: function _setPosition($anchor, $element, $parent) {
247
- if ($anchor.attr('aria-expanded') === 'false') {
248
- return false;
249
- }
250
- var $eleDims = __WEBPACK_IMPORTED_MODULE_0__foundation_util_box__["Box"].GetDimensions($element),
251
- $anchorDims = __WEBPACK_IMPORTED_MODULE_0__foundation_util_box__["Box"].GetDimensions($anchor);
252
-
253
- $element.offset(__WEBPACK_IMPORTED_MODULE_0__foundation_util_box__["Box"].GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));
254
-
255
- if (!this.options.allowOverlap) {
256
- var overlaps = {};
257
- var minOverlap = 100000000;
258
- // default coordinates to how we start, in case we can't figure out better
259
- var minCoordinates = { position: this.position, alignment: this.alignment };
260
- while (!this._positionsExhausted()) {
261
- var overlap = __WEBPACK_IMPORTED_MODULE_0__foundation_util_box__["Box"].OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);
262
- if (overlap === 0) {
263
- return;
264
- }
265
-
266
- if (overlap < minOverlap) {
267
- minOverlap = overlap;
268
- minCoordinates = { position: this.position, alignment: this.alignment };
269
- }
270
-
271
- this._reposition();
272
-
273
- $element.offset(__WEBPACK_IMPORTED_MODULE_0__foundation_util_box__["Box"].GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));
274
- }
275
- // If we get through the entire loop, there was no non-overlapping
276
- // position available. Pick the version with least overlap.
277
- this.position = minCoordinates.position;
278
- this.alignment = minCoordinates.alignment;
279
- $element.offset(__WEBPACK_IMPORTED_MODULE_0__foundation_util_box__["Box"].GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));
280
- }
281
- }
282
- }]);
283
-
284
- return Positionable;
285
- }(__WEBPACK_IMPORTED_MODULE_1__foundation_plugin__["Plugin"]);
286
-
287
- Positionable.defaults = {
288
- /**
289
- * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.
290
- * @option
291
- * @type {string}
292
- * @default 'auto'
293
- */
294
- position: 'auto',
295
- /**
296
- * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.
297
- * @option
298
- * @type {string}
299
- * @default 'auto'
300
- */
301
- alignment: 'auto',
302
- /**
303
- * Allow overlap of container/window. If false, dropdown positionable first
304
- * try to position as defined by data-position and data-alignment, but
305
- * reposition if it would cause an overflow.
306
- * @option
307
- * @type {boolean}
308
- * @default false
309
- */
310
- allowOverlap: false,
311
- /**
312
- * Allow overlap of only the bottom of the container. This is the most common
313
- * behavior for dropdowns, allowing the dropdown to extend the bottom of the
314
- * screen but not otherwise influence or break out of the container.
315
- * @option
316
- * @type {boolean}
317
- * @default true
318
- */
319
- allowBottomOverlap: true,
320
- /**
321
- * Number of pixels the positionable should be separated vertically from anchor
322
- * @option
323
- * @type {number}
324
- * @default 0
325
- */
326
- vOffset: 0,
327
- /**
328
- * Number of pixels the positionable should be separated horizontally from anchor
329
- * @option
330
- * @type {number}
331
- * @default 0
332
- */
333
- hOffset: 0
334
- };
335
-
336
-
337
-
338
- /***/ }),
339
-
340
- /***/ 17:
341
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
342
-
343
- "use strict";
344
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
345
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__foundation_core__ = __webpack_require__(1);
346
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__foundation_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__foundation_core__);
347
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation_dropdown__ = __webpack_require__(47);
348
-
349
-
350
-
351
- __WEBPACK_IMPORTED_MODULE_0__foundation_core__["Foundation"].plugin(__WEBPACK_IMPORTED_MODULE_1__foundation_dropdown__["a" /* Dropdown */], 'Dropdown');
352
-
353
- /***/ }),
354
-
355
- /***/ 2:
356
- /***/ (function(module, exports) {
357
-
358
- module.exports = {Plugin: window.Foundation.Plugin};
359
-
360
- /***/ }),
361
-
362
- /***/ 3:
363
- /***/ (function(module, exports) {
364
-
365
- module.exports = {rtl: window.Foundation.rtl, GetYoDigits: window.Foundation.GetYoDigits, transitionend: window.Foundation.transitionend};
366
-
367
- /***/ }),
368
-
369
- /***/ 4:
370
- /***/ (function(module, exports) {
371
-
372
- module.exports = {Motion: window.Foundation.Motion, Move: window.Foundation.Move};
373
-
374
- /***/ }),
375
-
376
- /***/ 47:
377
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
378
-
379
- "use strict";
380
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Dropdown; });
381
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jquery__ = __webpack_require__(0);
382
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jquery___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_jquery__);
383
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation_util_keyboard__ = __webpack_require__(5);
384
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation_util_keyboard___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__foundation_util_keyboard__);
385
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation_util_core__ = __webpack_require__(3);
386
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation_util_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__foundation_util_core__);
387
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__foundation_positionable__ = __webpack_require__(11);
388
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__foundation_util_triggers__ = __webpack_require__(7);
389
-
390
-
391
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
392
-
393
- var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
394
-
395
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
396
-
397
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
398
-
399
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
400
-
401
-
402
-
403
-
404
-
405
-
406
-
407
-
408
- /**
409
- * Dropdown module.
410
- * @module foundation.dropdown
411
- * @requires foundation.util.keyboard
412
- * @requires foundation.util.box
413
- * @requires foundation.util.triggers
414
- */
415
-
416
- var Dropdown = function (_Positionable) {
417
- _inherits(Dropdown, _Positionable);
418
-
419
- function Dropdown() {
420
- _classCallCheck(this, Dropdown);
421
-
422
- return _possibleConstructorReturn(this, (Dropdown.__proto__ || Object.getPrototypeOf(Dropdown)).apply(this, arguments));
423
- }
424
-
425
- _createClass(Dropdown, [{
426
- key: '_setup',
427
-
428
- /**
429
- * Creates a new instance of a dropdown.
430
- * @class
431
- * @name Dropdown
432
- * @param {jQuery} element - jQuery object to make into a dropdown.
433
- * Object should be of the dropdown panel, rather than its anchor.
434
- * @param {Object} options - Overrides to the default plugin settings.
435
- */
436
- value: function _setup(element, options) {
437
- this.$element = element;
438
- this.options = __WEBPACK_IMPORTED_MODULE_0_jquery___default.a.extend({}, Dropdown.defaults, this.$element.data(), options);
439
- this.className = 'Dropdown'; // ie9 back compat
440
-
441
- // Triggers init is idempotent, just need to make sure it is initialized
442
- __WEBPACK_IMPORTED_MODULE_4__foundation_util_triggers__["a" /* Triggers */].init(__WEBPACK_IMPORTED_MODULE_0_jquery___default.a);
443
-
444
- this._init();
445
-
446
- __WEBPACK_IMPORTED_MODULE_1__foundation_util_keyboard__["Keyboard"].register('Dropdown', {
447
- 'ENTER': 'open',
448
- 'SPACE': 'open',
449
- 'ESCAPE': 'close'
450
- });
451
- }
452
-
453
- /**
454
- * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.
455
- * @function
456
- * @private
457
- */
458
-
459
- }, {
460
- key: '_init',
461
- value: function _init() {
462
- var $id = this.$element.attr('id');
463
-
464
- this.$anchors = __WEBPACK_IMPORTED_MODULE_0_jquery___default()('[data-toggle="' + $id + '"]').length ? __WEBPACK_IMPORTED_MODULE_0_jquery___default()('[data-toggle="' + $id + '"]') : __WEBPACK_IMPORTED_MODULE_0_jquery___default()('[data-open="' + $id + '"]');
465
- this.$anchors.attr({
466
- 'aria-controls': $id,
467
- 'data-is-focus': false,
468
- 'data-yeti-box': $id,
469
- 'aria-haspopup': true,
470
- 'aria-expanded': false
471
- });
472
-
473
- this._setCurrentAnchor(this.$anchors.first());
474
-
475
- if (this.options.parentClass) {
476
- this.$parent = this.$element.parents('.' + this.options.parentClass);
477
- } else {
478
- this.$parent = null;
479
- }
480
-
481
- this.$element.attr({
482
- 'aria-hidden': 'true',
483
- 'data-yeti-box': $id,
484
- 'data-resize': $id,
485
- 'aria-labelledby': this.$currentAnchor.id || __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__foundation_util_core__["GetYoDigits"])(6, 'dd-anchor')
486
- });
487
- _get(Dropdown.prototype.__proto__ || Object.getPrototypeOf(Dropdown.prototype), '_init', this).call(this);
488
- this._events();
489
- }
490
- }, {
491
- key: '_getDefaultPosition',
492
- value: function _getDefaultPosition() {
493
- // handle legacy classnames
494
- var position = this.$element[0].className.match(/(top|left|right|bottom)/g);
495
- if (position) {
496
- return position[0];
497
- } else {
498
- return 'bottom';
499
- }
500
- }
501
- }, {
502
- key: '_getDefaultAlignment',
503
- value: function _getDefaultAlignment() {
504
- // handle legacy float approach
505
- var horizontalPosition = /float-(\S+)/.exec(this.$currentAnchor.className);
506
- if (horizontalPosition) {
507
- return horizontalPosition[1];
508
- }
509
-
510
- return _get(Dropdown.prototype.__proto__ || Object.getPrototypeOf(Dropdown.prototype), '_getDefaultAlignment', this).call(this);
511
- }
512
-
513
- /**
514
- * Sets the position and orientation of the dropdown pane, checks for collisions if allow-overlap is not true.
515
- * Recursively calls itself if a collision is detected, with a new position class.
516
- * @function
517
- * @private
518
- */
519
-
520
- }, {
521
- key: '_setPosition',
522
- value: function _setPosition() {
523
- _get(Dropdown.prototype.__proto__ || Object.getPrototypeOf(Dropdown.prototype), '_setPosition', this).call(this, this.$currentAnchor, this.$element, this.$parent);
524
- }
525
-
526
- /**
527
- * Make it a current anchor.
528
- * Current anchor as the reference for the position of Dropdown panes.
529
- * @param {HTML} el - DOM element of the anchor.
530
- * @function
531
- * @private
532
- */
533
-
534
- }, {
535
- key: '_setCurrentAnchor',
536
- value: function _setCurrentAnchor(el) {
537
- this.$currentAnchor = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(el);
538
- }
539
-
540
- /**
541
- * Adds event listeners to the element utilizing the triggers utility library.
542
- * @function
543
- * @private
544
- */
545
-
546
- }, {
547
- key: '_events',
548
- value: function _events() {
549
- var _this = this;
550
- this.$element.on({
551
- 'open.zf.trigger': this.open.bind(this),
552
- 'close.zf.trigger': this.close.bind(this),
553
- 'toggle.zf.trigger': this.toggle.bind(this),
554
- 'resizeme.zf.trigger': this._setPosition.bind(this)
555
- });
556
-
557
- this.$anchors.off('click.zf.trigger').on('click.zf.trigger', function () {
558
- _this._setCurrentAnchor(this);
559
- });
560
-
561
- if (this.options.hover) {
562
- this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown').on('mouseenter.zf.dropdown', function () {
563
- _this._setCurrentAnchor(this);
564
-
565
- var bodyData = __WEBPACK_IMPORTED_MODULE_0_jquery___default()('body').data();
566
- if (typeof bodyData.whatinput === 'undefined' || bodyData.whatinput === 'mouse') {
567
- clearTimeout(_this.timeout);
568
- _this.timeout = setTimeout(function () {
569
- _this.open();
570
- _this.$anchors.data('hover', true);
571
- }, _this.options.hoverDelay);
572
- }
573
- }).on('mouseleave.zf.dropdown', function () {
574
- clearTimeout(_this.timeout);
575
- _this.timeout = setTimeout(function () {
576
- _this.close();
577
- _this.$anchors.data('hover', false);
578
- }, _this.options.hoverDelay);
579
- });
580
- if (this.options.hoverPane) {
581
- this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown').on('mouseenter.zf.dropdown', function () {
582
- clearTimeout(_this.timeout);
583
- }).on('mouseleave.zf.dropdown', function () {
584
- clearTimeout(_this.timeout);
585
- _this.timeout = setTimeout(function () {
586
- _this.close();
587
- _this.$anchors.data('hover', false);
588
- }, _this.options.hoverDelay);
589
- });
590
- }
591
- }
592
- this.$anchors.add(this.$element).on('keydown.zf.dropdown', function (e) {
593
-
594
- var $target = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this),
595
- visibleFocusableElements = __WEBPACK_IMPORTED_MODULE_1__foundation_util_keyboard__["Keyboard"].findFocusable(_this.$element);
596
-
597
- __WEBPACK_IMPORTED_MODULE_1__foundation_util_keyboard__["Keyboard"].handleKey(e, 'Dropdown', {
598
- open: function () {
599
- if ($target.is(_this.$anchors)) {
600
- _this.open();
601
- _this.$element.attr('tabindex', -1).focus();
602
- e.preventDefault();
603
- }
604
- },
605
- close: function () {
606
- _this.close();
607
- _this.$anchors.focus();
608
- }
609
- });
610
- });
611
- }
612
-
613
- /**
614
- * Adds an event handler to the body to close any dropdowns on a click.
615
- * @function
616
- * @private
617
- */
618
-
619
- }, {
620
- key: '_addBodyHandler',
621
- value: function _addBodyHandler() {
622
- var $body = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(document.body).not(this.$element),
623
- _this = this;
624
- $body.off('click.zf.dropdown').on('click.zf.dropdown', function (e) {
625
- if (_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {
626
- return;
627
- }
628
- if (_this.$element.find(e.target).length) {
629
- return;
630
- }
631
- _this.close();
632
- $body.off('click.zf.dropdown');
633
- });
634
- }
635
-
636
- /**
637
- * Opens the dropdown pane, and fires a bubbling event to close other dropdowns.
638
- * @function
639
- * @fires Dropdown#closeme
640
- * @fires Dropdown#show
641
- */
642
-
643
- }, {
644
- key: 'open',
645
- value: function open() {
646
- // var _this = this;
647
- /**
648
- * Fires to close other open dropdowns, typically when dropdown is opening
649
- * @event Dropdown#closeme
650
- */
651
- this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));
652
- this.$anchors.addClass('hover').attr({ 'aria-expanded': true });
653
- // this.$element/*.show()*/;
654
-
655
- this.$element.addClass('is-opening');
656
- this._setPosition();
657
- this.$element.removeClass('is-opening').addClass('is-open').attr({ 'aria-hidden': false });
658
-
659
- if (this.options.autoFocus) {
660
- var $focusable = __WEBPACK_IMPORTED_MODULE_1__foundation_util_keyboard__["Keyboard"].findFocusable(this.$element);
661
- if ($focusable.length) {
662
- $focusable.eq(0).focus();
663
- }
664
- }
665
-
666
- if (this.options.closeOnClick) {
667
- this._addBodyHandler();
668
- }
669
-
670
- if (this.options.trapFocus) {
671
- __WEBPACK_IMPORTED_MODULE_1__foundation_util_keyboard__["Keyboard"].trapFocus(this.$element);
672
- }
673
-
674
- /**
675
- * Fires once the dropdown is visible.
676
- * @event Dropdown#show
677
- */
678
- this.$element.trigger('show.zf.dropdown', [this.$element]);
679
- }
680
-
681
- /**
682
- * Closes the open dropdown pane.
683
- * @function
684
- * @fires Dropdown#hide
685
- */
686
-
687
- }, {
688
- key: 'close',
689
- value: function close() {
690
- if (!this.$element.hasClass('is-open')) {
691
- return false;
692
- }
693
- this.$element.removeClass('is-open').attr({ 'aria-hidden': true });
694
-
695
- this.$anchors.removeClass('hover').attr('aria-expanded', false);
696
-
697
- /**
698
- * Fires once the dropdown is no longer visible.
699
- * @event Dropdown#hide
700
- */
701
- this.$element.trigger('hide.zf.dropdown', [this.$element]);
702
-
703
- if (this.options.trapFocus) {
704
- __WEBPACK_IMPORTED_MODULE_1__foundation_util_keyboard__["Keyboard"].releaseFocus(this.$element);
705
- }
706
- }
707
-
708
- /**
709
- * Toggles the dropdown pane's visibility.
710
- * @function
711
- */
712
-
713
- }, {
714
- key: 'toggle',
715
- value: function toggle() {
716
- if (this.$element.hasClass('is-open')) {
717
- if (this.$anchors.data('hover')) return;
718
- this.close();
719
- } else {
720
- this.open();
721
- }
722
- }
723
-
724
- /**
725
- * Destroys the dropdown.
726
- * @function
727
- */
728
-
729
- }, {
730
- key: '_destroy',
731
- value: function _destroy() {
732
- this.$element.off('.zf.trigger').hide();
733
- this.$anchors.off('.zf.dropdown');
734
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(document.body).off('click.zf.dropdown');
735
- }
736
- }]);
737
-
738
- return Dropdown;
739
- }(__WEBPACK_IMPORTED_MODULE_3__foundation_positionable__["a" /* Positionable */]);
740
-
741
- Dropdown.defaults = {
742
- /**
743
- * Class that designates bounding container of Dropdown (default: window)
744
- * @option
745
- * @type {?string}
746
- * @default null
747
- */
748
- parentClass: null,
749
- /**
750
- * Amount of time to delay opening a submenu on hover event.
751
- * @option
752
- * @type {number}
753
- * @default 250
754
- */
755
- hoverDelay: 250,
756
- /**
757
- * Allow submenus to open on hover events
758
- * @option
759
- * @type {boolean}
760
- * @default false
761
- */
762
- hover: false,
763
- /**
764
- * Don't close dropdown when hovering over dropdown pane
765
- * @option
766
- * @type {boolean}
767
- * @default false
768
- */
769
- hoverPane: false,
770
- /**
771
- * Number of pixels between the dropdown pane and the triggering element on open.
772
- * @option
773
- * @type {number}
774
- * @default 0
775
- */
776
- vOffset: 0,
777
- /**
778
- * Number of pixels between the dropdown pane and the triggering element on open.
779
- * @option
780
- * @type {number}
781
- * @default 0
782
- */
783
- hOffset: 0,
784
- /**
785
- * DEPRECATED: Class applied to adjust open position.
786
- * @option
787
- * @type {string}
788
- * @default ''
789
- */
790
- positionClass: '',
791
-
792
- /**
793
- * Position of dropdown. Can be left, right, bottom, top, or auto.
794
- * @option
795
- * @type {string}
796
- * @default 'auto'
797
- */
798
- position: 'auto',
799
- /**
800
- * Alignment of dropdown relative to anchor. Can be left, right, bottom, top, center, or auto.
801
- * @option
802
- * @type {string}
803
- * @default 'auto'
804
- */
805
- alignment: 'auto',
806
- /**
807
- * Allow overlap of container/window. If false, dropdown will first try to position as defined by data-position and data-alignment, but reposition if it would cause an overflow.
808
- * @option
809
- * @type {boolean}
810
- * @default false
811
- */
812
- allowOverlap: false,
813
- /**
814
- * Allow overlap of only the bottom of the container. This is the most common
815
- * behavior for dropdowns, allowing the dropdown to extend the bottom of the
816
- * screen but not otherwise influence or break out of the container.
817
- * @option
818
- * @type {boolean}
819
- * @default true
820
- */
821
- allowBottomOverlap: true,
822
- /**
823
- * Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.
824
- * @option
825
- * @type {boolean}
826
- * @default false
827
- */
828
- trapFocus: false,
829
- /**
830
- * Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.
831
- * @option
832
- * @type {boolean}
833
- * @default false
834
- */
835
- autoFocus: false,
836
- /**
837
- * Allows a click on the body to close the dropdown.
838
- * @option
839
- * @type {boolean}
840
- * @default false
841
- */
842
- closeOnClick: false
843
- };
844
-
845
-
846
-
847
- /***/ }),
848
-
849
- /***/ 5:
850
- /***/ (function(module, exports) {
851
-
852
- module.exports = {Keyboard: window.Foundation.Keyboard};
853
-
854
- /***/ }),
855
-
856
- /***/ 7:
857
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
858
-
859
- "use strict";
860
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Triggers; });
861
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jquery__ = __webpack_require__(0);
862
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jquery___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_jquery__);
863
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation_util_motion__ = __webpack_require__(4);
864
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation_util_motion___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__foundation_util_motion__);
865
-
866
-
867
-
868
-
869
-
870
- var MutationObserver = function () {
871
- var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];
872
- for (var i = 0; i < prefixes.length; i++) {
873
- if (prefixes[i] + 'MutationObserver' in window) {
874
- return window[prefixes[i] + 'MutationObserver'];
875
- }
876
- }
877
- return false;
878
- }();
879
-
880
- var triggers = function (el, type) {
881
- el.data(type).split(' ').forEach(function (id) {
882
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()('#' + id)[type === 'close' ? 'trigger' : 'triggerHandler'](type + '.zf.trigger', [el]);
883
- });
884
- };
885
-
886
- var Triggers = {
887
- Listeners: {
888
- Basic: {},
889
- Global: {}
890
- },
891
- Initializers: {}
892
- };
893
-
894
- Triggers.Listeners.Basic = {
895
- openListener: function () {
896
- triggers(__WEBPACK_IMPORTED_MODULE_0_jquery___default()(this), 'open');
897
- },
898
- closeListener: function () {
899
- var id = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).data('close');
900
- if (id) {
901
- triggers(__WEBPACK_IMPORTED_MODULE_0_jquery___default()(this), 'close');
902
- } else {
903
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).trigger('close.zf.trigger');
904
- }
905
- },
906
- toggleListener: function () {
907
- var id = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).data('toggle');
908
- if (id) {
909
- triggers(__WEBPACK_IMPORTED_MODULE_0_jquery___default()(this), 'toggle');
910
- } else {
911
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).trigger('toggle.zf.trigger');
912
- }
913
- },
914
- closeableListener: function (e) {
915
- e.stopPropagation();
916
- var animation = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).data('closable');
917
-
918
- if (animation !== '') {
919
- __WEBPACK_IMPORTED_MODULE_1__foundation_util_motion__["Motion"].animateOut(__WEBPACK_IMPORTED_MODULE_0_jquery___default()(this), animation, function () {
920
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).trigger('closed.zf');
921
- });
922
- } else {
923
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).fadeOut().trigger('closed.zf');
924
- }
925
- },
926
- toggleFocusListener: function () {
927
- var id = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).data('toggle-focus');
928
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()('#' + id).triggerHandler('toggle.zf.trigger', [__WEBPACK_IMPORTED_MODULE_0_jquery___default()(this)]);
929
- }
930
- };
931
-
932
- // Elements with [data-open] will reveal a plugin that supports it when clicked.
933
- Triggers.Initializers.addOpenListener = function ($elem) {
934
- $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);
935
- $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);
936
- };
937
-
938
- // Elements with [data-close] will close a plugin that supports it when clicked.
939
- // If used without a value on [data-close], the event will bubble, allowing it to close a parent component.
940
- Triggers.Initializers.addCloseListener = function ($elem) {
941
- $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);
942
- $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);
943
- };
944
-
945
- // Elements with [data-toggle] will toggle a plugin that supports it when clicked.
946
- Triggers.Initializers.addToggleListener = function ($elem) {
947
- $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);
948
- $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);
949
- };
950
-
951
- // Elements with [data-closable] will respond to close.zf.trigger events.
952
- Triggers.Initializers.addCloseableListener = function ($elem) {
953
- $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);
954
- $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);
955
- };
956
-
957
- // Elements with [data-toggle-focus] will respond to coming in and out of focus
958
- Triggers.Initializers.addToggleFocusListener = function ($elem) {
959
- $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);
960
- $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);
961
- };
962
-
963
- // More Global/complex listeners and triggers
964
- Triggers.Listeners.Global = {
965
- resizeListener: function ($nodes) {
966
- if (!MutationObserver) {
967
- //fallback for IE 9
968
- $nodes.each(function () {
969
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).triggerHandler('resizeme.zf.trigger');
970
- });
971
- }
972
- //trigger all listening elements and signal a resize event
973
- $nodes.attr('data-events', "resize");
974
- },
975
- scrollListener: function ($nodes) {
976
- if (!MutationObserver) {
977
- //fallback for IE 9
978
- $nodes.each(function () {
979
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).triggerHandler('scrollme.zf.trigger');
980
- });
981
- }
982
- //trigger all listening elements and signal a scroll event
983
- $nodes.attr('data-events', "scroll");
984
- },
985
- closeMeListener: function (e, pluginId) {
986
- var plugin = e.namespace.split('.')[0];
987
- var plugins = __WEBPACK_IMPORTED_MODULE_0_jquery___default()('[data-' + plugin + ']').not('[data-yeti-box="' + pluginId + '"]');
988
-
989
- plugins.each(function () {
990
- var _this = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this);
991
- _this.triggerHandler('close.zf.trigger', [_this]);
992
- });
993
- }
994
-
995
- // Global, parses whole document.
996
- };Triggers.Initializers.addClosemeListener = function (pluginName) {
997
- var yetiBoxes = __WEBPACK_IMPORTED_MODULE_0_jquery___default()('[data-yeti-box]'),
998
- plugNames = ['dropdown', 'tooltip', 'reveal'];
999
-
1000
- if (pluginName) {
1001
- if (typeof pluginName === 'string') {
1002
- plugNames.push(pluginName);
1003
- } else if (typeof pluginName === 'object' && typeof pluginName[0] === 'string') {
1004
- plugNames.concat(pluginName);
1005
- } else {
1006
- console.error('Plugin names must be strings');
1007
- }
1008
- }
1009
- if (yetiBoxes.length) {
1010
- var listeners = plugNames.map(function (name) {
1011
- return 'closeme.zf.' + name;
1012
- }).join(' ');
1013
-
1014
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);
1015
- }
1016
- };
1017
-
1018
- function debounceGlobalListener(debounce, trigger, listener) {
1019
- var timer = void 0,
1020
- args = Array.prototype.slice.call(arguments, 3);
1021
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(window).off(trigger).on(trigger, function (e) {
1022
- if (timer) {
1023
- clearTimeout(timer);
1024
- }
1025
- timer = setTimeout(function () {
1026
- listener.apply(null, args);
1027
- }, debounce || 10); //default time to emit scroll event
1028
- });
1029
- }
1030
-
1031
- Triggers.Initializers.addResizeListener = function (debounce) {
1032
- var $nodes = __WEBPACK_IMPORTED_MODULE_0_jquery___default()('[data-resize]');
1033
- if ($nodes.length) {
1034
- debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);
1035
- }
1036
- };
1037
-
1038
- Triggers.Initializers.addScrollListener = function (debounce) {
1039
- var $nodes = __WEBPACK_IMPORTED_MODULE_0_jquery___default()('[data-scroll]');
1040
- if ($nodes.length) {
1041
- debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);
1042
- }
1043
- };
1044
-
1045
- Triggers.Initializers.addMutationEventsListener = function ($elem) {
1046
- if (!MutationObserver) {
1047
- return false;
1048
- }
1049
- var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');
1050
-
1051
- //element callback
1052
- var listeningElementsMutation = function (mutationRecordsList) {
1053
- var $target = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(mutationRecordsList[0].target);
1054
-
1055
- //trigger the event handler for the element depending on type
1056
- switch (mutationRecordsList[0].type) {
1057
- case "attributes":
1058
- if ($target.attr("data-events") === "scroll" && mutationRecordsList[0].attributeName === "data-events") {
1059
- $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);
1060
- }
1061
- if ($target.attr("data-events") === "resize" && mutationRecordsList[0].attributeName === "data-events") {
1062
- $target.triggerHandler('resizeme.zf.trigger', [$target]);
1063
- }
1064
- if (mutationRecordsList[0].attributeName === "style") {
1065
- $target.closest("[data-mutate]").attr("data-events", "mutate");
1066
- $target.closest("[data-mutate]").triggerHandler('mutateme.zf.trigger', [$target.closest("[data-mutate]")]);
1067
- }
1068
- break;
1069
-
1070
- case "childList":
1071
- $target.closest("[data-mutate]").attr("data-events", "mutate");
1072
- $target.closest("[data-mutate]").triggerHandler('mutateme.zf.trigger', [$target.closest("[data-mutate]")]);
1073
- break;
1074
-
1075
- default:
1076
- return false;
1077
- //nothing
1078
- }
1079
- };
1080
-
1081
- if ($nodes.length) {
1082
- //for each element that needs to listen for resizing, scrolling, or mutation add a single observer
1083
- for (var i = 0; i <= $nodes.length - 1; i++) {
1084
- var elementObserver = new MutationObserver(listeningElementsMutation);
1085
- elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: ["data-events", "style"] });
1086
- }
1087
- }
1088
- };
1089
-
1090
- Triggers.Initializers.addSimpleListeners = function () {
1091
- var $document = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(document);
1092
-
1093
- Triggers.Initializers.addOpenListener($document);
1094
- Triggers.Initializers.addCloseListener($document);
1095
- Triggers.Initializers.addToggleListener($document);
1096
- Triggers.Initializers.addCloseableListener($document);
1097
- Triggers.Initializers.addToggleFocusListener($document);
1098
- };
1099
-
1100
- Triggers.Initializers.addGlobalListeners = function () {
1101
- var $document = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(document);
1102
- Triggers.Initializers.addMutationEventsListener($document);
1103
- Triggers.Initializers.addResizeListener();
1104
- Triggers.Initializers.addScrollListener();
1105
- Triggers.Initializers.addClosemeListener();
1106
- };
1107
-
1108
- Triggers.init = function ($, Foundation) {
1109
- if (typeof $.triggersInitialized === 'undefined') {
1110
- var $document = $(document);
1111
-
1112
- if (document.readyState === "complete") {
1113
- Triggers.Initializers.addSimpleListeners();
1114
- Triggers.Initializers.addGlobalListeners();
1115
- } else {
1116
- $(window).on('load', function () {
1117
- Triggers.Initializers.addSimpleListeners();
1118
- Triggers.Initializers.addGlobalListeners();
1119
- });
1120
- }
1121
-
1122
- $.triggersInitialized = true;
1123
- }
1124
-
1125
- if (Foundation) {
1126
- Foundation.Triggers = Triggers;
1127
- // Legacy included to be backwards compatible for now.
1128
- Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;
1129
- }
1130
- };
1131
-
1132
-
1133
-
1134
- /***/ }),
1135
-
1136
- /***/ 8:
1137
- /***/ (function(module, exports) {
1138
-
1139
- module.exports = {Box: window.Foundation.Box};
1140
-
1141
- /***/ }),
1142
-
1143
- /***/ 83:
1144
- /***/ (function(module, exports, __webpack_require__) {
1145
-
1146
- module.exports = __webpack_require__(17);
1147
-
1148
-
1149
- /***/ })
1150
-
1151
- /******/ });