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,1194 +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 = 99);
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
- /***/ 2:
341
- /***/ (function(module, exports) {
342
-
343
- module.exports = {Plugin: window.Foundation.Plugin};
344
-
345
- /***/ }),
346
-
347
- /***/ 3:
348
- /***/ (function(module, exports) {
349
-
350
- module.exports = {rtl: window.Foundation.rtl, GetYoDigits: window.Foundation.GetYoDigits, transitionend: window.Foundation.transitionend};
351
-
352
- /***/ }),
353
-
354
- /***/ 33:
355
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
356
-
357
- "use strict";
358
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
359
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__foundation_core__ = __webpack_require__(1);
360
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__foundation_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__foundation_core__);
361
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation_tooltip__ = __webpack_require__(63);
362
-
363
-
364
-
365
- __WEBPACK_IMPORTED_MODULE_0__foundation_core__["Foundation"].plugin(__WEBPACK_IMPORTED_MODULE_1__foundation_tooltip__["a" /* Tooltip */], 'Tooltip');
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
- /***/ 6:
377
- /***/ (function(module, exports) {
378
-
379
- module.exports = {MediaQuery: window.Foundation.MediaQuery};
380
-
381
- /***/ }),
382
-
383
- /***/ 63:
384
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
385
-
386
- "use strict";
387
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Tooltip; });
388
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jquery__ = __webpack_require__(0);
389
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jquery___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_jquery__);
390
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation_util_core__ = __webpack_require__(3);
391
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation_util_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__foundation_util_core__);
392
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation_util_mediaQuery__ = __webpack_require__(6);
393
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation_util_mediaQuery___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__foundation_util_mediaQuery__);
394
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__foundation_util_triggers__ = __webpack_require__(7);
395
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__foundation_positionable__ = __webpack_require__(11);
396
-
397
-
398
- 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; }; }();
399
-
400
- 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); } };
401
-
402
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
403
-
404
- 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; }
405
-
406
- 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; }
407
-
408
-
409
-
410
-
411
-
412
-
413
-
414
-
415
- /**
416
- * Tooltip module.
417
- * @module foundation.tooltip
418
- * @requires foundation.util.box
419
- * @requires foundation.util.mediaQuery
420
- * @requires foundation.util.triggers
421
- */
422
-
423
- var Tooltip = function (_Positionable) {
424
- _inherits(Tooltip, _Positionable);
425
-
426
- function Tooltip() {
427
- _classCallCheck(this, Tooltip);
428
-
429
- return _possibleConstructorReturn(this, (Tooltip.__proto__ || Object.getPrototypeOf(Tooltip)).apply(this, arguments));
430
- }
431
-
432
- _createClass(Tooltip, [{
433
- key: '_setup',
434
-
435
- /**
436
- * Creates a new instance of a Tooltip.
437
- * @class
438
- * @name Tooltip
439
- * @fires Tooltip#init
440
- * @param {jQuery} element - jQuery object to attach a tooltip to.
441
- * @param {Object} options - object to extend the default configuration.
442
- */
443
- value: function _setup(element, options) {
444
- this.$element = element;
445
- this.options = __WEBPACK_IMPORTED_MODULE_0_jquery___default.a.extend({}, Tooltip.defaults, this.$element.data(), options);
446
- this.className = 'Tooltip'; // ie9 back compat
447
-
448
- this.isActive = false;
449
- this.isClick = false;
450
-
451
- // Triggers init is idempotent, just need to make sure it is initialized
452
- __WEBPACK_IMPORTED_MODULE_3__foundation_util_triggers__["a" /* Triggers */].init(__WEBPACK_IMPORTED_MODULE_0_jquery___default.a);
453
-
454
- this._init();
455
- }
456
-
457
- /**
458
- * Initializes the tooltip by setting the creating the tip element, adding it's text, setting private variables and setting attributes on the anchor.
459
- * @private
460
- */
461
-
462
- }, {
463
- key: '_init',
464
- value: function _init() {
465
- __WEBPACK_IMPORTED_MODULE_2__foundation_util_mediaQuery__["MediaQuery"]._init();
466
- var elemId = this.$element.attr('aria-describedby') || __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__foundation_util_core__["GetYoDigits"])(6, 'tooltip');
467
-
468
- this.options.tipText = this.options.tipText || this.$element.attr('title');
469
- this.template = this.options.template ? __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this.options.template) : this._buildTemplate(elemId);
470
-
471
- if (this.options.allowHtml) {
472
- this.template.appendTo(document.body).html(this.options.tipText).hide();
473
- } else {
474
- this.template.appendTo(document.body).text(this.options.tipText).hide();
475
- }
476
-
477
- this.$element.attr({
478
- 'title': '',
479
- 'aria-describedby': elemId,
480
- 'data-yeti-box': elemId,
481
- 'data-toggle': elemId,
482
- 'data-resize': elemId
483
- }).addClass(this.options.triggerClass);
484
-
485
- _get(Tooltip.prototype.__proto__ || Object.getPrototypeOf(Tooltip.prototype), '_init', this).call(this);
486
- this._events();
487
- }
488
- }, {
489
- key: '_getDefaultPosition',
490
- value: function _getDefaultPosition() {
491
- // handle legacy classnames
492
- var position = this.$element[0].className.match(/\b(top|left|right|bottom)\b/g);
493
- return position ? position[0] : 'top';
494
- }
495
- }, {
496
- key: '_getDefaultAlignment',
497
- value: function _getDefaultAlignment() {
498
- return 'center';
499
- }
500
- }, {
501
- key: '_getHOffset',
502
- value: function _getHOffset() {
503
- if (this.position === 'left' || this.position === 'right') {
504
- return this.options.hOffset + this.options.tooltipWidth;
505
- } else {
506
- return this.options.hOffset;
507
- }
508
- }
509
- }, {
510
- key: '_getVOffset',
511
- value: function _getVOffset() {
512
- if (this.position === 'top' || this.position === 'bottom') {
513
- return this.options.vOffset + this.options.tooltipHeight;
514
- } else {
515
- return this.options.vOffset;
516
- }
517
- }
518
-
519
- /**
520
- * builds the tooltip element, adds attributes, and returns the template.
521
- * @private
522
- */
523
-
524
- }, {
525
- key: '_buildTemplate',
526
- value: function _buildTemplate(id) {
527
- var templateClasses = (this.options.tooltipClass + ' ' + this.options.positionClass + ' ' + this.options.templateClasses).trim();
528
- var $template = __WEBPACK_IMPORTED_MODULE_0_jquery___default()('<div></div>').addClass(templateClasses).attr({
529
- 'role': 'tooltip',
530
- 'aria-hidden': true,
531
- 'data-is-active': false,
532
- 'data-is-focus': false,
533
- 'id': id
534
- });
535
- return $template;
536
- }
537
-
538
- /**
539
- * sets the position class of an element and recursively calls itself until there are no more possible positions to attempt, or the tooltip element is no longer colliding.
540
- * if the tooltip is larger than the screen width, default to full width - any user selected margin
541
- * @private
542
- */
543
-
544
- }, {
545
- key: '_setPosition',
546
- value: function _setPosition() {
547
- _get(Tooltip.prototype.__proto__ || Object.getPrototypeOf(Tooltip.prototype), '_setPosition', this).call(this, this.$element, this.template);
548
- }
549
-
550
- /**
551
- * reveals the tooltip, and fires an event to close any other open tooltips on the page
552
- * @fires Tooltip#closeme
553
- * @fires Tooltip#show
554
- * @function
555
- */
556
-
557
- }, {
558
- key: 'show',
559
- value: function show() {
560
- if (this.options.showOn !== 'all' && !__WEBPACK_IMPORTED_MODULE_2__foundation_util_mediaQuery__["MediaQuery"].is(this.options.showOn)) {
561
- // console.error('The screen is too small to display this tooltip');
562
- return false;
563
- }
564
-
565
- var _this = this;
566
- this.template.css('visibility', 'hidden').show();
567
- this._setPosition();
568
- this.template.removeClass('top bottom left right').addClass(this.position);
569
- this.template.removeClass('align-top align-bottom align-left align-right align-center').addClass('align-' + this.alignment);
570
-
571
- /**
572
- * Fires to close all other open tooltips on the page
573
- * @event Closeme#tooltip
574
- */
575
- this.$element.trigger('closeme.zf.tooltip', this.template.attr('id'));
576
-
577
- this.template.attr({
578
- 'data-is-active': true,
579
- 'aria-hidden': false
580
- });
581
- _this.isActive = true;
582
- // console.log(this.template);
583
- this.template.stop().hide().css('visibility', '').fadeIn(this.options.fadeInDuration, function () {
584
- //maybe do stuff?
585
- });
586
- /**
587
- * Fires when the tooltip is shown
588
- * @event Tooltip#show
589
- */
590
- this.$element.trigger('show.zf.tooltip');
591
- }
592
-
593
- /**
594
- * Hides the current tooltip, and resets the positioning class if it was changed due to collision
595
- * @fires Tooltip#hide
596
- * @function
597
- */
598
-
599
- }, {
600
- key: 'hide',
601
- value: function hide() {
602
- // console.log('hiding', this.$element.data('yeti-box'));
603
- var _this = this;
604
- this.template.stop().attr({
605
- 'aria-hidden': true,
606
- 'data-is-active': false
607
- }).fadeOut(this.options.fadeOutDuration, function () {
608
- _this.isActive = false;
609
- _this.isClick = false;
610
- });
611
- /**
612
- * fires when the tooltip is hidden
613
- * @event Tooltip#hide
614
- */
615
- this.$element.trigger('hide.zf.tooltip');
616
- }
617
-
618
- /**
619
- * adds event listeners for the tooltip and its anchor
620
- * TODO combine some of the listeners like focus and mouseenter, etc.
621
- * @private
622
- */
623
-
624
- }, {
625
- key: '_events',
626
- value: function _events() {
627
- var _this = this;
628
- var $template = this.template;
629
- var isFocus = false;
630
-
631
- if (!this.options.disableHover) {
632
-
633
- this.$element.on('mouseenter.zf.tooltip', function (e) {
634
- if (!_this.isActive) {
635
- _this.timeout = setTimeout(function () {
636
- _this.show();
637
- }, _this.options.hoverDelay);
638
- }
639
- }).on('mouseleave.zf.tooltip', function (e) {
640
- clearTimeout(_this.timeout);
641
- if (!isFocus || _this.isClick && !_this.options.clickOpen) {
642
- _this.hide();
643
- }
644
- });
645
- }
646
-
647
- if (this.options.clickOpen) {
648
- this.$element.on('mousedown.zf.tooltip', function (e) {
649
- e.stopImmediatePropagation();
650
- if (_this.isClick) {
651
- //_this.hide();
652
- // _this.isClick = false;
653
- } else {
654
- _this.isClick = true;
655
- if ((_this.options.disableHover || !_this.$element.attr('tabindex')) && !_this.isActive) {
656
- _this.show();
657
- }
658
- }
659
- });
660
- } else {
661
- this.$element.on('mousedown.zf.tooltip', function (e) {
662
- e.stopImmediatePropagation();
663
- _this.isClick = true;
664
- });
665
- }
666
-
667
- if (!this.options.disableForTouch) {
668
- this.$element.on('tap.zf.tooltip touchend.zf.tooltip', function (e) {
669
- _this.isActive ? _this.hide() : _this.show();
670
- });
671
- }
672
-
673
- this.$element.on({
674
- // 'toggle.zf.trigger': this.toggle.bind(this),
675
- // 'close.zf.trigger': this.hide.bind(this)
676
- 'close.zf.trigger': this.hide.bind(this)
677
- });
678
-
679
- this.$element.on('focus.zf.tooltip', function (e) {
680
- isFocus = true;
681
- if (_this.isClick) {
682
- // If we're not showing open on clicks, we need to pretend a click-launched focus isn't
683
- // a real focus, otherwise on hover and come back we get bad behavior
684
- if (!_this.options.clickOpen) {
685
- isFocus = false;
686
- }
687
- return false;
688
- } else {
689
- _this.show();
690
- }
691
- }).on('focusout.zf.tooltip', function (e) {
692
- isFocus = false;
693
- _this.isClick = false;
694
- _this.hide();
695
- }).on('resizeme.zf.trigger', function () {
696
- if (_this.isActive) {
697
- _this._setPosition();
698
- }
699
- });
700
- }
701
-
702
- /**
703
- * adds a toggle method, in addition to the static show() & hide() functions
704
- * @function
705
- */
706
-
707
- }, {
708
- key: 'toggle',
709
- value: function toggle() {
710
- if (this.isActive) {
711
- this.hide();
712
- } else {
713
- this.show();
714
- }
715
- }
716
-
717
- /**
718
- * Destroys an instance of tooltip, removes template element from the view.
719
- * @function
720
- */
721
-
722
- }, {
723
- key: '_destroy',
724
- value: function _destroy() {
725
- this.$element.attr('title', this.template.text()).off('.zf.trigger .zf.tooltip').removeClass('has-tip top right left').removeAttr('aria-describedby aria-haspopup data-disable-hover data-resize data-toggle data-tooltip data-yeti-box');
726
-
727
- this.template.remove();
728
- }
729
- }]);
730
-
731
- return Tooltip;
732
- }(__WEBPACK_IMPORTED_MODULE_4__foundation_positionable__["a" /* Positionable */]);
733
-
734
- Tooltip.defaults = {
735
- disableForTouch: false,
736
- /**
737
- * Time, in ms, before a tooltip should open on hover.
738
- * @option
739
- * @type {number}
740
- * @default 200
741
- */
742
- hoverDelay: 200,
743
- /**
744
- * Time, in ms, a tooltip should take to fade into view.
745
- * @option
746
- * @type {number}
747
- * @default 150
748
- */
749
- fadeInDuration: 150,
750
- /**
751
- * Time, in ms, a tooltip should take to fade out of view.
752
- * @option
753
- * @type {number}
754
- * @default 150
755
- */
756
- fadeOutDuration: 150,
757
- /**
758
- * Disables hover events from opening the tooltip if set to true
759
- * @option
760
- * @type {boolean}
761
- * @default false
762
- */
763
- disableHover: false,
764
- /**
765
- * Optional addtional classes to apply to the tooltip template on init.
766
- * @option
767
- * @type {string}
768
- * @default ''
769
- */
770
- templateClasses: '',
771
- /**
772
- * Non-optional class added to tooltip templates. Foundation default is 'tooltip'.
773
- * @option
774
- * @type {string}
775
- * @default 'tooltip'
776
- */
777
- tooltipClass: 'tooltip',
778
- /**
779
- * Class applied to the tooltip anchor element.
780
- * @option
781
- * @type {string}
782
- * @default 'has-tip'
783
- */
784
- triggerClass: 'has-tip',
785
- /**
786
- * Minimum breakpoint size at which to open the tooltip.
787
- * @option
788
- * @type {string}
789
- * @default 'small'
790
- */
791
- showOn: 'small',
792
- /**
793
- * Custom template to be used to generate markup for tooltip.
794
- * @option
795
- * @type {string}
796
- * @default ''
797
- */
798
- template: '',
799
- /**
800
- * Text displayed in the tooltip template on open.
801
- * @option
802
- * @type {string}
803
- * @default ''
804
- */
805
- tipText: '',
806
- touchCloseText: 'Tap to close.',
807
- /**
808
- * Allows the tooltip to remain open if triggered with a click or touch event.
809
- * @option
810
- * @type {boolean}
811
- * @default true
812
- */
813
- clickOpen: true,
814
- /**
815
- * DEPRECATED Additional positioning classes, set by the JS
816
- * @option
817
- * @type {string}
818
- * @default ''
819
- */
820
- positionClass: '',
821
- /**
822
- * Position of tooltip. Can be left, right, bottom, top, or auto.
823
- * @option
824
- * @type {string}
825
- * @default 'auto'
826
- */
827
- position: 'auto',
828
- /**
829
- * Alignment of tooltip relative to anchor. Can be left, right, bottom, top, center, or auto.
830
- * @option
831
- * @type {string}
832
- * @default 'auto'
833
- */
834
- alignment: 'auto',
835
- /**
836
- * Allow overlap of container/window. If false, tooltip will first try to
837
- * position as defined by data-position and data-alignment, but reposition if
838
- * it would cause an overflow. @option
839
- * @type {boolean}
840
- * @default false
841
- */
842
- allowOverlap: false,
843
- /**
844
- * Allow overlap of only the bottom of the container. This is the most common
845
- * behavior for dropdowns, allowing the dropdown to extend the bottom of the
846
- * screen but not otherwise influence or break out of the container.
847
- * Less common for tooltips.
848
- * @option
849
- * @type {boolean}
850
- * @default false
851
- */
852
- allowBottomOverlap: false,
853
- /**
854
- * Distance, in pixels, the template should push away from the anchor on the Y axis.
855
- * @option
856
- * @type {number}
857
- * @default 0
858
- */
859
- vOffset: 0,
860
- /**
861
- * Distance, in pixels, the template should push away from the anchor on the X axis
862
- * @option
863
- * @type {number}
864
- * @default 0
865
- */
866
- hOffset: 0,
867
- /**
868
- * Distance, in pixels, the template spacing auto-adjust for a vertical tooltip
869
- * @option
870
- * @type {number}
871
- * @default 14
872
- */
873
- tooltipHeight: 14,
874
- /**
875
- * Distance, in pixels, the template spacing auto-adjust for a horizontal tooltip
876
- * @option
877
- * @type {number}
878
- * @default 12
879
- */
880
- tooltipWidth: 12,
881
- /**
882
- * Allow HTML in tooltip. Warning: If you are loading user-generated content into tooltips,
883
- * allowing HTML may open yourself up to XSS attacks.
884
- * @option
885
- * @type {boolean}
886
- * @default false
887
- */
888
- allowHtml: false
889
- };
890
-
891
- /**
892
- * TODO utilize resize event trigger
893
- */
894
-
895
-
896
-
897
- /***/ }),
898
-
899
- /***/ 7:
900
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
901
-
902
- "use strict";
903
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Triggers; });
904
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jquery__ = __webpack_require__(0);
905
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jquery___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_jquery__);
906
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation_util_motion__ = __webpack_require__(4);
907
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation_util_motion___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__foundation_util_motion__);
908
-
909
-
910
-
911
-
912
-
913
- var MutationObserver = function () {
914
- var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];
915
- for (var i = 0; i < prefixes.length; i++) {
916
- if (prefixes[i] + 'MutationObserver' in window) {
917
- return window[prefixes[i] + 'MutationObserver'];
918
- }
919
- }
920
- return false;
921
- }();
922
-
923
- var triggers = function (el, type) {
924
- el.data(type).split(' ').forEach(function (id) {
925
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()('#' + id)[type === 'close' ? 'trigger' : 'triggerHandler'](type + '.zf.trigger', [el]);
926
- });
927
- };
928
-
929
- var Triggers = {
930
- Listeners: {
931
- Basic: {},
932
- Global: {}
933
- },
934
- Initializers: {}
935
- };
936
-
937
- Triggers.Listeners.Basic = {
938
- openListener: function () {
939
- triggers(__WEBPACK_IMPORTED_MODULE_0_jquery___default()(this), 'open');
940
- },
941
- closeListener: function () {
942
- var id = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).data('close');
943
- if (id) {
944
- triggers(__WEBPACK_IMPORTED_MODULE_0_jquery___default()(this), 'close');
945
- } else {
946
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).trigger('close.zf.trigger');
947
- }
948
- },
949
- toggleListener: function () {
950
- var id = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).data('toggle');
951
- if (id) {
952
- triggers(__WEBPACK_IMPORTED_MODULE_0_jquery___default()(this), 'toggle');
953
- } else {
954
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).trigger('toggle.zf.trigger');
955
- }
956
- },
957
- closeableListener: function (e) {
958
- e.stopPropagation();
959
- var animation = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).data('closable');
960
-
961
- if (animation !== '') {
962
- __WEBPACK_IMPORTED_MODULE_1__foundation_util_motion__["Motion"].animateOut(__WEBPACK_IMPORTED_MODULE_0_jquery___default()(this), animation, function () {
963
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).trigger('closed.zf');
964
- });
965
- } else {
966
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).fadeOut().trigger('closed.zf');
967
- }
968
- },
969
- toggleFocusListener: function () {
970
- var id = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).data('toggle-focus');
971
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()('#' + id).triggerHandler('toggle.zf.trigger', [__WEBPACK_IMPORTED_MODULE_0_jquery___default()(this)]);
972
- }
973
- };
974
-
975
- // Elements with [data-open] will reveal a plugin that supports it when clicked.
976
- Triggers.Initializers.addOpenListener = function ($elem) {
977
- $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);
978
- $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);
979
- };
980
-
981
- // Elements with [data-close] will close a plugin that supports it when clicked.
982
- // If used without a value on [data-close], the event will bubble, allowing it to close a parent component.
983
- Triggers.Initializers.addCloseListener = function ($elem) {
984
- $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);
985
- $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);
986
- };
987
-
988
- // Elements with [data-toggle] will toggle a plugin that supports it when clicked.
989
- Triggers.Initializers.addToggleListener = function ($elem) {
990
- $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);
991
- $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);
992
- };
993
-
994
- // Elements with [data-closable] will respond to close.zf.trigger events.
995
- Triggers.Initializers.addCloseableListener = function ($elem) {
996
- $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);
997
- $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);
998
- };
999
-
1000
- // Elements with [data-toggle-focus] will respond to coming in and out of focus
1001
- Triggers.Initializers.addToggleFocusListener = function ($elem) {
1002
- $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);
1003
- $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);
1004
- };
1005
-
1006
- // More Global/complex listeners and triggers
1007
- Triggers.Listeners.Global = {
1008
- resizeListener: function ($nodes) {
1009
- if (!MutationObserver) {
1010
- //fallback for IE 9
1011
- $nodes.each(function () {
1012
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).triggerHandler('resizeme.zf.trigger');
1013
- });
1014
- }
1015
- //trigger all listening elements and signal a resize event
1016
- $nodes.attr('data-events', "resize");
1017
- },
1018
- scrollListener: function ($nodes) {
1019
- if (!MutationObserver) {
1020
- //fallback for IE 9
1021
- $nodes.each(function () {
1022
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).triggerHandler('scrollme.zf.trigger');
1023
- });
1024
- }
1025
- //trigger all listening elements and signal a scroll event
1026
- $nodes.attr('data-events', "scroll");
1027
- },
1028
- closeMeListener: function (e, pluginId) {
1029
- var plugin = e.namespace.split('.')[0];
1030
- var plugins = __WEBPACK_IMPORTED_MODULE_0_jquery___default()('[data-' + plugin + ']').not('[data-yeti-box="' + pluginId + '"]');
1031
-
1032
- plugins.each(function () {
1033
- var _this = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this);
1034
- _this.triggerHandler('close.zf.trigger', [_this]);
1035
- });
1036
- }
1037
-
1038
- // Global, parses whole document.
1039
- };Triggers.Initializers.addClosemeListener = function (pluginName) {
1040
- var yetiBoxes = __WEBPACK_IMPORTED_MODULE_0_jquery___default()('[data-yeti-box]'),
1041
- plugNames = ['dropdown', 'tooltip', 'reveal'];
1042
-
1043
- if (pluginName) {
1044
- if (typeof pluginName === 'string') {
1045
- plugNames.push(pluginName);
1046
- } else if (typeof pluginName === 'object' && typeof pluginName[0] === 'string') {
1047
- plugNames.concat(pluginName);
1048
- } else {
1049
- console.error('Plugin names must be strings');
1050
- }
1051
- }
1052
- if (yetiBoxes.length) {
1053
- var listeners = plugNames.map(function (name) {
1054
- return 'closeme.zf.' + name;
1055
- }).join(' ');
1056
-
1057
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);
1058
- }
1059
- };
1060
-
1061
- function debounceGlobalListener(debounce, trigger, listener) {
1062
- var timer = void 0,
1063
- args = Array.prototype.slice.call(arguments, 3);
1064
- __WEBPACK_IMPORTED_MODULE_0_jquery___default()(window).off(trigger).on(trigger, function (e) {
1065
- if (timer) {
1066
- clearTimeout(timer);
1067
- }
1068
- timer = setTimeout(function () {
1069
- listener.apply(null, args);
1070
- }, debounce || 10); //default time to emit scroll event
1071
- });
1072
- }
1073
-
1074
- Triggers.Initializers.addResizeListener = function (debounce) {
1075
- var $nodes = __WEBPACK_IMPORTED_MODULE_0_jquery___default()('[data-resize]');
1076
- if ($nodes.length) {
1077
- debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);
1078
- }
1079
- };
1080
-
1081
- Triggers.Initializers.addScrollListener = function (debounce) {
1082
- var $nodes = __WEBPACK_IMPORTED_MODULE_0_jquery___default()('[data-scroll]');
1083
- if ($nodes.length) {
1084
- debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);
1085
- }
1086
- };
1087
-
1088
- Triggers.Initializers.addMutationEventsListener = function ($elem) {
1089
- if (!MutationObserver) {
1090
- return false;
1091
- }
1092
- var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');
1093
-
1094
- //element callback
1095
- var listeningElementsMutation = function (mutationRecordsList) {
1096
- var $target = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(mutationRecordsList[0].target);
1097
-
1098
- //trigger the event handler for the element depending on type
1099
- switch (mutationRecordsList[0].type) {
1100
- case "attributes":
1101
- if ($target.attr("data-events") === "scroll" && mutationRecordsList[0].attributeName === "data-events") {
1102
- $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);
1103
- }
1104
- if ($target.attr("data-events") === "resize" && mutationRecordsList[0].attributeName === "data-events") {
1105
- $target.triggerHandler('resizeme.zf.trigger', [$target]);
1106
- }
1107
- if (mutationRecordsList[0].attributeName === "style") {
1108
- $target.closest("[data-mutate]").attr("data-events", "mutate");
1109
- $target.closest("[data-mutate]").triggerHandler('mutateme.zf.trigger', [$target.closest("[data-mutate]")]);
1110
- }
1111
- break;
1112
-
1113
- case "childList":
1114
- $target.closest("[data-mutate]").attr("data-events", "mutate");
1115
- $target.closest("[data-mutate]").triggerHandler('mutateme.zf.trigger', [$target.closest("[data-mutate]")]);
1116
- break;
1117
-
1118
- default:
1119
- return false;
1120
- //nothing
1121
- }
1122
- };
1123
-
1124
- if ($nodes.length) {
1125
- //for each element that needs to listen for resizing, scrolling, or mutation add a single observer
1126
- for (var i = 0; i <= $nodes.length - 1; i++) {
1127
- var elementObserver = new MutationObserver(listeningElementsMutation);
1128
- elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: ["data-events", "style"] });
1129
- }
1130
- }
1131
- };
1132
-
1133
- Triggers.Initializers.addSimpleListeners = function () {
1134
- var $document = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(document);
1135
-
1136
- Triggers.Initializers.addOpenListener($document);
1137
- Triggers.Initializers.addCloseListener($document);
1138
- Triggers.Initializers.addToggleListener($document);
1139
- Triggers.Initializers.addCloseableListener($document);
1140
- Triggers.Initializers.addToggleFocusListener($document);
1141
- };
1142
-
1143
- Triggers.Initializers.addGlobalListeners = function () {
1144
- var $document = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(document);
1145
- Triggers.Initializers.addMutationEventsListener($document);
1146
- Triggers.Initializers.addResizeListener();
1147
- Triggers.Initializers.addScrollListener();
1148
- Triggers.Initializers.addClosemeListener();
1149
- };
1150
-
1151
- Triggers.init = function ($, Foundation) {
1152
- if (typeof $.triggersInitialized === 'undefined') {
1153
- var $document = $(document);
1154
-
1155
- if (document.readyState === "complete") {
1156
- Triggers.Initializers.addSimpleListeners();
1157
- Triggers.Initializers.addGlobalListeners();
1158
- } else {
1159
- $(window).on('load', function () {
1160
- Triggers.Initializers.addSimpleListeners();
1161
- Triggers.Initializers.addGlobalListeners();
1162
- });
1163
- }
1164
-
1165
- $.triggersInitialized = true;
1166
- }
1167
-
1168
- if (Foundation) {
1169
- Foundation.Triggers = Triggers;
1170
- // Legacy included to be backwards compatible for now.
1171
- Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;
1172
- }
1173
- };
1174
-
1175
-
1176
-
1177
- /***/ }),
1178
-
1179
- /***/ 8:
1180
- /***/ (function(module, exports) {
1181
-
1182
- module.exports = {Box: window.Foundation.Box};
1183
-
1184
- /***/ }),
1185
-
1186
- /***/ 99:
1187
- /***/ (function(module, exports, __webpack_require__) {
1188
-
1189
- module.exports = __webpack_require__(33);
1190
-
1191
-
1192
- /***/ })
1193
-
1194
- /******/ });