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,1054 +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 = 88);
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
- /***/ 2:
86
- /***/ (function(module, exports) {
87
-
88
- module.exports = {Plugin: window.Foundation.Plugin};
89
-
90
- /***/ }),
91
-
92
- /***/ 22:
93
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
94
-
95
- "use strict";
96
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
97
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__foundation_core__ = __webpack_require__(1);
98
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__foundation_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__foundation_core__);
99
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation_offcanvas__ = __webpack_require__(52);
100
-
101
-
102
-
103
- __WEBPACK_IMPORTED_MODULE_0__foundation_core__["Foundation"].plugin(__WEBPACK_IMPORTED_MODULE_1__foundation_offcanvas__["a" /* OffCanvas */], 'OffCanvas');
104
-
105
- /***/ }),
106
-
107
- /***/ 3:
108
- /***/ (function(module, exports) {
109
-
110
- module.exports = {rtl: window.Foundation.rtl, GetYoDigits: window.Foundation.GetYoDigits, transitionend: window.Foundation.transitionend};
111
-
112
- /***/ }),
113
-
114
- /***/ 4:
115
- /***/ (function(module, exports) {
116
-
117
- module.exports = {Motion: window.Foundation.Motion, Move: window.Foundation.Move};
118
-
119
- /***/ }),
120
-
121
- /***/ 5:
122
- /***/ (function(module, exports) {
123
-
124
- module.exports = {Keyboard: window.Foundation.Keyboard};
125
-
126
- /***/ }),
127
-
128
- /***/ 52:
129
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
130
-
131
- "use strict";
132
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return OffCanvas; });
133
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jquery__ = __webpack_require__(0);
134
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jquery___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_jquery__);
135
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation_util_keyboard__ = __webpack_require__(5);
136
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation_util_keyboard___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__foundation_util_keyboard__);
137
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation_util_mediaQuery__ = __webpack_require__(6);
138
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation_util_mediaQuery___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__foundation_util_mediaQuery__);
139
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__foundation_util_core__ = __webpack_require__(3);
140
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__foundation_util_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__foundation_util_core__);
141
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__foundation_plugin__ = __webpack_require__(2);
142
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__foundation_plugin___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__foundation_plugin__);
143
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__foundation_util_triggers__ = __webpack_require__(7);
144
-
145
-
146
- 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; }; }();
147
-
148
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
149
-
150
- 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; }
151
-
152
- 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; }
153
-
154
-
155
-
156
-
157
-
158
-
159
-
160
-
161
-
162
- /**
163
- * OffCanvas module.
164
- * @module foundation.offcanvas
165
- * @requires foundation.util.keyboard
166
- * @requires foundation.util.mediaQuery
167
- * @requires foundation.util.triggers
168
- */
169
-
170
- var OffCanvas = function (_Plugin) {
171
- _inherits(OffCanvas, _Plugin);
172
-
173
- function OffCanvas() {
174
- _classCallCheck(this, OffCanvas);
175
-
176
- return _possibleConstructorReturn(this, (OffCanvas.__proto__ || Object.getPrototypeOf(OffCanvas)).apply(this, arguments));
177
- }
178
-
179
- _createClass(OffCanvas, [{
180
- key: '_setup',
181
-
182
- /**
183
- * Creates a new instance of an off-canvas wrapper.
184
- * @class
185
- * @name OffCanvas
186
- * @fires OffCanvas#init
187
- * @param {Object} element - jQuery object to initialize.
188
- * @param {Object} options - Overrides to the default plugin settings.
189
- */
190
- value: function _setup(element, options) {
191
- var _this3 = this;
192
-
193
- this.className = 'OffCanvas'; // ie9 back compat
194
- this.$element = element;
195
- this.options = __WEBPACK_IMPORTED_MODULE_0_jquery___default.a.extend({}, OffCanvas.defaults, this.$element.data(), options);
196
- this.contentClasses = { base: [], reveal: [] };
197
- this.$lastTrigger = __WEBPACK_IMPORTED_MODULE_0_jquery___default()();
198
- this.$triggers = __WEBPACK_IMPORTED_MODULE_0_jquery___default()();
199
- this.position = 'left';
200
- this.$content = __WEBPACK_IMPORTED_MODULE_0_jquery___default()();
201
- this.nested = !!this.options.nested;
202
-
203
- // Defines the CSS transition/position classes of the off-canvas content container.
204
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(['push', 'overlap']).each(function (index, val) {
205
- _this3.contentClasses.base.push('has-transition-' + val);
206
- });
207
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(['left', 'right', 'top', 'bottom']).each(function (index, val) {
208
- _this3.contentClasses.base.push('has-position-' + val);
209
- _this3.contentClasses.reveal.push('has-reveal-' + val);
210
- });
211
-
212
- // Triggers init is idempotent, just need to make sure it is initialized
213
- __WEBPACK_IMPORTED_MODULE_5__foundation_util_triggers__["a" /* Triggers */].init(__WEBPACK_IMPORTED_MODULE_0_jquery___default.a);
214
- __WEBPACK_IMPORTED_MODULE_2__foundation_util_mediaQuery__["MediaQuery"]._init();
215
-
216
- this._init();
217
- this._events();
218
-
219
- __WEBPACK_IMPORTED_MODULE_1__foundation_util_keyboard__["Keyboard"].register('OffCanvas', {
220
- 'ESCAPE': 'close'
221
- });
222
- }
223
-
224
- /**
225
- * Initializes the off-canvas wrapper by adding the exit overlay (if needed).
226
- * @function
227
- * @private
228
- */
229
-
230
- }, {
231
- key: '_init',
232
- value: function _init() {
233
- var id = this.$element.attr('id');
234
-
235
- this.$element.attr('aria-hidden', 'true');
236
-
237
- // Find off-canvas content, either by ID (if specified), by siblings or by closest selector (fallback)
238
- if (this.options.contentId) {
239
- this.$content = __WEBPACK_IMPORTED_MODULE_0_jquery___default()('#' + this.options.contentId);
240
- } else if (this.$element.siblings('[data-off-canvas-content]').length) {
241
- this.$content = this.$element.siblings('[data-off-canvas-content]').first();
242
- } else {
243
- this.$content = this.$element.closest('[data-off-canvas-content]').first();
244
- }
245
-
246
- if (!this.options.contentId) {
247
- // Assume that the off-canvas element is nested if it isn't a sibling of the content
248
- this.nested = this.$element.siblings('[data-off-canvas-content]').length === 0;
249
- } else if (this.options.contentId && this.options.nested === null) {
250
- // Warning if using content ID without setting the nested option
251
- // Once the element is nested it is required to work properly in this case
252
- console.warn('Remember to use the nested option if using the content ID option!');
253
- }
254
-
255
- if (this.nested === true) {
256
- // Force transition overlap if nested
257
- this.options.transition = 'overlap';
258
- // Remove appropriate classes if already assigned in markup
259
- this.$element.removeClass('is-transition-push');
260
- }
261
-
262
- this.$element.addClass('is-transition-' + this.options.transition + ' is-closed');
263
-
264
- // Find triggers that affect this element and add aria-expanded to them
265
- this.$triggers = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(document).find('[data-open="' + id + '"], [data-close="' + id + '"], [data-toggle="' + id + '"]').attr('aria-expanded', 'false').attr('aria-controls', id);
266
-
267
- // Get position by checking for related CSS class
268
- this.position = this.$element.is('.position-left, .position-top, .position-right, .position-bottom') ? this.$element.attr('class').match(/position\-(left|top|right|bottom)/)[1] : this.position;
269
-
270
- // Add an overlay over the content if necessary
271
- if (this.options.contentOverlay === true) {
272
- var overlay = document.createElement('div');
273
- var overlayPosition = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$element).css("position") === 'fixed' ? 'is-overlay-fixed' : 'is-overlay-absolute';
274
- overlay.setAttribute('class', 'js-off-canvas-overlay ' + overlayPosition);
275
- this.$overlay = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(overlay);
276
- if (overlayPosition === 'is-overlay-fixed') {
277
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.$overlay).insertAfter(this.$element);
278
- } else {
279
- this.$content.append(this.$overlay);
280
- }
281
- }
282
-
283
- this.options.isRevealed = this.options.isRevealed || new RegExp(this.options.revealClass, 'g').test(this.$element[0].className);
284
-
285
- if (this.options.isRevealed === true) {
286
- this.options.revealOn = this.options.revealOn || this.$element[0].className.match(/(reveal-for-medium|reveal-for-large)/g)[0].split('-')[2];
287
- this._setMQChecker();
288
- }
289
-
290
- if (this.options.transitionTime) {
291
- this.$element.css('transition-duration', this.options.transitionTime);
292
- }
293
-
294
- // Initally remove all transition/position CSS classes from off-canvas content container.
295
- this._removeContentClasses();
296
- }
297
-
298
- /**
299
- * Adds event handlers to the off-canvas wrapper and the exit overlay.
300
- * @function
301
- * @private
302
- */
303
-
304
- }, {
305
- key: '_events',
306
- value: function _events() {
307
- this.$element.off('.zf.trigger .zf.offcanvas').on({
308
- 'open.zf.trigger': this.open.bind(this),
309
- 'close.zf.trigger': this.close.bind(this),
310
- 'toggle.zf.trigger': this.toggle.bind(this),
311
- 'keydown.zf.offcanvas': this._handleKeyboard.bind(this)
312
- });
313
-
314
- if (this.options.closeOnClick === true) {
315
- var $target = this.options.contentOverlay ? this.$overlay : this.$content;
316
- $target.on({ 'click.zf.offcanvas': this.close.bind(this) });
317
- }
318
- }
319
-
320
- /**
321
- * Applies event listener for elements that will reveal at certain breakpoints.
322
- * @private
323
- */
324
-
325
- }, {
326
- key: '_setMQChecker',
327
- value: function _setMQChecker() {
328
- var _this = this;
329
-
330
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(window).on('changed.zf.mediaquery', function () {
331
- if (__WEBPACK_IMPORTED_MODULE_2__foundation_util_mediaQuery__["MediaQuery"].atLeast(_this.options.revealOn)) {
332
- _this.reveal(true);
333
- } else {
334
- _this.reveal(false);
335
- }
336
- }).one('load.zf.offcanvas', function () {
337
- if (__WEBPACK_IMPORTED_MODULE_2__foundation_util_mediaQuery__["MediaQuery"].atLeast(_this.options.revealOn)) {
338
- _this.reveal(true);
339
- }
340
- });
341
- }
342
-
343
- /**
344
- * Removes the CSS transition/position classes of the off-canvas content container.
345
- * Removing the classes is important when another off-canvas gets opened that uses the same content container.
346
- * @param {Boolean} hasReveal - true if related off-canvas element is revealed.
347
- * @private
348
- */
349
-
350
- }, {
351
- key: '_removeContentClasses',
352
- value: function _removeContentClasses(hasReveal) {
353
- if (typeof hasReveal !== 'boolean') {
354
- this.$content.removeClass(this.contentClasses.base.join(' '));
355
- } else if (hasReveal === false) {
356
- this.$content.removeClass('has-reveal-' + this.position);
357
- }
358
- }
359
-
360
- /**
361
- * Adds the CSS transition/position classes of the off-canvas content container, based on the opening off-canvas element.
362
- * Beforehand any transition/position class gets removed.
363
- * @param {Boolean} hasReveal - true if related off-canvas element is revealed.
364
- * @private
365
- */
366
-
367
- }, {
368
- key: '_addContentClasses',
369
- value: function _addContentClasses(hasReveal) {
370
- this._removeContentClasses(hasReveal);
371
- if (typeof hasReveal !== 'boolean') {
372
- this.$content.addClass('has-transition-' + this.options.transition + ' has-position-' + this.position);
373
- } else if (hasReveal === true) {
374
- this.$content.addClass('has-reveal-' + this.position);
375
- }
376
- }
377
-
378
- /**
379
- * Handles the revealing/hiding the off-canvas at breakpoints, not the same as open.
380
- * @param {Boolean} isRevealed - true if element should be revealed.
381
- * @function
382
- */
383
-
384
- }, {
385
- key: 'reveal',
386
- value: function reveal(isRevealed) {
387
- if (isRevealed) {
388
- this.close();
389
- this.isRevealed = true;
390
- this.$element.attr('aria-hidden', 'false');
391
- this.$element.off('open.zf.trigger toggle.zf.trigger');
392
- this.$element.removeClass('is-closed');
393
- } else {
394
- this.isRevealed = false;
395
- this.$element.attr('aria-hidden', 'true');
396
- this.$element.off('open.zf.trigger toggle.zf.trigger').on({
397
- 'open.zf.trigger': this.open.bind(this),
398
- 'toggle.zf.trigger': this.toggle.bind(this)
399
- });
400
- this.$element.addClass('is-closed');
401
- }
402
- this._addContentClasses(isRevealed);
403
- }
404
-
405
- /**
406
- * Stops scrolling of the body when offcanvas is open on mobile Safari and other troublesome browsers.
407
- * @private
408
- */
409
-
410
- }, {
411
- key: '_stopScrolling',
412
- value: function _stopScrolling(event) {
413
- return false;
414
- }
415
-
416
- // Taken and adapted from http://stackoverflow.com/questions/16889447/prevent-full-page-scrolling-ios
417
- // Only really works for y, not sure how to extend to x or if we need to.
418
-
419
- }, {
420
- key: '_recordScrollable',
421
- value: function _recordScrollable(event) {
422
- var elem = this; // called from event handler context with this as elem
423
-
424
- // If the element is scrollable (content overflows), then...
425
- if (elem.scrollHeight !== elem.clientHeight) {
426
- // If we're at the top, scroll down one pixel to allow scrolling up
427
- if (elem.scrollTop === 0) {
428
- elem.scrollTop = 1;
429
- }
430
- // If we're at the bottom, scroll up one pixel to allow scrolling down
431
- if (elem.scrollTop === elem.scrollHeight - elem.clientHeight) {
432
- elem.scrollTop = elem.scrollHeight - elem.clientHeight - 1;
433
- }
434
- }
435
- elem.allowUp = elem.scrollTop > 0;
436
- elem.allowDown = elem.scrollTop < elem.scrollHeight - elem.clientHeight;
437
- elem.lastY = event.originalEvent.pageY;
438
- }
439
- }, {
440
- key: '_stopScrollPropagation',
441
- value: function _stopScrollPropagation(event) {
442
- var elem = this; // called from event handler context with this as elem
443
- var up = event.pageY < elem.lastY;
444
- var down = !up;
445
- elem.lastY = event.pageY;
446
-
447
- if (up && elem.allowUp || down && elem.allowDown) {
448
- event.stopPropagation();
449
- } else {
450
- event.preventDefault();
451
- }
452
- }
453
-
454
- /**
455
- * Opens the off-canvas menu.
456
- * @function
457
- * @param {Object} event - Event object passed from listener.
458
- * @param {jQuery} trigger - element that triggered the off-canvas to open.
459
- * @fires OffCanvas#opened
460
- */
461
-
462
- }, {
463
- key: 'open',
464
- value: function open(event, trigger) {
465
- if (this.$element.hasClass('is-open') || this.isRevealed) {
466
- return;
467
- }
468
- var _this = this;
469
-
470
- if (trigger) {
471
- this.$lastTrigger = trigger;
472
- }
473
-
474
- if (this.options.forceTo === 'top') {
475
- window.scrollTo(0, 0);
476
- } else if (this.options.forceTo === 'bottom') {
477
- window.scrollTo(0, document.body.scrollHeight);
478
- }
479
-
480
- if (this.options.transitionTime && this.options.transition !== 'overlap') {
481
- this.$element.siblings('[data-off-canvas-content]').css('transition-duration', this.options.transitionTime);
482
- } else {
483
- this.$element.siblings('[data-off-canvas-content]').css('transition-duration', '');
484
- }
485
-
486
- /**
487
- * Fires when the off-canvas menu opens.
488
- * @event OffCanvas#opened
489
- */
490
- this.$element.addClass('is-open').removeClass('is-closed');
491
-
492
- this.$triggers.attr('aria-expanded', 'true');
493
- this.$element.attr('aria-hidden', 'false').trigger('opened.zf.offcanvas');
494
-
495
- this.$content.addClass('is-open-' + this.position);
496
-
497
- // If `contentScroll` is set to false, add class and disable scrolling on touch devices.
498
- if (this.options.contentScroll === false) {
499
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()('body').addClass('is-off-canvas-open').on('touchmove', this._stopScrolling);
500
- this.$element.on('touchstart', this._recordScrollable);
501
- this.$element.on('touchmove', this._stopScrollPropagation);
502
- }
503
-
504
- if (this.options.contentOverlay === true) {
505
- this.$overlay.addClass('is-visible');
506
- }
507
-
508
- if (this.options.closeOnClick === true && this.options.contentOverlay === true) {
509
- this.$overlay.addClass('is-closable');
510
- }
511
-
512
- if (this.options.autoFocus === true) {
513
- this.$element.one(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__foundation_util_core__["transitionend"])(this.$element), function () {
514
- if (!_this.$element.hasClass('is-open')) {
515
- return; // exit if prematurely closed
516
- }
517
- var canvasFocus = _this.$element.find('[data-autofocus]');
518
- if (canvasFocus.length) {
519
- canvasFocus.eq(0).focus();
520
- } else {
521
- _this.$element.find('a, button').eq(0).focus();
522
- }
523
- });
524
- }
525
-
526
- if (this.options.trapFocus === true) {
527
- this.$content.attr('tabindex', '-1');
528
- __WEBPACK_IMPORTED_MODULE_1__foundation_util_keyboard__["Keyboard"].trapFocus(this.$element);
529
- }
530
-
531
- this._addContentClasses();
532
- }
533
-
534
- /**
535
- * Closes the off-canvas menu.
536
- * @function
537
- * @param {Function} cb - optional cb to fire after closure.
538
- * @fires OffCanvas#closed
539
- */
540
-
541
- }, {
542
- key: 'close',
543
- value: function close(cb) {
544
- if (!this.$element.hasClass('is-open') || this.isRevealed) {
545
- return;
546
- }
547
-
548
- var _this = this;
549
-
550
- this.$element.removeClass('is-open');
551
-
552
- this.$element.attr('aria-hidden', 'true')
553
- /**
554
- * Fires when the off-canvas menu opens.
555
- * @event OffCanvas#closed
556
- */
557
- .trigger('closed.zf.offcanvas');
558
-
559
- this.$content.removeClass('is-open-left is-open-top is-open-right is-open-bottom');
560
-
561
- // If `contentScroll` is set to false, remove class and re-enable scrolling on touch devices.
562
- if (this.options.contentScroll === false) {
563
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()('body').removeClass('is-off-canvas-open').off('touchmove', this._stopScrolling);
564
- this.$element.off('touchstart', this._recordScrollable);
565
- this.$element.off('touchmove', this._stopScrollPropagation);
566
- }
567
-
568
- if (this.options.contentOverlay === true) {
569
- this.$overlay.removeClass('is-visible');
570
- }
571
-
572
- if (this.options.closeOnClick === true && this.options.contentOverlay === true) {
573
- this.$overlay.removeClass('is-closable');
574
- }
575
-
576
- this.$triggers.attr('aria-expanded', 'false');
577
-
578
- if (this.options.trapFocus === true) {
579
- this.$content.removeAttr('tabindex');
580
- __WEBPACK_IMPORTED_MODULE_1__foundation_util_keyboard__["Keyboard"].releaseFocus(this.$element);
581
- }
582
-
583
- // Listen to transitionEnd and add class when done.
584
- this.$element.one(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__foundation_util_core__["transitionend"])(this.$element), function (e) {
585
- _this.$element.addClass('is-closed');
586
- _this._removeContentClasses();
587
- });
588
- }
589
-
590
- /**
591
- * Toggles the off-canvas menu open or closed.
592
- * @function
593
- * @param {Object} event - Event object passed from listener.
594
- * @param {jQuery} trigger - element that triggered the off-canvas to open.
595
- */
596
-
597
- }, {
598
- key: 'toggle',
599
- value: function toggle(event, trigger) {
600
- if (this.$element.hasClass('is-open')) {
601
- this.close(event, trigger);
602
- } else {
603
- this.open(event, trigger);
604
- }
605
- }
606
-
607
- /**
608
- * Handles keyboard input when detected. When the escape key is pressed, the off-canvas menu closes, and focus is restored to the element that opened the menu.
609
- * @function
610
- * @private
611
- */
612
-
613
- }, {
614
- key: '_handleKeyboard',
615
- value: function _handleKeyboard(e) {
616
- var _this4 = this;
617
-
618
- __WEBPACK_IMPORTED_MODULE_1__foundation_util_keyboard__["Keyboard"].handleKey(e, 'OffCanvas', {
619
- close: function () {
620
- _this4.close();
621
- _this4.$lastTrigger.focus();
622
- return true;
623
- },
624
- handled: function () {
625
- e.stopPropagation();
626
- e.preventDefault();
627
- }
628
- });
629
- }
630
-
631
- /**
632
- * Destroys the offcanvas plugin.
633
- * @function
634
- */
635
-
636
- }, {
637
- key: '_destroy',
638
- value: function _destroy() {
639
- this.close();
640
- this.$element.off('.zf.trigger .zf.offcanvas');
641
- this.$overlay.off('.zf.offcanvas');
642
- }
643
- }]);
644
-
645
- return OffCanvas;
646
- }(__WEBPACK_IMPORTED_MODULE_4__foundation_plugin__["Plugin"]);
647
-
648
- OffCanvas.defaults = {
649
- /**
650
- * Allow the user to click outside of the menu to close it.
651
- * @option
652
- * @type {boolean}
653
- * @default true
654
- */
655
- closeOnClick: true,
656
-
657
- /**
658
- * Adds an overlay on top of `[data-off-canvas-content]`.
659
- * @option
660
- * @type {boolean}
661
- * @default true
662
- */
663
- contentOverlay: true,
664
-
665
- /**
666
- * Target an off-canvas content container by ID that may be placed anywhere. If null the closest content container will be taken.
667
- * @option
668
- * @type {?string}
669
- * @default null
670
- */
671
- contentId: null,
672
-
673
- /**
674
- * Define the off-canvas element is nested in an off-canvas content. This is required when using the contentId option for a nested element.
675
- * @option
676
- * @type {boolean}
677
- * @default null
678
- */
679
- nested: null,
680
-
681
- /**
682
- * Enable/disable scrolling of the main content when an off canvas panel is open.
683
- * @option
684
- * @type {boolean}
685
- * @default true
686
- */
687
- contentScroll: true,
688
-
689
- /**
690
- * Amount of time in ms the open and close transition requires. If none selected, pulls from body style.
691
- * @option
692
- * @type {number}
693
- * @default null
694
- */
695
- transitionTime: null,
696
-
697
- /**
698
- * Type of transition for the offcanvas menu. Options are 'push', 'detached' or 'slide'.
699
- * @option
700
- * @type {string}
701
- * @default push
702
- */
703
- transition: 'push',
704
-
705
- /**
706
- * Force the page to scroll to top or bottom on open.
707
- * @option
708
- * @type {?string}
709
- * @default null
710
- */
711
- forceTo: null,
712
-
713
- /**
714
- * Allow the offcanvas to remain open for certain breakpoints.
715
- * @option
716
- * @type {boolean}
717
- * @default false
718
- */
719
- isRevealed: false,
720
-
721
- /**
722
- * Breakpoint at which to reveal. JS will use a RegExp to target standard classes, if changing classnames, pass your class with the `revealClass` option.
723
- * @option
724
- * @type {?string}
725
- * @default null
726
- */
727
- revealOn: null,
728
-
729
- /**
730
- * Force focus to the offcanvas on open. If true, will focus the opening trigger on close.
731
- * @option
732
- * @type {boolean}
733
- * @default true
734
- */
735
- autoFocus: true,
736
-
737
- /**
738
- * Class used to force an offcanvas to remain open. Foundation defaults for this are `reveal-for-large` & `reveal-for-medium`.
739
- * @option
740
- * @type {string}
741
- * @default reveal-for-
742
- * @todo improve the regex testing for this.
743
- */
744
- revealClass: 'reveal-for-',
745
-
746
- /**
747
- * Triggers optional focus trapping when opening an offcanvas. Sets tabindex of [data-off-canvas-content] to -1 for accessibility purposes.
748
- * @option
749
- * @type {boolean}
750
- * @default false
751
- */
752
- trapFocus: false
753
- };
754
-
755
-
756
-
757
- /***/ }),
758
-
759
- /***/ 6:
760
- /***/ (function(module, exports) {
761
-
762
- module.exports = {MediaQuery: window.Foundation.MediaQuery};
763
-
764
- /***/ }),
765
-
766
- /***/ 7:
767
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
768
-
769
- "use strict";
770
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Triggers; });
771
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jquery__ = __webpack_require__(0);
772
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jquery___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_jquery__);
773
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation_util_motion__ = __webpack_require__(4);
774
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation_util_motion___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__foundation_util_motion__);
775
-
776
-
777
-
778
-
779
-
780
- var MutationObserver = function () {
781
- var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];
782
- for (var i = 0; i < prefixes.length; i++) {
783
- if (prefixes[i] + 'MutationObserver' in window) {
784
- return window[prefixes[i] + 'MutationObserver'];
785
- }
786
- }
787
- return false;
788
- }();
789
-
790
- var triggers = function (el, type) {
791
- el.data(type).split(' ').forEach(function (id) {
792
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()('#' + id)[type === 'close' ? 'trigger' : 'triggerHandler'](type + '.zf.trigger', [el]);
793
- });
794
- };
795
-
796
- var Triggers = {
797
- Listeners: {
798
- Basic: {},
799
- Global: {}
800
- },
801
- Initializers: {}
802
- };
803
-
804
- Triggers.Listeners.Basic = {
805
- openListener: function () {
806
- triggers(__WEBPACK_IMPORTED_MODULE_0_jquery___default()(this), 'open');
807
- },
808
- closeListener: function () {
809
- var id = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).data('close');
810
- if (id) {
811
- triggers(__WEBPACK_IMPORTED_MODULE_0_jquery___default()(this), 'close');
812
- } else {
813
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).trigger('close.zf.trigger');
814
- }
815
- },
816
- toggleListener: function () {
817
- var id = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).data('toggle');
818
- if (id) {
819
- triggers(__WEBPACK_IMPORTED_MODULE_0_jquery___default()(this), 'toggle');
820
- } else {
821
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).trigger('toggle.zf.trigger');
822
- }
823
- },
824
- closeableListener: function (e) {
825
- e.stopPropagation();
826
- var animation = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).data('closable');
827
-
828
- if (animation !== '') {
829
- __WEBPACK_IMPORTED_MODULE_1__foundation_util_motion__["Motion"].animateOut(__WEBPACK_IMPORTED_MODULE_0_jquery___default()(this), animation, function () {
830
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).trigger('closed.zf');
831
- });
832
- } else {
833
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).fadeOut().trigger('closed.zf');
834
- }
835
- },
836
- toggleFocusListener: function () {
837
- var id = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).data('toggle-focus');
838
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()('#' + id).triggerHandler('toggle.zf.trigger', [__WEBPACK_IMPORTED_MODULE_0_jquery___default()(this)]);
839
- }
840
- };
841
-
842
- // Elements with [data-open] will reveal a plugin that supports it when clicked.
843
- Triggers.Initializers.addOpenListener = function ($elem) {
844
- $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);
845
- $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);
846
- };
847
-
848
- // Elements with [data-close] will close a plugin that supports it when clicked.
849
- // If used without a value on [data-close], the event will bubble, allowing it to close a parent component.
850
- Triggers.Initializers.addCloseListener = function ($elem) {
851
- $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);
852
- $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);
853
- };
854
-
855
- // Elements with [data-toggle] will toggle a plugin that supports it when clicked.
856
- Triggers.Initializers.addToggleListener = function ($elem) {
857
- $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);
858
- $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);
859
- };
860
-
861
- // Elements with [data-closable] will respond to close.zf.trigger events.
862
- Triggers.Initializers.addCloseableListener = function ($elem) {
863
- $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);
864
- $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);
865
- };
866
-
867
- // Elements with [data-toggle-focus] will respond to coming in and out of focus
868
- Triggers.Initializers.addToggleFocusListener = function ($elem) {
869
- $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);
870
- $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);
871
- };
872
-
873
- // More Global/complex listeners and triggers
874
- Triggers.Listeners.Global = {
875
- resizeListener: function ($nodes) {
876
- if (!MutationObserver) {
877
- //fallback for IE 9
878
- $nodes.each(function () {
879
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).triggerHandler('resizeme.zf.trigger');
880
- });
881
- }
882
- //trigger all listening elements and signal a resize event
883
- $nodes.attr('data-events', "resize");
884
- },
885
- scrollListener: function ($nodes) {
886
- if (!MutationObserver) {
887
- //fallback for IE 9
888
- $nodes.each(function () {
889
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).triggerHandler('scrollme.zf.trigger');
890
- });
891
- }
892
- //trigger all listening elements and signal a scroll event
893
- $nodes.attr('data-events', "scroll");
894
- },
895
- closeMeListener: function (e, pluginId) {
896
- var plugin = e.namespace.split('.')[0];
897
- var plugins = __WEBPACK_IMPORTED_MODULE_0_jquery___default()('[data-' + plugin + ']').not('[data-yeti-box="' + pluginId + '"]');
898
-
899
- plugins.each(function () {
900
- var _this = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this);
901
- _this.triggerHandler('close.zf.trigger', [_this]);
902
- });
903
- }
904
-
905
- // Global, parses whole document.
906
- };Triggers.Initializers.addClosemeListener = function (pluginName) {
907
- var yetiBoxes = __WEBPACK_IMPORTED_MODULE_0_jquery___default()('[data-yeti-box]'),
908
- plugNames = ['dropdown', 'tooltip', 'reveal'];
909
-
910
- if (pluginName) {
911
- if (typeof pluginName === 'string') {
912
- plugNames.push(pluginName);
913
- } else if (typeof pluginName === 'object' && typeof pluginName[0] === 'string') {
914
- plugNames.concat(pluginName);
915
- } else {
916
- console.error('Plugin names must be strings');
917
- }
918
- }
919
- if (yetiBoxes.length) {
920
- var listeners = plugNames.map(function (name) {
921
- return 'closeme.zf.' + name;
922
- }).join(' ');
923
-
924
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);
925
- }
926
- };
927
-
928
- function debounceGlobalListener(debounce, trigger, listener) {
929
- var timer = void 0,
930
- args = Array.prototype.slice.call(arguments, 3);
931
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(window).off(trigger).on(trigger, function (e) {
932
- if (timer) {
933
- clearTimeout(timer);
934
- }
935
- timer = setTimeout(function () {
936
- listener.apply(null, args);
937
- }, debounce || 10); //default time to emit scroll event
938
- });
939
- }
940
-
941
- Triggers.Initializers.addResizeListener = function (debounce) {
942
- var $nodes = __WEBPACK_IMPORTED_MODULE_0_jquery___default()('[data-resize]');
943
- if ($nodes.length) {
944
- debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);
945
- }
946
- };
947
-
948
- Triggers.Initializers.addScrollListener = function (debounce) {
949
- var $nodes = __WEBPACK_IMPORTED_MODULE_0_jquery___default()('[data-scroll]');
950
- if ($nodes.length) {
951
- debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);
952
- }
953
- };
954
-
955
- Triggers.Initializers.addMutationEventsListener = function ($elem) {
956
- if (!MutationObserver) {
957
- return false;
958
- }
959
- var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');
960
-
961
- //element callback
962
- var listeningElementsMutation = function (mutationRecordsList) {
963
- var $target = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(mutationRecordsList[0].target);
964
-
965
- //trigger the event handler for the element depending on type
966
- switch (mutationRecordsList[0].type) {
967
- case "attributes":
968
- if ($target.attr("data-events") === "scroll" && mutationRecordsList[0].attributeName === "data-events") {
969
- $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);
970
- }
971
- if ($target.attr("data-events") === "resize" && mutationRecordsList[0].attributeName === "data-events") {
972
- $target.triggerHandler('resizeme.zf.trigger', [$target]);
973
- }
974
- if (mutationRecordsList[0].attributeName === "style") {
975
- $target.closest("[data-mutate]").attr("data-events", "mutate");
976
- $target.closest("[data-mutate]").triggerHandler('mutateme.zf.trigger', [$target.closest("[data-mutate]")]);
977
- }
978
- break;
979
-
980
- case "childList":
981
- $target.closest("[data-mutate]").attr("data-events", "mutate");
982
- $target.closest("[data-mutate]").triggerHandler('mutateme.zf.trigger', [$target.closest("[data-mutate]")]);
983
- break;
984
-
985
- default:
986
- return false;
987
- //nothing
988
- }
989
- };
990
-
991
- if ($nodes.length) {
992
- //for each element that needs to listen for resizing, scrolling, or mutation add a single observer
993
- for (var i = 0; i <= $nodes.length - 1; i++) {
994
- var elementObserver = new MutationObserver(listeningElementsMutation);
995
- elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: ["data-events", "style"] });
996
- }
997
- }
998
- };
999
-
1000
- Triggers.Initializers.addSimpleListeners = function () {
1001
- var $document = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(document);
1002
-
1003
- Triggers.Initializers.addOpenListener($document);
1004
- Triggers.Initializers.addCloseListener($document);
1005
- Triggers.Initializers.addToggleListener($document);
1006
- Triggers.Initializers.addCloseableListener($document);
1007
- Triggers.Initializers.addToggleFocusListener($document);
1008
- };
1009
-
1010
- Triggers.Initializers.addGlobalListeners = function () {
1011
- var $document = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(document);
1012
- Triggers.Initializers.addMutationEventsListener($document);
1013
- Triggers.Initializers.addResizeListener();
1014
- Triggers.Initializers.addScrollListener();
1015
- Triggers.Initializers.addClosemeListener();
1016
- };
1017
-
1018
- Triggers.init = function ($, Foundation) {
1019
- if (typeof $.triggersInitialized === 'undefined') {
1020
- var $document = $(document);
1021
-
1022
- if (document.readyState === "complete") {
1023
- Triggers.Initializers.addSimpleListeners();
1024
- Triggers.Initializers.addGlobalListeners();
1025
- } else {
1026
- $(window).on('load', function () {
1027
- Triggers.Initializers.addSimpleListeners();
1028
- Triggers.Initializers.addGlobalListeners();
1029
- });
1030
- }
1031
-
1032
- $.triggersInitialized = true;
1033
- }
1034
-
1035
- if (Foundation) {
1036
- Foundation.Triggers = Triggers;
1037
- // Legacy included to be backwards compatible for now.
1038
- Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;
1039
- }
1040
- };
1041
-
1042
-
1043
-
1044
- /***/ }),
1045
-
1046
- /***/ 88:
1047
- /***/ (function(module, exports, __webpack_require__) {
1048
-
1049
- module.exports = __webpack_require__(22);
1050
-
1051
-
1052
- /***/ })
1053
-
1054
- /******/ });