foundation-rails 6.5.3.0 → 6.6.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (164) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile.lock +100 -86
  3. data/bower.json +2 -2
  4. data/foundation-rails.gemspec +5 -5
  5. data/lib/foundation/rails/version.rb +1 -1
  6. data/lib/generators/foundation/templates/_settings.scss +37 -11
  7. data/vendor/assets/js/foundation.cjs.js +1060 -370
  8. data/vendor/assets/js/foundation.cjs.js.map +1 -1
  9. data/vendor/assets/js/foundation.es6.js +926 -326
  10. data/vendor/assets/js/foundation.es6.js.map +1 -1
  11. data/vendor/assets/js/foundation.esm.js +1048 -358
  12. data/vendor/assets/js/foundation.esm.js.map +1 -1
  13. data/vendor/assets/js/foundation.js +1063 -393
  14. data/vendor/assets/js/foundation.js.map +1 -1
  15. data/vendor/assets/js/foundation.min.js +1 -1
  16. data/vendor/assets/js/foundation.min.js.map +1 -1
  17. data/vendor/assets/js/plugins/foundation.abide.js +201 -11
  18. data/vendor/assets/js/plugins/foundation.abide.js.map +1 -1
  19. data/vendor/assets/js/plugins/foundation.abide.min.js +1 -1
  20. data/vendor/assets/js/plugins/foundation.abide.min.js.map +1 -1
  21. data/vendor/assets/js/plugins/foundation.accordion.js +22 -19
  22. data/vendor/assets/js/plugins/foundation.accordion.js.map +1 -1
  23. data/vendor/assets/js/plugins/foundation.accordion.min.js +1 -1
  24. data/vendor/assets/js/plugins/foundation.accordion.min.js.map +1 -1
  25. data/vendor/assets/js/plugins/foundation.accordionMenu.js +2 -4
  26. data/vendor/assets/js/plugins/foundation.accordionMenu.js.map +1 -1
  27. data/vendor/assets/js/plugins/foundation.accordionMenu.min.js +1 -1
  28. data/vendor/assets/js/plugins/foundation.accordionMenu.min.js.map +1 -1
  29. data/vendor/assets/js/plugins/foundation.core.js +140 -28
  30. data/vendor/assets/js/plugins/foundation.core.js.map +1 -1
  31. data/vendor/assets/js/plugins/foundation.core.min.js +1 -1
  32. data/vendor/assets/js/plugins/foundation.core.min.js.map +1 -1
  33. data/vendor/assets/js/plugins/foundation.drilldown.js +29 -19
  34. data/vendor/assets/js/plugins/foundation.drilldown.js.map +1 -1
  35. data/vendor/assets/js/plugins/foundation.drilldown.min.js +1 -1
  36. data/vendor/assets/js/plugins/foundation.drilldown.min.js.map +1 -1
  37. data/vendor/assets/js/plugins/foundation.dropdown.js +30 -13
  38. data/vendor/assets/js/plugins/foundation.dropdown.js.map +1 -1
  39. data/vendor/assets/js/plugins/foundation.dropdown.min.js +1 -1
  40. data/vendor/assets/js/plugins/foundation.dropdown.min.js.map +1 -1
  41. data/vendor/assets/js/plugins/foundation.dropdownMenu.js +67 -38
  42. data/vendor/assets/js/plugins/foundation.dropdownMenu.js.map +1 -1
  43. data/vendor/assets/js/plugins/foundation.dropdownMenu.min.js +1 -1
  44. data/vendor/assets/js/plugins/foundation.dropdownMenu.min.js.map +1 -1
  45. data/vendor/assets/js/plugins/foundation.equalizer.js +1 -1
  46. data/vendor/assets/js/plugins/foundation.equalizer.min.js +1 -1
  47. data/vendor/assets/js/plugins/foundation.equalizer.min.js.map +1 -1
  48. data/vendor/assets/js/plugins/foundation.interchange.js +48 -13
  49. data/vendor/assets/js/plugins/foundation.interchange.js.map +1 -1
  50. data/vendor/assets/js/plugins/foundation.interchange.min.js +1 -1
  51. data/vendor/assets/js/plugins/foundation.interchange.min.js.map +1 -1
  52. data/vendor/assets/js/plugins/foundation.magellan.js +340 -12
  53. data/vendor/assets/js/plugins/foundation.magellan.js.map +1 -1
  54. data/vendor/assets/js/plugins/foundation.magellan.min.js +1 -1
  55. data/vendor/assets/js/plugins/foundation.magellan.min.js.map +1 -1
  56. data/vendor/assets/js/plugins/foundation.offcanvas.js +234 -56
  57. data/vendor/assets/js/plugins/foundation.offcanvas.js.map +1 -1
  58. data/vendor/assets/js/plugins/foundation.offcanvas.min.js +1 -1
  59. data/vendor/assets/js/plugins/foundation.offcanvas.min.js.map +1 -1
  60. data/vendor/assets/js/plugins/foundation.orbit.js +31 -4
  61. data/vendor/assets/js/plugins/foundation.orbit.js.map +1 -1
  62. data/vendor/assets/js/plugins/foundation.orbit.min.js +1 -1
  63. data/vendor/assets/js/plugins/foundation.orbit.min.js.map +1 -1
  64. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.js +91 -18
  65. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.js.map +1 -1
  66. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.min.js +1 -1
  67. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.min.js.map +1 -1
  68. data/vendor/assets/js/plugins/foundation.responsiveMenu.js +1 -1
  69. data/vendor/assets/js/plugins/foundation.responsiveMenu.min.js +1 -1
  70. data/vendor/assets/js/plugins/foundation.responsiveMenu.min.js.map +1 -1
  71. data/vendor/assets/js/plugins/foundation.responsiveToggle.js +1 -1
  72. data/vendor/assets/js/plugins/foundation.responsiveToggle.min.js +1 -1
  73. data/vendor/assets/js/plugins/foundation.responsiveToggle.min.js.map +1 -1
  74. data/vendor/assets/js/plugins/foundation.reveal.js +19 -12
  75. data/vendor/assets/js/plugins/foundation.reveal.js.map +1 -1
  76. data/vendor/assets/js/plugins/foundation.reveal.min.js +1 -1
  77. data/vendor/assets/js/plugins/foundation.reveal.min.js.map +1 -1
  78. data/vendor/assets/js/plugins/foundation.slider.js +20 -15
  79. data/vendor/assets/js/plugins/foundation.slider.js.map +1 -1
  80. data/vendor/assets/js/plugins/foundation.slider.min.js +1 -1
  81. data/vendor/assets/js/plugins/foundation.slider.min.js.map +1 -1
  82. data/vendor/assets/js/plugins/foundation.smoothScroll.js +2 -2
  83. data/vendor/assets/js/plugins/foundation.smoothScroll.js.map +1 -1
  84. data/vendor/assets/js/plugins/foundation.smoothScroll.min.js +1 -1
  85. data/vendor/assets/js/plugins/foundation.smoothScroll.min.js.map +1 -1
  86. data/vendor/assets/js/plugins/foundation.sticky.js +26 -18
  87. data/vendor/assets/js/plugins/foundation.sticky.js.map +1 -1
  88. data/vendor/assets/js/plugins/foundation.sticky.min.js +1 -1
  89. data/vendor/assets/js/plugins/foundation.sticky.min.js.map +1 -1
  90. data/vendor/assets/js/plugins/foundation.tabs.js +24 -21
  91. data/vendor/assets/js/plugins/foundation.tabs.js.map +1 -1
  92. data/vendor/assets/js/plugins/foundation.tabs.min.js +1 -1
  93. data/vendor/assets/js/plugins/foundation.tabs.min.js.map +1 -1
  94. data/vendor/assets/js/plugins/foundation.toggler.js +24 -9
  95. data/vendor/assets/js/plugins/foundation.toggler.js.map +1 -1
  96. data/vendor/assets/js/plugins/foundation.toggler.min.js +1 -1
  97. data/vendor/assets/js/plugins/foundation.toggler.min.js.map +1 -1
  98. data/vendor/assets/js/plugins/foundation.tooltip.js +31 -18
  99. data/vendor/assets/js/plugins/foundation.tooltip.js.map +1 -1
  100. data/vendor/assets/js/plugins/foundation.tooltip.min.js +1 -1
  101. data/vendor/assets/js/plugins/foundation.tooltip.min.js.map +1 -1
  102. data/vendor/assets/js/plugins/foundation.util.box.js +1 -59
  103. data/vendor/assets/js/plugins/foundation.util.box.js.map +1 -1
  104. data/vendor/assets/js/plugins/foundation.util.box.min.js +1 -1
  105. data/vendor/assets/js/plugins/foundation.util.box.min.js.map +1 -1
  106. data/vendor/assets/js/plugins/foundation.util.imageLoader.js +1 -1
  107. data/vendor/assets/js/plugins/foundation.util.imageLoader.min.js +1 -1
  108. data/vendor/assets/js/plugins/foundation.util.imageLoader.min.js.map +1 -1
  109. data/vendor/assets/js/plugins/foundation.util.keyboard.js +9 -8
  110. data/vendor/assets/js/plugins/foundation.util.keyboard.js.map +1 -1
  111. data/vendor/assets/js/plugins/foundation.util.keyboard.min.js +1 -1
  112. data/vendor/assets/js/plugins/foundation.util.keyboard.min.js.map +1 -1
  113. data/vendor/assets/js/plugins/foundation.util.mediaQuery.js +121 -17
  114. data/vendor/assets/js/plugins/foundation.util.mediaQuery.js.map +1 -1
  115. data/vendor/assets/js/plugins/foundation.util.mediaQuery.min.js +1 -1
  116. data/vendor/assets/js/plugins/foundation.util.mediaQuery.min.js.map +1 -1
  117. data/vendor/assets/js/plugins/foundation.util.motion.js +1 -2
  118. data/vendor/assets/js/plugins/foundation.util.motion.js.map +1 -1
  119. data/vendor/assets/js/plugins/foundation.util.motion.min.js +1 -1
  120. data/vendor/assets/js/plugins/foundation.util.motion.min.js.map +1 -1
  121. data/vendor/assets/js/plugins/foundation.util.nest.js +1 -1
  122. data/vendor/assets/js/plugins/foundation.util.nest.min.js +1 -1
  123. data/vendor/assets/js/plugins/foundation.util.nest.min.js.map +1 -1
  124. data/vendor/assets/js/plugins/foundation.util.timer.js +1 -1
  125. data/vendor/assets/js/plugins/foundation.util.timer.min.js +1 -1
  126. data/vendor/assets/js/plugins/foundation.util.timer.min.js.map +1 -1
  127. data/vendor/assets/js/plugins/foundation.util.touch.js +2 -2
  128. data/vendor/assets/js/plugins/foundation.util.touch.js.map +1 -1
  129. data/vendor/assets/js/plugins/foundation.util.touch.min.js +1 -1
  130. data/vendor/assets/js/plugins/foundation.util.touch.min.js.map +1 -1
  131. data/vendor/assets/js/plugins/foundation.util.triggers.js +3 -2
  132. data/vendor/assets/js/plugins/foundation.util.triggers.js.map +1 -1
  133. data/vendor/assets/js/plugins/foundation.util.triggers.min.js +1 -1
  134. data/vendor/assets/js/plugins/foundation.util.triggers.min.js.map +1 -1
  135. data/vendor/assets/scss/components/_accordion.scss +10 -2
  136. data/vendor/assets/scss/components/_button-group.scss +37 -10
  137. data/vendor/assets/scss/components/_button.scss +119 -104
  138. data/vendor/assets/scss/components/_callout.scss +12 -10
  139. data/vendor/assets/scss/components/_close-button.scss +28 -3
  140. data/vendor/assets/scss/components/_menu.scss +5 -1
  141. data/vendor/assets/scss/components/_off-canvas.scss +6 -1
  142. data/vendor/assets/scss/components/_pagination.scss +10 -2
  143. data/vendor/assets/scss/components/_switch.scss +14 -0
  144. data/vendor/assets/scss/components/_table.scss +1 -0
  145. data/vendor/assets/scss/forms/_select.scss +4 -0
  146. data/vendor/assets/scss/foundation.scss +8 -3
  147. data/vendor/assets/scss/grid/_classes.scss +25 -12
  148. data/vendor/assets/scss/grid/_column.scss +1 -31
  149. data/vendor/assets/scss/prototype/_rounded.scss +6 -2
  150. data/vendor/assets/scss/prototype/_spacing.scss +7 -5
  151. data/vendor/assets/scss/settings/_settings.scss +37 -11
  152. data/vendor/assets/scss/typography/_base.scss +16 -51
  153. data/vendor/assets/scss/typography/_helpers.scss +100 -0
  154. data/vendor/assets/scss/typography/_print.scss +8 -2
  155. data/vendor/assets/scss/util/_breakpoint.scss +172 -97
  156. data/vendor/assets/scss/util/_math.scss +75 -0
  157. data/vendor/assets/scss/util/_mixins.scss +81 -25
  158. data/vendor/assets/scss/util/_value.scss +40 -0
  159. data/vendor/assets/scss/xy-grid/_cell.scss +186 -99
  160. data/vendor/assets/scss/xy-grid/_classes.scss +26 -29
  161. data/vendor/assets/scss/xy-grid/_collapse.scss +2 -2
  162. data/vendor/assets/scss/xy-grid/_layout.scss +10 -8
  163. data/vendor/assets/scss/xy-grid/_position.scss +32 -9
  164. metadata +8 -9
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.nest\"],\"amd\":\"./foundation.util.nest\",\"commonjs\":\"./foundation.util.nest\",\"commonjs2\":\"./foundation.util.nest\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.drilldown.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.drilldown.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_box__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_nest__","__WEBPACK_EXTERNAL_MODULE_jquery__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","_foundation_drilldown__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Drilldown","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__","_foundation_util_box__WEBPACK_IMPORTED_MODULE_4__","Plugin","element","options","this","$element","$","extend","defaults","data","className","_init","Keyboard","register","ENTER","SPACE","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ESCAPE","TAB","SHIFT_TAB","Nest","Feather","autoApplyClass","addClass","attr","role","aria-multiselectable","$submenuAnchors","find","children","$submenus","parent","$menuItems","not","$currentMenu","GetYoDigits","_prepareMenu","_registerEvents","_keyboardEvents","_this","each","$link","$sub","parentLink","clone","prependTo","wrap","removeAttr","aria-hidden","tabindex","_events","$menu","length","backButtonPosition","append","backButton","prepend","console","error","_back","autoHeight","hasClass","$wrapper","wrapper","animateHeight","css","_getMaxDims","max-width","min-height","$elem","off","on","e","target","parentsUntil","stopImmediatePropagation","preventDefault","_show","closeOnClick","$body","contains","_hideAll","scrollTop","_bindHandler","_scrollTop","_resize","$scrollTopElement","scrollTopElement","scrollPos","parseInt","offset","top","scrollTopOffset","stop","animate","animationDuration","animationEasing","trigger","add","$prevElement","$nextElement","$elements","is","eq","Math","max","min","handleKey","next","one","transitionend","first","focus","previous","_hide","setTimeout","up","down","close","siblings","open","handled","height","closest","removeClass","parentSubMenu","autoFocus","index","_setHideSubMenuClasses","isLastChild","_setShowSubMenuClasses","$submenu","blur","maxHeight","result","Box","GetDimensions","concat","getBoundingClientRect","width","Burn","unwrap","remove","end","detach","removeData"],"mappings":"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","file":"foundation.drilldown.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.box\", \"./foundation.util.keyboard\", \"./foundation.util.nest\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.drilldown\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.drilldown\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__;","import { Foundation } from './foundation.core';\n\nimport { Drilldown } from '../../foundation.drilldown';\nFoundation.plugin(Drilldown, 'Drilldown');\n\nexport { Foundation, Drilldown };\n","'use strict';\n\nimport $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits, transitionend } from './foundation.core.utils';\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Drilldown module.\n * @module foundation.drilldown\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n * @requires foundation.util.box\n */\n\nclass Drilldown extends Plugin {\n /**\n * Creates a new instance of a drilldown menu.\n * @class\n * @name Drilldown\n * @param {jQuery} element - jQuery object to make into an accordion menu.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options);\n this.className = 'Drilldown'; // ie9 back compat\n\n this._init();\n\n Keyboard.register('Drilldown', {\n 'ENTER': 'open',\n 'SPACE': 'open',\n 'ARROW_RIGHT': 'next',\n 'ARROW_UP': 'up',\n 'ARROW_DOWN': 'down',\n 'ARROW_LEFT': 'previous',\n 'ESCAPE': 'close',\n 'TAB': 'down',\n 'SHIFT_TAB': 'up'\n });\n }\n\n /**\n * Initializes the drilldown by creating jQuery collections of elements\n * @private\n */\n _init() {\n Nest.Feather(this.$element, 'drilldown');\n\n if(this.options.autoApplyClass) {\n this.$element.addClass('drilldown');\n }\n\n this.$element.attr({\n 'role': 'tree',\n 'aria-multiselectable': false\n });\n this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');\n this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');\n this.$menuItems = this.$element.find('li').not('.js-drilldown-back').attr('role', 'treeitem').find('a');\n\n // Set the main menu as current by default (unless a submenu is selected)\n // Used to set the wrapper height when the drilldown is closed/reopened from any (sub)menu\n this.$currentMenu = this.$element;\n\n this.$element.attr('data-mutate', (this.$element.attr('data-drilldown') || GetYoDigits(6, 'drilldown')));\n\n this._prepareMenu();\n this._registerEvents();\n\n this._keyboardEvents();\n }\n\n /**\n * prepares drilldown menu by setting attributes to links and elements\n * sets a min height to prevent content jumping\n * wraps the element if not already wrapped\n * @private\n * @function\n */\n _prepareMenu() {\n var _this = this;\n // if(!this.options.holdOpen){\n // this._menuLinkEvents();\n // }\n this.$submenuAnchors.each(function(){\n var $link = $(this);\n var $sub = $link.parent();\n if(_this.options.parentLink){\n $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-drilldown-submenu-item\" role=\"menuitem\"></li>');\n }\n $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);\n $link.children('[data-submenu]')\n .attr({\n 'aria-hidden': true,\n 'tabindex': 0,\n 'role': 'group'\n });\n _this._events($link);\n });\n this.$submenus.each(function(){\n var $menu = $(this),\n $back = $menu.find('.js-drilldown-back');\n if(!$back.length){\n switch (_this.options.backButtonPosition) {\n case \"bottom\":\n $menu.append(_this.options.backButton);\n break;\n case \"top\":\n $menu.prepend(_this.options.backButton);\n break;\n default:\n console.error(\"Unsupported backButtonPosition value '\" + _this.options.backButtonPosition + \"'\");\n }\n }\n _this._back($menu);\n });\n\n this.$submenus.addClass('invisible');\n if(!this.options.autoHeight) {\n this.$submenus.addClass('drilldown-submenu-cover-previous');\n }\n\n // create a wrapper on element if it doesn't exist.\n if(!this.$element.parent().hasClass('is-drilldown')){\n this.$wrapper = $(this.options.wrapper).addClass('is-drilldown');\n if(this.options.animateHeight) this.$wrapper.addClass('animate-height');\n this.$element.wrap(this.$wrapper);\n }\n // set wrapper\n this.$wrapper = this.$element.parent();\n this.$wrapper.css(this._getMaxDims());\n }\n\n _resize() {\n this.$wrapper.css({'max-width': 'none', 'min-height': 'none'});\n // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths\n this.$wrapper.css(this._getMaxDims());\n }\n\n /**\n * Adds event handlers to elements in the menu.\n * @function\n * @private\n * @param {jQuery} $elem - the current menu item to add handlers to.\n */\n _events($elem) {\n var _this = this;\n\n $elem.off('click.zf.drilldown')\n .on('click.zf.drilldown', function(e){\n if($(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')){\n e.stopImmediatePropagation();\n e.preventDefault();\n }\n\n // if(e.target !== e.currentTarget.firstElementChild){\n // return false;\n // }\n _this._show($elem.parent('li'));\n\n if(_this.options.closeOnClick){\n var $body = $('body');\n $body.off('.zf.drilldown').on('click.zf.drilldown', function(e){\n if (e.target === _this.$element[0] || $.contains(_this.$element[0], e.target)) { return; }\n e.preventDefault();\n _this._hideAll();\n $body.off('.zf.drilldown');\n });\n }\n });\n }\n\n /**\n * Adds event handlers to the menu element.\n * @function\n * @private\n */\n _registerEvents() {\n if(this.options.scrollTop){\n this._bindHandler = this._scrollTop.bind(this);\n this.$element.on('open.zf.drilldown hide.zf.drilldown closed.zf.drilldown',this._bindHandler);\n }\n this.$element.on('mutateme.zf.trigger', this._resize.bind(this));\n }\n\n /**\n * Scroll to Top of Element or data-scroll-top-element\n * @function\n * @fires Drilldown#scrollme\n */\n _scrollTop() {\n var _this = this;\n var $scrollTopElement = _this.options.scrollTopElement!=''?$(_this.options.scrollTopElement):_this.$element,\n scrollPos = parseInt($scrollTopElement.offset().top+_this.options.scrollTopOffset, 10);\n $('html, body').stop(true).animate({ scrollTop: scrollPos }, _this.options.animationDuration, _this.options.animationEasing,function(){\n /**\n * Fires after the menu has scrolled\n * @event Drilldown#scrollme\n */\n if(this===$('html')[0])_this.$element.trigger('scrollme.zf.drilldown');\n });\n }\n\n /**\n * Adds keydown event listener to `li`'s in the menu.\n * @private\n */\n _keyboardEvents() {\n var _this = this;\n\n this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function(e){\n var $element = $(this),\n $elements = $element.parent('li').parent('ul').children('li').children('a'),\n $prevElement,\n $nextElement;\n\n $elements.each(function(i) {\n if ($(this).is($element)) {\n $prevElement = $elements.eq(Math.max(0, i-1));\n $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n return;\n }\n });\n\n Keyboard.handleKey(e, 'Drilldown', {\n next: function() {\n if ($element.is(_this.$submenuAnchors)) {\n _this._show($element.parent('li'));\n $element.parent('li').one(transitionend($element), function(){\n $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n });\n return true;\n }\n },\n previous: function() {\n _this._hide($element.parent('li').parent('ul'));\n $element.parent('li').parent('ul').one(transitionend($element), function(){\n setTimeout(function() {\n $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n }, 1);\n });\n return true;\n },\n up: function() {\n $prevElement.focus();\n // Don't tap focus on first element in root ul\n return !$element.is(_this.$element.find('> li:first-child > a'));\n },\n down: function() {\n $nextElement.focus();\n // Don't tap focus on last element in root ul\n return !$element.is(_this.$element.find('> li:last-child > a'));\n },\n close: function() {\n // Don't close on element in root ul\n if (!$element.is(_this.$element.find('> li > a'))) {\n _this._hide($element.parent().parent());\n $element.parent().parent().siblings('a').focus();\n }\n },\n open: function() {\n if (_this.options.parentLink && $element.attr('href')) { // Link with href\n return false;\n } else if (!$element.is(_this.$menuItems)) { // not menu item means back button\n _this._hide($element.parent('li').parent('ul'));\n $element.parent('li').parent('ul').one(transitionend($element), function(){\n setTimeout(function() {\n $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n }, 1);\n });\n return true;\n } else if ($element.is(_this.$submenuAnchors)) { // Sub menu item\n _this._show($element.parent('li'));\n $element.parent('li').one(transitionend($element), function(){\n $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n });\n return true;\n }\n },\n handled: function(preventDefault) {\n if (preventDefault) {\n e.preventDefault();\n }\n e.stopImmediatePropagation();\n }\n });\n }); // end keyboardAccess\n }\n\n /**\n * Closes all open elements, and returns to root menu.\n * @function\n * @fires Drilldown#closed\n */\n _hideAll() {\n var $elem = this.$element.find('.is-drilldown-submenu.is-active').addClass('is-closing');\n if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});\n $elem.one(transitionend($elem), function(e){\n $elem.removeClass('is-active is-closing');\n });\n /**\n * Fires when the menu is fully closed.\n * @event Drilldown#closed\n */\n this.$element.trigger('closed.zf.drilldown');\n }\n\n /**\n * Adds event listener for each `back` button, and closes open menus.\n * @function\n * @fires Drilldown#back\n * @param {jQuery} $elem - the current sub-menu to add `back` event.\n */\n _back($elem) {\n var _this = this;\n $elem.off('click.zf.drilldown');\n $elem.children('.js-drilldown-back')\n .on('click.zf.drilldown', function(e){\n e.stopImmediatePropagation();\n // console.log('mouseup on back');\n _this._hide($elem);\n\n // If there is a parent submenu, call show\n let parentSubMenu = $elem.parent('li').parent('ul').parent('li');\n if (parentSubMenu.length) {\n _this._show(parentSubMenu);\n }\n });\n }\n\n /**\n * Adds event listener to menu items w/o submenus to close open menus on click.\n * @function\n * @private\n */\n _menuLinkEvents() {\n var _this = this;\n this.$menuItems.not('.is-drilldown-submenu-parent')\n .off('click.zf.drilldown')\n .on('click.zf.drilldown', function(e){\n // e.stopImmediatePropagation();\n setTimeout(function(){\n _this._hideAll();\n }, 0);\n });\n }\n\n /**\n * Sets the CSS classes for submenu to show it.\n * @function\n * @private\n * @param {jQuery} $elem - the target submenu (`ul` tag)\n * @param {boolean} trigger - trigger drilldown event\n */\n _setShowSubMenuClasses($elem, trigger) {\n $elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n $elem.parent('li').attr('aria-expanded', true);\n if (trigger === true) {\n this.$element.trigger('open.zf.drilldown', [$elem]);\n }\n }\n\n /**\n * Sets the CSS classes for submenu to hide it.\n * @function\n * @private\n * @param {jQuery} $elem - the target submenu (`ul` tag)\n * @param {boolean} trigger - trigger drilldown event\n */\n _setHideSubMenuClasses($elem, trigger) {\n $elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);\n $elem.parent('li').attr('aria-expanded', false);\n if (trigger === true) {\n $elem.trigger('hide.zf.drilldown', [$elem]);\n }\n }\n\n /**\n * Opens a specific drilldown (sub)menu no matter which (sub)menu in it is currently visible.\n * Compared to _show() this lets you jump into any submenu without clicking through every submenu on the way to it.\n * @function\n * @fires Drilldown#open\n * @param {jQuery} $elem - the target (sub)menu (`ul` tag)\n * @param {boolean} autoFocus - if true the first link in the target (sub)menu gets auto focused\n */\n _showMenu($elem, autoFocus) {\n\n var _this = this;\n\n // Reset drilldown\n var $expandedSubmenus = this.$element.find('li[aria-expanded=\"true\"] > ul[data-submenu]');\n $expandedSubmenus.each(function(index) {\n _this._setHideSubMenuClasses($(this));\n });\n\n // Save the menu as the currently displayed one.\n this.$currentMenu = $elem;\n\n // If target menu is root, focus first link & exit\n if ($elem.is('[data-drilldown]')) {\n if (autoFocus === true) $elem.find('li[role=\"treeitem\"] > a').first().focus();\n if (this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));\n return;\n }\n\n // Find all submenus on way to root incl. the element itself\n var $submenus = $elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]');\n\n // Open target menu and all submenus on its way to root\n $submenus.each(function(index) {\n\n // Update height of first child (target menu) if autoHeight option true\n if (index === 0 && _this.options.autoHeight) {\n _this.$wrapper.css('height', $(this).data('calcHeight'));\n }\n\n var isLastChild = index == $submenus.length - 1;\n\n // Add transitionsend listener to last child (root due to reverse order) to open target menu's first link\n // Last child makes sure the event gets always triggered even if going through several menus\n if (isLastChild === true) {\n $(this).one(transitionend($(this)), () => {\n if (autoFocus === true) {\n $elem.find('li[role=\"treeitem\"] > a').first().focus();\n }\n });\n }\n\n _this._setShowSubMenuClasses($(this), isLastChild);\n });\n }\n\n /**\n * Opens a submenu.\n * @function\n * @fires Drilldown#open\n * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.\n */\n _show($elem) {\n const $submenu = $elem.children('[data-submenu]');\n\n $elem.attr('aria-expanded', true);\n\n this.$currentMenu = $submenu;\n $submenu.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n if (this.options.autoHeight) {\n this.$wrapper.css({ height: $submenu.data('calcHeight') });\n }\n\n /**\n * Fires when the submenu has opened.\n * @event Drilldown#open\n */\n this.$element.trigger('open.zf.drilldown', [$elem]);\n }\n\n /**\n * Hides a submenu\n * @function\n * @fires Drilldown#hide\n * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.\n */\n _hide($elem) {\n if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});\n var _this = this;\n $elem.parent('li').attr('aria-expanded', false);\n $elem.attr('aria-hidden', true);\n $elem.addClass('is-closing')\n .one(transitionend($elem), function(){\n $elem.removeClass('is-active is-closing');\n $elem.blur().addClass('invisible');\n });\n /**\n * Fires when the submenu has closed.\n * @event Drilldown#hide\n */\n $elem.trigger('hide.zf.drilldown', [$elem]);\n }\n\n /**\n * Iterates through the nested menus to calculate the min-height, and max-width for the menu.\n * Prevents content jumping.\n * @function\n * @private\n */\n _getMaxDims() {\n var maxHeight = 0, result = {}, _this = this;\n\n // Recalculate menu heights and total max height\n this.$submenus.add(this.$element).each(function(){\n var numOfElems = $(this).children('li').length;\n var height = Box.GetDimensions(this).height;\n\n maxHeight = height > maxHeight ? height : maxHeight;\n\n if(_this.options.autoHeight) {\n $(this).data('calcHeight',height);\n }\n });\n\n if (this.options.autoHeight)\n result['height'] = this.$currentMenu.data('calcHeight');\n else\n result['min-height'] = `${maxHeight}px`;\n\n result['max-width'] = `${this.$element[0].getBoundingClientRect().width}px`;\n\n return result;\n }\n\n /**\n * Destroys the Drilldown Menu\n * @function\n */\n _destroy() {\n if(this.options.scrollTop) this.$element.off('.zf.drilldown',this._bindHandler);\n this._hideAll();\n\t this.$element.off('mutateme.zf.trigger');\n Nest.Burn(this.$element, 'drilldown');\n this.$element.unwrap()\n .find('.js-drilldown-back, .is-submenu-parent-item').remove()\n .end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu')\n .end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');\n this.$submenuAnchors.each(function() {\n $(this).off('.zf.drilldown');\n });\n\n this.$element.find('[data-is-parent-link]').detach();\n this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');\n\n this.$element.find('a').each(function(){\n var $link = $(this);\n $link.removeAttr('tabindex');\n if($link.data('savedHref')){\n $link.attr('href', $link.data('savedHref')).removeData('savedHref');\n }else{ return; }\n });\n };\n}\n\nDrilldown.defaults = {\n /**\n * Drilldowns depend on styles in order to function properly; in the default build of Foundation these are\n * on the `drilldown` class. This option auto-applies this class to the drilldown upon initialization.\n * @option\n * @type {boolian}\n * @default true\n */\n autoApplyClass: true,\n /**\n * Markup used for JS generated back button. Prepended or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\\`) if copy and pasting.\n * @option\n * @type {string}\n * @default '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>'\n */\n backButton: '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>',\n /**\n * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.\n * @option\n * @type {string}\n * @default top\n */\n backButtonPosition: 'top',\n /**\n * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\\`) if copy and pasting.\n * @option\n * @type {string}\n * @default '<div></div>'\n */\n wrapper: '<div></div>',\n /**\n * Adds the parent link to the submenu.\n * @option\n * @type {boolean}\n * @default false\n */\n parentLink: false,\n /**\n * Allow the menu to return to root list on body click.\n * @option\n * @type {boolean}\n * @default false\n */\n closeOnClick: false,\n /**\n * Allow the menu to auto adjust height.\n * @option\n * @type {boolean}\n * @default false\n */\n autoHeight: false,\n /**\n * Animate the auto adjust height.\n * @option\n * @type {boolean}\n * @default false\n */\n animateHeight: false,\n /**\n * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button\n * @option\n * @type {boolean}\n * @default false\n */\n scrollTop: false,\n /**\n * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken\n * @option\n * @type {string}\n * @default ''\n */\n scrollTopElement: '',\n /**\n * ScrollTop offset\n * @option\n * @type {number}\n * @default 0\n */\n scrollTopOffset: 0,\n /**\n * Scroll animation duration\n * @option\n * @type {number}\n * @default 500\n */\n animationDuration: 500,\n /**\n * Scroll animation easing. Can be `'swing'` or `'linear'`.\n * @option\n * @type {string}\n * @see {@link https://api.jquery.com/animate|JQuery animate}\n * @default 'swing'\n */\n animationEasing: 'swing'\n // holdOpen: false\n};\n\nexport {Drilldown};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"]}
1
+ {"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.nest\"],\"amd\":\"./foundation.util.nest\",\"commonjs\":\"./foundation.util.nest\",\"commonjs2\":\"./foundation.util.nest\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.drilldown.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.drilldown.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_box__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_nest__","__WEBPACK_EXTERNAL_MODULE_jquery__","installedModules","__webpack_require__","m","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_drilldown__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Drilldown","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__","_foundation_util_box__WEBPACK_IMPORTED_MODULE_4__","Plugin","element","options","this","$element","$","extend","defaults","data","className","_init","Keyboard","register","ENTER","SPACE","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ESCAPE","TAB","SHIFT_TAB","Nest","Feather","autoApplyClass","addClass","attr","role","aria-multiselectable","$submenuAnchors","find","children","$submenus","parent","$menuItems","not","$currentMenu","GetYoDigits","_prepareMenu","_registerEvents","_keyboardEvents","_this","each","$link","$sub","parentLink","clone","prependTo","wrap","removeAttr","aria-hidden","tabindex","_events","$menu","length","backButtonPosition","append","backButton","prepend","console","error","_back","autoHeight","hasClass","$wrapper","wrapper","animateHeight","css","_getMaxDims","max-width","min-height","$elem","off","on","e","target","parentsUntil","preventDefault","_show","closeOnClick","$body","contains","_hideAll","scrollTop","_bindHandler","_scrollTop","bind","_resize","$scrollTopElement","scrollTopElement","scrollPos","parseInt","offset","top","scrollTopOffset","stop","animate","animationDuration","animationEasing","trigger","add","$prevElement","$nextElement","$elements","i","is","eq","Math","max","min","handleKey","next","one","transitionend","first","focus","previous","_hide","setTimeout","up","down","close","siblings","open","handled","_this2","calcHeight","closest","height","removeClass","parentSubMenu","autoFocus","index","_setHideSubMenuClasses","isLastChild","_setShowSubMenuClasses","$submenu","blur","maxHeight","result","Box","GetDimensions","concat","getBoundingClientRect","width","Burn","unwrap","remove","end","detach","removeData","c","name","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","object","property","prototype","hasOwnProperty","call","p","s","moduleId","l","modules"],"mappings":"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","file":"foundation.drilldown.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.box\", \"./foundation.util.keyboard\", \"./foundation.util.nest\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.drilldown\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.drilldown\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__;","import { Foundation } from './foundation.core';\n\nimport { Drilldown } from '../../foundation.drilldown';\nFoundation.plugin(Drilldown, 'Drilldown');\n\nexport { Foundation, Drilldown };\n","'use strict';\n\nimport $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits, transitionend } from './foundation.core.utils';\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Drilldown module.\n * @module foundation.drilldown\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n * @requires foundation.util.box\n */\n\nclass Drilldown extends Plugin {\n /**\n * Creates a new instance of a drilldown menu.\n * @class\n * @name Drilldown\n * @param {jQuery} element - jQuery object to make into an accordion menu.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options);\n this.className = 'Drilldown'; // ie9 back compat\n\n this._init();\n\n Keyboard.register('Drilldown', {\n 'ENTER': 'open',\n 'SPACE': 'open',\n 'ARROW_RIGHT': 'next',\n 'ARROW_UP': 'up',\n 'ARROW_DOWN': 'down',\n 'ARROW_LEFT': 'previous',\n 'ESCAPE': 'close',\n 'TAB': 'down',\n 'SHIFT_TAB': 'up'\n });\n }\n\n /**\n * Initializes the drilldown by creating jQuery collections of elements\n * @private\n */\n _init() {\n Nest.Feather(this.$element, 'drilldown');\n\n if(this.options.autoApplyClass) {\n this.$element.addClass('drilldown');\n }\n\n this.$element.attr({\n 'role': 'tree',\n 'aria-multiselectable': false\n });\n this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');\n this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');\n this.$menuItems = this.$element.find('li').not('.js-drilldown-back').attr('role', 'treeitem').find('a');\n\n // Set the main menu as current by default (unless a submenu is selected)\n // Used to set the wrapper height when the drilldown is closed/reopened from any (sub)menu\n this.$currentMenu = this.$element;\n\n this.$element.attr('data-mutate', (this.$element.attr('data-drilldown') || GetYoDigits(6, 'drilldown')));\n\n this._prepareMenu();\n this._registerEvents();\n\n this._keyboardEvents();\n }\n\n /**\n * prepares drilldown menu by setting attributes to links and elements\n * sets a min height to prevent content jumping\n * wraps the element if not already wrapped\n * @private\n * @function\n */\n _prepareMenu() {\n var _this = this;\n // if(!this.options.holdOpen){\n // this._menuLinkEvents();\n // }\n this.$submenuAnchors.each(function(){\n var $link = $(this);\n var $sub = $link.parent();\n if(_this.options.parentLink){\n $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-drilldown-submenu-item\" role=\"menuitem\"></li>');\n }\n $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);\n $link.children('[data-submenu]')\n .attr({\n 'aria-hidden': true,\n 'tabindex': 0,\n 'role': 'group'\n });\n _this._events($link);\n });\n this.$submenus.each(function(){\n var $menu = $(this),\n $back = $menu.find('.js-drilldown-back');\n if(!$back.length){\n switch (_this.options.backButtonPosition) {\n case \"bottom\":\n $menu.append(_this.options.backButton);\n break;\n case \"top\":\n $menu.prepend(_this.options.backButton);\n break;\n default:\n console.error(\"Unsupported backButtonPosition value '\" + _this.options.backButtonPosition + \"'\");\n }\n }\n _this._back($menu);\n });\n\n this.$submenus.addClass('invisible');\n if(!this.options.autoHeight) {\n this.$submenus.addClass('drilldown-submenu-cover-previous');\n }\n\n // create a wrapper on element if it doesn't exist.\n if(!this.$element.parent().hasClass('is-drilldown')){\n this.$wrapper = $(this.options.wrapper).addClass('is-drilldown');\n if(this.options.animateHeight) this.$wrapper.addClass('animate-height');\n this.$element.wrap(this.$wrapper);\n }\n // set wrapper\n this.$wrapper = this.$element.parent();\n this.$wrapper.css(this._getMaxDims());\n }\n\n _resize() {\n this.$wrapper.css({'max-width': 'none', 'min-height': 'none'});\n // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths\n this.$wrapper.css(this._getMaxDims());\n }\n\n /**\n * Adds event handlers to elements in the menu.\n * @function\n * @private\n * @param {jQuery} $elem - the current menu item to add handlers to.\n */\n _events($elem) {\n var _this = this;\n\n $elem.off('click.zf.drilldown')\n .on('click.zf.drilldown', function(e){\n if($(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')){\n e.preventDefault();\n }\n\n // if(e.target !== e.currentTarget.firstElementChild){\n // return false;\n // }\n _this._show($elem.parent('li'));\n\n if(_this.options.closeOnClick){\n var $body = $('body');\n $body.off('.zf.drilldown').on('click.zf.drilldown', function(e){\n if (e.target === _this.$element[0] || $.contains(_this.$element[0], e.target)) { return; }\n e.preventDefault();\n _this._hideAll();\n $body.off('.zf.drilldown');\n });\n }\n });\n }\n\n /**\n * Adds event handlers to the menu element.\n * @function\n * @private\n */\n _registerEvents() {\n if(this.options.scrollTop){\n this._bindHandler = this._scrollTop.bind(this);\n this.$element.on('open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown',this._bindHandler);\n }\n this.$element.on('mutateme.zf.trigger', this._resize.bind(this));\n }\n\n /**\n * Scroll to Top of Element or data-scroll-top-element\n * @function\n * @fires Drilldown#scrollme\n */\n _scrollTop() {\n var _this = this;\n var $scrollTopElement = _this.options.scrollTopElement!=''?$(_this.options.scrollTopElement):_this.$element,\n scrollPos = parseInt($scrollTopElement.offset().top+_this.options.scrollTopOffset, 10);\n $('html, body').stop(true).animate({ scrollTop: scrollPos }, _this.options.animationDuration, _this.options.animationEasing,function(){\n /**\n * Fires after the menu has scrolled\n * @event Drilldown#scrollme\n */\n if(this===$('html')[0])_this.$element.trigger('scrollme.zf.drilldown');\n });\n }\n\n /**\n * Adds keydown event listener to `li`'s in the menu.\n * @private\n */\n _keyboardEvents() {\n var _this = this;\n\n this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function(e){\n var $element = $(this),\n $elements = $element.parent('li').parent('ul').children('li').children('a'),\n $prevElement,\n $nextElement;\n\n $elements.each(function(i) {\n if ($(this).is($element)) {\n $prevElement = $elements.eq(Math.max(0, i-1));\n $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n return;\n }\n });\n\n Keyboard.handleKey(e, 'Drilldown', {\n next: function() {\n if ($element.is(_this.$submenuAnchors)) {\n _this._show($element.parent('li'));\n $element.parent('li').one(transitionend($element), function(){\n $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n });\n return true;\n }\n },\n previous: function() {\n _this._hide($element.parent('li').parent('ul'));\n $element.parent('li').parent('ul').one(transitionend($element), function(){\n setTimeout(function() {\n $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n }, 1);\n });\n return true;\n },\n up: function() {\n $prevElement.focus();\n // Don't tap focus on first element in root ul\n return !$element.is(_this.$element.find('> li:first-child > a'));\n },\n down: function() {\n $nextElement.focus();\n // Don't tap focus on last element in root ul\n return !$element.is(_this.$element.find('> li:last-child > a'));\n },\n close: function() {\n // Don't close on element in root ul\n if (!$element.is(_this.$element.find('> li > a'))) {\n _this._hide($element.parent().parent());\n $element.parent().parent().siblings('a').focus();\n }\n },\n open: function() {\n if (_this.options.parentLink && $element.attr('href')) { // Link with href\n return false;\n } else if (!$element.is(_this.$menuItems)) { // not menu item means back button\n _this._hide($element.parent('li').parent('ul'));\n $element.parent('li').parent('ul').one(transitionend($element), function(){\n setTimeout(function() {\n $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n }, 1);\n });\n return true;\n } else if ($element.is(_this.$submenuAnchors)) { // Sub menu item\n _this._show($element.parent('li'));\n $element.parent('li').one(transitionend($element), function(){\n $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n });\n return true;\n }\n },\n handled: function(preventDefault) {\n if (preventDefault) {\n e.preventDefault();\n }\n }\n });\n }); // end keyboardAccess\n }\n\n /**\n * Closes all open elements, and returns to root menu.\n * @function\n * @fires Drilldown#close\n * @fires Drilldown#closed\n */\n _hideAll() {\n var $elem = this.$element.find('.is-drilldown-submenu.is-active')\n $elem.addClass('is-closing');\n\n if (this.options.autoHeight) {\n const calcHeight = $elem.parent().closest('ul').data('calcHeight');\n this.$wrapper.css({ height: calcHeight });\n }\n\n /**\n * Fires when the menu is closing.\n * @event Drilldown#close\n */\n this.$element.trigger('close.zf.drilldown');\n\n $elem.one(transitionend($elem), () => {\n $elem.removeClass('is-active is-closing');\n\n /**\n * Fires when the menu is fully closed.\n * @event Drilldown#closed\n */\n this.$element.trigger('closed.zf.drilldown');\n });\n }\n\n /**\n * Adds event listener for each `back` button, and closes open menus.\n * @function\n * @fires Drilldown#back\n * @param {jQuery} $elem - the current sub-menu to add `back` event.\n */\n _back($elem) {\n var _this = this;\n $elem.off('click.zf.drilldown');\n $elem.children('.js-drilldown-back')\n .on('click.zf.drilldown', function(e){\n // console.log('mouseup on back');\n _this._hide($elem);\n\n // If there is a parent submenu, call show\n let parentSubMenu = $elem.parent('li').parent('ul').parent('li');\n if (parentSubMenu.length) {\n _this._show(parentSubMenu);\n }\n });\n }\n\n /**\n * Adds event listener to menu items w/o submenus to close open menus on click.\n * @function\n * @private\n */\n _menuLinkEvents() {\n var _this = this;\n this.$menuItems.not('.is-drilldown-submenu-parent')\n .off('click.zf.drilldown')\n .on('click.zf.drilldown', function(e){\n setTimeout(function(){\n _this._hideAll();\n }, 0);\n });\n }\n\n /**\n * Sets the CSS classes for submenu to show it.\n * @function\n * @private\n * @param {jQuery} $elem - the target submenu (`ul` tag)\n * @param {boolean} trigger - trigger drilldown event\n */\n _setShowSubMenuClasses($elem, trigger) {\n $elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n $elem.parent('li').attr('aria-expanded', true);\n if (trigger === true) {\n this.$element.trigger('open.zf.drilldown', [$elem]);\n }\n }\n\n /**\n * Sets the CSS classes for submenu to hide it.\n * @function\n * @private\n * @param {jQuery} $elem - the target submenu (`ul` tag)\n * @param {boolean} trigger - trigger drilldown event\n */\n _setHideSubMenuClasses($elem, trigger) {\n $elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);\n $elem.parent('li').attr('aria-expanded', false);\n if (trigger === true) {\n $elem.trigger('hide.zf.drilldown', [$elem]);\n }\n }\n\n /**\n * Opens a specific drilldown (sub)menu no matter which (sub)menu in it is currently visible.\n * Compared to _show() this lets you jump into any submenu without clicking through every submenu on the way to it.\n * @function\n * @fires Drilldown#open\n * @param {jQuery} $elem - the target (sub)menu (`ul` tag)\n * @param {boolean} autoFocus - if true the first link in the target (sub)menu gets auto focused\n */\n _showMenu($elem, autoFocus) {\n\n var _this = this;\n\n // Reset drilldown\n var $expandedSubmenus = this.$element.find('li[aria-expanded=\"true\"] > ul[data-submenu]');\n $expandedSubmenus.each(function(index) {\n _this._setHideSubMenuClasses($(this));\n });\n\n // Save the menu as the currently displayed one.\n this.$currentMenu = $elem;\n\n // If target menu is root, focus first link & exit\n if ($elem.is('[data-drilldown]')) {\n if (autoFocus === true) $elem.find('li[role=\"treeitem\"] > a').first().focus();\n if (this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));\n return;\n }\n\n // Find all submenus on way to root incl. the element itself\n var $submenus = $elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]');\n\n // Open target menu and all submenus on its way to root\n $submenus.each(function(index) {\n\n // Update height of first child (target menu) if autoHeight option true\n if (index === 0 && _this.options.autoHeight) {\n _this.$wrapper.css('height', $(this).data('calcHeight'));\n }\n\n var isLastChild = index == $submenus.length - 1;\n\n // Add transitionsend listener to last child (root due to reverse order) to open target menu's first link\n // Last child makes sure the event gets always triggered even if going through several menus\n if (isLastChild === true) {\n $(this).one(transitionend($(this)), () => {\n if (autoFocus === true) {\n $elem.find('li[role=\"treeitem\"] > a').first().focus();\n }\n });\n }\n\n _this._setShowSubMenuClasses($(this), isLastChild);\n });\n }\n\n /**\n * Opens a submenu.\n * @function\n * @fires Drilldown#open\n * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.\n */\n _show($elem) {\n const $submenu = $elem.children('[data-submenu]');\n\n $elem.attr('aria-expanded', true);\n\n this.$currentMenu = $submenu;\n $submenu.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n if (this.options.autoHeight) {\n this.$wrapper.css({ height: $submenu.data('calcHeight') });\n }\n\n /**\n * Fires when the submenu has opened.\n * @event Drilldown#open\n */\n this.$element.trigger('open.zf.drilldown', [$elem]);\n }\n\n /**\n * Hides a submenu\n * @function\n * @fires Drilldown#hide\n * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.\n */\n _hide($elem) {\n if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});\n var _this = this;\n $elem.parent('li').attr('aria-expanded', false);\n $elem.attr('aria-hidden', true);\n $elem.addClass('is-closing')\n .one(transitionend($elem), function(){\n $elem.removeClass('is-active is-closing');\n $elem.blur().addClass('invisible');\n });\n /**\n * Fires when the submenu has closed.\n * @event Drilldown#hide\n */\n $elem.trigger('hide.zf.drilldown', [$elem]);\n }\n\n /**\n * Iterates through the nested menus to calculate the min-height, and max-width for the menu.\n * Prevents content jumping.\n * @function\n * @private\n */\n _getMaxDims() {\n var maxHeight = 0, result = {}, _this = this;\n\n // Recalculate menu heights and total max height\n this.$submenus.add(this.$element).each(function(){\n var numOfElems = $(this).children('li').length;\n var height = Box.GetDimensions(this).height;\n\n maxHeight = height > maxHeight ? height : maxHeight;\n\n if(_this.options.autoHeight) {\n $(this).data('calcHeight',height);\n }\n });\n\n if (this.options.autoHeight)\n result['height'] = this.$currentMenu.data('calcHeight');\n else\n result['min-height'] = `${maxHeight}px`;\n\n result['max-width'] = `${this.$element[0].getBoundingClientRect().width}px`;\n\n return result;\n }\n\n /**\n * Destroys the Drilldown Menu\n * @function\n */\n _destroy() {\n if(this.options.scrollTop) this.$element.off('.zf.drilldown',this._bindHandler);\n this._hideAll();\n\t this.$element.off('mutateme.zf.trigger');\n Nest.Burn(this.$element, 'drilldown');\n this.$element.unwrap()\n .find('.js-drilldown-back, .is-submenu-parent-item').remove()\n .end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu')\n .end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');\n this.$submenuAnchors.each(function() {\n $(this).off('.zf.drilldown');\n });\n\n this.$element.find('[data-is-parent-link]').detach();\n this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');\n\n this.$element.find('a').each(function(){\n var $link = $(this);\n $link.removeAttr('tabindex');\n if($link.data('savedHref')){\n $link.attr('href', $link.data('savedHref')).removeData('savedHref');\n }else{ return; }\n });\n };\n}\n\nDrilldown.defaults = {\n /**\n * Drilldowns depend on styles in order to function properly; in the default build of Foundation these are\n * on the `drilldown` class. This option auto-applies this class to the drilldown upon initialization.\n * @option\n * @type {boolean}\n * @default true\n */\n autoApplyClass: true,\n /**\n * Markup used for JS generated back button. Prepended or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\\`) if copy and pasting.\n * @option\n * @type {string}\n * @default '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>'\n */\n backButton: '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>',\n /**\n * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.\n * @option\n * @type {string}\n * @default top\n */\n backButtonPosition: 'top',\n /**\n * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\\`) if copy and pasting.\n * @option\n * @type {string}\n * @default '<div></div>'\n */\n wrapper: '<div></div>',\n /**\n * Adds the parent link to the submenu.\n * @option\n * @type {boolean}\n * @default false\n */\n parentLink: false,\n /**\n * Allow the menu to return to root list on body click.\n * @option\n * @type {boolean}\n * @default false\n */\n closeOnClick: false,\n /**\n * Allow the menu to auto adjust height.\n * @option\n * @type {boolean}\n * @default false\n */\n autoHeight: false,\n /**\n * Animate the auto adjust height.\n * @option\n * @type {boolean}\n * @default false\n */\n animateHeight: false,\n /**\n * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button\n * @option\n * @type {boolean}\n * @default false\n */\n scrollTop: false,\n /**\n * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken\n * @option\n * @type {string}\n * @default ''\n */\n scrollTopElement: '',\n /**\n * ScrollTop offset\n * @option\n * @type {number}\n * @default 0\n */\n scrollTopOffset: 0,\n /**\n * Scroll animation duration\n * @option\n * @type {number}\n * @default 500\n */\n animationDuration: 500,\n /**\n * Scroll animation easing. Can be `'swing'` or `'linear'`.\n * @option\n * @type {string}\n * @see {@link https://api.jquery.com/animate|JQuery animate}\n * @default 'swing'\n */\n animationEasing: 'swing'\n // holdOpen: false\n};\n\nexport {Drilldown};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"]}
@@ -229,6 +229,7 @@ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || func
229
229
  * @module foundation.dropdown
230
230
  * @requires foundation.util.keyboard
231
231
  * @requires foundation.util.box
232
+ * @requires foundation.util.touch
232
233
  * @requires foundation.util.triggers
233
234
  */
234
235
 
@@ -258,8 +259,9 @@ function (_Positionable) {
258
259
  this.$element = element;
259
260
  this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Dropdown.defaults, this.$element.data(), options);
260
261
  this.className = 'Dropdown'; // ie9 back compat
261
- // Triggers init is idempotent, just need to make sure it is initialized
262
+ // Touch and Triggers init are idempotent, just need to make sure they are initialized
262
263
 
264
+ _foundation_util_touch__WEBPACK_IMPORTED_MODULE_5__["Touch"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);
263
265
  _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_4__["Triggers"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);
264
266
 
265
267
  this._init();
@@ -380,7 +382,8 @@ function (_Positionable) {
380
382
  }, {
381
383
  key: "_events",
382
384
  value: function _events() {
383
- var _this = this;
385
+ var _this = this,
386
+ hasTouch = 'ontouchstart' in window || typeof window.ontouchstart !== 'undefined';
384
387
 
385
388
  this.$element.on({
386
389
  'open.zf.trigger': this.open.bind(this),
@@ -388,8 +391,17 @@ function (_Positionable) {
388
391
  'toggle.zf.trigger': this.toggle.bind(this),
389
392
  'resizeme.zf.trigger': this._setPosition.bind(this)
390
393
  });
391
- this.$anchors.off('click.zf.trigger').on('click.zf.trigger', function () {
394
+ this.$anchors.off('click.zf.trigger').on('click.zf.trigger', function (e) {
392
395
  _this._setCurrentAnchor(this);
396
+
397
+ if (_this.options.forceFollow === false) {
398
+ // if forceFollow false, always prevent default action
399
+ e.preventDefault();
400
+ } else if (hasTouch && _this.options.hover && _this.$element.hasClass('is-open') === false) {
401
+ // if forceFollow true and hover option true, only prevent default action on 1st click
402
+ // on 2nd click (dropown opened) the default action (e.g. follow a href) gets executed
403
+ e.preventDefault();
404
+ }
393
405
  });
394
406
 
395
407
  if (this.options.hover) {
@@ -462,7 +474,7 @@ function (_Positionable) {
462
474
  var $body = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).not(this.$element),
463
475
  _this = this;
464
476
 
465
- $body.off('click.zf.dropdown').on('click.zf.dropdown', function (e) {
477
+ $body.off('click.zf.dropdown tap.zf.dropdown').on('click.zf.dropdown tap.zf.dropdown', function (e) {
466
478
  if (_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {
467
479
  return;
468
480
  }
@@ -473,7 +485,7 @@ function (_Positionable) {
473
485
 
474
486
  _this.close();
475
487
 
476
- $body.off('click.zf.dropdown');
488
+ $body.off('click.zf.dropdown tap.zf.dropdown');
477
489
  });
478
490
  }
479
491
  /**
@@ -581,7 +593,7 @@ function (_Positionable) {
581
593
  value: function _destroy() {
582
594
  this.$element.off('.zf.trigger').hide();
583
595
  this.$anchors.off('.zf.dropdown');
584
- jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).off('click.zf.dropdown');
596
+ jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).off('click.zf.dropdown tap.zf.dropdown');
585
597
  }
586
598
  }]);
587
599
 
@@ -693,7 +705,15 @@ Dropdown.defaults = {
693
705
  * @type {boolean}
694
706
  * @default false
695
707
  */
696
- closeOnClick: false
708
+ closeOnClick: false,
709
+
710
+ /**
711
+ * If true the default action of the toggle (e.g. follow a link with href) gets executed on click. If hover option is also true the default action gets prevented on first click for mobile / touch devices and executed on second click.
712
+ * @option
713
+ * @type {boolean}
714
+ * @default true
715
+ */
716
+ forceFollow: true
697
717
  };
698
718
 
699
719
 
@@ -880,9 +900,6 @@ function (_Plugin) {
880
900
  return false;
881
901
  }
882
902
 
883
- var $eleDims = _foundation_util_box__WEBPACK_IMPORTED_MODULE_0__["Box"].GetDimensions($element),
884
- $anchorDims = _foundation_util_box__WEBPACK_IMPORTED_MODULE_0__["Box"].GetDimensions($anchor);
885
-
886
903
  if (!this.options.allowOverlap) {
887
904
  // restore original position & alignment before checking overlap
888
905
  this.position = this.originalPosition;
@@ -892,7 +909,6 @@ function (_Plugin) {
892
909
  $element.offset(_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__["Box"].GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));
893
910
 
894
911
  if (!this.options.allowOverlap) {
895
- var overlaps = {};
896
912
  var minOverlap = 100000000; // default coordinates to how we start, in case we can't figure out better
897
913
 
898
914
  var minCoordinates = {
@@ -1061,8 +1077,9 @@ Triggers.Listeners.Basic = {
1061
1077
  }
1062
1078
  },
1063
1079
  closeableListener: function closeableListener(e) {
1080
+ var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable'); // Only close the first closable element. See https://git.io/zf-7833
1081
+
1064
1082
  e.stopPropagation();
1065
- var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable');
1066
1083
 
1067
1084
  if (animation !== '') {
1068
1085
  _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__["Motion"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {
@@ -1293,7 +1310,7 @@ Triggers.init = function ($, Foundation) {
1293
1310
  /*! no static exports found */
1294
1311
  /***/ (function(module, exports, __webpack_require__) {
1295
1312
 
1296
- module.exports = __webpack_require__(/*! /Users/ncoden/Documents/Documents/Projects/Programmation/Web/2016/Foundation/foundation-sites/js/entries/plugins/foundation.dropdown.js */"./js/entries/plugins/foundation.dropdown.js");
1313
+ module.exports = __webpack_require__(/*! /Volumes/Data/Development/Foundation/foundation-sites/js/entries/plugins/foundation.dropdown.js */"./js/entries/plugins/foundation.dropdown.js");
1297
1314
 
1298
1315
 
1299
1316
  /***/ }),
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/entries/plugins/foundation.dropdown.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.dropdown.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.positionable.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.util.triggers.js","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","plugin","Dropdown","element","options","$element","$","extend","defaults","data","className","Triggers","init","_init","Keyboard","register","$id","attr","$anchors","length","_setCurrentAnchor","first","parentClass","$parent","parents","$currentAnchor","GetYoDigits","_events","position","match","horizontalPosition","exec","removeClass","alignment","addClass","el","_this","on","open","bind","close","toggle","_setPosition","off","hover","bodyData","whatinput","clearTimeout","timeout","setTimeout","hoverDelay","ignoreMousedisappear","hoverPane","add","e","$target","visibleFocusableElements","findFocusable","handleKey","is","focus","preventDefault","$body","document","body","not","target","find","trigger","autoFocus","$focusable","eq","closeOnClick","_addBodyHandler","trapFocus","hasClass","releaseFocus","hide","Positionable","vOffset","hOffset","allowOverlap","allowBottomOverlap","POSITIONS","VERTICAL_ALIGNMENTS","HORIZONTAL_ALIGNMENTS","ALIGNMENTS","nextItem","item","array","currentIdx","indexOf","triedPositions","_getDefaultPosition","_getDefaultAlignment","originalPosition","originalAlignment","Rtl","_alignmentsExhausted","_realign","_addTriedPosition","push","isExhausted","i","$anchor","$eleDims","Box","GetDimensions","$anchorDims","offset","GetExplicitOffsets","_getVOffset","_getHOffset","overlaps","minOverlap","minCoordinates","_positionsExhausted","overlap","OverlapArea","_reposition","Plugin","MutationObserver","prefixes","window","triggers","type","split","forEach","id","Listeners","Basic","Global","Initializers","openListener","closeListener","toggleListener","closeableListener","stopPropagation","animation","Motion","animateOut","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","each","scrollListener","closeMeListener","pluginId","namespace","plugins","addClosemeListener","pluginName","yetiBoxes","plugNames","concat","console","error","listeners","map","name","join","debounceGlobalListener","debounce","listener","timer","args","Array","prototype","slice","call","arguments","apply","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","attributeName","pageYOffset","closest","elementObserver","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","onLoad","triggersInitialized","IHearYou"],"mappings":"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","file":"foundation.dropdown.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.util.keyboard\"), require(\"./foundation.core\"), require(\"jquery\"), require(\"./foundation.util.box\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.util.keyboard\", \"./foundation.core\", \"jquery\", \"./foundation.util.box\", \"./foundation.util.motion\", \"./foundation.util.touch\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.dropdown\"] = factory(require(\"./foundation.util.keyboard\"), require(\"./foundation.core\"), require(\"jquery\"), require(\"./foundation.util.box\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.dropdown\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;","import { Foundation } from './foundation.core';\n\nimport { Dropdown } from '../../foundation.dropdown';\nFoundation.plugin(Dropdown, 'Dropdown');\n\nexport { Foundation, Dropdown };\n","'use strict';\n\nimport $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { Positionable } from './foundation.positionable';\n\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Dropdown module.\n * @module foundation.dropdown\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.triggers\n */\nclass Dropdown extends Positionable {\n /**\n * Creates a new instance of a dropdown.\n * @class\n * @name Dropdown\n * @param {jQuery} element - jQuery object to make into a dropdown.\n * Object should be of the dropdown panel, rather than its anchor.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Dropdown.defaults, this.$element.data(), options);\n this.className = 'Dropdown'; // ie9 back compat\n\n // Triggers init is idempotent, just need to make sure it is initialized\n Triggers.init($);\n\n this._init();\n\n Keyboard.register('Dropdown', {\n 'ENTER': 'toggle',\n 'SPACE': 'toggle',\n 'ESCAPE': 'close'\n });\n }\n\n /**\n * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.\n * @function\n * @private\n */\n _init() {\n var $id = this.$element.attr('id');\n\n this.$anchors = $(`[data-toggle=\"${$id}\"]`).length ? $(`[data-toggle=\"${$id}\"]`) : $(`[data-open=\"${$id}\"]`);\n this.$anchors.attr({\n 'aria-controls': $id,\n 'data-is-focus': false,\n 'data-yeti-box': $id,\n 'aria-haspopup': true,\n 'aria-expanded': false\n });\n\n this._setCurrentAnchor(this.$anchors.first());\n\n if(this.options.parentClass){\n this.$parent = this.$element.parents('.' + this.options.parentClass);\n }else{\n this.$parent = null;\n }\n\n // Set [aria-labelledby] on the Dropdown if it is not set\n if (typeof this.$element.attr('aria-labelledby') === 'undefined') {\n // Get the anchor ID or create one\n if (typeof this.$currentAnchor.attr('id') === 'undefined') {\n this.$currentAnchor.attr('id', GetYoDigits(6, 'dd-anchor'));\n };\n\n this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));\n }\n\n this.$element.attr({\n 'aria-hidden': 'true',\n 'data-yeti-box': $id,\n 'data-resize': $id,\n });\n\n super._init();\n this._events();\n }\n\n _getDefaultPosition() {\n // handle legacy classnames\n var position = this.$element[0].className.match(/(top|left|right|bottom)/g);\n if(position) {\n return position[0];\n } else {\n return 'bottom'\n }\n }\n\n _getDefaultAlignment() {\n // handle legacy float approach\n var horizontalPosition = /float-(\\S+)/.exec(this.$currentAnchor.attr('class'));\n if(horizontalPosition) {\n return horizontalPosition[1];\n }\n\n return super._getDefaultAlignment();\n }\n\n\n\n /**\n * Sets the position and orientation of the dropdown pane, checks for collisions if allow-overlap is not true.\n * Recursively calls itself if a collision is detected, with a new position class.\n * @function\n * @private\n */\n _setPosition() {\n this.$element.removeClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n super._setPosition(this.$currentAnchor, this.$element, this.$parent);\n this.$element.addClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n }\n\n /**\n * Make it a current anchor.\n * Current anchor as the reference for the position of Dropdown panes.\n * @param {HTML} el - DOM element of the anchor.\n * @function\n * @private\n */\n _setCurrentAnchor(el) {\n this.$currentAnchor = $(el);\n }\n\n /**\n * Adds event listeners to the element utilizing the triggers utility library.\n * @function\n * @private\n */\n _events() {\n var _this = this;\n this.$element.on({\n 'open.zf.trigger': this.open.bind(this),\n 'close.zf.trigger': this.close.bind(this),\n 'toggle.zf.trigger': this.toggle.bind(this),\n 'resizeme.zf.trigger': this._setPosition.bind(this)\n });\n\n this.$anchors.off('click.zf.trigger')\n .on('click.zf.trigger', function() { _this._setCurrentAnchor(this); });\n\n if(this.options.hover){\n this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n .on('mouseenter.zf.dropdown', function(){\n _this._setCurrentAnchor(this);\n\n var bodyData = $('body').data();\n if(typeof(bodyData.whatinput) === 'undefined' || bodyData.whatinput === 'mouse') {\n clearTimeout(_this.timeout);\n _this.timeout = setTimeout(function(){\n _this.open();\n _this.$anchors.data('hover', true);\n }, _this.options.hoverDelay);\n }\n }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n clearTimeout(_this.timeout);\n _this.timeout = setTimeout(function(){\n _this.close();\n _this.$anchors.data('hover', false);\n }, _this.options.hoverDelay);\n }));\n if(this.options.hoverPane){\n this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n .on('mouseenter.zf.dropdown', function(){\n clearTimeout(_this.timeout);\n }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n clearTimeout(_this.timeout);\n _this.timeout = setTimeout(function(){\n _this.close();\n _this.$anchors.data('hover', false);\n }, _this.options.hoverDelay);\n }));\n }\n }\n this.$anchors.add(this.$element).on('keydown.zf.dropdown', function(e) {\n\n var $target = $(this),\n visibleFocusableElements = Keyboard.findFocusable(_this.$element);\n\n Keyboard.handleKey(e, 'Dropdown', {\n open: function() {\n if ($target.is(_this.$anchors) && !$target.is('input, textarea')) {\n _this.open();\n _this.$element.attr('tabindex', -1).focus();\n e.preventDefault();\n }\n },\n close: function() {\n _this.close();\n _this.$anchors.focus();\n }\n });\n });\n }\n\n /**\n * Adds an event handler to the body to close any dropdowns on a click.\n * @function\n * @private\n */\n _addBodyHandler() {\n var $body = $(document.body).not(this.$element),\n _this = this;\n $body.off('click.zf.dropdown')\n .on('click.zf.dropdown', function(e){\n if(_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {\n return;\n }\n if(_this.$element.is(e.target) || _this.$element.find(e.target).length) {\n return;\n }\n _this.close();\n $body.off('click.zf.dropdown');\n });\n }\n\n /**\n * Opens the dropdown pane, and fires a bubbling event to close other dropdowns.\n * @function\n * @fires Dropdown#closeme\n * @fires Dropdown#show\n */\n open() {\n // var _this = this;\n /**\n * Fires to close other open dropdowns, typically when dropdown is opening\n * @event Dropdown#closeme\n */\n this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));\n this.$anchors.addClass('hover')\n .attr({'aria-expanded': true});\n // this.$element/*.show()*/;\n\n this.$element.addClass('is-opening');\n this._setPosition();\n this.$element.removeClass('is-opening').addClass('is-open')\n .attr({'aria-hidden': false});\n\n if(this.options.autoFocus){\n var $focusable = Keyboard.findFocusable(this.$element);\n if($focusable.length){\n $focusable.eq(0).focus();\n }\n }\n\n if(this.options.closeOnClick){ this._addBodyHandler(); }\n\n if (this.options.trapFocus) {\n Keyboard.trapFocus(this.$element);\n }\n\n /**\n * Fires once the dropdown is visible.\n * @event Dropdown#show\n */\n this.$element.trigger('show.zf.dropdown', [this.$element]);\n }\n\n /**\n * Closes the open dropdown pane.\n * @function\n * @fires Dropdown#hide\n */\n close() {\n if(!this.$element.hasClass('is-open')){\n return false;\n }\n this.$element.removeClass('is-open')\n .attr({'aria-hidden': true});\n\n this.$anchors.removeClass('hover')\n .attr('aria-expanded', false);\n\n /**\n * Fires once the dropdown is no longer visible.\n * @event Dropdown#hide\n */\n this.$element.trigger('hide.zf.dropdown', [this.$element]);\n\n if (this.options.trapFocus) {\n Keyboard.releaseFocus(this.$element);\n }\n }\n\n /**\n * Toggles the dropdown pane's visibility.\n * @function\n */\n toggle() {\n if(this.$element.hasClass('is-open')){\n if(this.$anchors.data('hover')) return;\n this.close();\n }else{\n this.open();\n }\n }\n\n /**\n * Destroys the dropdown.\n * @function\n */\n _destroy() {\n this.$element.off('.zf.trigger').hide();\n this.$anchors.off('.zf.dropdown');\n $(document.body).off('click.zf.dropdown');\n\n }\n}\n\nDropdown.defaults = {\n /**\n * Class that designates bounding container of Dropdown (default: window)\n * @option\n * @type {?string}\n * @default null\n */\n parentClass: null,\n /**\n * Amount of time to delay opening a submenu on hover event.\n * @option\n * @type {number}\n * @default 250\n */\n hoverDelay: 250,\n /**\n * Allow submenus to open on hover events\n * @option\n * @type {boolean}\n * @default false\n */\n hover: false,\n /**\n * Don't close dropdown when hovering over dropdown pane\n * @option\n * @type {boolean}\n * @default false\n */\n hoverPane: false,\n /**\n * Number of pixels between the dropdown pane and the triggering element on open.\n * @option\n * @type {number}\n * @default 0\n */\n vOffset: 0,\n /**\n * Number of pixels between the dropdown pane and the triggering element on open.\n * @option\n * @type {number}\n * @default 0\n */\n hOffset: 0,\n /**\n * Position of dropdown. Can be left, right, bottom, top, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n position: 'auto',\n /**\n * Alignment of dropdown relative to anchor. Can be left, right, bottom, top, center, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n alignment: 'auto',\n /**\n * Allow overlap of container/window. If false, dropdown will first try to position as defined by data-position and data-alignment, but reposition if it would cause an overflow.\n * @option\n * @type {boolean}\n * @default false\n */\n allowOverlap: false,\n /**\n * Allow overlap of only the bottom of the container. This is the most common\n * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n * screen but not otherwise influence or break out of the container.\n * @option\n * @type {boolean}\n * @default true\n */\n allowBottomOverlap: true,\n /**\n * Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.\n * @option\n * @type {boolean}\n * @default false\n */\n trapFocus: false,\n /**\n * Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.\n * @option\n * @type {boolean}\n * @default false\n */\n autoFocus: false,\n /**\n * Allows a click on the body to close the dropdown.\n * @option\n * @type {boolean}\n * @default false\n */\n closeOnClick: false\n};\n\nexport {Dropdown};\n","'use strict';\n\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst POSITIONS = ['left', 'right', 'top', 'bottom'];\nconst VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];\nconst HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];\n\nconst ALIGNMENTS = {\n 'left': VERTICAL_ALIGNMENTS,\n 'right': VERTICAL_ALIGNMENTS,\n 'top': HORIZONTAL_ALIGNMENTS,\n 'bottom': HORIZONTAL_ALIGNMENTS\n}\n\nfunction nextItem(item, array) {\n var currentIdx = array.indexOf(item);\n if(currentIdx === array.length - 1) {\n return array[0];\n } else {\n return array[currentIdx + 1];\n }\n}\n\n\nclass Positionable extends Plugin {\n /**\n * Abstract class encapsulating the tether-like explicit positioning logic\n * including repositioning based on overlap.\n * Expects classes to define defaults for vOffset, hOffset, position,\n * alignment, allowOverlap, and allowBottomOverlap. They can do this by\n * extending the defaults, or (for now recommended due to the way docs are\n * generated) by explicitly declaring them.\n *\n **/\n\n _init() {\n this.triedPositions = {};\n this.position = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;\n this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;\n this.originalPosition = this.position;\n this.originalAlignment = this.alignment;\n }\n\n _getDefaultPosition () {\n return 'bottom';\n }\n\n _getDefaultAlignment() {\n switch(this.position) {\n case 'bottom':\n case 'top':\n return Rtl() ? 'right' : 'left';\n case 'left':\n case 'right':\n return 'bottom';\n }\n }\n\n /**\n * Adjusts the positionable possible positions by iterating through alignments\n * and positions.\n * @function\n * @private\n */\n _reposition() {\n if(this._alignmentsExhausted(this.position)) {\n this.position = nextItem(this.position, POSITIONS);\n this.alignment = ALIGNMENTS[this.position][0];\n } else {\n this._realign();\n }\n }\n\n /**\n * Adjusts the dropdown pane possible positions by iterating through alignments\n * on the current position.\n * @function\n * @private\n */\n _realign() {\n this._addTriedPosition(this.position, this.alignment)\n this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position])\n }\n\n _addTriedPosition(position, alignment) {\n this.triedPositions[position] = this.triedPositions[position] || []\n this.triedPositions[position].push(alignment);\n }\n\n _positionsExhausted() {\n var isExhausted = true;\n for(var i = 0; i < POSITIONS.length; i++) {\n isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);\n }\n return isExhausted;\n }\n\n _alignmentsExhausted(position) {\n return this.triedPositions[position] && this.triedPositions[position].length == ALIGNMENTS[position].length;\n }\n\n\n // When we're trying to center, we don't want to apply offset that's going to\n // take us just off center, so wrap around to return 0 for the appropriate\n // offset in those alignments. TODO: Figure out if we want to make this\n // configurable behavior... it feels more intuitive, especially for tooltips, but\n // it's possible someone might actually want to start from center and then nudge\n // slightly off.\n _getVOffset() {\n return this.options.vOffset;\n }\n\n _getHOffset() {\n return this.options.hOffset;\n }\n\n\n _setPosition($anchor, $element, $parent) {\n if($anchor.attr('aria-expanded') === 'false'){ return false; }\n var $eleDims = Box.GetDimensions($element),\n $anchorDims = Box.GetDimensions($anchor);\n\n\n if (!this.options.allowOverlap) {\n // restore original position & alignment before checking overlap\n this.position = this.originalPosition;\n this.alignment = this.originalAlignment;\n }\n\n $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n\n if(!this.options.allowOverlap) {\n var overlaps = {};\n var minOverlap = 100000000;\n // default coordinates to how we start, in case we can't figure out better\n var minCoordinates = {position: this.position, alignment: this.alignment};\n while(!this._positionsExhausted()) {\n let overlap = Box.OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);\n if(overlap === 0) {\n return;\n }\n\n if(overlap < minOverlap) {\n minOverlap = overlap;\n minCoordinates = {position: this.position, alignment: this.alignment};\n }\n\n this._reposition();\n\n $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n }\n // If we get through the entire loop, there was no non-overlapping\n // position available. Pick the version with least overlap.\n this.position = minCoordinates.position;\n this.alignment = minCoordinates.alignment;\n $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n }\n }\n\n}\n\nPositionable.defaults = {\n /**\n * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n position: 'auto',\n /**\n * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n alignment: 'auto',\n /**\n * Allow overlap of container/window. If false, dropdown positionable first\n * try to position as defined by data-position and data-alignment, but\n * reposition if it would cause an overflow.\n * @option\n * @type {boolean}\n * @default false\n */\n allowOverlap: false,\n /**\n * Allow overlap of only the bottom of the container. This is the most common\n * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n * screen but not otherwise influence or break out of the container.\n * @option\n * @type {boolean}\n * @default true\n */\n allowBottomOverlap: true,\n /**\n * Number of pixels the positionable should be separated vertically from anchor\n * @option\n * @type {number}\n * @default 0\n */\n vOffset: 0,\n /**\n * Number of pixels the positionable should be separated horizontally from anchor\n * @option\n * @type {number}\n * @default 0\n */\n hOffset: 0,\n}\n\nexport {Positionable};\n","'use strict';\n\nimport $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n for (var i=0; i < prefixes.length; i++) {\n if (`${prefixes[i]}MutationObserver` in window) {\n return window[`${prefixes[i]}MutationObserver`];\n }\n }\n return false;\n}());\n\nconst triggers = (el, type) => {\n el.data(type).split(' ').forEach(id => {\n $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n });\n};\n\nvar Triggers = {\n Listeners: {\n Basic: {},\n Global: {}\n },\n Initializers: {}\n}\n\nTriggers.Listeners.Basic = {\n openListener: function() {\n triggers($(this), 'open');\n },\n closeListener: function() {\n let id = $(this).data('close');\n if (id) {\n triggers($(this), 'close');\n }\n else {\n $(this).trigger('close.zf.trigger');\n }\n },\n toggleListener: function() {\n let id = $(this).data('toggle');\n if (id) {\n triggers($(this), 'toggle');\n } else {\n $(this).trigger('toggle.zf.trigger');\n }\n },\n closeableListener: function(e) {\n e.stopPropagation();\n let animation = $(this).data('closable');\n\n if(animation !== ''){\n Motion.animateOut($(this), animation, function() {\n $(this).trigger('closed.zf');\n });\n }else{\n $(this).fadeOut().trigger('closed.zf');\n }\n },\n toggleFocusListener: function() {\n let id = $(this).data('toggle-focus');\n $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global = {\n resizeListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('resizeme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a resize event\n $nodes.attr('data-events', \"resize\");\n },\n scrollListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('scrollme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a scroll event\n $nodes.attr('data-events', \"scroll\");\n },\n closeMeListener: function(e, pluginId){\n let plugin = e.namespace.split('.')[0];\n let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n plugins.each(function(){\n let _this = $(this);\n _this.triggerHandler('close.zf.trigger', [_this]);\n });\n }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n var yetiBoxes = $('[data-yeti-box]'),\n plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n if(pluginName){\n if(typeof pluginName === 'string'){\n plugNames.push(pluginName);\n }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n plugNames = plugNames.concat(pluginName);\n }else{\n console.error('Plugin names must be strings');\n }\n }\n if(yetiBoxes.length){\n let listeners = plugNames.map((name) => {\n return `closeme.zf.${name}`;\n }).join(' ');\n\n $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n let timer, args = Array.prototype.slice.call(arguments, 3);\n $(window).off(trigger).on(trigger, function(e) {\n if (timer) { clearTimeout(timer); }\n timer = setTimeout(function(){\n listener.apply(null, args);\n }, debounce || 10);//default time to emit scroll event\n });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n let $nodes = $('[data-resize]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n let $nodes = $('[data-scroll]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n if(!MutationObserver){ return false; }\n let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n //element callback\n var listeningElementsMutation = function (mutationRecordsList) {\n var $target = $(mutationRecordsList[0].target);\n\n //trigger the event handler for the element depending on type\n switch (mutationRecordsList[0].type) {\n case \"attributes\":\n if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n }\n if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('resizeme.zf.trigger', [$target]);\n }\n if (mutationRecordsList[0].attributeName === \"style\") {\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n }\n break;\n\n case \"childList\":\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n break;\n\n default:\n return false;\n //nothing\n }\n };\n\n if ($nodes.length) {\n //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n for (var i = 0; i <= $nodes.length - 1; i++) {\n var elementObserver = new MutationObserver(listeningElementsMutation);\n elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n }\n }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n let $document = $(document);\n\n Triggers.Initializers.addOpenListener($document);\n Triggers.Initializers.addCloseListener($document);\n Triggers.Initializers.addToggleListener($document);\n Triggers.Initializers.addCloseableListener($document);\n Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n let $document = $(document);\n Triggers.Initializers.addMutationEventsListener($document);\n Triggers.Initializers.addResizeListener();\n Triggers.Initializers.addScrollListener();\n Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function ($, Foundation) {\n onLoad($(window), function () {\n if ($.triggersInitialized !== true) {\n Triggers.Initializers.addSimpleListeners();\n Triggers.Initializers.addGlobalListeners();\n $.triggersInitialized = true;\n }\n });\n\n if(Foundation) {\n Foundation.Triggers = Triggers;\n // Legacy included to be backwards compatible for now.\n Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n }\n}\n\nexport {Triggers};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/entries/plugins/foundation.dropdown.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.dropdown.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.positionable.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.util.triggers.js","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","plugin","Dropdown","element","options","$element","$","extend","defaults","data","className","Touch","init","Triggers","_init","Keyboard","register","$id","attr","$anchors","length","_setCurrentAnchor","first","parentClass","$parent","parents","$currentAnchor","GetYoDigits","_events","position","match","horizontalPosition","exec","removeClass","alignment","addClass","el","_this","hasTouch","window","ontouchstart","on","open","bind","close","toggle","_setPosition","off","e","forceFollow","preventDefault","hover","hasClass","bodyData","whatinput","clearTimeout","timeout","setTimeout","hoverDelay","ignoreMousedisappear","hoverPane","add","$target","visibleFocusableElements","findFocusable","handleKey","is","focus","$body","document","body","not","target","find","trigger","autoFocus","$focusable","eq","closeOnClick","_addBodyHandler","trapFocus","releaseFocus","hide","Positionable","vOffset","hOffset","allowOverlap","allowBottomOverlap","POSITIONS","VERTICAL_ALIGNMENTS","HORIZONTAL_ALIGNMENTS","ALIGNMENTS","nextItem","item","array","currentIdx","indexOf","triedPositions","_getDefaultPosition","_getDefaultAlignment","originalPosition","originalAlignment","Rtl","_alignmentsExhausted","_realign","_addTriedPosition","push","isExhausted","i","$anchor","offset","Box","GetExplicitOffsets","_getVOffset","_getHOffset","minOverlap","minCoordinates","_positionsExhausted","overlap","OverlapArea","_reposition","Plugin","MutationObserver","prefixes","triggers","type","split","forEach","id","Listeners","Basic","Global","Initializers","openListener","closeListener","toggleListener","closeableListener","animation","stopPropagation","Motion","animateOut","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","each","scrollListener","closeMeListener","pluginId","namespace","plugins","addClosemeListener","pluginName","yetiBoxes","plugNames","concat","console","error","listeners","map","name","join","debounceGlobalListener","debounce","listener","timer","args","Array","prototype","slice","call","arguments","apply","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","attributeName","pageYOffset","closest","elementObserver","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","onLoad","triggersInitialized","IHearYou"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;;;;;AClFA,8D;;;;;;;;;;;ACAA,kE;;;;;;;;;;;ACAA,uE;;;;;;;;;;;ACAA,qE;;;;;;;;;;;ACAA,oE;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACAA,2DAAU,CAACC,MAAX,CAAkBC,6DAAlB,EAA4B,UAA5B;;;;;;;;;;;;;ACHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAa;;;;;;;;;;;;;;;;;;;;;;;;AAEb;AACA;AACA;AACA;AAEA;AACA;AAEA;;;;;;;;;IAQMA,Q;;;;;;;;;;;;;;AACJ;;;;;;;;2BAQOC,O,EAASC,O,EAAS;AACvB,WAAKC,QAAL,GAAgBF,OAAhB;AACA,WAAKC,OAAL,GAAeE,6CAAC,CAACC,MAAF,CAAS,EAAT,EAAaL,QAAQ,CAACM,QAAtB,EAAgC,KAAKH,QAAL,CAAcI,IAAd,EAAhC,EAAsDL,OAAtD,CAAf;AACA,WAAKM,SAAL,GAAiB,UAAjB,CAHuB,CAGM;AAE7B;;AACAC,kEAAK,CAACC,IAAN,CAAWN,6CAAX;AACAO,wEAAQ,CAACD,IAAT,CAAcN,6CAAd;;AAEA,WAAKQ,KAAL;;AAEAC,wEAAQ,CAACC,QAAT,CAAkB,UAAlB,EAA8B;AAC5B,iBAAS,QADmB;AAE5B,iBAAS,QAFmB;AAG5B,kBAAU;AAHkB,OAA9B;AAKD;AAED;;;;;;;;4BAKQ;AACN,UAAIC,GAAG,GAAG,KAAKZ,QAAL,CAAca,IAAd,CAAmB,IAAnB,CAAV;AAEA,WAAKC,QAAL,GAAgBb,6CAAC,0BAAkBW,GAAlB,SAAD,CAA4BG,MAA5B,GAAqCd,6CAAC,0BAAkBW,GAAlB,SAAtC,GAAmEX,6CAAC,wBAAgBW,GAAhB,SAApF;AACA,WAAKE,QAAL,CAAcD,IAAd,CAAmB;AACjB,yBAAiBD,GADA;AAEjB,yBAAiB,KAFA;AAGjB,yBAAiBA,GAHA;AAIjB,yBAAiB,IAJA;AAKjB,yBAAiB;AALA,OAAnB;;AAQA,WAAKI,iBAAL,CAAuB,KAAKF,QAAL,CAAcG,KAAd,EAAvB;;AAEA,UAAG,KAAKlB,OAAL,CAAamB,WAAhB,EAA4B;AAC1B,aAAKC,OAAL,GAAe,KAAKnB,QAAL,CAAcoB,OAAd,CAAsB,MAAM,KAAKrB,OAAL,CAAamB,WAAzC,CAAf;AACD,OAFD,MAEK;AACH,aAAKC,OAAL,GAAe,IAAf;AACD,OAlBK,CAoBN;;;AACA,UAAI,OAAO,KAAKnB,QAAL,CAAca,IAAd,CAAmB,iBAAnB,CAAP,KAAiD,WAArD,EAAkE;AAChE;AACA,YAAI,OAAO,KAAKQ,cAAL,CAAoBR,IAApB,CAAyB,IAAzB,CAAP,KAA0C,WAA9C,EAA2D;AACzD,eAAKQ,cAAL,CAAoBR,IAApB,CAAyB,IAAzB,EAA+BS,0EAAW,CAAC,CAAD,EAAI,WAAJ,CAA1C;AACD;;AAAA;AAED,aAAKtB,QAAL,CAAca,IAAd,CAAmB,iBAAnB,EAAsC,KAAKQ,cAAL,CAAoBR,IAApB,CAAyB,IAAzB,CAAtC;AACD;;AAED,WAAKb,QAAL,CAAca,IAAd,CAAmB;AACjB,uBAAe,MADE;AAEjB,yBAAiBD,GAFA;AAGjB,uBAAeA;AAHE,OAAnB;;AAMA;;AACA,WAAKW,OAAL;AACD;;;0CAEqB;AACpB;AACA,UAAIC,QAAQ,GAAG,KAAKxB,QAAL,CAAc,CAAd,EAAiBK,SAAjB,CAA2BoB,KAA3B,CAAiC,0BAAjC,CAAf;;AACA,UAAGD,QAAH,EAAa;AACX,eAAOA,QAAQ,CAAC,CAAD,CAAf;AACD,OAFD,MAEO;AACL,eAAO,QAAP;AACD;AACF;;;2CAEsB;AACrB;AACA,UAAIE,kBAAkB,GAAG,cAAcC,IAAd,CAAmB,KAAKN,cAAL,CAAoBR,IAApB,CAAyB,OAAzB,CAAnB,CAAzB;;AACA,UAAGa,kBAAH,EAAuB;AACrB,eAAOA,kBAAkB,CAAC,CAAD,CAAzB;AACD;;AAED;AACD;AAID;;;;;;;;;mCAMe;AACb,WAAK1B,QAAL,CAAc4B,WAAd,wBAA0C,KAAKJ,QAA/C,4BAAyE,KAAKK,SAA9E;;AACA,iFAAmB,KAAKR,cAAxB,EAAwC,KAAKrB,QAA7C,EAAuD,KAAKmB,OAA5D;;AACA,WAAKnB,QAAL,CAAc8B,QAAd,wBAAuC,KAAKN,QAA5C,4BAAsE,KAAKK,SAA3E;AACD;AAED;;;;;;;;;;sCAOkBE,E,EAAI;AACpB,WAAKV,cAAL,GAAsBpB,6CAAC,CAAC8B,EAAD,CAAvB;AACD;AAED;;;;;;;;8BAKU;AACR,UAAIC,KAAK,GAAG,IAAZ;AAAA,UACIC,QAAQ,GAAG,kBAAkBC,MAAlB,IAA6B,OAAOA,MAAM,CAACC,YAAd,KAA+B,WAD3E;;AAGA,WAAKnC,QAAL,CAAcoC,EAAd,CAAiB;AACf,2BAAmB,KAAKC,IAAL,CAAUC,IAAV,CAAe,IAAf,CADJ;AAEf,4BAAoB,KAAKC,KAAL,CAAWD,IAAX,CAAgB,IAAhB,CAFL;AAGf,6BAAqB,KAAKE,MAAL,CAAYF,IAAZ,CAAiB,IAAjB,CAHN;AAIf,+BAAuB,KAAKG,YAAL,CAAkBH,IAAlB,CAAuB,IAAvB;AAJR,OAAjB;AAOA,WAAKxB,QAAL,CAAc4B,GAAd,CAAkB,kBAAlB,EACGN,EADH,CACM,kBADN,EAC0B,UAASO,CAAT,EAAY;AAClCX,aAAK,CAAChB,iBAAN,CAAwB,IAAxB;;AAEA,YAAIgB,KAAK,CAACjC,OAAN,CAAc6C,WAAd,KAA8B,KAAlC,EAAyC;AACvC;AACAD,WAAC,CAACE,cAAF;AACD,SAHD,MAGO,IAAIZ,QAAQ,IAAID,KAAK,CAACjC,OAAN,CAAc+C,KAA1B,IAAmCd,KAAK,CAAChC,QAAN,CAAe+C,QAAf,CAAwB,SAAxB,MAAuC,KAA9E,EAAqF;AAC1F;AACA;AACAJ,WAAC,CAACE,cAAF;AACD;AACJ,OAZD;;AAcA,UAAG,KAAK9C,OAAL,CAAa+C,KAAhB,EAAsB;AACpB,aAAKhC,QAAL,CAAc4B,GAAd,CAAkB,+CAAlB,EACCN,EADD,CACI,wBADJ,EAC8B,YAAU;AACtCJ,eAAK,CAAChB,iBAAN,CAAwB,IAAxB;;AAEA,cAAIgC,QAAQ,GAAG/C,6CAAC,CAAC,MAAD,CAAD,CAAUG,IAAV,EAAf;;AACA,cAAG,OAAO4C,QAAQ,CAACC,SAAhB,KAA+B,WAA/B,IAA8CD,QAAQ,CAACC,SAAT,KAAuB,OAAxE,EAAiF;AAC/EC,wBAAY,CAAClB,KAAK,CAACmB,OAAP,CAAZ;AACAnB,iBAAK,CAACmB,OAAN,GAAgBC,UAAU,CAAC,YAAU;AACnCpB,mBAAK,CAACK,IAAN;;AACAL,mBAAK,CAAClB,QAAN,CAAeV,IAAf,CAAoB,OAApB,EAA6B,IAA7B;AACD,aAHyB,EAGvB4B,KAAK,CAACjC,OAAN,CAAcsD,UAHS,CAA1B;AAID;AACF,SAZD,EAYGjB,EAZH,CAYM,wBAZN,EAYgCkB,mFAAoB,CAAC,YAAU;AAC7DJ,sBAAY,CAAClB,KAAK,CAACmB,OAAP,CAAZ;AACAnB,eAAK,CAACmB,OAAN,GAAgBC,UAAU,CAAC,YAAU;AACnCpB,iBAAK,CAACO,KAAN;;AACAP,iBAAK,CAAClB,QAAN,CAAeV,IAAf,CAAoB,OAApB,EAA6B,KAA7B;AACD,WAHyB,EAGvB4B,KAAK,CAACjC,OAAN,CAAcsD,UAHS,CAA1B;AAID,SANmD,CAZpD;;AAmBA,YAAG,KAAKtD,OAAL,CAAawD,SAAhB,EAA0B;AACxB,eAAKvD,QAAL,CAAc0C,GAAd,CAAkB,+CAAlB,EACKN,EADL,CACQ,wBADR,EACkC,YAAU;AACtCc,wBAAY,CAAClB,KAAK,CAACmB,OAAP,CAAZ;AACD,WAHL,EAGOf,EAHP,CAGU,wBAHV,EAGoCkB,mFAAoB,CAAC,YAAU;AAC7DJ,wBAAY,CAAClB,KAAK,CAACmB,OAAP,CAAZ;AACAnB,iBAAK,CAACmB,OAAN,GAAgBC,UAAU,CAAC,YAAU;AACnCpB,mBAAK,CAACO,KAAN;;AACAP,mBAAK,CAAClB,QAAN,CAAeV,IAAf,CAAoB,OAApB,EAA6B,KAA7B;AACD,aAHyB,EAGvB4B,KAAK,CAACjC,OAAN,CAAcsD,UAHS,CAA1B;AAID,WANmD,CAHxD;AAUD;AACF;;AACD,WAAKvC,QAAL,CAAc0C,GAAd,CAAkB,KAAKxD,QAAvB,EAAiCoC,EAAjC,CAAoC,qBAApC,EAA2D,UAASO,CAAT,EAAY;AAErE,YAAIc,OAAO,GAAGxD,6CAAC,CAAC,IAAD,CAAf;AAAA,YACEyD,wBAAwB,GAAGhD,kEAAQ,CAACiD,aAAT,CAAuB3B,KAAK,CAAChC,QAA7B,CAD7B;AAGAU,0EAAQ,CAACkD,SAAT,CAAmBjB,CAAnB,EAAsB,UAAtB,EAAkC;AAChCN,cAAI,EAAE,gBAAW;AACf,gBAAIoB,OAAO,CAACI,EAAR,CAAW7B,KAAK,CAAClB,QAAjB,KAA8B,CAAC2C,OAAO,CAACI,EAAR,CAAW,iBAAX,CAAnC,EAAkE;AAChE7B,mBAAK,CAACK,IAAN;;AACAL,mBAAK,CAAChC,QAAN,CAAea,IAAf,CAAoB,UAApB,EAAgC,CAAC,CAAjC,EAAoCiD,KAApC;;AACAnB,eAAC,CAACE,cAAF;AACD;AACF,WAP+B;AAQhCN,eAAK,EAAE,iBAAW;AAChBP,iBAAK,CAACO,KAAN;;AACAP,iBAAK,CAAClB,QAAN,CAAegD,KAAf;AACD;AAX+B,SAAlC;AAaD,OAlBD;AAmBD;AAED;;;;;;;;sCAKkB;AACf,UAAIC,KAAK,GAAG9D,6CAAC,CAAC+D,QAAQ,CAACC,IAAV,CAAD,CAAiBC,GAAjB,CAAqB,KAAKlE,QAA1B,CAAZ;AAAA,UACIgC,KAAK,GAAG,IADZ;;AAEA+B,WAAK,CAACrB,GAAN,CAAU,mCAAV,EACMN,EADN,CACS,mCADT,EAC8C,UAAUO,CAAV,EAAa;AACpD,YAAGX,KAAK,CAAClB,QAAN,CAAe+C,EAAf,CAAkBlB,CAAC,CAACwB,MAApB,KAA+BnC,KAAK,CAAClB,QAAN,CAAesD,IAAf,CAAoBzB,CAAC,CAACwB,MAAtB,EAA8BpD,MAAhE,EAAwE;AACtE;AACD;;AACD,YAAGiB,KAAK,CAAChC,QAAN,CAAe6D,EAAf,CAAkBlB,CAAC,CAACwB,MAApB,KAA+BnC,KAAK,CAAChC,QAAN,CAAeoE,IAAf,CAAoBzB,CAAC,CAACwB,MAAtB,EAA8BpD,MAAhE,EAAwE;AACtE;AACD;;AACDiB,aAAK,CAACO,KAAN;;AACAwB,aAAK,CAACrB,GAAN,CAAU,mCAAV;AACD,OAVN;AAWF;AAED;;;;;;;;;2BAMO;AACL;;AACA;;;;AAIA,WAAK1C,QAAL,CAAcqE,OAAd,CAAsB,qBAAtB,EAA6C,KAAKrE,QAAL,CAAca,IAAd,CAAmB,IAAnB,CAA7C;AACA,WAAKC,QAAL,CAAcgB,QAAd,CAAuB,OAAvB,EACKjB,IADL,CACU;AAAC,yBAAiB;AAAlB,OADV,EAPK,CASL;;AAEA,WAAKb,QAAL,CAAc8B,QAAd,CAAuB,YAAvB;;AACA,WAAKW,YAAL;;AACA,WAAKzC,QAAL,CAAc4B,WAAd,CAA0B,YAA1B,EAAwCE,QAAxC,CAAiD,SAAjD,EACKjB,IADL,CACU;AAAC,uBAAe;AAAhB,OADV;;AAGA,UAAG,KAAKd,OAAL,CAAauE,SAAhB,EAA0B;AACxB,YAAIC,UAAU,GAAG7D,kEAAQ,CAACiD,aAAT,CAAuB,KAAK3D,QAA5B,CAAjB;;AACA,YAAGuE,UAAU,CAACxD,MAAd,EAAqB;AACnBwD,oBAAU,CAACC,EAAX,CAAc,CAAd,EAAiBV,KAAjB;AACD;AACF;;AAED,UAAG,KAAK/D,OAAL,CAAa0E,YAAhB,EAA6B;AAAE,aAAKC,eAAL;AAAyB;;AAExD,UAAI,KAAK3E,OAAL,CAAa4E,SAAjB,EAA4B;AAC1BjE,0EAAQ,CAACiE,SAAT,CAAmB,KAAK3E,QAAxB;AACD;AAED;;;;;;AAIA,WAAKA,QAAL,CAAcqE,OAAd,CAAsB,kBAAtB,EAA0C,CAAC,KAAKrE,QAAN,CAA1C;AACD;AAED;;;;;;;;4BAKQ;AACN,UAAG,CAAC,KAAKA,QAAL,CAAc+C,QAAd,CAAuB,SAAvB,CAAJ,EAAsC;AACpC,eAAO,KAAP;AACD;;AACD,WAAK/C,QAAL,CAAc4B,WAAd,CAA0B,SAA1B,EACKf,IADL,CACU;AAAC,uBAAe;AAAhB,OADV;AAGA,WAAKC,QAAL,CAAcc,WAAd,CAA0B,OAA1B,EACKf,IADL,CACU,eADV,EAC2B,KAD3B;AAGA;;;;;AAIA,WAAKb,QAAL,CAAcqE,OAAd,CAAsB,kBAAtB,EAA0C,CAAC,KAAKrE,QAAN,CAA1C;;AAEA,UAAI,KAAKD,OAAL,CAAa4E,SAAjB,EAA4B;AAC1BjE,0EAAQ,CAACkE,YAAT,CAAsB,KAAK5E,QAA3B;AACD;AACF;AAED;;;;;;;6BAIS;AACP,UAAG,KAAKA,QAAL,CAAc+C,QAAd,CAAuB,SAAvB,CAAH,EAAqC;AACnC,YAAG,KAAKjC,QAAL,CAAcV,IAAd,CAAmB,OAAnB,CAAH,EAAgC;AAChC,aAAKmC,KAAL;AACD,OAHD,MAGK;AACH,aAAKF,IAAL;AACD;AACF;AAED;;;;;;;+BAIW;AACT,WAAKrC,QAAL,CAAc0C,GAAd,CAAkB,aAAlB,EAAiCmC,IAAjC;AACA,WAAK/D,QAAL,CAAc4B,GAAd,CAAkB,cAAlB;AACAzC,mDAAC,CAAC+D,QAAQ,CAACC,IAAV,CAAD,CAAiBvB,GAAjB,CAAqB,mCAArB;AAED;;;;EAxToBoC,qE;;AA2TvBjF,QAAQ,CAACM,QAAT,GAAoB;AAClB;;;;;;AAMAe,aAAW,EAAE,IAPK;;AAQlB;;;;;;AAMAmC,YAAU,EAAE,GAdM;;AAelB;;;;;;AAMAP,OAAK,EAAE,KArBW;;AAsBlB;;;;;;AAMAS,WAAS,EAAE,KA5BO;;AA6BlB;;;;;;AAMAwB,SAAO,EAAE,CAnCS;;AAoClB;;;;;;AAMAC,SAAO,EAAE,CA1CS;;AA2ClB;;;;;;AAMAxD,UAAQ,EAAE,MAjDQ;;AAkDlB;;;;;;AAMAK,WAAS,EAAE,MAxDO;;AAyDlB;;;;;;AAMAoD,cAAY,EAAE,KA/DI;;AAgElB;;;;;;;;AAQAC,oBAAkB,EAAE,IAxEF;;AAyElB;;;;;;AAMAP,WAAS,EAAE,KA/EO;;AAgFlB;;;;;;AAMAL,WAAS,EAAE,KAtFO;;AAuFlB;;;;;;AAMAG,cAAY,EAAE,KA7FI;;AA8FlB;;;;;;AAMA7B,aAAW,EAAE;AApGK,CAApB;;;;;;;;;;;;;AC7UA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAa;;;;;;;;;;;;;;;;;;;;AAEb;AACA;AACA;AAEA,IAAMuC,SAAS,GAAG,CAAC,MAAD,EAAS,OAAT,EAAkB,KAAlB,EAAyB,QAAzB,CAAlB;AACA,IAAMC,mBAAmB,GAAG,CAAC,KAAD,EAAQ,QAAR,EAAkB,QAAlB,CAA5B;AACA,IAAMC,qBAAqB,GAAG,CAAC,MAAD,EAAS,OAAT,EAAkB,QAAlB,CAA9B;AAEA,IAAMC,UAAU,GAAG;AACjB,UAAQF,mBADS;AAEjB,WAASA,mBAFQ;AAGjB,SAAOC,qBAHU;AAIjB,YAAUA;AAJO,CAAnB;;AAOA,SAASE,QAAT,CAAkBC,IAAlB,EAAwBC,KAAxB,EAA+B;AAC7B,MAAIC,UAAU,GAAGD,KAAK,CAACE,OAAN,CAAcH,IAAd,CAAjB;;AACA,MAAGE,UAAU,KAAKD,KAAK,CAAC1E,MAAN,GAAe,CAAjC,EAAoC;AAClC,WAAO0E,KAAK,CAAC,CAAD,CAAZ;AACD,GAFD,MAEO;AACL,WAAOA,KAAK,CAACC,UAAU,GAAG,CAAd,CAAZ;AACD;AACF;;IAGKZ,Y;;;;;;;;;;;;;;AACJ;;;;;;;;;4BAUQ;AACN,WAAKc,cAAL,GAAsB,EAAtB;AACA,WAAKpE,QAAL,GAAiB,KAAKzB,OAAL,CAAayB,QAAb,KAA0B,MAA1B,GAAmC,KAAKqE,mBAAL,EAAnC,GAAgE,KAAK9F,OAAL,CAAayB,QAA9F;AACA,WAAKK,SAAL,GAAiB,KAAK9B,OAAL,CAAa8B,SAAb,KAA2B,MAA3B,GAAoC,KAAKiE,oBAAL,EAApC,GAAkE,KAAK/F,OAAL,CAAa8B,SAAhG;AACA,WAAKkE,gBAAL,GAAwB,KAAKvE,QAA7B;AACA,WAAKwE,iBAAL,GAAyB,KAAKnE,SAA9B;AACD;;;0CAEsB;AACrB,aAAO,QAAP;AACD;;;2CAEsB;AACrB,cAAO,KAAKL,QAAZ;AACE,aAAK,QAAL;AACA,aAAK,KAAL;AACE,iBAAOyE,mEAAG,KAAK,OAAL,GAAe,MAAzB;;AACF,aAAK,MAAL;AACA,aAAK,OAAL;AACE,iBAAO,QAAP;AANJ;AAQD;AAED;;;;;;;;;kCAMc;AACZ,UAAG,KAAKC,oBAAL,CAA0B,KAAK1E,QAA/B,CAAH,EAA6C;AAC3C,aAAKA,QAAL,GAAgB+D,QAAQ,CAAC,KAAK/D,QAAN,EAAgB2D,SAAhB,CAAxB;AACA,aAAKtD,SAAL,GAAiByD,UAAU,CAAC,KAAK9D,QAAN,CAAV,CAA0B,CAA1B,CAAjB;AACD,OAHD,MAGO;AACL,aAAK2E,QAAL;AACD;AACF;AAED;;;;;;;;;+BAMW;AACT,WAAKC,iBAAL,CAAuB,KAAK5E,QAA5B,EAAsC,KAAKK,SAA3C;;AACA,WAAKA,SAAL,GAAiB0D,QAAQ,CAAC,KAAK1D,SAAN,EAAiByD,UAAU,CAAC,KAAK9D,QAAN,CAA3B,CAAzB;AACD;;;sCAEiBA,Q,EAAUK,S,EAAW;AACrC,WAAK+D,cAAL,CAAoBpE,QAApB,IAAgC,KAAKoE,cAAL,CAAoBpE,QAApB,KAAiC,EAAjE;AACA,WAAKoE,cAAL,CAAoBpE,QAApB,EAA8B6E,IAA9B,CAAmCxE,SAAnC;AACD;;;0CAEqB;AACpB,UAAIyE,WAAW,GAAG,IAAlB;;AACA,WAAI,IAAIC,CAAC,GAAG,CAAZ,EAAeA,CAAC,GAAGpB,SAAS,CAACpE,MAA7B,EAAqCwF,CAAC,EAAtC,EAA0C;AACxCD,mBAAW,GAAGA,WAAW,IAAI,KAAKJ,oBAAL,CAA0Bf,SAAS,CAACoB,CAAD,CAAnC,CAA7B;AACD;;AACD,aAAOD,WAAP;AACD;;;yCAEoB9E,Q,EAAU;AAC7B,aAAO,KAAKoE,cAAL,CAAoBpE,QAApB,KAAiC,KAAKoE,cAAL,CAAoBpE,QAApB,EAA8BT,MAA9B,IAAwCuE,UAAU,CAAC9D,QAAD,CAAV,CAAqBT,MAArG;AACD,K,CAGD;AACA;AACA;AACA;AACA;AACA;;;;kCACc;AACZ,aAAO,KAAKhB,OAAL,CAAagF,OAApB;AACD;;;kCAEa;AACZ,aAAO,KAAKhF,OAAL,CAAaiF,OAApB;AACD;;;iCAEYwB,O,EAASxG,Q,EAAUmB,O,EAAS;AACvC,UAAGqF,OAAO,CAAC3F,IAAR,CAAa,eAAb,MAAkC,OAArC,EAA6C;AAAE,eAAO,KAAP;AAAe;;AAE9D,UAAI,CAAC,KAAKd,OAAL,CAAakF,YAAlB,EAAgC;AAC9B;AACA,aAAKzD,QAAL,GAAgB,KAAKuE,gBAArB;AACA,aAAKlE,SAAL,GAAiB,KAAKmE,iBAAtB;AACD;;AAEDhG,cAAQ,CAACyG,MAAT,CAAgBC,wDAAG,CAACC,kBAAJ,CAAuB3G,QAAvB,EAAiCwG,OAAjC,EAA0C,KAAKhF,QAA/C,EAAyD,KAAKK,SAA9D,EAAyE,KAAK+E,WAAL,EAAzE,EAA6F,KAAKC,WAAL,EAA7F,CAAhB;;AAEA,UAAG,CAAC,KAAK9G,OAAL,CAAakF,YAAjB,EAA+B;AAC7B,YAAI6B,UAAU,GAAG,SAAjB,CAD6B,CAE7B;;AACA,YAAIC,cAAc,GAAG;AAACvF,kBAAQ,EAAE,KAAKA,QAAhB;AAA0BK,mBAAS,EAAE,KAAKA;AAA1C,SAArB;;AACA,eAAM,CAAC,KAAKmF,mBAAL,EAAP,EAAmC;AACjC,cAAIC,OAAO,GAAGP,wDAAG,CAACQ,WAAJ,CAAgBlH,QAAhB,EAA0BmB,OAA1B,EAAmC,KAAnC,EAA0C,KAA1C,EAAiD,KAAKpB,OAAL,CAAamF,kBAA9D,CAAd;;AACA,cAAG+B,OAAO,KAAK,CAAf,EAAkB;AAChB;AACD;;AAED,cAAGA,OAAO,GAAGH,UAAb,EAAyB;AACvBA,sBAAU,GAAGG,OAAb;AACAF,0BAAc,GAAG;AAACvF,sBAAQ,EAAE,KAAKA,QAAhB;AAA0BK,uBAAS,EAAE,KAAKA;AAA1C,aAAjB;AACD;;AAED,eAAKsF,WAAL;;AAEAnH,kBAAQ,CAACyG,MAAT,CAAgBC,wDAAG,CAACC,kBAAJ,CAAuB3G,QAAvB,EAAiCwG,OAAjC,EAA0C,KAAKhF,QAA/C,EAAyD,KAAKK,SAA9D,EAAyE,KAAK+E,WAAL,EAAzE,EAA6F,KAAKC,WAAL,EAA7F,CAAhB;AACD,SAlB4B,CAmB7B;AACA;;;AACA,aAAKrF,QAAL,GAAgBuF,cAAc,CAACvF,QAA/B;AACA,aAAKK,SAAL,GAAiBkF,cAAc,CAAClF,SAAhC;AACA7B,gBAAQ,CAACyG,MAAT,CAAgBC,wDAAG,CAACC,kBAAJ,CAAuB3G,QAAvB,EAAiCwG,OAAjC,EAA0C,KAAKhF,QAA/C,EAAyD,KAAKK,SAA9D,EAAyE,KAAK+E,WAAL,EAAzE,EAA6F,KAAKC,WAAL,EAA7F,CAAhB;AACD;AACF;;;;EAhIwBO,8D;;AAoI3BtC,YAAY,CAAC3E,QAAb,GAAwB;AACtB;;;;;;AAMAqB,UAAQ,EAAE,MAPY;;AAQtB;;;;;;AAMAK,WAAS,EAAE,MAdW;;AAetB;;;;;;;;AAQAoD,cAAY,EAAE,KAvBQ;;AAwBtB;;;;;;;;AAQAC,oBAAkB,EAAE,IAhCE;;AAiCtB;;;;;;AAMAH,SAAO,EAAE,CAvCa;;AAwCtB;;;;;;AAMAC,SAAO,EAAE;AA9Ca,CAAxB;;;;;;;;;;;;;AC/JA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAa;;;;AAEb;AACA;AACA;;AAEA,IAAMqC,gBAAgB,GAAI,YAAY;AACpC,MAAIC,QAAQ,GAAG,CAAC,QAAD,EAAW,KAAX,EAAkB,GAAlB,EAAuB,IAAvB,EAA6B,EAA7B,CAAf;;AACA,OAAK,IAAIf,CAAC,GAAC,CAAX,EAAcA,CAAC,GAAGe,QAAQ,CAACvG,MAA3B,EAAmCwF,CAAC,EAApC,EAAwC;AACtC,QAAI,UAAGe,QAAQ,CAACf,CAAD,CAAX,yBAAoCrE,MAAxC,EAAgD;AAC9C,aAAOA,MAAM,WAAIoF,QAAQ,CAACf,CAAD,CAAZ,sBAAb;AACD;AACF;;AACD,SAAO,KAAP;AACD,CARyB,EAA1B;;AAUA,IAAMgB,QAAQ,GAAG,SAAXA,QAAW,CAACxF,EAAD,EAAKyF,IAAL,EAAc;AAC7BzF,IAAE,CAAC3B,IAAH,CAAQoH,IAAR,EAAcC,KAAd,CAAoB,GAApB,EAAyBC,OAAzB,CAAiC,UAAAC,EAAE,EAAI;AACrC1H,iDAAC,YAAK0H,EAAL,EAAD,CAAaH,IAAI,KAAK,OAAT,GAAmB,SAAnB,GAA+B,gBAA5C,YAAiEA,IAAjE,kBAAoF,CAACzF,EAAD,CAApF;AACD,GAFD;AAGD,CAJD;;AAMA,IAAIvB,QAAQ,GAAG;AACboH,WAAS,EAAE;AACTC,SAAK,EAAE,EADE;AAETC,UAAM,EAAE;AAFC,GADE;AAKbC,cAAY,EAAE;AALD,CAAf;AAQAvH,QAAQ,CAACoH,SAAT,CAAmBC,KAAnB,GAA4B;AAC1BG,cAAY,EAAE,wBAAW;AACvBT,YAAQ,CAACtH,6CAAC,CAAC,IAAD,CAAF,EAAU,MAAV,CAAR;AACD,GAHyB;AAI1BgI,eAAa,EAAE,yBAAW;AACxB,QAAIN,EAAE,GAAG1H,6CAAC,CAAC,IAAD,CAAD,CAAQG,IAAR,CAAa,OAAb,CAAT;;AACA,QAAIuH,EAAJ,EAAQ;AACNJ,cAAQ,CAACtH,6CAAC,CAAC,IAAD,CAAF,EAAU,OAAV,CAAR;AACD,KAFD,MAGK;AACHA,mDAAC,CAAC,IAAD,CAAD,CAAQoE,OAAR,CAAgB,kBAAhB;AACD;AACF,GAZyB;AAa1B6D,gBAAc,EAAE,0BAAW;AACzB,QAAIP,EAAE,GAAG1H,6CAAC,CAAC,IAAD,CAAD,CAAQG,IAAR,CAAa,QAAb,CAAT;;AACA,QAAIuH,EAAJ,EAAQ;AACNJ,cAAQ,CAACtH,6CAAC,CAAC,IAAD,CAAF,EAAU,QAAV,CAAR;AACD,KAFD,MAEO;AACLA,mDAAC,CAAC,IAAD,CAAD,CAAQoE,OAAR,CAAgB,mBAAhB;AACD;AACF,GApByB;AAqB1B8D,mBAAiB,EAAE,2BAASxF,CAAT,EAAY;AAC7B,QAAIyF,SAAS,GAAGnI,6CAAC,CAAC,IAAD,CAAD,CAAQG,IAAR,CAAa,UAAb,CAAhB,CAD6B,CAG7B;;AACAuC,KAAC,CAAC0F,eAAF;;AAEA,QAAGD,SAAS,KAAK,EAAjB,EAAoB;AAClBE,oEAAM,CAACC,UAAP,CAAkBtI,6CAAC,CAAC,IAAD,CAAnB,EAA2BmI,SAA3B,EAAsC,YAAW;AAC/CnI,qDAAC,CAAC,IAAD,CAAD,CAAQoE,OAAR,CAAgB,WAAhB;AACD,OAFD;AAGD,KAJD,MAIK;AACHpE,mDAAC,CAAC,IAAD,CAAD,CAAQuI,OAAR,GAAkBnE,OAAlB,CAA0B,WAA1B;AACD;AACF,GAlCyB;AAmC1BoE,qBAAmB,EAAE,+BAAW;AAC9B,QAAId,EAAE,GAAG1H,6CAAC,CAAC,IAAD,CAAD,CAAQG,IAAR,CAAa,cAAb,CAAT;AACAH,iDAAC,YAAK0H,EAAL,EAAD,CAAYe,cAAZ,CAA2B,mBAA3B,EAAgD,CAACzI,6CAAC,CAAC,IAAD,CAAF,CAAhD;AACD;AAtCyB,CAA5B,C,CAyCA;;AACAO,QAAQ,CAACuH,YAAT,CAAsBY,eAAtB,GAAwC,UAACC,KAAD,EAAW;AACjDA,OAAK,CAAClG,GAAN,CAAU,kBAAV,EAA8BlC,QAAQ,CAACoH,SAAT,CAAmBC,KAAnB,CAAyBG,YAAvD;AACAY,OAAK,CAACxG,EAAN,CAAS,kBAAT,EAA6B,aAA7B,EAA4C5B,QAAQ,CAACoH,SAAT,CAAmBC,KAAnB,CAAyBG,YAArE;AACD,CAHD,C,CAKA;AACA;;;AACAxH,QAAQ,CAACuH,YAAT,CAAsBc,gBAAtB,GAAyC,UAACD,KAAD,EAAW;AAClDA,OAAK,CAAClG,GAAN,CAAU,kBAAV,EAA8BlC,QAAQ,CAACoH,SAAT,CAAmBC,KAAnB,CAAyBI,aAAvD;AACAW,OAAK,CAACxG,EAAN,CAAS,kBAAT,EAA6B,cAA7B,EAA6C5B,QAAQ,CAACoH,SAAT,CAAmBC,KAAnB,CAAyBI,aAAtE;AACD,CAHD,C,CAKA;;;AACAzH,QAAQ,CAACuH,YAAT,CAAsBe,iBAAtB,GAA0C,UAACF,KAAD,EAAW;AACnDA,OAAK,CAAClG,GAAN,CAAU,kBAAV,EAA8BlC,QAAQ,CAACoH,SAAT,CAAmBC,KAAnB,CAAyBK,cAAvD;AACAU,OAAK,CAACxG,EAAN,CAAS,kBAAT,EAA6B,eAA7B,EAA8C5B,QAAQ,CAACoH,SAAT,CAAmBC,KAAnB,CAAyBK,cAAvE;AACD,CAHD,C,CAKA;;;AACA1H,QAAQ,CAACuH,YAAT,CAAsBgB,oBAAtB,GAA6C,UAACH,KAAD,EAAW;AACtDA,OAAK,CAAClG,GAAN,CAAU,kBAAV,EAA8BlC,QAAQ,CAACoH,SAAT,CAAmBC,KAAnB,CAAyBM,iBAAvD;AACAS,OAAK,CAACxG,EAAN,CAAS,kBAAT,EAA6B,mCAA7B,EAAkE5B,QAAQ,CAACoH,SAAT,CAAmBC,KAAnB,CAAyBM,iBAA3F;AACD,CAHD,C,CAKA;;;AACA3H,QAAQ,CAACuH,YAAT,CAAsBiB,sBAAtB,GAA+C,UAACJ,KAAD,EAAW;AACxDA,OAAK,CAAClG,GAAN,CAAU,kCAAV,EAA8ClC,QAAQ,CAACoH,SAAT,CAAmBC,KAAnB,CAAyBY,mBAAvE;AACAG,OAAK,CAACxG,EAAN,CAAS,kCAAT,EAA6C,qBAA7C,EAAoE5B,QAAQ,CAACoH,SAAT,CAAmBC,KAAnB,CAAyBY,mBAA7F;AACD,CAHD,C,CAOA;;;AACAjI,QAAQ,CAACoH,SAAT,CAAmBE,MAAnB,GAA6B;AAC3BmB,gBAAc,EAAE,wBAASC,MAAT,EAAiB;AAC/B,QAAG,CAAC7B,gBAAJ,EAAqB;AAAC;AACpB6B,YAAM,CAACC,IAAP,CAAY,YAAU;AACpBlJ,qDAAC,CAAC,IAAD,CAAD,CAAQyI,cAAR,CAAuB,qBAAvB;AACD,OAFD;AAGD,KAL8B,CAM/B;;;AACAQ,UAAM,CAACrI,IAAP,CAAY,aAAZ,EAA2B,QAA3B;AACD,GAT0B;AAU3BuI,gBAAc,EAAE,wBAASF,MAAT,EAAiB;AAC/B,QAAG,CAAC7B,gBAAJ,EAAqB;AAAC;AACpB6B,YAAM,CAACC,IAAP,CAAY,YAAU;AACpBlJ,qDAAC,CAAC,IAAD,CAAD,CAAQyI,cAAR,CAAuB,qBAAvB;AACD,OAFD;AAGD,KAL8B,CAM/B;;;AACAQ,UAAM,CAACrI,IAAP,CAAY,aAAZ,EAA2B,QAA3B;AACD,GAlB0B;AAmB3BwI,iBAAe,EAAE,yBAAS1G,CAAT,EAAY2G,QAAZ,EAAqB;AACpC,QAAI1J,MAAM,GAAG+C,CAAC,CAAC4G,SAAF,CAAY9B,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,CAAb;AACA,QAAI+B,OAAO,GAAGvJ,6CAAC,iBAAUL,MAAV,OAAD,CAAsBsE,GAAtB,4BAA6CoF,QAA7C,SAAd;AAEAE,WAAO,CAACL,IAAR,CAAa,YAAU;AACrB,UAAInH,KAAK,GAAG/B,6CAAC,CAAC,IAAD,CAAb;;AACA+B,WAAK,CAAC0G,cAAN,CAAqB,kBAArB,EAAyC,CAAC1G,KAAD,CAAzC;AACD,KAHD;AAID,GA3B0B,CA8B7B;;AA9B6B,CAA7B;;AA+BAxB,QAAQ,CAACuH,YAAT,CAAsB0B,kBAAtB,GAA2C,UAASC,UAAT,EAAqB;AAC9D,MAAIC,SAAS,GAAG1J,6CAAC,CAAC,iBAAD,CAAjB;AAAA,MACI2J,SAAS,GAAG,CAAC,UAAD,EAAa,SAAb,EAAwB,QAAxB,CADhB;;AAGA,MAAGF,UAAH,EAAc;AACZ,QAAG,OAAOA,UAAP,KAAsB,QAAzB,EAAkC;AAChCE,eAAS,CAACvD,IAAV,CAAeqD,UAAf;AACD,KAFD,MAEM,IAAG,QAAOA,UAAP,MAAsB,QAAtB,IAAkC,OAAOA,UAAU,CAAC,CAAD,CAAjB,KAAyB,QAA9D,EAAuE;AAC3EE,eAAS,GAAGA,SAAS,CAACC,MAAV,CAAiBH,UAAjB,CAAZ;AACD,KAFK,MAED;AACHI,aAAO,CAACC,KAAR,CAAc,8BAAd;AACD;AACF;;AACD,MAAGJ,SAAS,CAAC5I,MAAb,EAAoB;AAClB,QAAIiJ,SAAS,GAAGJ,SAAS,CAACK,GAAV,CAAc,UAACC,IAAD,EAAU;AACtC,kCAAqBA,IAArB;AACD,KAFe,EAEbC,IAFa,CAER,GAFQ,CAAhB;AAIAlK,iDAAC,CAACiC,MAAD,CAAD,CAAUQ,GAAV,CAAcsH,SAAd,EAAyB5H,EAAzB,CAA4B4H,SAA5B,EAAuCxJ,QAAQ,CAACoH,SAAT,CAAmBE,MAAnB,CAA0BuB,eAAjE;AACD;AACF,CApBD;;AAsBA,SAASe,sBAAT,CAAgCC,QAAhC,EAA0ChG,OAA1C,EAAmDiG,QAAnD,EAA6D;AAC3D,MAAIC,KAAJ;AAAA,MAAWC,IAAI,GAAGC,KAAK,CAACC,SAAN,CAAgBC,KAAhB,CAAsBC,IAAtB,CAA2BC,SAA3B,EAAsC,CAAtC,CAAlB;AACA5K,+CAAC,CAACiC,MAAD,CAAD,CAAUQ,GAAV,CAAc2B,OAAd,EAAuBjC,EAAvB,CAA0BiC,OAA1B,EAAmC,UAAS1B,CAAT,EAAY;AAC7C,QAAI4H,KAAJ,EAAW;AAAErH,kBAAY,CAACqH,KAAD,CAAZ;AAAsB;;AACnCA,SAAK,GAAGnH,UAAU,CAAC,YAAU;AAC3BkH,cAAQ,CAACQ,KAAT,CAAe,IAAf,EAAqBN,IAArB;AACD,KAFiB,EAEfH,QAAQ,IAAI,EAFG,CAAlB,CAF6C,CAI1B;AACpB,GALD;AAMD;;AAED7J,QAAQ,CAACuH,YAAT,CAAsBgD,iBAAtB,GAA0C,UAASV,QAAT,EAAkB;AAC1D,MAAInB,MAAM,GAAGjJ,6CAAC,CAAC,eAAD,CAAd;;AACA,MAAGiJ,MAAM,CAACnI,MAAV,EAAiB;AACfqJ,0BAAsB,CAACC,QAAD,EAAW,mBAAX,EAAgC7J,QAAQ,CAACoH,SAAT,CAAmBE,MAAnB,CAA0BmB,cAA1D,EAA0EC,MAA1E,CAAtB;AACD;AACF,CALD;;AAOA1I,QAAQ,CAACuH,YAAT,CAAsBiD,iBAAtB,GAA0C,UAASX,QAAT,EAAkB;AAC1D,MAAInB,MAAM,GAAGjJ,6CAAC,CAAC,eAAD,CAAd;;AACA,MAAGiJ,MAAM,CAACnI,MAAV,EAAiB;AACfqJ,0BAAsB,CAACC,QAAD,EAAW,mBAAX,EAAgC7J,QAAQ,CAACoH,SAAT,CAAmBE,MAAnB,CAA0BsB,cAA1D,EAA0EF,MAA1E,CAAtB;AACD;AACF,CALD;;AAOA1I,QAAQ,CAACuH,YAAT,CAAsBkD,yBAAtB,GAAkD,UAASrC,KAAT,EAAgB;AAChE,MAAG,CAACvB,gBAAJ,EAAqB;AAAE,WAAO,KAAP;AAAe;;AACtC,MAAI6B,MAAM,GAAGN,KAAK,CAACxE,IAAN,CAAW,6CAAX,CAAb,CAFgE,CAIhE;;AACA,MAAI8G,yBAAyB,GAAG,SAA5BA,yBAA4B,CAAUC,mBAAV,EAA+B;AAC7D,QAAI1H,OAAO,GAAGxD,6CAAC,CAACkL,mBAAmB,CAAC,CAAD,CAAnB,CAAuBhH,MAAxB,CAAf,CAD6D,CAG7D;;AACA,YAAQgH,mBAAmB,CAAC,CAAD,CAAnB,CAAuB3D,IAA/B;AACE,WAAK,YAAL;AACE,YAAI/D,OAAO,CAAC5C,IAAR,CAAa,aAAb,MAAgC,QAAhC,IAA4CsK,mBAAmB,CAAC,CAAD,CAAnB,CAAuBC,aAAvB,KAAyC,aAAzF,EAAwG;AACtG3H,iBAAO,CAACiF,cAAR,CAAuB,qBAAvB,EAA8C,CAACjF,OAAD,EAAUvB,MAAM,CAACmJ,WAAjB,CAA9C;AACD;;AACD,YAAI5H,OAAO,CAAC5C,IAAR,CAAa,aAAb,MAAgC,QAAhC,IAA4CsK,mBAAmB,CAAC,CAAD,CAAnB,CAAuBC,aAAvB,KAAyC,aAAzF,EAAwG;AACtG3H,iBAAO,CAACiF,cAAR,CAAuB,qBAAvB,EAA8C,CAACjF,OAAD,CAA9C;AACA;;AACF,YAAI0H,mBAAmB,CAAC,CAAD,CAAnB,CAAuBC,aAAvB,KAAyC,OAA7C,EAAsD;AACpD3H,iBAAO,CAAC6H,OAAR,CAAgB,eAAhB,EAAiCzK,IAAjC,CAAsC,aAAtC,EAAoD,QAApD;AACA4C,iBAAO,CAAC6H,OAAR,CAAgB,eAAhB,EAAiC5C,cAAjC,CAAgD,qBAAhD,EAAuE,CAACjF,OAAO,CAAC6H,OAAR,CAAgB,eAAhB,CAAD,CAAvE;AACD;;AACD;;AAEF,WAAK,WAAL;AACE7H,eAAO,CAAC6H,OAAR,CAAgB,eAAhB,EAAiCzK,IAAjC,CAAsC,aAAtC,EAAoD,QAApD;AACA4C,eAAO,CAAC6H,OAAR,CAAgB,eAAhB,EAAiC5C,cAAjC,CAAgD,qBAAhD,EAAuE,CAACjF,OAAO,CAAC6H,OAAR,CAAgB,eAAhB,CAAD,CAAvE;AACA;;AAEF;AACE,eAAO,KAAP;AACF;AArBF;AAuBD,GA3BD;;AA6BA,MAAIpC,MAAM,CAACnI,MAAX,EAAmB;AACjB;AACA,SAAK,IAAIwF,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI2C,MAAM,CAACnI,MAAP,GAAgB,CAArC,EAAwCwF,CAAC,EAAzC,EAA6C;AAC3C,UAAIgF,eAAe,GAAG,IAAIlE,gBAAJ,CAAqB6D,yBAArB,CAAtB;AACAK,qBAAe,CAACC,OAAhB,CAAwBtC,MAAM,CAAC3C,CAAD,CAA9B,EAAmC;AAAEkF,kBAAU,EAAE,IAAd;AAAoBC,iBAAS,EAAE,IAA/B;AAAqCC,qBAAa,EAAE,KAApD;AAA2DC,eAAO,EAAE,IAApE;AAA0EC,uBAAe,EAAE,CAAC,aAAD,EAAgB,OAAhB;AAA3F,OAAnC;AACD;AACF;AACF,CAzCD;;AA2CArL,QAAQ,CAACuH,YAAT,CAAsB+D,kBAAtB,GAA2C,YAAW;AACpD,MAAIC,SAAS,GAAG9L,6CAAC,CAAC+D,QAAD,CAAjB;AAEAxD,UAAQ,CAACuH,YAAT,CAAsBY,eAAtB,CAAsCoD,SAAtC;AACAvL,UAAQ,CAACuH,YAAT,CAAsBc,gBAAtB,CAAuCkD,SAAvC;AACAvL,UAAQ,CAACuH,YAAT,CAAsBe,iBAAtB,CAAwCiD,SAAxC;AACAvL,UAAQ,CAACuH,YAAT,CAAsBgB,oBAAtB,CAA2CgD,SAA3C;AACAvL,UAAQ,CAACuH,YAAT,CAAsBiB,sBAAtB,CAA6C+C,SAA7C;AAED,CATD;;AAWAvL,QAAQ,CAACuH,YAAT,CAAsBiE,kBAAtB,GAA2C,YAAW;AACpD,MAAID,SAAS,GAAG9L,6CAAC,CAAC+D,QAAD,CAAjB;AACAxD,UAAQ,CAACuH,YAAT,CAAsBkD,yBAAtB,CAAgDc,SAAhD;AACAvL,UAAQ,CAACuH,YAAT,CAAsBgD,iBAAtB;AACAvK,UAAQ,CAACuH,YAAT,CAAsBiD,iBAAtB;AACAxK,UAAQ,CAACuH,YAAT,CAAsB0B,kBAAtB;AACD,CAND;;AASAjJ,QAAQ,CAACD,IAAT,GAAgB,UAAUN,CAAV,EAAaN,UAAb,EAAyB;AACvCsM,uEAAM,CAAChM,CAAC,CAACiC,MAAD,CAAF,EAAY,YAAY;AAC5B,QAAIjC,CAAC,CAACiM,mBAAF,KAA0B,IAA9B,EAAoC;AAClC1L,cAAQ,CAACuH,YAAT,CAAsB+D,kBAAtB;AACAtL,cAAQ,CAACuH,YAAT,CAAsBiE,kBAAtB;AACA/L,OAAC,CAACiM,mBAAF,GAAwB,IAAxB;AACD;AACF,GANK,CAAN;;AAQA,MAAGvM,UAAH,EAAe;AACbA,cAAU,CAACa,QAAX,GAAsBA,QAAtB,CADa,CAEb;;AACAb,cAAU,CAACwM,QAAX,GAAsB3L,QAAQ,CAACuH,YAAT,CAAsBiE,kBAA5C;AACD;AACF,CAdD;;;;;;;;;;;;;;;;;;;;;;;;;ACrPA,oD","file":"foundation.dropdown.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.util.keyboard\"), require(\"./foundation.core\"), require(\"jquery\"), require(\"./foundation.util.box\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.util.keyboard\", \"./foundation.core\", \"jquery\", \"./foundation.util.box\", \"./foundation.util.motion\", \"./foundation.util.touch\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.dropdown\"] = factory(require(\"./foundation.util.keyboard\"), require(\"./foundation.core\"), require(\"jquery\"), require(\"./foundation.util.box\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.dropdown\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;","import { Foundation } from './foundation.core';\n\nimport { Dropdown } from '../../foundation.dropdown';\nFoundation.plugin(Dropdown, 'Dropdown');\n\nexport { Foundation, Dropdown };\n","'use strict';\n\nimport $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { Positionable } from './foundation.positionable';\n\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Dropdown module.\n * @module foundation.dropdown\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n */\nclass Dropdown extends Positionable {\n /**\n * Creates a new instance of a dropdown.\n * @class\n * @name Dropdown\n * @param {jQuery} element - jQuery object to make into a dropdown.\n * Object should be of the dropdown panel, rather than its anchor.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Dropdown.defaults, this.$element.data(), options);\n this.className = 'Dropdown'; // ie9 back compat\n\n // Touch and Triggers init are idempotent, just need to make sure they are initialized\n Touch.init($);\n Triggers.init($);\n\n this._init();\n\n Keyboard.register('Dropdown', {\n 'ENTER': 'toggle',\n 'SPACE': 'toggle',\n 'ESCAPE': 'close'\n });\n }\n\n /**\n * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.\n * @function\n * @private\n */\n _init() {\n var $id = this.$element.attr('id');\n\n this.$anchors = $(`[data-toggle=\"${$id}\"]`).length ? $(`[data-toggle=\"${$id}\"]`) : $(`[data-open=\"${$id}\"]`);\n this.$anchors.attr({\n 'aria-controls': $id,\n 'data-is-focus': false,\n 'data-yeti-box': $id,\n 'aria-haspopup': true,\n 'aria-expanded': false\n });\n\n this._setCurrentAnchor(this.$anchors.first());\n\n if(this.options.parentClass){\n this.$parent = this.$element.parents('.' + this.options.parentClass);\n }else{\n this.$parent = null;\n }\n\n // Set [aria-labelledby] on the Dropdown if it is not set\n if (typeof this.$element.attr('aria-labelledby') === 'undefined') {\n // Get the anchor ID or create one\n if (typeof this.$currentAnchor.attr('id') === 'undefined') {\n this.$currentAnchor.attr('id', GetYoDigits(6, 'dd-anchor'));\n };\n\n this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));\n }\n\n this.$element.attr({\n 'aria-hidden': 'true',\n 'data-yeti-box': $id,\n 'data-resize': $id,\n });\n\n super._init();\n this._events();\n }\n\n _getDefaultPosition() {\n // handle legacy classnames\n var position = this.$element[0].className.match(/(top|left|right|bottom)/g);\n if(position) {\n return position[0];\n } else {\n return 'bottom'\n }\n }\n\n _getDefaultAlignment() {\n // handle legacy float approach\n var horizontalPosition = /float-(\\S+)/.exec(this.$currentAnchor.attr('class'));\n if(horizontalPosition) {\n return horizontalPosition[1];\n }\n\n return super._getDefaultAlignment();\n }\n\n\n\n /**\n * Sets the position and orientation of the dropdown pane, checks for collisions if allow-overlap is not true.\n * Recursively calls itself if a collision is detected, with a new position class.\n * @function\n * @private\n */\n _setPosition() {\n this.$element.removeClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n super._setPosition(this.$currentAnchor, this.$element, this.$parent);\n this.$element.addClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n }\n\n /**\n * Make it a current anchor.\n * Current anchor as the reference for the position of Dropdown panes.\n * @param {HTML} el - DOM element of the anchor.\n * @function\n * @private\n */\n _setCurrentAnchor(el) {\n this.$currentAnchor = $(el);\n }\n\n /**\n * Adds event listeners to the element utilizing the triggers utility library.\n * @function\n * @private\n */\n _events() {\n var _this = this,\n hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n\n this.$element.on({\n 'open.zf.trigger': this.open.bind(this),\n 'close.zf.trigger': this.close.bind(this),\n 'toggle.zf.trigger': this.toggle.bind(this),\n 'resizeme.zf.trigger': this._setPosition.bind(this)\n });\n\n this.$anchors.off('click.zf.trigger')\n .on('click.zf.trigger', function(e) {\n _this._setCurrentAnchor(this);\n\n if (_this.options.forceFollow === false) {\n // if forceFollow false, always prevent default action\n e.preventDefault();\n } else if (hasTouch && _this.options.hover && _this.$element.hasClass('is-open') === false) {\n // if forceFollow true and hover option true, only prevent default action on 1st click\n // on 2nd click (dropown opened) the default action (e.g. follow a href) gets executed\n e.preventDefault();\n }\n });\n\n if(this.options.hover){\n this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n .on('mouseenter.zf.dropdown', function(){\n _this._setCurrentAnchor(this);\n\n var bodyData = $('body').data();\n if(typeof(bodyData.whatinput) === 'undefined' || bodyData.whatinput === 'mouse') {\n clearTimeout(_this.timeout);\n _this.timeout = setTimeout(function(){\n _this.open();\n _this.$anchors.data('hover', true);\n }, _this.options.hoverDelay);\n }\n }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n clearTimeout(_this.timeout);\n _this.timeout = setTimeout(function(){\n _this.close();\n _this.$anchors.data('hover', false);\n }, _this.options.hoverDelay);\n }));\n if(this.options.hoverPane){\n this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n .on('mouseenter.zf.dropdown', function(){\n clearTimeout(_this.timeout);\n }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n clearTimeout(_this.timeout);\n _this.timeout = setTimeout(function(){\n _this.close();\n _this.$anchors.data('hover', false);\n }, _this.options.hoverDelay);\n }));\n }\n }\n this.$anchors.add(this.$element).on('keydown.zf.dropdown', function(e) {\n\n var $target = $(this),\n visibleFocusableElements = Keyboard.findFocusable(_this.$element);\n\n Keyboard.handleKey(e, 'Dropdown', {\n open: function() {\n if ($target.is(_this.$anchors) && !$target.is('input, textarea')) {\n _this.open();\n _this.$element.attr('tabindex', -1).focus();\n e.preventDefault();\n }\n },\n close: function() {\n _this.close();\n _this.$anchors.focus();\n }\n });\n });\n }\n\n /**\n * Adds an event handler to the body to close any dropdowns on a click.\n * @function\n * @private\n */\n _addBodyHandler() {\n var $body = $(document.body).not(this.$element),\n _this = this;\n $body.off('click.zf.dropdown tap.zf.dropdown')\n .on('click.zf.dropdown tap.zf.dropdown', function (e) {\n if(_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {\n return;\n }\n if(_this.$element.is(e.target) || _this.$element.find(e.target).length) {\n return;\n }\n _this.close();\n $body.off('click.zf.dropdown tap.zf.dropdown');\n });\n }\n\n /**\n * Opens the dropdown pane, and fires a bubbling event to close other dropdowns.\n * @function\n * @fires Dropdown#closeme\n * @fires Dropdown#show\n */\n open() {\n // var _this = this;\n /**\n * Fires to close other open dropdowns, typically when dropdown is opening\n * @event Dropdown#closeme\n */\n this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));\n this.$anchors.addClass('hover')\n .attr({'aria-expanded': true});\n // this.$element/*.show()*/;\n\n this.$element.addClass('is-opening');\n this._setPosition();\n this.$element.removeClass('is-opening').addClass('is-open')\n .attr({'aria-hidden': false});\n\n if(this.options.autoFocus){\n var $focusable = Keyboard.findFocusable(this.$element);\n if($focusable.length){\n $focusable.eq(0).focus();\n }\n }\n\n if(this.options.closeOnClick){ this._addBodyHandler(); }\n\n if (this.options.trapFocus) {\n Keyboard.trapFocus(this.$element);\n }\n\n /**\n * Fires once the dropdown is visible.\n * @event Dropdown#show\n */\n this.$element.trigger('show.zf.dropdown', [this.$element]);\n }\n\n /**\n * Closes the open dropdown pane.\n * @function\n * @fires Dropdown#hide\n */\n close() {\n if(!this.$element.hasClass('is-open')){\n return false;\n }\n this.$element.removeClass('is-open')\n .attr({'aria-hidden': true});\n\n this.$anchors.removeClass('hover')\n .attr('aria-expanded', false);\n\n /**\n * Fires once the dropdown is no longer visible.\n * @event Dropdown#hide\n */\n this.$element.trigger('hide.zf.dropdown', [this.$element]);\n\n if (this.options.trapFocus) {\n Keyboard.releaseFocus(this.$element);\n }\n }\n\n /**\n * Toggles the dropdown pane's visibility.\n * @function\n */\n toggle() {\n if(this.$element.hasClass('is-open')){\n if(this.$anchors.data('hover')) return;\n this.close();\n }else{\n this.open();\n }\n }\n\n /**\n * Destroys the dropdown.\n * @function\n */\n _destroy() {\n this.$element.off('.zf.trigger').hide();\n this.$anchors.off('.zf.dropdown');\n $(document.body).off('click.zf.dropdown tap.zf.dropdown');\n\n }\n}\n\nDropdown.defaults = {\n /**\n * Class that designates bounding container of Dropdown (default: window)\n * @option\n * @type {?string}\n * @default null\n */\n parentClass: null,\n /**\n * Amount of time to delay opening a submenu on hover event.\n * @option\n * @type {number}\n * @default 250\n */\n hoverDelay: 250,\n /**\n * Allow submenus to open on hover events\n * @option\n * @type {boolean}\n * @default false\n */\n hover: false,\n /**\n * Don't close dropdown when hovering over dropdown pane\n * @option\n * @type {boolean}\n * @default false\n */\n hoverPane: false,\n /**\n * Number of pixels between the dropdown pane and the triggering element on open.\n * @option\n * @type {number}\n * @default 0\n */\n vOffset: 0,\n /**\n * Number of pixels between the dropdown pane and the triggering element on open.\n * @option\n * @type {number}\n * @default 0\n */\n hOffset: 0,\n /**\n * Position of dropdown. Can be left, right, bottom, top, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n position: 'auto',\n /**\n * Alignment of dropdown relative to anchor. Can be left, right, bottom, top, center, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n alignment: 'auto',\n /**\n * Allow overlap of container/window. If false, dropdown will first try to position as defined by data-position and data-alignment, but reposition if it would cause an overflow.\n * @option\n * @type {boolean}\n * @default false\n */\n allowOverlap: false,\n /**\n * Allow overlap of only the bottom of the container. This is the most common\n * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n * screen but not otherwise influence or break out of the container.\n * @option\n * @type {boolean}\n * @default true\n */\n allowBottomOverlap: true,\n /**\n * Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.\n * @option\n * @type {boolean}\n * @default false\n */\n trapFocus: false,\n /**\n * Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.\n * @option\n * @type {boolean}\n * @default false\n */\n autoFocus: false,\n /**\n * Allows a click on the body to close the dropdown.\n * @option\n * @type {boolean}\n * @default false\n */\n closeOnClick: false,\n /**\n * If true the default action of the toggle (e.g. follow a link with href) gets executed on click. If hover option is also true the default action gets prevented on first click for mobile / touch devices and executed on second click.\n * @option\n * @type {boolean}\n * @default true\n */\n forceFollow: true\n};\n\nexport {Dropdown};\n","'use strict';\n\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst POSITIONS = ['left', 'right', 'top', 'bottom'];\nconst VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];\nconst HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];\n\nconst ALIGNMENTS = {\n 'left': VERTICAL_ALIGNMENTS,\n 'right': VERTICAL_ALIGNMENTS,\n 'top': HORIZONTAL_ALIGNMENTS,\n 'bottom': HORIZONTAL_ALIGNMENTS\n}\n\nfunction nextItem(item, array) {\n var currentIdx = array.indexOf(item);\n if(currentIdx === array.length - 1) {\n return array[0];\n } else {\n return array[currentIdx + 1];\n }\n}\n\n\nclass Positionable extends Plugin {\n /**\n * Abstract class encapsulating the tether-like explicit positioning logic\n * including repositioning based on overlap.\n * Expects classes to define defaults for vOffset, hOffset, position,\n * alignment, allowOverlap, and allowBottomOverlap. They can do this by\n * extending the defaults, or (for now recommended due to the way docs are\n * generated) by explicitly declaring them.\n *\n **/\n\n _init() {\n this.triedPositions = {};\n this.position = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;\n this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;\n this.originalPosition = this.position;\n this.originalAlignment = this.alignment;\n }\n\n _getDefaultPosition () {\n return 'bottom';\n }\n\n _getDefaultAlignment() {\n switch(this.position) {\n case 'bottom':\n case 'top':\n return Rtl() ? 'right' : 'left';\n case 'left':\n case 'right':\n return 'bottom';\n }\n }\n\n /**\n * Adjusts the positionable possible positions by iterating through alignments\n * and positions.\n * @function\n * @private\n */\n _reposition() {\n if(this._alignmentsExhausted(this.position)) {\n this.position = nextItem(this.position, POSITIONS);\n this.alignment = ALIGNMENTS[this.position][0];\n } else {\n this._realign();\n }\n }\n\n /**\n * Adjusts the dropdown pane possible positions by iterating through alignments\n * on the current position.\n * @function\n * @private\n */\n _realign() {\n this._addTriedPosition(this.position, this.alignment)\n this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position])\n }\n\n _addTriedPosition(position, alignment) {\n this.triedPositions[position] = this.triedPositions[position] || []\n this.triedPositions[position].push(alignment);\n }\n\n _positionsExhausted() {\n var isExhausted = true;\n for(var i = 0; i < POSITIONS.length; i++) {\n isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);\n }\n return isExhausted;\n }\n\n _alignmentsExhausted(position) {\n return this.triedPositions[position] && this.triedPositions[position].length == ALIGNMENTS[position].length;\n }\n\n\n // When we're trying to center, we don't want to apply offset that's going to\n // take us just off center, so wrap around to return 0 for the appropriate\n // offset in those alignments. TODO: Figure out if we want to make this\n // configurable behavior... it feels more intuitive, especially for tooltips, but\n // it's possible someone might actually want to start from center and then nudge\n // slightly off.\n _getVOffset() {\n return this.options.vOffset;\n }\n\n _getHOffset() {\n return this.options.hOffset;\n }\n\n _setPosition($anchor, $element, $parent) {\n if($anchor.attr('aria-expanded') === 'false'){ return false; }\n\n if (!this.options.allowOverlap) {\n // restore original position & alignment before checking overlap\n this.position = this.originalPosition;\n this.alignment = this.originalAlignment;\n }\n\n $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n\n if(!this.options.allowOverlap) {\n var minOverlap = 100000000;\n // default coordinates to how we start, in case we can't figure out better\n var minCoordinates = {position: this.position, alignment: this.alignment};\n while(!this._positionsExhausted()) {\n let overlap = Box.OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);\n if(overlap === 0) {\n return;\n }\n\n if(overlap < minOverlap) {\n minOverlap = overlap;\n minCoordinates = {position: this.position, alignment: this.alignment};\n }\n\n this._reposition();\n\n $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n }\n // If we get through the entire loop, there was no non-overlapping\n // position available. Pick the version with least overlap.\n this.position = minCoordinates.position;\n this.alignment = minCoordinates.alignment;\n $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n }\n }\n\n}\n\nPositionable.defaults = {\n /**\n * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n position: 'auto',\n /**\n * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n alignment: 'auto',\n /**\n * Allow overlap of container/window. If false, dropdown positionable first\n * try to position as defined by data-position and data-alignment, but\n * reposition if it would cause an overflow.\n * @option\n * @type {boolean}\n * @default false\n */\n allowOverlap: false,\n /**\n * Allow overlap of only the bottom of the container. This is the most common\n * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n * screen but not otherwise influence or break out of the container.\n * @option\n * @type {boolean}\n * @default true\n */\n allowBottomOverlap: true,\n /**\n * Number of pixels the positionable should be separated vertically from anchor\n * @option\n * @type {number}\n * @default 0\n */\n vOffset: 0,\n /**\n * Number of pixels the positionable should be separated horizontally from anchor\n * @option\n * @type {number}\n * @default 0\n */\n hOffset: 0,\n}\n\nexport {Positionable};\n","'use strict';\n\nimport $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n for (var i=0; i < prefixes.length; i++) {\n if (`${prefixes[i]}MutationObserver` in window) {\n return window[`${prefixes[i]}MutationObserver`];\n }\n }\n return false;\n}());\n\nconst triggers = (el, type) => {\n el.data(type).split(' ').forEach(id => {\n $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n });\n};\n\nvar Triggers = {\n Listeners: {\n Basic: {},\n Global: {}\n },\n Initializers: {}\n}\n\nTriggers.Listeners.Basic = {\n openListener: function() {\n triggers($(this), 'open');\n },\n closeListener: function() {\n let id = $(this).data('close');\n if (id) {\n triggers($(this), 'close');\n }\n else {\n $(this).trigger('close.zf.trigger');\n }\n },\n toggleListener: function() {\n let id = $(this).data('toggle');\n if (id) {\n triggers($(this), 'toggle');\n } else {\n $(this).trigger('toggle.zf.trigger');\n }\n },\n closeableListener: function(e) {\n let animation = $(this).data('closable');\n\n // Only close the first closable element. See https://git.io/zf-7833\n e.stopPropagation();\n\n if(animation !== ''){\n Motion.animateOut($(this), animation, function() {\n $(this).trigger('closed.zf');\n });\n }else{\n $(this).fadeOut().trigger('closed.zf');\n }\n },\n toggleFocusListener: function() {\n let id = $(this).data('toggle-focus');\n $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global = {\n resizeListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('resizeme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a resize event\n $nodes.attr('data-events', \"resize\");\n },\n scrollListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('scrollme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a scroll event\n $nodes.attr('data-events', \"scroll\");\n },\n closeMeListener: function(e, pluginId){\n let plugin = e.namespace.split('.')[0];\n let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n plugins.each(function(){\n let _this = $(this);\n _this.triggerHandler('close.zf.trigger', [_this]);\n });\n }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n var yetiBoxes = $('[data-yeti-box]'),\n plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n if(pluginName){\n if(typeof pluginName === 'string'){\n plugNames.push(pluginName);\n }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n plugNames = plugNames.concat(pluginName);\n }else{\n console.error('Plugin names must be strings');\n }\n }\n if(yetiBoxes.length){\n let listeners = plugNames.map((name) => {\n return `closeme.zf.${name}`;\n }).join(' ');\n\n $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n let timer, args = Array.prototype.slice.call(arguments, 3);\n $(window).off(trigger).on(trigger, function(e) {\n if (timer) { clearTimeout(timer); }\n timer = setTimeout(function(){\n listener.apply(null, args);\n }, debounce || 10);//default time to emit scroll event\n });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n let $nodes = $('[data-resize]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n let $nodes = $('[data-scroll]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n if(!MutationObserver){ return false; }\n let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n //element callback\n var listeningElementsMutation = function (mutationRecordsList) {\n var $target = $(mutationRecordsList[0].target);\n\n //trigger the event handler for the element depending on type\n switch (mutationRecordsList[0].type) {\n case \"attributes\":\n if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n }\n if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('resizeme.zf.trigger', [$target]);\n }\n if (mutationRecordsList[0].attributeName === \"style\") {\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n }\n break;\n\n case \"childList\":\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n break;\n\n default:\n return false;\n //nothing\n }\n };\n\n if ($nodes.length) {\n //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n for (var i = 0; i <= $nodes.length - 1; i++) {\n var elementObserver = new MutationObserver(listeningElementsMutation);\n elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n }\n }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n let $document = $(document);\n\n Triggers.Initializers.addOpenListener($document);\n Triggers.Initializers.addCloseListener($document);\n Triggers.Initializers.addToggleListener($document);\n Triggers.Initializers.addCloseableListener($document);\n Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n let $document = $(document);\n Triggers.Initializers.addMutationEventsListener($document);\n Triggers.Initializers.addResizeListener();\n Triggers.Initializers.addScrollListener();\n Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function ($, Foundation) {\n onLoad($(window), function () {\n if ($.triggersInitialized !== true) {\n Triggers.Initializers.addSimpleListeners();\n Triggers.Initializers.addGlobalListeners();\n $.triggersInitialized = true;\n }\n });\n\n if(Foundation) {\n Foundation.Triggers = Triggers;\n // Legacy included to be backwards compatible for now.\n Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n }\n}\n\nexport {Triggers};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("./foundation.util.keyboard"),require("./foundation.core"),require("jquery"),require("./foundation.util.box"),require("./foundation.util.motion"),require("./foundation.util.touch")):"function"==typeof define&&define.amd?define(["./foundation.util.keyboard","./foundation.core","jquery","./foundation.util.box","./foundation.util.motion","./foundation.util.touch"],e):"object"==typeof exports?exports["foundation.dropdown"]=e(require("./foundation.util.keyboard"),require("./foundation.core"),require("jquery"),require("./foundation.util.box"),require("./foundation.util.motion"),require("./foundation.util.touch")):(t.__FOUNDATION_EXTERNAL__=t.__FOUNDATION_EXTERNAL__||{},t.__FOUNDATION_EXTERNAL__["foundation.dropdown"]=e(t.__FOUNDATION_EXTERNAL__["foundation.util.keyboard"],t.__FOUNDATION_EXTERNAL__["foundation.core"],t.jQuery,t.__FOUNDATION_EXTERNAL__["foundation.util.box"],t.__FOUNDATION_EXTERNAL__["foundation.util.motion"],t.__FOUNDATION_EXTERNAL__["foundation.util.touch"]))}(window,function(n,o,i,r,s,a){return function(n){var o={};function i(t){if(o[t])return o[t].exports;var e=o[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,i),e.l=!0,e.exports}return i.m=n,i.c=o,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)i.d(n,o,function(t){return e[t]}.bind(null,o));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=4)}({"./foundation.core":function(t,e){t.exports=o},"./foundation.util.box":function(t,e){t.exports=r},"./foundation.util.keyboard":function(t,e){t.exports=n},"./foundation.util.motion":function(t,e){t.exports=s},"./foundation.util.touch":function(t,e){t.exports=a},"./js/entries/plugins/foundation.dropdown.js":function(t,e,n){"use strict";n.r(e);var o=n("./foundation.core");n.d(e,"Foundation",function(){return o.Foundation});var i=n("./js/foundation.dropdown.js");n.d(e,"Dropdown",function(){return i.Dropdown}),o.Foundation.plugin(i.Dropdown,"Dropdown")},"./js/foundation.dropdown.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Dropdown",function(){return g});var o=n("jquery"),r=n.n(o),s=n("./foundation.util.keyboard"),a=n("./foundation.core"),l=n("./js/foundation.positionable.js"),u=n("./js/foundation.util.triggers.js");n("./foundation.util.touch");function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function f(t,e){return!e||"object"!==i(e)&&"function"!=typeof e?function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t):e}function d(t,e,n){return(d="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,n){var o=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=h(t)););return t}(t,e);if(o){var i=Object.getOwnPropertyDescriptor(o,e);return i.get?i.get.call(n):i.value}})(t,e,n||t)}function h(t){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function p(t,e){return(p=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}var g=function(t){function n(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),f(this,h(n).apply(this,arguments))}var e,o,i;return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&p(t,e)}(n,l["Positionable"]),e=n,(o=[{key:"_setup",value:function(t,e){this.$element=t,this.options=r.a.extend({},n.defaults,this.$element.data(),e),this.className="Dropdown",u.Triggers.init(r.a),this._init(),s.Keyboard.register("Dropdown",{ENTER:"toggle",SPACE:"toggle",ESCAPE:"close"})}},{key:"_init",value:function(){var t=this.$element.attr("id");this.$anchors=r()('[data-toggle="'.concat(t,'"]')).length?r()('[data-toggle="'.concat(t,'"]')):r()('[data-open="'.concat(t,'"]')),this.$anchors.attr({"aria-controls":t,"data-is-focus":!1,"data-yeti-box":t,"aria-haspopup":!0,"aria-expanded":!1}),this._setCurrentAnchor(this.$anchors.first()),this.options.parentClass?this.$parent=this.$element.parents("."+this.options.parentClass):this.$parent=null,void 0===this.$element.attr("aria-labelledby")&&(void 0===this.$currentAnchor.attr("id")&&this.$currentAnchor.attr("id",Object(a.GetYoDigits)(6,"dd-anchor")),this.$element.attr("aria-labelledby",this.$currentAnchor.attr("id"))),this.$element.attr({"aria-hidden":"true","data-yeti-box":t,"data-resize":t}),d(h(n.prototype),"_init",this).call(this),this._events()}},{key:"_getDefaultPosition",value:function(){var t=this.$element[0].className.match(/(top|left|right|bottom)/g);return t?t[0]:"bottom"}},{key:"_getDefaultAlignment",value:function(){var t=/float-(\S+)/.exec(this.$currentAnchor.attr("class"));return t?t[1]:d(h(n.prototype),"_getDefaultAlignment",this).call(this)}},{key:"_setPosition",value:function(){this.$element.removeClass("has-position-".concat(this.position," has-alignment-").concat(this.alignment)),d(h(n.prototype),"_setPosition",this).call(this,this.$currentAnchor,this.$element,this.$parent),this.$element.addClass("has-position-".concat(this.position," has-alignment-").concat(this.alignment))}},{key:"_setCurrentAnchor",value:function(t){this.$currentAnchor=r()(t)}},{key:"_events",value:function(){var n=this;this.$element.on({"open.zf.trigger":this.open.bind(this),"close.zf.trigger":this.close.bind(this),"toggle.zf.trigger":this.toggle.bind(this),"resizeme.zf.trigger":this._setPosition.bind(this)}),this.$anchors.off("click.zf.trigger").on("click.zf.trigger",function(){n._setCurrentAnchor(this)}),this.options.hover&&(this.$anchors.off("mouseenter.zf.dropdown mouseleave.zf.dropdown").on("mouseenter.zf.dropdown",function(){n._setCurrentAnchor(this);var t=r()("body").data();void 0!==t.whatinput&&"mouse"!==t.whatinput||(clearTimeout(n.timeout),n.timeout=setTimeout(function(){n.open(),n.$anchors.data("hover",!0)},n.options.hoverDelay))}).on("mouseleave.zf.dropdown",Object(a.ignoreMousedisappear)(function(){clearTimeout(n.timeout),n.timeout=setTimeout(function(){n.close(),n.$anchors.data("hover",!1)},n.options.hoverDelay)})),this.options.hoverPane&&this.$element.off("mouseenter.zf.dropdown mouseleave.zf.dropdown").on("mouseenter.zf.dropdown",function(){clearTimeout(n.timeout)}).on("mouseleave.zf.dropdown",Object(a.ignoreMousedisappear)(function(){clearTimeout(n.timeout),n.timeout=setTimeout(function(){n.close(),n.$anchors.data("hover",!1)},n.options.hoverDelay)}))),this.$anchors.add(this.$element).on("keydown.zf.dropdown",function(t){var e=r()(this);s.Keyboard.findFocusable(n.$element);s.Keyboard.handleKey(t,"Dropdown",{open:function(){e.is(n.$anchors)&&!e.is("input, textarea")&&(n.open(),n.$element.attr("tabindex",-1).focus(),t.preventDefault())},close:function(){n.close(),n.$anchors.focus()}})})}},{key:"_addBodyHandler",value:function(){var e=r()(document.body).not(this.$element),n=this;e.off("click.zf.dropdown").on("click.zf.dropdown",function(t){n.$anchors.is(t.target)||n.$anchors.find(t.target).length||n.$element.is(t.target)||n.$element.find(t.target).length||(n.close(),e.off("click.zf.dropdown"))})}},{key:"open",value:function(){if(this.$element.trigger("closeme.zf.dropdown",this.$element.attr("id")),this.$anchors.addClass("hover").attr({"aria-expanded":!0}),this.$element.addClass("is-opening"),this._setPosition(),this.$element.removeClass("is-opening").addClass("is-open").attr({"aria-hidden":!1}),this.options.autoFocus){var t=s.Keyboard.findFocusable(this.$element);t.length&&t.eq(0).focus()}this.options.closeOnClick&&this._addBodyHandler(),this.options.trapFocus&&s.Keyboard.trapFocus(this.$element),this.$element.trigger("show.zf.dropdown",[this.$element])}},{key:"close",value:function(){if(!this.$element.hasClass("is-open"))return!1;this.$element.removeClass("is-open").attr({"aria-hidden":!0}),this.$anchors.removeClass("hover").attr("aria-expanded",!1),this.$element.trigger("hide.zf.dropdown",[this.$element]),this.options.trapFocus&&s.Keyboard.releaseFocus(this.$element)}},{key:"toggle",value:function(){if(this.$element.hasClass("is-open")){if(this.$anchors.data("hover"))return;this.close()}else this.open()}},{key:"_destroy",value:function(){this.$element.off(".zf.trigger").hide(),this.$anchors.off(".zf.dropdown"),r()(document.body).off("click.zf.dropdown")}}])&&c(e.prototype,o),i&&c(e,i),n}();g.defaults={parentClass:null,hoverDelay:250,hover:!1,hoverPane:!1,vOffset:0,hOffset:0,position:"auto",alignment:"auto",allowOverlap:!1,allowBottomOverlap:!0,trapFocus:!1,autoFocus:!1,closeOnClick:!1}},"./js/foundation.positionable.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Positionable",function(){return g});var s=n("./foundation.util.box"),r=n("./foundation.core");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function a(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function l(t,e){return!e||"object"!==o(e)&&"function"!=typeof e?function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t):e}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function c(t,e){return(c=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}var f=["left","right","top","bottom"],i=["top","bottom","center"],d=["left","right","center"],h={left:i,right:i,top:d,bottom:d};function p(t,e){var n=e.indexOf(t);return n===e.length-1?e[0]:e[n+1]}var g=function(t){function e(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),l(this,u(e).apply(this,arguments))}var n,o,i;return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&c(t,e)}(e,r["Plugin"]),n=e,(o=[{key:"_init",value:function(){this.triedPositions={},this.position="auto"===this.options.position?this._getDefaultPosition():this.options.position,this.alignment="auto"===this.options.alignment?this._getDefaultAlignment():this.options.alignment,this.originalPosition=this.position,this.originalAlignment=this.alignment}},{key:"_getDefaultPosition",value:function(){return"bottom"}},{key:"_getDefaultAlignment",value:function(){switch(this.position){case"bottom":case"top":return Object(r.rtl)()?"right":"left";case"left":case"right":return"bottom"}}},{key:"_reposition",value:function(){this._alignmentsExhausted(this.position)?(this.position=p(this.position,f),this.alignment=h[this.position][0]):this._realign()}},{key:"_realign",value:function(){this._addTriedPosition(this.position,this.alignment),this.alignment=p(this.alignment,h[this.position])}},{key:"_addTriedPosition",value:function(t,e){this.triedPositions[t]=this.triedPositions[t]||[],this.triedPositions[t].push(e)}},{key:"_positionsExhausted",value:function(){for(var t=!0,e=0;e<f.length;e++)t=t&&this._alignmentsExhausted(f[e]);return t}},{key:"_alignmentsExhausted",value:function(t){return this.triedPositions[t]&&this.triedPositions[t].length==h[t].length}},{key:"_getVOffset",value:function(){return this.options.vOffset}},{key:"_getHOffset",value:function(){return this.options.hOffset}},{key:"_setPosition",value:function(t,e,n){if("false"===t.attr("aria-expanded"))return!1;s.Box.GetDimensions(e),s.Box.GetDimensions(t);if(this.options.allowOverlap||(this.position=this.originalPosition,this.alignment=this.originalAlignment),e.offset(s.Box.GetExplicitOffsets(e,t,this.position,this.alignment,this._getVOffset(),this._getHOffset())),!this.options.allowOverlap){for(var o=1e8,i={position:this.position,alignment:this.alignment};!this._positionsExhausted();){var r=s.Box.OverlapArea(e,n,!1,!1,this.options.allowBottomOverlap);if(0===r)return;r<o&&(o=r,i={position:this.position,alignment:this.alignment}),this._reposition(),e.offset(s.Box.GetExplicitOffsets(e,t,this.position,this.alignment,this._getVOffset(),this._getHOffset()))}this.position=i.position,this.alignment=i.alignment,e.offset(s.Box.GetExplicitOffsets(e,t,this.position,this.alignment,this._getVOffset(),this._getHOffset()))}}}])&&a(n.prototype,o),i&&a(n,i),e}();g.defaults={position:"auto",alignment:"auto",allowOverlap:!1,allowBottomOverlap:!0,vOffset:0,hOffset:0}},"./js/foundation.util.triggers.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Triggers",function(){return c});var o=n("jquery"),r=n.n(o),i=n("./foundation.core"),s=n("./foundation.util.motion");function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var l=function(){for(var t=["WebKit","Moz","O","Ms",""],e=0;e<t.length;e++)if("".concat(t[e],"MutationObserver")in window)return window["".concat(t[e],"MutationObserver")];return!1}(),u=function(e,n){e.data(n).split(" ").forEach(function(t){r()("#".concat(t))["close"===n?"trigger":"triggerHandler"]("".concat(n,".zf.trigger"),[e])})},c={Listeners:{Basic:{},Global:{}},Initializers:{}};function f(e,t,n){var o,i=Array.prototype.slice.call(arguments,3);r()(window).off(t).on(t,function(t){o&&clearTimeout(o),o=setTimeout(function(){n.apply(null,i)},e||10)})}c.Listeners.Basic={openListener:function(){u(r()(this),"open")},closeListener:function(){r()(this).data("close")?u(r()(this),"close"):r()(this).trigger("close.zf.trigger")},toggleListener:function(){r()(this).data("toggle")?u(r()(this),"toggle"):r()(this).trigger("toggle.zf.trigger")},closeableListener:function(t){t.stopPropagation();var e=r()(this).data("closable");""!==e?s.Motion.animateOut(r()(this),e,function(){r()(this).trigger("closed.zf")}):r()(this).fadeOut().trigger("closed.zf")},toggleFocusListener:function(){var t=r()(this).data("toggle-focus");r()("#".concat(t)).triggerHandler("toggle.zf.trigger",[r()(this)])}},c.Initializers.addOpenListener=function(t){t.off("click.zf.trigger",c.Listeners.Basic.openListener),t.on("click.zf.trigger","[data-open]",c.Listeners.Basic.openListener)},c.Initializers.addCloseListener=function(t){t.off("click.zf.trigger",c.Listeners.Basic.closeListener),t.on("click.zf.trigger","[data-close]",c.Listeners.Basic.closeListener)},c.Initializers.addToggleListener=function(t){t.off("click.zf.trigger",c.Listeners.Basic.toggleListener),t.on("click.zf.trigger","[data-toggle]",c.Listeners.Basic.toggleListener)},c.Initializers.addCloseableListener=function(t){t.off("close.zf.trigger",c.Listeners.Basic.closeableListener),t.on("close.zf.trigger","[data-closeable], [data-closable]",c.Listeners.Basic.closeableListener)},c.Initializers.addToggleFocusListener=function(t){t.off("focus.zf.trigger blur.zf.trigger",c.Listeners.Basic.toggleFocusListener),t.on("focus.zf.trigger blur.zf.trigger","[data-toggle-focus]",c.Listeners.Basic.toggleFocusListener)},c.Listeners.Global={resizeListener:function(t){l||t.each(function(){r()(this).triggerHandler("resizeme.zf.trigger")}),t.attr("data-events","resize")},scrollListener:function(t){l||t.each(function(){r()(this).triggerHandler("scrollme.zf.trigger")}),t.attr("data-events","scroll")},closeMeListener:function(t,e){var n=t.namespace.split(".")[0];r()("[data-".concat(n,"]")).not('[data-yeti-box="'.concat(e,'"]')).each(function(){var t=r()(this);t.triggerHandler("close.zf.trigger",[t])})}},c.Initializers.addClosemeListener=function(t){var e=r()("[data-yeti-box]"),n=["dropdown","tooltip","reveal"];if(t&&("string"==typeof t?n.push(t):"object"===a(t)&&"string"==typeof t[0]?n=n.concat(t):console.error("Plugin names must be strings")),e.length){var o=n.map(function(t){return"closeme.zf.".concat(t)}).join(" ");r()(window).off(o).on(o,c.Listeners.Global.closeMeListener)}},c.Initializers.addResizeListener=function(t){var e=r()("[data-resize]");e.length&&f(t,"resize.zf.trigger",c.Listeners.Global.resizeListener,e)},c.Initializers.addScrollListener=function(t){var e=r()("[data-scroll]");e.length&&f(t,"scroll.zf.trigger",c.Listeners.Global.scrollListener,e)},c.Initializers.addMutationEventsListener=function(t){if(!l)return!1;var e=t.find("[data-resize], [data-scroll], [data-mutate]"),n=function(t){var e=r()(t[0].target);switch(t[0].type){case"attributes":"scroll"===e.attr("data-events")&&"data-events"===t[0].attributeName&&e.triggerHandler("scrollme.zf.trigger",[e,window.pageYOffset]),"resize"===e.attr("data-events")&&"data-events"===t[0].attributeName&&e.triggerHandler("resizeme.zf.trigger",[e]),"style"===t[0].attributeName&&(e.closest("[data-mutate]").attr("data-events","mutate"),e.closest("[data-mutate]").triggerHandler("mutateme.zf.trigger",[e.closest("[data-mutate]")]));break;case"childList":e.closest("[data-mutate]").attr("data-events","mutate"),e.closest("[data-mutate]").triggerHandler("mutateme.zf.trigger",[e.closest("[data-mutate]")]);break;default:return!1}};if(e.length)for(var o=0;o<=e.length-1;o++){new l(n).observe(e[o],{attributes:!0,childList:!0,characterData:!1,subtree:!0,attributeFilter:["data-events","style"]})}},c.Initializers.addSimpleListeners=function(){var t=r()(document);c.Initializers.addOpenListener(t),c.Initializers.addCloseListener(t),c.Initializers.addToggleListener(t),c.Initializers.addCloseableListener(t),c.Initializers.addToggleFocusListener(t)},c.Initializers.addGlobalListeners=function(){var t=r()(document);c.Initializers.addMutationEventsListener(t),c.Initializers.addResizeListener(),c.Initializers.addScrollListener(),c.Initializers.addClosemeListener()},c.init=function(t,e){Object(i.onLoad)(t(window),function(){!0!==t.triggersInitialized&&(c.Initializers.addSimpleListeners(),c.Initializers.addGlobalListeners(),t.triggersInitialized=!0)}),e&&(e.Triggers=c,e.IHearYou=c.Initializers.addGlobalListeners)}},4:function(t,e,n){t.exports=n("./js/entries/plugins/foundation.dropdown.js")},jquery:function(t,e){t.exports=i}})});
1
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("./foundation.util.keyboard"),require("./foundation.core"),require("jquery"),require("./foundation.util.box"),require("./foundation.util.motion"),require("./foundation.util.touch")):"function"==typeof define&&define.amd?define(["./foundation.util.keyboard","./foundation.core","jquery","./foundation.util.box","./foundation.util.motion","./foundation.util.touch"],e):"object"==typeof exports?exports["foundation.dropdown"]=e(require("./foundation.util.keyboard"),require("./foundation.core"),require("jquery"),require("./foundation.util.box"),require("./foundation.util.motion"),require("./foundation.util.touch")):(t.__FOUNDATION_EXTERNAL__=t.__FOUNDATION_EXTERNAL__||{},t.__FOUNDATION_EXTERNAL__["foundation.dropdown"]=e(t.__FOUNDATION_EXTERNAL__["foundation.util.keyboard"],t.__FOUNDATION_EXTERNAL__["foundation.core"],t.jQuery,t.__FOUNDATION_EXTERNAL__["foundation.util.box"],t.__FOUNDATION_EXTERNAL__["foundation.util.motion"],t.__FOUNDATION_EXTERNAL__["foundation.util.touch"]))}(window,function(o,n,i,r,s,a){return c={},l.m=u={"./foundation.core":function(t,e){t.exports=n},"./foundation.util.box":function(t,e){t.exports=r},"./foundation.util.keyboard":function(t,e){t.exports=o},"./foundation.util.motion":function(t,e){t.exports=s},"./foundation.util.touch":function(t,e){t.exports=a},"./js/entries/plugins/foundation.dropdown.js":function(t,e,o){"use strict";o.r(e);var n=o("./foundation.core");o.d(e,"Foundation",function(){return n.Foundation});var i=o("./js/foundation.dropdown.js");o.d(e,"Dropdown",function(){return i.Dropdown}),n.Foundation.plugin(i.Dropdown,"Dropdown")},"./js/foundation.dropdown.js":function(t,e,o){"use strict";o.r(e),o.d(e,"Dropdown",function(){return m});var n=o("jquery"),i=o.n(n),r=o("./foundation.util.keyboard"),s=o("./foundation.core"),a=o("./js/foundation.positionable.js"),l=o("./js/foundation.util.triggers.js"),u=o("./foundation.util.touch");function c(t){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function f(t,e){for(var o=0;o<e.length;o++){var n=e[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function d(t,e){return!e||"object"!==c(e)&&"function"!=typeof e?function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t):e}function h(t,e,o){return(h="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,o){var n=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=p(t)););return t}(t,e);if(n){var i=Object.getOwnPropertyDescriptor(n,e);return i.get?i.get.call(o):i.value}})(t,e,o||t)}function p(t){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function g(t,e){return(g=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}var m=function(){function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),d(this,p(o).apply(this,arguments))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&g(t,e)}(o,a["Positionable"]),function(t,e,o){e&&f(t.prototype,e),o&&f(t,o)}(o,[{key:"_setup",value:function(t,e){this.$element=t,this.options=i.a.extend({},o.defaults,this.$element.data(),e),this.className="Dropdown",u.Touch.init(i.a),l.Triggers.init(i.a),this._init(),r.Keyboard.register("Dropdown",{ENTER:"toggle",SPACE:"toggle",ESCAPE:"close"})}},{key:"_init",value:function(){var t=this.$element.attr("id");this.$anchors=i()('[data-toggle="'.concat(t,'"]')).length?i()('[data-toggle="'.concat(t,'"]')):i()('[data-open="'.concat(t,'"]')),this.$anchors.attr({"aria-controls":t,"data-is-focus":!1,"data-yeti-box":t,"aria-haspopup":!0,"aria-expanded":!1}),this._setCurrentAnchor(this.$anchors.first()),this.options.parentClass?this.$parent=this.$element.parents("."+this.options.parentClass):this.$parent=null,void 0===this.$element.attr("aria-labelledby")&&(void 0===this.$currentAnchor.attr("id")&&this.$currentAnchor.attr("id",Object(s.GetYoDigits)(6,"dd-anchor")),this.$element.attr("aria-labelledby",this.$currentAnchor.attr("id"))),this.$element.attr({"aria-hidden":"true","data-yeti-box":t,"data-resize":t}),h(p(o.prototype),"_init",this).call(this),this._events()}},{key:"_getDefaultPosition",value:function(){var t=this.$element[0].className.match(/(top|left|right|bottom)/g);return t?t[0]:"bottom"}},{key:"_getDefaultAlignment",value:function(){var t=/float-(\S+)/.exec(this.$currentAnchor.attr("class"));return t?t[1]:h(p(o.prototype),"_getDefaultAlignment",this).call(this)}},{key:"_setPosition",value:function(){this.$element.removeClass("has-position-".concat(this.position," has-alignment-").concat(this.alignment)),h(p(o.prototype),"_setPosition",this).call(this,this.$currentAnchor,this.$element,this.$parent),this.$element.addClass("has-position-".concat(this.position," has-alignment-").concat(this.alignment))}},{key:"_setCurrentAnchor",value:function(t){this.$currentAnchor=i()(t)}},{key:"_events",value:function(){var o=this,e="ontouchstart"in window||void 0!==window.ontouchstart;this.$element.on({"open.zf.trigger":this.open.bind(this),"close.zf.trigger":this.close.bind(this),"toggle.zf.trigger":this.toggle.bind(this),"resizeme.zf.trigger":this._setPosition.bind(this)}),this.$anchors.off("click.zf.trigger").on("click.zf.trigger",function(t){o._setCurrentAnchor(this),!1===o.options.forceFollow?t.preventDefault():e&&o.options.hover&&!1===o.$element.hasClass("is-open")&&t.preventDefault()}),this.options.hover&&(this.$anchors.off("mouseenter.zf.dropdown mouseleave.zf.dropdown").on("mouseenter.zf.dropdown",function(){o._setCurrentAnchor(this);var t=i()("body").data();void 0!==t.whatinput&&"mouse"!==t.whatinput||(clearTimeout(o.timeout),o.timeout=setTimeout(function(){o.open(),o.$anchors.data("hover",!0)},o.options.hoverDelay))}).on("mouseleave.zf.dropdown",Object(s.ignoreMousedisappear)(function(){clearTimeout(o.timeout),o.timeout=setTimeout(function(){o.close(),o.$anchors.data("hover",!1)},o.options.hoverDelay)})),this.options.hoverPane&&this.$element.off("mouseenter.zf.dropdown mouseleave.zf.dropdown").on("mouseenter.zf.dropdown",function(){clearTimeout(o.timeout)}).on("mouseleave.zf.dropdown",Object(s.ignoreMousedisappear)(function(){clearTimeout(o.timeout),o.timeout=setTimeout(function(){o.close(),o.$anchors.data("hover",!1)},o.options.hoverDelay)}))),this.$anchors.add(this.$element).on("keydown.zf.dropdown",function(t){var e=i()(this);r.Keyboard.findFocusable(o.$element);r.Keyboard.handleKey(t,"Dropdown",{open:function(){e.is(o.$anchors)&&!e.is("input, textarea")&&(o.open(),o.$element.attr("tabindex",-1).focus(),t.preventDefault())},close:function(){o.close(),o.$anchors.focus()}})})}},{key:"_addBodyHandler",value:function(){var e=i()(document.body).not(this.$element),o=this;e.off("click.zf.dropdown tap.zf.dropdown").on("click.zf.dropdown tap.zf.dropdown",function(t){o.$anchors.is(t.target)||o.$anchors.find(t.target).length||o.$element.is(t.target)||o.$element.find(t.target).length||(o.close(),e.off("click.zf.dropdown tap.zf.dropdown"))})}},{key:"open",value:function(){if(this.$element.trigger("closeme.zf.dropdown",this.$element.attr("id")),this.$anchors.addClass("hover").attr({"aria-expanded":!0}),this.$element.addClass("is-opening"),this._setPosition(),this.$element.removeClass("is-opening").addClass("is-open").attr({"aria-hidden":!1}),this.options.autoFocus){var t=r.Keyboard.findFocusable(this.$element);t.length&&t.eq(0).focus()}this.options.closeOnClick&&this._addBodyHandler(),this.options.trapFocus&&r.Keyboard.trapFocus(this.$element),this.$element.trigger("show.zf.dropdown",[this.$element])}},{key:"close",value:function(){if(!this.$element.hasClass("is-open"))return!1;this.$element.removeClass("is-open").attr({"aria-hidden":!0}),this.$anchors.removeClass("hover").attr("aria-expanded",!1),this.$element.trigger("hide.zf.dropdown",[this.$element]),this.options.trapFocus&&r.Keyboard.releaseFocus(this.$element)}},{key:"toggle",value:function(){if(this.$element.hasClass("is-open")){if(this.$anchors.data("hover"))return;this.close()}else this.open()}},{key:"_destroy",value:function(){this.$element.off(".zf.trigger").hide(),this.$anchors.off(".zf.dropdown"),i()(document.body).off("click.zf.dropdown tap.zf.dropdown")}}]),o}();m.defaults={parentClass:null,hoverDelay:250,hover:!1,hoverPane:!1,vOffset:0,hOffset:0,position:"auto",alignment:"auto",allowOverlap:!1,allowBottomOverlap:!0,trapFocus:!1,autoFocus:!1,closeOnClick:!1,forceFollow:!0}},"./js/foundation.positionable.js":function(t,e,o){"use strict";o.r(e),o.d(e,"Positionable",function(){return g});var s=o("./foundation.util.box"),n=o("./foundation.core");function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function r(t,e){for(var o=0;o<e.length;o++){var n=e[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e){return!e||"object"!==i(e)&&"function"!=typeof e?function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t):e}function l(t){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}var c=["left","right","top","bottom"],f=["top","bottom","center"],d=["left","right","center"],h={left:f,right:f,top:d,bottom:d};function p(t,e){var o=e.indexOf(t);return o===e.length-1?e[0]:e[o+1]}var g=function(){function t(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),a(this,l(t).apply(this,arguments))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&u(t,e)}(t,n["Plugin"]),function(t,e,o){e&&r(t.prototype,e),o&&r(t,o)}(t,[{key:"_init",value:function(){this.triedPositions={},this.position="auto"===this.options.position?this._getDefaultPosition():this.options.position,this.alignment="auto"===this.options.alignment?this._getDefaultAlignment():this.options.alignment,this.originalPosition=this.position,this.originalAlignment=this.alignment}},{key:"_getDefaultPosition",value:function(){return"bottom"}},{key:"_getDefaultAlignment",value:function(){switch(this.position){case"bottom":case"top":return Object(n.rtl)()?"right":"left";case"left":case"right":return"bottom"}}},{key:"_reposition",value:function(){this._alignmentsExhausted(this.position)?(this.position=p(this.position,c),this.alignment=h[this.position][0]):this._realign()}},{key:"_realign",value:function(){this._addTriedPosition(this.position,this.alignment),this.alignment=p(this.alignment,h[this.position])}},{key:"_addTriedPosition",value:function(t,e){this.triedPositions[t]=this.triedPositions[t]||[],this.triedPositions[t].push(e)}},{key:"_positionsExhausted",value:function(){for(var t=!0,e=0;e<c.length;e++)t=t&&this._alignmentsExhausted(c[e]);return t}},{key:"_alignmentsExhausted",value:function(t){return this.triedPositions[t]&&this.triedPositions[t].length==h[t].length}},{key:"_getVOffset",value:function(){return this.options.vOffset}},{key:"_getHOffset",value:function(){return this.options.hOffset}},{key:"_setPosition",value:function(t,e,o){if("false"===t.attr("aria-expanded"))return!1;if(this.options.allowOverlap||(this.position=this.originalPosition,this.alignment=this.originalAlignment),e.offset(s.Box.GetExplicitOffsets(e,t,this.position,this.alignment,this._getVOffset(),this._getHOffset())),!this.options.allowOverlap){for(var n=1e8,i={position:this.position,alignment:this.alignment};!this._positionsExhausted();){var r=s.Box.OverlapArea(e,o,!1,!1,this.options.allowBottomOverlap);if(0===r)return;r<n&&(n=r,i={position:this.position,alignment:this.alignment}),this._reposition(),e.offset(s.Box.GetExplicitOffsets(e,t,this.position,this.alignment,this._getVOffset(),this._getHOffset()))}this.position=i.position,this.alignment=i.alignment,e.offset(s.Box.GetExplicitOffsets(e,t,this.position,this.alignment,this._getVOffset(),this._getHOffset()))}}}]),t}();g.defaults={position:"auto",alignment:"auto",allowOverlap:!1,allowBottomOverlap:!0,vOffset:0,hOffset:0}},"./js/foundation.util.triggers.js":function(t,e,o){"use strict";o.r(e),o.d(e,"Triggers",function(){return c});var n=o("jquery"),r=o.n(n),i=o("./foundation.core"),s=o("./foundation.util.motion");function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function l(e,o){e.data(o).split(" ").forEach(function(t){r()("#".concat(t))["close"===o?"trigger":"triggerHandler"]("".concat(o,".zf.trigger"),[e])})}var u=function(){for(var t=["WebKit","Moz","O","Ms",""],e=0;e<t.length;e++)if("".concat(t[e],"MutationObserver")in window)return window["".concat(t[e],"MutationObserver")];return!1}(),c={Listeners:{Basic:{},Global:{}},Initializers:{}};function f(e,t,o){var n,i=Array.prototype.slice.call(arguments,3);r()(window).off(t).on(t,function(t){n&&clearTimeout(n),n=setTimeout(function(){o.apply(null,i)},e||10)})}c.Listeners.Basic={openListener:function(){l(r()(this),"open")},closeListener:function(){r()(this).data("close")?l(r()(this),"close"):r()(this).trigger("close.zf.trigger")},toggleListener:function(){r()(this).data("toggle")?l(r()(this),"toggle"):r()(this).trigger("toggle.zf.trigger")},closeableListener:function(t){var e=r()(this).data("closable");t.stopPropagation(),""!==e?s.Motion.animateOut(r()(this),e,function(){r()(this).trigger("closed.zf")}):r()(this).fadeOut().trigger("closed.zf")},toggleFocusListener:function(){var t=r()(this).data("toggle-focus");r()("#".concat(t)).triggerHandler("toggle.zf.trigger",[r()(this)])}},c.Initializers.addOpenListener=function(t){t.off("click.zf.trigger",c.Listeners.Basic.openListener),t.on("click.zf.trigger","[data-open]",c.Listeners.Basic.openListener)},c.Initializers.addCloseListener=function(t){t.off("click.zf.trigger",c.Listeners.Basic.closeListener),t.on("click.zf.trigger","[data-close]",c.Listeners.Basic.closeListener)},c.Initializers.addToggleListener=function(t){t.off("click.zf.trigger",c.Listeners.Basic.toggleListener),t.on("click.zf.trigger","[data-toggle]",c.Listeners.Basic.toggleListener)},c.Initializers.addCloseableListener=function(t){t.off("close.zf.trigger",c.Listeners.Basic.closeableListener),t.on("close.zf.trigger","[data-closeable], [data-closable]",c.Listeners.Basic.closeableListener)},c.Initializers.addToggleFocusListener=function(t){t.off("focus.zf.trigger blur.zf.trigger",c.Listeners.Basic.toggleFocusListener),t.on("focus.zf.trigger blur.zf.trigger","[data-toggle-focus]",c.Listeners.Basic.toggleFocusListener)},c.Listeners.Global={resizeListener:function(t){u||t.each(function(){r()(this).triggerHandler("resizeme.zf.trigger")}),t.attr("data-events","resize")},scrollListener:function(t){u||t.each(function(){r()(this).triggerHandler("scrollme.zf.trigger")}),t.attr("data-events","scroll")},closeMeListener:function(t,e){var o=t.namespace.split(".")[0];r()("[data-".concat(o,"]")).not('[data-yeti-box="'.concat(e,'"]')).each(function(){var t=r()(this);t.triggerHandler("close.zf.trigger",[t])})}},c.Initializers.addClosemeListener=function(t){var e=r()("[data-yeti-box]"),o=["dropdown","tooltip","reveal"];if(t&&("string"==typeof t?o.push(t):"object"===a(t)&&"string"==typeof t[0]?o=o.concat(t):console.error("Plugin names must be strings")),e.length){var n=o.map(function(t){return"closeme.zf.".concat(t)}).join(" ");r()(window).off(n).on(n,c.Listeners.Global.closeMeListener)}},c.Initializers.addResizeListener=function(t){var e=r()("[data-resize]");e.length&&f(t,"resize.zf.trigger",c.Listeners.Global.resizeListener,e)},c.Initializers.addScrollListener=function(t){var e=r()("[data-scroll]");e.length&&f(t,"scroll.zf.trigger",c.Listeners.Global.scrollListener,e)},c.Initializers.addMutationEventsListener=function(t){if(!u)return!1;function e(t){var e=r()(t[0].target);switch(t[0].type){case"attributes":"scroll"===e.attr("data-events")&&"data-events"===t[0].attributeName&&e.triggerHandler("scrollme.zf.trigger",[e,window.pageYOffset]),"resize"===e.attr("data-events")&&"data-events"===t[0].attributeName&&e.triggerHandler("resizeme.zf.trigger",[e]),"style"===t[0].attributeName&&(e.closest("[data-mutate]").attr("data-events","mutate"),e.closest("[data-mutate]").triggerHandler("mutateme.zf.trigger",[e.closest("[data-mutate]")]));break;case"childList":e.closest("[data-mutate]").attr("data-events","mutate"),e.closest("[data-mutate]").triggerHandler("mutateme.zf.trigger",[e.closest("[data-mutate]")]);break;default:return!1}}var o=t.find("[data-resize], [data-scroll], [data-mutate]");if(o.length)for(var n=0;n<=o.length-1;n++){new u(e).observe(o[n],{attributes:!0,childList:!0,characterData:!1,subtree:!0,attributeFilter:["data-events","style"]})}},c.Initializers.addSimpleListeners=function(){var t=r()(document);c.Initializers.addOpenListener(t),c.Initializers.addCloseListener(t),c.Initializers.addToggleListener(t),c.Initializers.addCloseableListener(t),c.Initializers.addToggleFocusListener(t)},c.Initializers.addGlobalListeners=function(){var t=r()(document);c.Initializers.addMutationEventsListener(t),c.Initializers.addResizeListener(),c.Initializers.addScrollListener(),c.Initializers.addClosemeListener()},c.init=function(t,e){Object(i.onLoad)(t(window),function(){!0!==t.triggersInitialized&&(c.Initializers.addSimpleListeners(),c.Initializers.addGlobalListeners(),t.triggersInitialized=!0)}),e&&(e.Triggers=c,e.IHearYou=c.Initializers.addGlobalListeners)}},4:function(t,e,o){t.exports=o("./js/entries/plugins/foundation.dropdown.js")},jquery:function(t,e){t.exports=i}},l.c=c,l.d=function(t,e,o){l.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},l.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},l.t=function(e,t){if(1&t&&(e=l(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(l.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)l.d(o,n,function(t){return e[t]}.bind(null,n));return o},l.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return l.d(e,"a",e),e},l.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},l.p="",l(l.s=4);function l(t){if(c[t])return c[t].exports;var e=c[t]={i:t,l:!1,exports:{}};return u[t].call(e.exports,e,e.exports,l),e.l=!0,e.exports}var u,c});
2
2
  //# sourceMappingURL=foundation.dropdown.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.dropdown.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.dropdown.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.positionable.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.triggers.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","__WEBPACK_EXTERNAL_MODULE__foundation_util_box__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE__foundation_util_touch__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","_foundation_dropdown__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Dropdown","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__","_foundation_positionable__WEBPACK_IMPORTED_MODULE_3__","_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_4__","Positionable","element","options","this","$element","$","extend","defaults","data","className","Triggers","init","_init","Keyboard","register","ENTER","SPACE","ESCAPE","$id","attr","$anchors","concat","length","aria-controls","data-is-focus","data-yeti-box","aria-haspopup","aria-expanded","_setCurrentAnchor","first","parentClass","$parent","parents","$currentAnchor","GetYoDigits","aria-hidden","data-resize","_get","_getPrototypeOf","_events","position","match","horizontalPosition","exec","removeClass","alignment","addClass","el","_this","on","open.zf.trigger","open","close.zf.trigger","close","toggle.zf.trigger","toggle","resizeme.zf.trigger","_setPosition","off","hover","bodyData","whatinput","clearTimeout","timeout","setTimeout","hoverDelay","ignoreMousedisappear","hoverPane","add","e","$target","findFocusable","handleKey","is","focus","preventDefault","$body","document","body","not","target","find","trigger","autoFocus","$focusable","eq","closeOnClick","_addBodyHandler","trapFocus","hasClass","releaseFocus","hide","vOffset","hOffset","allowOverlap","allowBottomOverlap","_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__","POSITIONS","VERTICAL_ALIGNMENTS","HORIZONTAL_ALIGNMENTS","ALIGNMENTS","left","right","top","bottom","nextItem","item","array","currentIdx","indexOf","Plugin","triedPositions","_getDefaultPosition","_getDefaultAlignment","originalPosition","originalAlignment","Rtl","_alignmentsExhausted","_realign","_addTriedPosition","push","isExhausted","$anchor","Box","GetDimensions","offset","GetExplicitOffsets","_getVOffset","_getHOffset","minOverlap","minCoordinates","_positionsExhausted","overlap","OverlapArea","_reposition","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","MutationObserver","prefixes","triggers","type","split","forEach","id","Listeners","Basic","Global","Initializers","debounceGlobalListener","debounce","listener","timer","args","Array","slice","arguments","apply","openListener","closeListener","toggleListener","closeableListener","stopPropagation","animation","Motion","animateOut","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","each","scrollListener","closeMeListener","pluginId","namespace","addClosemeListener","pluginName","yetiBoxes","plugNames","_typeof","console","error","listeners","map","join","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","attributeName","pageYOffset","closest","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","onLoad","triggersInitialized","IHearYou"],"mappings":"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","file":"foundation.dropdown.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.util.keyboard\"), require(\"./foundation.core\"), require(\"jquery\"), require(\"./foundation.util.box\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.util.keyboard\", \"./foundation.core\", \"jquery\", \"./foundation.util.box\", \"./foundation.util.motion\", \"./foundation.util.touch\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.dropdown\"] = factory(require(\"./foundation.util.keyboard\"), require(\"./foundation.core\"), require(\"jquery\"), require(\"./foundation.util.box\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.dropdown\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;","import { Foundation } from './foundation.core';\n\nimport { Dropdown } from '../../foundation.dropdown';\nFoundation.plugin(Dropdown, 'Dropdown');\n\nexport { Foundation, Dropdown };\n","'use strict';\n\nimport $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { Positionable } from './foundation.positionable';\n\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Dropdown module.\n * @module foundation.dropdown\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.triggers\n */\nclass Dropdown extends Positionable {\n /**\n * Creates a new instance of a dropdown.\n * @class\n * @name Dropdown\n * @param {jQuery} element - jQuery object to make into a dropdown.\n * Object should be of the dropdown panel, rather than its anchor.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Dropdown.defaults, this.$element.data(), options);\n this.className = 'Dropdown'; // ie9 back compat\n\n // Triggers init is idempotent, just need to make sure it is initialized\n Triggers.init($);\n\n this._init();\n\n Keyboard.register('Dropdown', {\n 'ENTER': 'toggle',\n 'SPACE': 'toggle',\n 'ESCAPE': 'close'\n });\n }\n\n /**\n * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.\n * @function\n * @private\n */\n _init() {\n var $id = this.$element.attr('id');\n\n this.$anchors = $(`[data-toggle=\"${$id}\"]`).length ? $(`[data-toggle=\"${$id}\"]`) : $(`[data-open=\"${$id}\"]`);\n this.$anchors.attr({\n 'aria-controls': $id,\n 'data-is-focus': false,\n 'data-yeti-box': $id,\n 'aria-haspopup': true,\n 'aria-expanded': false\n });\n\n this._setCurrentAnchor(this.$anchors.first());\n\n if(this.options.parentClass){\n this.$parent = this.$element.parents('.' + this.options.parentClass);\n }else{\n this.$parent = null;\n }\n\n // Set [aria-labelledby] on the Dropdown if it is not set\n if (typeof this.$element.attr('aria-labelledby') === 'undefined') {\n // Get the anchor ID or create one\n if (typeof this.$currentAnchor.attr('id') === 'undefined') {\n this.$currentAnchor.attr('id', GetYoDigits(6, 'dd-anchor'));\n };\n\n this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));\n }\n\n this.$element.attr({\n 'aria-hidden': 'true',\n 'data-yeti-box': $id,\n 'data-resize': $id,\n });\n\n super._init();\n this._events();\n }\n\n _getDefaultPosition() {\n // handle legacy classnames\n var position = this.$element[0].className.match(/(top|left|right|bottom)/g);\n if(position) {\n return position[0];\n } else {\n return 'bottom'\n }\n }\n\n _getDefaultAlignment() {\n // handle legacy float approach\n var horizontalPosition = /float-(\\S+)/.exec(this.$currentAnchor.attr('class'));\n if(horizontalPosition) {\n return horizontalPosition[1];\n }\n\n return super._getDefaultAlignment();\n }\n\n\n\n /**\n * Sets the position and orientation of the dropdown pane, checks for collisions if allow-overlap is not true.\n * Recursively calls itself if a collision is detected, with a new position class.\n * @function\n * @private\n */\n _setPosition() {\n this.$element.removeClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n super._setPosition(this.$currentAnchor, this.$element, this.$parent);\n this.$element.addClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n }\n\n /**\n * Make it a current anchor.\n * Current anchor as the reference for the position of Dropdown panes.\n * @param {HTML} el - DOM element of the anchor.\n * @function\n * @private\n */\n _setCurrentAnchor(el) {\n this.$currentAnchor = $(el);\n }\n\n /**\n * Adds event listeners to the element utilizing the triggers utility library.\n * @function\n * @private\n */\n _events() {\n var _this = this;\n this.$element.on({\n 'open.zf.trigger': this.open.bind(this),\n 'close.zf.trigger': this.close.bind(this),\n 'toggle.zf.trigger': this.toggle.bind(this),\n 'resizeme.zf.trigger': this._setPosition.bind(this)\n });\n\n this.$anchors.off('click.zf.trigger')\n .on('click.zf.trigger', function() { _this._setCurrentAnchor(this); });\n\n if(this.options.hover){\n this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n .on('mouseenter.zf.dropdown', function(){\n _this._setCurrentAnchor(this);\n\n var bodyData = $('body').data();\n if(typeof(bodyData.whatinput) === 'undefined' || bodyData.whatinput === 'mouse') {\n clearTimeout(_this.timeout);\n _this.timeout = setTimeout(function(){\n _this.open();\n _this.$anchors.data('hover', true);\n }, _this.options.hoverDelay);\n }\n }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n clearTimeout(_this.timeout);\n _this.timeout = setTimeout(function(){\n _this.close();\n _this.$anchors.data('hover', false);\n }, _this.options.hoverDelay);\n }));\n if(this.options.hoverPane){\n this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n .on('mouseenter.zf.dropdown', function(){\n clearTimeout(_this.timeout);\n }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n clearTimeout(_this.timeout);\n _this.timeout = setTimeout(function(){\n _this.close();\n _this.$anchors.data('hover', false);\n }, _this.options.hoverDelay);\n }));\n }\n }\n this.$anchors.add(this.$element).on('keydown.zf.dropdown', function(e) {\n\n var $target = $(this),\n visibleFocusableElements = Keyboard.findFocusable(_this.$element);\n\n Keyboard.handleKey(e, 'Dropdown', {\n open: function() {\n if ($target.is(_this.$anchors) && !$target.is('input, textarea')) {\n _this.open();\n _this.$element.attr('tabindex', -1).focus();\n e.preventDefault();\n }\n },\n close: function() {\n _this.close();\n _this.$anchors.focus();\n }\n });\n });\n }\n\n /**\n * Adds an event handler to the body to close any dropdowns on a click.\n * @function\n * @private\n */\n _addBodyHandler() {\n var $body = $(document.body).not(this.$element),\n _this = this;\n $body.off('click.zf.dropdown')\n .on('click.zf.dropdown', function(e){\n if(_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {\n return;\n }\n if(_this.$element.is(e.target) || _this.$element.find(e.target).length) {\n return;\n }\n _this.close();\n $body.off('click.zf.dropdown');\n });\n }\n\n /**\n * Opens the dropdown pane, and fires a bubbling event to close other dropdowns.\n * @function\n * @fires Dropdown#closeme\n * @fires Dropdown#show\n */\n open() {\n // var _this = this;\n /**\n * Fires to close other open dropdowns, typically when dropdown is opening\n * @event Dropdown#closeme\n */\n this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));\n this.$anchors.addClass('hover')\n .attr({'aria-expanded': true});\n // this.$element/*.show()*/;\n\n this.$element.addClass('is-opening');\n this._setPosition();\n this.$element.removeClass('is-opening').addClass('is-open')\n .attr({'aria-hidden': false});\n\n if(this.options.autoFocus){\n var $focusable = Keyboard.findFocusable(this.$element);\n if($focusable.length){\n $focusable.eq(0).focus();\n }\n }\n\n if(this.options.closeOnClick){ this._addBodyHandler(); }\n\n if (this.options.trapFocus) {\n Keyboard.trapFocus(this.$element);\n }\n\n /**\n * Fires once the dropdown is visible.\n * @event Dropdown#show\n */\n this.$element.trigger('show.zf.dropdown', [this.$element]);\n }\n\n /**\n * Closes the open dropdown pane.\n * @function\n * @fires Dropdown#hide\n */\n close() {\n if(!this.$element.hasClass('is-open')){\n return false;\n }\n this.$element.removeClass('is-open')\n .attr({'aria-hidden': true});\n\n this.$anchors.removeClass('hover')\n .attr('aria-expanded', false);\n\n /**\n * Fires once the dropdown is no longer visible.\n * @event Dropdown#hide\n */\n this.$element.trigger('hide.zf.dropdown', [this.$element]);\n\n if (this.options.trapFocus) {\n Keyboard.releaseFocus(this.$element);\n }\n }\n\n /**\n * Toggles the dropdown pane's visibility.\n * @function\n */\n toggle() {\n if(this.$element.hasClass('is-open')){\n if(this.$anchors.data('hover')) return;\n this.close();\n }else{\n this.open();\n }\n }\n\n /**\n * Destroys the dropdown.\n * @function\n */\n _destroy() {\n this.$element.off('.zf.trigger').hide();\n this.$anchors.off('.zf.dropdown');\n $(document.body).off('click.zf.dropdown');\n\n }\n}\n\nDropdown.defaults = {\n /**\n * Class that designates bounding container of Dropdown (default: window)\n * @option\n * @type {?string}\n * @default null\n */\n parentClass: null,\n /**\n * Amount of time to delay opening a submenu on hover event.\n * @option\n * @type {number}\n * @default 250\n */\n hoverDelay: 250,\n /**\n * Allow submenus to open on hover events\n * @option\n * @type {boolean}\n * @default false\n */\n hover: false,\n /**\n * Don't close dropdown when hovering over dropdown pane\n * @option\n * @type {boolean}\n * @default false\n */\n hoverPane: false,\n /**\n * Number of pixels between the dropdown pane and the triggering element on open.\n * @option\n * @type {number}\n * @default 0\n */\n vOffset: 0,\n /**\n * Number of pixels between the dropdown pane and the triggering element on open.\n * @option\n * @type {number}\n * @default 0\n */\n hOffset: 0,\n /**\n * Position of dropdown. Can be left, right, bottom, top, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n position: 'auto',\n /**\n * Alignment of dropdown relative to anchor. Can be left, right, bottom, top, center, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n alignment: 'auto',\n /**\n * Allow overlap of container/window. If false, dropdown will first try to position as defined by data-position and data-alignment, but reposition if it would cause an overflow.\n * @option\n * @type {boolean}\n * @default false\n */\n allowOverlap: false,\n /**\n * Allow overlap of only the bottom of the container. This is the most common\n * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n * screen but not otherwise influence or break out of the container.\n * @option\n * @type {boolean}\n * @default true\n */\n allowBottomOverlap: true,\n /**\n * Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.\n * @option\n * @type {boolean}\n * @default false\n */\n trapFocus: false,\n /**\n * Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.\n * @option\n * @type {boolean}\n * @default false\n */\n autoFocus: false,\n /**\n * Allows a click on the body to close the dropdown.\n * @option\n * @type {boolean}\n * @default false\n */\n closeOnClick: false\n};\n\nexport {Dropdown};\n","'use strict';\n\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst POSITIONS = ['left', 'right', 'top', 'bottom'];\nconst VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];\nconst HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];\n\nconst ALIGNMENTS = {\n 'left': VERTICAL_ALIGNMENTS,\n 'right': VERTICAL_ALIGNMENTS,\n 'top': HORIZONTAL_ALIGNMENTS,\n 'bottom': HORIZONTAL_ALIGNMENTS\n}\n\nfunction nextItem(item, array) {\n var currentIdx = array.indexOf(item);\n if(currentIdx === array.length - 1) {\n return array[0];\n } else {\n return array[currentIdx + 1];\n }\n}\n\n\nclass Positionable extends Plugin {\n /**\n * Abstract class encapsulating the tether-like explicit positioning logic\n * including repositioning based on overlap.\n * Expects classes to define defaults for vOffset, hOffset, position,\n * alignment, allowOverlap, and allowBottomOverlap. They can do this by\n * extending the defaults, or (for now recommended due to the way docs are\n * generated) by explicitly declaring them.\n *\n **/\n\n _init() {\n this.triedPositions = {};\n this.position = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;\n this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;\n this.originalPosition = this.position;\n this.originalAlignment = this.alignment;\n }\n\n _getDefaultPosition () {\n return 'bottom';\n }\n\n _getDefaultAlignment() {\n switch(this.position) {\n case 'bottom':\n case 'top':\n return Rtl() ? 'right' : 'left';\n case 'left':\n case 'right':\n return 'bottom';\n }\n }\n\n /**\n * Adjusts the positionable possible positions by iterating through alignments\n * and positions.\n * @function\n * @private\n */\n _reposition() {\n if(this._alignmentsExhausted(this.position)) {\n this.position = nextItem(this.position, POSITIONS);\n this.alignment = ALIGNMENTS[this.position][0];\n } else {\n this._realign();\n }\n }\n\n /**\n * Adjusts the dropdown pane possible positions by iterating through alignments\n * on the current position.\n * @function\n * @private\n */\n _realign() {\n this._addTriedPosition(this.position, this.alignment)\n this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position])\n }\n\n _addTriedPosition(position, alignment) {\n this.triedPositions[position] = this.triedPositions[position] || []\n this.triedPositions[position].push(alignment);\n }\n\n _positionsExhausted() {\n var isExhausted = true;\n for(var i = 0; i < POSITIONS.length; i++) {\n isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);\n }\n return isExhausted;\n }\n\n _alignmentsExhausted(position) {\n return this.triedPositions[position] && this.triedPositions[position].length == ALIGNMENTS[position].length;\n }\n\n\n // When we're trying to center, we don't want to apply offset that's going to\n // take us just off center, so wrap around to return 0 for the appropriate\n // offset in those alignments. TODO: Figure out if we want to make this\n // configurable behavior... it feels more intuitive, especially for tooltips, but\n // it's possible someone might actually want to start from center and then nudge\n // slightly off.\n _getVOffset() {\n return this.options.vOffset;\n }\n\n _getHOffset() {\n return this.options.hOffset;\n }\n\n\n _setPosition($anchor, $element, $parent) {\n if($anchor.attr('aria-expanded') === 'false'){ return false; }\n var $eleDims = Box.GetDimensions($element),\n $anchorDims = Box.GetDimensions($anchor);\n\n\n if (!this.options.allowOverlap) {\n // restore original position & alignment before checking overlap\n this.position = this.originalPosition;\n this.alignment = this.originalAlignment;\n }\n\n $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n\n if(!this.options.allowOverlap) {\n var overlaps = {};\n var minOverlap = 100000000;\n // default coordinates to how we start, in case we can't figure out better\n var minCoordinates = {position: this.position, alignment: this.alignment};\n while(!this._positionsExhausted()) {\n let overlap = Box.OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);\n if(overlap === 0) {\n return;\n }\n\n if(overlap < minOverlap) {\n minOverlap = overlap;\n minCoordinates = {position: this.position, alignment: this.alignment};\n }\n\n this._reposition();\n\n $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n }\n // If we get through the entire loop, there was no non-overlapping\n // position available. Pick the version with least overlap.\n this.position = minCoordinates.position;\n this.alignment = minCoordinates.alignment;\n $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n }\n }\n\n}\n\nPositionable.defaults = {\n /**\n * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n position: 'auto',\n /**\n * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n alignment: 'auto',\n /**\n * Allow overlap of container/window. If false, dropdown positionable first\n * try to position as defined by data-position and data-alignment, but\n * reposition if it would cause an overflow.\n * @option\n * @type {boolean}\n * @default false\n */\n allowOverlap: false,\n /**\n * Allow overlap of only the bottom of the container. This is the most common\n * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n * screen but not otherwise influence or break out of the container.\n * @option\n * @type {boolean}\n * @default true\n */\n allowBottomOverlap: true,\n /**\n * Number of pixels the positionable should be separated vertically from anchor\n * @option\n * @type {number}\n * @default 0\n */\n vOffset: 0,\n /**\n * Number of pixels the positionable should be separated horizontally from anchor\n * @option\n * @type {number}\n * @default 0\n */\n hOffset: 0,\n}\n\nexport {Positionable};\n","'use strict';\n\nimport $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n for (var i=0; i < prefixes.length; i++) {\n if (`${prefixes[i]}MutationObserver` in window) {\n return window[`${prefixes[i]}MutationObserver`];\n }\n }\n return false;\n}());\n\nconst triggers = (el, type) => {\n el.data(type).split(' ').forEach(id => {\n $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n });\n};\n\nvar Triggers = {\n Listeners: {\n Basic: {},\n Global: {}\n },\n Initializers: {}\n}\n\nTriggers.Listeners.Basic = {\n openListener: function() {\n triggers($(this), 'open');\n },\n closeListener: function() {\n let id = $(this).data('close');\n if (id) {\n triggers($(this), 'close');\n }\n else {\n $(this).trigger('close.zf.trigger');\n }\n },\n toggleListener: function() {\n let id = $(this).data('toggle');\n if (id) {\n triggers($(this), 'toggle');\n } else {\n $(this).trigger('toggle.zf.trigger');\n }\n },\n closeableListener: function(e) {\n e.stopPropagation();\n let animation = $(this).data('closable');\n\n if(animation !== ''){\n Motion.animateOut($(this), animation, function() {\n $(this).trigger('closed.zf');\n });\n }else{\n $(this).fadeOut().trigger('closed.zf');\n }\n },\n toggleFocusListener: function() {\n let id = $(this).data('toggle-focus');\n $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global = {\n resizeListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('resizeme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a resize event\n $nodes.attr('data-events', \"resize\");\n },\n scrollListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('scrollme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a scroll event\n $nodes.attr('data-events', \"scroll\");\n },\n closeMeListener: function(e, pluginId){\n let plugin = e.namespace.split('.')[0];\n let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n plugins.each(function(){\n let _this = $(this);\n _this.triggerHandler('close.zf.trigger', [_this]);\n });\n }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n var yetiBoxes = $('[data-yeti-box]'),\n plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n if(pluginName){\n if(typeof pluginName === 'string'){\n plugNames.push(pluginName);\n }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n plugNames = plugNames.concat(pluginName);\n }else{\n console.error('Plugin names must be strings');\n }\n }\n if(yetiBoxes.length){\n let listeners = plugNames.map((name) => {\n return `closeme.zf.${name}`;\n }).join(' ');\n\n $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n let timer, args = Array.prototype.slice.call(arguments, 3);\n $(window).off(trigger).on(trigger, function(e) {\n if (timer) { clearTimeout(timer); }\n timer = setTimeout(function(){\n listener.apply(null, args);\n }, debounce || 10);//default time to emit scroll event\n });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n let $nodes = $('[data-resize]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n let $nodes = $('[data-scroll]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n if(!MutationObserver){ return false; }\n let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n //element callback\n var listeningElementsMutation = function (mutationRecordsList) {\n var $target = $(mutationRecordsList[0].target);\n\n //trigger the event handler for the element depending on type\n switch (mutationRecordsList[0].type) {\n case \"attributes\":\n if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n }\n if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('resizeme.zf.trigger', [$target]);\n }\n if (mutationRecordsList[0].attributeName === \"style\") {\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n }\n break;\n\n case \"childList\":\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n break;\n\n default:\n return false;\n //nothing\n }\n };\n\n if ($nodes.length) {\n //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n for (var i = 0; i <= $nodes.length - 1; i++) {\n var elementObserver = new MutationObserver(listeningElementsMutation);\n elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n }\n }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n let $document = $(document);\n\n Triggers.Initializers.addOpenListener($document);\n Triggers.Initializers.addCloseListener($document);\n Triggers.Initializers.addToggleListener($document);\n Triggers.Initializers.addCloseableListener($document);\n Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n let $document = $(document);\n Triggers.Initializers.addMutationEventsListener($document);\n Triggers.Initializers.addResizeListener();\n Triggers.Initializers.addScrollListener();\n Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function ($, Foundation) {\n onLoad($(window), function () {\n if ($.triggersInitialized !== true) {\n Triggers.Initializers.addSimpleListeners();\n Triggers.Initializers.addGlobalListeners();\n $.triggersInitialized = true;\n }\n });\n\n if(Foundation) {\n Foundation.Triggers = Triggers;\n // Legacy included to be backwards compatible for now.\n Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n }\n}\n\nexport {Triggers};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"]}
1
+ {"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.dropdown.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.dropdown.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.positionable.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.triggers.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","__WEBPACK_EXTERNAL_MODULE__foundation_util_box__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE__foundation_util_touch__","installedModules","__webpack_require__","m","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_dropdown__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Dropdown","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__","_foundation_positionable__WEBPACK_IMPORTED_MODULE_3__","_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_4__","_foundation_util_touch__WEBPACK_IMPORTED_MODULE_5__","Positionable","element","options","this","$element","$","extend","defaults","data","className","Touch","init","Triggers","_init","Keyboard","register","ENTER","SPACE","ESCAPE","$id","attr","$anchors","concat","length","aria-controls","data-is-focus","data-yeti-box","aria-haspopup","aria-expanded","_setCurrentAnchor","first","parentClass","$parent","parents","$currentAnchor","GetYoDigits","aria-hidden","data-resize","_get","_getPrototypeOf","prototype","call","_events","position","match","horizontalPosition","exec","removeClass","alignment","addClass","el","_this","hasTouch","ontouchstart","on","open.zf.trigger","open","bind","close.zf.trigger","close","toggle.zf.trigger","toggle","resizeme.zf.trigger","_setPosition","off","e","forceFollow","preventDefault","hover","hasClass","bodyData","whatinput","clearTimeout","timeout","setTimeout","hoverDelay","ignoreMousedisappear","hoverPane","add","$target","findFocusable","handleKey","is","focus","$body","document","body","not","target","find","trigger","autoFocus","$focusable","eq","closeOnClick","_addBodyHandler","trapFocus","releaseFocus","hide","vOffset","hOffset","allowOverlap","allowBottomOverlap","_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__","POSITIONS","VERTICAL_ALIGNMENTS","HORIZONTAL_ALIGNMENTS","ALIGNMENTS","left","right","top","bottom","nextItem","item","array","currentIdx","indexOf","Plugin","triedPositions","_getDefaultPosition","_getDefaultAlignment","originalPosition","originalAlignment","Rtl","_alignmentsExhausted","_realign","_addTriedPosition","push","isExhausted","i","$anchor","offset","Box","GetExplicitOffsets","_getVOffset","_getHOffset","minOverlap","minCoordinates","_positionsExhausted","overlap","OverlapArea","_reposition","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","triggers","type","split","forEach","id","MutationObserver","prefixes","Listeners","Basic","Global","Initializers","debounceGlobalListener","debounce","listener","timer","args","Array","slice","arguments","apply","openListener","closeListener","toggleListener","closeableListener","animation","stopPropagation","Motion","animateOut","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","each","scrollListener","closeMeListener","pluginId","namespace","addClosemeListener","pluginName","yetiBoxes","plugNames","_typeof","console","error","listeners","map","name","join","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","attributeName","pageYOffset","closest","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","onLoad","triggersInitialized","IHearYou","c","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","object","property","hasOwnProperty","p","s","moduleId","l","modules"],"mappings":"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","file":"foundation.dropdown.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.util.keyboard\"), require(\"./foundation.core\"), require(\"jquery\"), require(\"./foundation.util.box\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.util.keyboard\", \"./foundation.core\", \"jquery\", \"./foundation.util.box\", \"./foundation.util.motion\", \"./foundation.util.touch\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.dropdown\"] = factory(require(\"./foundation.util.keyboard\"), require(\"./foundation.core\"), require(\"jquery\"), require(\"./foundation.util.box\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.dropdown\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;","import { Foundation } from './foundation.core';\n\nimport { Dropdown } from '../../foundation.dropdown';\nFoundation.plugin(Dropdown, 'Dropdown');\n\nexport { Foundation, Dropdown };\n","'use strict';\n\nimport $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { Positionable } from './foundation.positionable';\n\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Dropdown module.\n * @module foundation.dropdown\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n */\nclass Dropdown extends Positionable {\n /**\n * Creates a new instance of a dropdown.\n * @class\n * @name Dropdown\n * @param {jQuery} element - jQuery object to make into a dropdown.\n * Object should be of the dropdown panel, rather than its anchor.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Dropdown.defaults, this.$element.data(), options);\n this.className = 'Dropdown'; // ie9 back compat\n\n // Touch and Triggers init are idempotent, just need to make sure they are initialized\n Touch.init($);\n Triggers.init($);\n\n this._init();\n\n Keyboard.register('Dropdown', {\n 'ENTER': 'toggle',\n 'SPACE': 'toggle',\n 'ESCAPE': 'close'\n });\n }\n\n /**\n * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.\n * @function\n * @private\n */\n _init() {\n var $id = this.$element.attr('id');\n\n this.$anchors = $(`[data-toggle=\"${$id}\"]`).length ? $(`[data-toggle=\"${$id}\"]`) : $(`[data-open=\"${$id}\"]`);\n this.$anchors.attr({\n 'aria-controls': $id,\n 'data-is-focus': false,\n 'data-yeti-box': $id,\n 'aria-haspopup': true,\n 'aria-expanded': false\n });\n\n this._setCurrentAnchor(this.$anchors.first());\n\n if(this.options.parentClass){\n this.$parent = this.$element.parents('.' + this.options.parentClass);\n }else{\n this.$parent = null;\n }\n\n // Set [aria-labelledby] on the Dropdown if it is not set\n if (typeof this.$element.attr('aria-labelledby') === 'undefined') {\n // Get the anchor ID or create one\n if (typeof this.$currentAnchor.attr('id') === 'undefined') {\n this.$currentAnchor.attr('id', GetYoDigits(6, 'dd-anchor'));\n };\n\n this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));\n }\n\n this.$element.attr({\n 'aria-hidden': 'true',\n 'data-yeti-box': $id,\n 'data-resize': $id,\n });\n\n super._init();\n this._events();\n }\n\n _getDefaultPosition() {\n // handle legacy classnames\n var position = this.$element[0].className.match(/(top|left|right|bottom)/g);\n if(position) {\n return position[0];\n } else {\n return 'bottom'\n }\n }\n\n _getDefaultAlignment() {\n // handle legacy float approach\n var horizontalPosition = /float-(\\S+)/.exec(this.$currentAnchor.attr('class'));\n if(horizontalPosition) {\n return horizontalPosition[1];\n }\n\n return super._getDefaultAlignment();\n }\n\n\n\n /**\n * Sets the position and orientation of the dropdown pane, checks for collisions if allow-overlap is not true.\n * Recursively calls itself if a collision is detected, with a new position class.\n * @function\n * @private\n */\n _setPosition() {\n this.$element.removeClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n super._setPosition(this.$currentAnchor, this.$element, this.$parent);\n this.$element.addClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n }\n\n /**\n * Make it a current anchor.\n * Current anchor as the reference for the position of Dropdown panes.\n * @param {HTML} el - DOM element of the anchor.\n * @function\n * @private\n */\n _setCurrentAnchor(el) {\n this.$currentAnchor = $(el);\n }\n\n /**\n * Adds event listeners to the element utilizing the triggers utility library.\n * @function\n * @private\n */\n _events() {\n var _this = this,\n hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n\n this.$element.on({\n 'open.zf.trigger': this.open.bind(this),\n 'close.zf.trigger': this.close.bind(this),\n 'toggle.zf.trigger': this.toggle.bind(this),\n 'resizeme.zf.trigger': this._setPosition.bind(this)\n });\n\n this.$anchors.off('click.zf.trigger')\n .on('click.zf.trigger', function(e) {\n _this._setCurrentAnchor(this);\n\n if (_this.options.forceFollow === false) {\n // if forceFollow false, always prevent default action\n e.preventDefault();\n } else if (hasTouch && _this.options.hover && _this.$element.hasClass('is-open') === false) {\n // if forceFollow true and hover option true, only prevent default action on 1st click\n // on 2nd click (dropown opened) the default action (e.g. follow a href) gets executed\n e.preventDefault();\n }\n });\n\n if(this.options.hover){\n this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n .on('mouseenter.zf.dropdown', function(){\n _this._setCurrentAnchor(this);\n\n var bodyData = $('body').data();\n if(typeof(bodyData.whatinput) === 'undefined' || bodyData.whatinput === 'mouse') {\n clearTimeout(_this.timeout);\n _this.timeout = setTimeout(function(){\n _this.open();\n _this.$anchors.data('hover', true);\n }, _this.options.hoverDelay);\n }\n }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n clearTimeout(_this.timeout);\n _this.timeout = setTimeout(function(){\n _this.close();\n _this.$anchors.data('hover', false);\n }, _this.options.hoverDelay);\n }));\n if(this.options.hoverPane){\n this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n .on('mouseenter.zf.dropdown', function(){\n clearTimeout(_this.timeout);\n }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n clearTimeout(_this.timeout);\n _this.timeout = setTimeout(function(){\n _this.close();\n _this.$anchors.data('hover', false);\n }, _this.options.hoverDelay);\n }));\n }\n }\n this.$anchors.add(this.$element).on('keydown.zf.dropdown', function(e) {\n\n var $target = $(this),\n visibleFocusableElements = Keyboard.findFocusable(_this.$element);\n\n Keyboard.handleKey(e, 'Dropdown', {\n open: function() {\n if ($target.is(_this.$anchors) && !$target.is('input, textarea')) {\n _this.open();\n _this.$element.attr('tabindex', -1).focus();\n e.preventDefault();\n }\n },\n close: function() {\n _this.close();\n _this.$anchors.focus();\n }\n });\n });\n }\n\n /**\n * Adds an event handler to the body to close any dropdowns on a click.\n * @function\n * @private\n */\n _addBodyHandler() {\n var $body = $(document.body).not(this.$element),\n _this = this;\n $body.off('click.zf.dropdown tap.zf.dropdown')\n .on('click.zf.dropdown tap.zf.dropdown', function (e) {\n if(_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {\n return;\n }\n if(_this.$element.is(e.target) || _this.$element.find(e.target).length) {\n return;\n }\n _this.close();\n $body.off('click.zf.dropdown tap.zf.dropdown');\n });\n }\n\n /**\n * Opens the dropdown pane, and fires a bubbling event to close other dropdowns.\n * @function\n * @fires Dropdown#closeme\n * @fires Dropdown#show\n */\n open() {\n // var _this = this;\n /**\n * Fires to close other open dropdowns, typically when dropdown is opening\n * @event Dropdown#closeme\n */\n this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));\n this.$anchors.addClass('hover')\n .attr({'aria-expanded': true});\n // this.$element/*.show()*/;\n\n this.$element.addClass('is-opening');\n this._setPosition();\n this.$element.removeClass('is-opening').addClass('is-open')\n .attr({'aria-hidden': false});\n\n if(this.options.autoFocus){\n var $focusable = Keyboard.findFocusable(this.$element);\n if($focusable.length){\n $focusable.eq(0).focus();\n }\n }\n\n if(this.options.closeOnClick){ this._addBodyHandler(); }\n\n if (this.options.trapFocus) {\n Keyboard.trapFocus(this.$element);\n }\n\n /**\n * Fires once the dropdown is visible.\n * @event Dropdown#show\n */\n this.$element.trigger('show.zf.dropdown', [this.$element]);\n }\n\n /**\n * Closes the open dropdown pane.\n * @function\n * @fires Dropdown#hide\n */\n close() {\n if(!this.$element.hasClass('is-open')){\n return false;\n }\n this.$element.removeClass('is-open')\n .attr({'aria-hidden': true});\n\n this.$anchors.removeClass('hover')\n .attr('aria-expanded', false);\n\n /**\n * Fires once the dropdown is no longer visible.\n * @event Dropdown#hide\n */\n this.$element.trigger('hide.zf.dropdown', [this.$element]);\n\n if (this.options.trapFocus) {\n Keyboard.releaseFocus(this.$element);\n }\n }\n\n /**\n * Toggles the dropdown pane's visibility.\n * @function\n */\n toggle() {\n if(this.$element.hasClass('is-open')){\n if(this.$anchors.data('hover')) return;\n this.close();\n }else{\n this.open();\n }\n }\n\n /**\n * Destroys the dropdown.\n * @function\n */\n _destroy() {\n this.$element.off('.zf.trigger').hide();\n this.$anchors.off('.zf.dropdown');\n $(document.body).off('click.zf.dropdown tap.zf.dropdown');\n\n }\n}\n\nDropdown.defaults = {\n /**\n * Class that designates bounding container of Dropdown (default: window)\n * @option\n * @type {?string}\n * @default null\n */\n parentClass: null,\n /**\n * Amount of time to delay opening a submenu on hover event.\n * @option\n * @type {number}\n * @default 250\n */\n hoverDelay: 250,\n /**\n * Allow submenus to open on hover events\n * @option\n * @type {boolean}\n * @default false\n */\n hover: false,\n /**\n * Don't close dropdown when hovering over dropdown pane\n * @option\n * @type {boolean}\n * @default false\n */\n hoverPane: false,\n /**\n * Number of pixels between the dropdown pane and the triggering element on open.\n * @option\n * @type {number}\n * @default 0\n */\n vOffset: 0,\n /**\n * Number of pixels between the dropdown pane and the triggering element on open.\n * @option\n * @type {number}\n * @default 0\n */\n hOffset: 0,\n /**\n * Position of dropdown. Can be left, right, bottom, top, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n position: 'auto',\n /**\n * Alignment of dropdown relative to anchor. Can be left, right, bottom, top, center, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n alignment: 'auto',\n /**\n * Allow overlap of container/window. If false, dropdown will first try to position as defined by data-position and data-alignment, but reposition if it would cause an overflow.\n * @option\n * @type {boolean}\n * @default false\n */\n allowOverlap: false,\n /**\n * Allow overlap of only the bottom of the container. This is the most common\n * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n * screen but not otherwise influence or break out of the container.\n * @option\n * @type {boolean}\n * @default true\n */\n allowBottomOverlap: true,\n /**\n * Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.\n * @option\n * @type {boolean}\n * @default false\n */\n trapFocus: false,\n /**\n * Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.\n * @option\n * @type {boolean}\n * @default false\n */\n autoFocus: false,\n /**\n * Allows a click on the body to close the dropdown.\n * @option\n * @type {boolean}\n * @default false\n */\n closeOnClick: false,\n /**\n * If true the default action of the toggle (e.g. follow a link with href) gets executed on click. If hover option is also true the default action gets prevented on first click for mobile / touch devices and executed on second click.\n * @option\n * @type {boolean}\n * @default true\n */\n forceFollow: true\n};\n\nexport {Dropdown};\n","'use strict';\n\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst POSITIONS = ['left', 'right', 'top', 'bottom'];\nconst VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];\nconst HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];\n\nconst ALIGNMENTS = {\n 'left': VERTICAL_ALIGNMENTS,\n 'right': VERTICAL_ALIGNMENTS,\n 'top': HORIZONTAL_ALIGNMENTS,\n 'bottom': HORIZONTAL_ALIGNMENTS\n}\n\nfunction nextItem(item, array) {\n var currentIdx = array.indexOf(item);\n if(currentIdx === array.length - 1) {\n return array[0];\n } else {\n return array[currentIdx + 1];\n }\n}\n\n\nclass Positionable extends Plugin {\n /**\n * Abstract class encapsulating the tether-like explicit positioning logic\n * including repositioning based on overlap.\n * Expects classes to define defaults for vOffset, hOffset, position,\n * alignment, allowOverlap, and allowBottomOverlap. They can do this by\n * extending the defaults, or (for now recommended due to the way docs are\n * generated) by explicitly declaring them.\n *\n **/\n\n _init() {\n this.triedPositions = {};\n this.position = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;\n this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;\n this.originalPosition = this.position;\n this.originalAlignment = this.alignment;\n }\n\n _getDefaultPosition () {\n return 'bottom';\n }\n\n _getDefaultAlignment() {\n switch(this.position) {\n case 'bottom':\n case 'top':\n return Rtl() ? 'right' : 'left';\n case 'left':\n case 'right':\n return 'bottom';\n }\n }\n\n /**\n * Adjusts the positionable possible positions by iterating through alignments\n * and positions.\n * @function\n * @private\n */\n _reposition() {\n if(this._alignmentsExhausted(this.position)) {\n this.position = nextItem(this.position, POSITIONS);\n this.alignment = ALIGNMENTS[this.position][0];\n } else {\n this._realign();\n }\n }\n\n /**\n * Adjusts the dropdown pane possible positions by iterating through alignments\n * on the current position.\n * @function\n * @private\n */\n _realign() {\n this._addTriedPosition(this.position, this.alignment)\n this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position])\n }\n\n _addTriedPosition(position, alignment) {\n this.triedPositions[position] = this.triedPositions[position] || []\n this.triedPositions[position].push(alignment);\n }\n\n _positionsExhausted() {\n var isExhausted = true;\n for(var i = 0; i < POSITIONS.length; i++) {\n isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);\n }\n return isExhausted;\n }\n\n _alignmentsExhausted(position) {\n return this.triedPositions[position] && this.triedPositions[position].length == ALIGNMENTS[position].length;\n }\n\n\n // When we're trying to center, we don't want to apply offset that's going to\n // take us just off center, so wrap around to return 0 for the appropriate\n // offset in those alignments. TODO: Figure out if we want to make this\n // configurable behavior... it feels more intuitive, especially for tooltips, but\n // it's possible someone might actually want to start from center and then nudge\n // slightly off.\n _getVOffset() {\n return this.options.vOffset;\n }\n\n _getHOffset() {\n return this.options.hOffset;\n }\n\n _setPosition($anchor, $element, $parent) {\n if($anchor.attr('aria-expanded') === 'false'){ return false; }\n\n if (!this.options.allowOverlap) {\n // restore original position & alignment before checking overlap\n this.position = this.originalPosition;\n this.alignment = this.originalAlignment;\n }\n\n $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n\n if(!this.options.allowOverlap) {\n var minOverlap = 100000000;\n // default coordinates to how we start, in case we can't figure out better\n var minCoordinates = {position: this.position, alignment: this.alignment};\n while(!this._positionsExhausted()) {\n let overlap = Box.OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);\n if(overlap === 0) {\n return;\n }\n\n if(overlap < minOverlap) {\n minOverlap = overlap;\n minCoordinates = {position: this.position, alignment: this.alignment};\n }\n\n this._reposition();\n\n $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n }\n // If we get through the entire loop, there was no non-overlapping\n // position available. Pick the version with least overlap.\n this.position = minCoordinates.position;\n this.alignment = minCoordinates.alignment;\n $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n }\n }\n\n}\n\nPositionable.defaults = {\n /**\n * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n position: 'auto',\n /**\n * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n alignment: 'auto',\n /**\n * Allow overlap of container/window. If false, dropdown positionable first\n * try to position as defined by data-position and data-alignment, but\n * reposition if it would cause an overflow.\n * @option\n * @type {boolean}\n * @default false\n */\n allowOverlap: false,\n /**\n * Allow overlap of only the bottom of the container. This is the most common\n * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n * screen but not otherwise influence or break out of the container.\n * @option\n * @type {boolean}\n * @default true\n */\n allowBottomOverlap: true,\n /**\n * Number of pixels the positionable should be separated vertically from anchor\n * @option\n * @type {number}\n * @default 0\n */\n vOffset: 0,\n /**\n * Number of pixels the positionable should be separated horizontally from anchor\n * @option\n * @type {number}\n * @default 0\n */\n hOffset: 0,\n}\n\nexport {Positionable};\n","'use strict';\n\nimport $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n for (var i=0; i < prefixes.length; i++) {\n if (`${prefixes[i]}MutationObserver` in window) {\n return window[`${prefixes[i]}MutationObserver`];\n }\n }\n return false;\n}());\n\nconst triggers = (el, type) => {\n el.data(type).split(' ').forEach(id => {\n $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n });\n};\n\nvar Triggers = {\n Listeners: {\n Basic: {},\n Global: {}\n },\n Initializers: {}\n}\n\nTriggers.Listeners.Basic = {\n openListener: function() {\n triggers($(this), 'open');\n },\n closeListener: function() {\n let id = $(this).data('close');\n if (id) {\n triggers($(this), 'close');\n }\n else {\n $(this).trigger('close.zf.trigger');\n }\n },\n toggleListener: function() {\n let id = $(this).data('toggle');\n if (id) {\n triggers($(this), 'toggle');\n } else {\n $(this).trigger('toggle.zf.trigger');\n }\n },\n closeableListener: function(e) {\n let animation = $(this).data('closable');\n\n // Only close the first closable element. See https://git.io/zf-7833\n e.stopPropagation();\n\n if(animation !== ''){\n Motion.animateOut($(this), animation, function() {\n $(this).trigger('closed.zf');\n });\n }else{\n $(this).fadeOut().trigger('closed.zf');\n }\n },\n toggleFocusListener: function() {\n let id = $(this).data('toggle-focus');\n $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global = {\n resizeListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('resizeme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a resize event\n $nodes.attr('data-events', \"resize\");\n },\n scrollListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('scrollme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a scroll event\n $nodes.attr('data-events', \"scroll\");\n },\n closeMeListener: function(e, pluginId){\n let plugin = e.namespace.split('.')[0];\n let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n plugins.each(function(){\n let _this = $(this);\n _this.triggerHandler('close.zf.trigger', [_this]);\n });\n }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n var yetiBoxes = $('[data-yeti-box]'),\n plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n if(pluginName){\n if(typeof pluginName === 'string'){\n plugNames.push(pluginName);\n }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n plugNames = plugNames.concat(pluginName);\n }else{\n console.error('Plugin names must be strings');\n }\n }\n if(yetiBoxes.length){\n let listeners = plugNames.map((name) => {\n return `closeme.zf.${name}`;\n }).join(' ');\n\n $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n let timer, args = Array.prototype.slice.call(arguments, 3);\n $(window).off(trigger).on(trigger, function(e) {\n if (timer) { clearTimeout(timer); }\n timer = setTimeout(function(){\n listener.apply(null, args);\n }, debounce || 10);//default time to emit scroll event\n });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n let $nodes = $('[data-resize]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n let $nodes = $('[data-scroll]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n if(!MutationObserver){ return false; }\n let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n //element callback\n var listeningElementsMutation = function (mutationRecordsList) {\n var $target = $(mutationRecordsList[0].target);\n\n //trigger the event handler for the element depending on type\n switch (mutationRecordsList[0].type) {\n case \"attributes\":\n if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n }\n if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('resizeme.zf.trigger', [$target]);\n }\n if (mutationRecordsList[0].attributeName === \"style\") {\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n }\n break;\n\n case \"childList\":\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n break;\n\n default:\n return false;\n //nothing\n }\n };\n\n if ($nodes.length) {\n //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n for (var i = 0; i <= $nodes.length - 1; i++) {\n var elementObserver = new MutationObserver(listeningElementsMutation);\n elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n }\n }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n let $document = $(document);\n\n Triggers.Initializers.addOpenListener($document);\n Triggers.Initializers.addCloseListener($document);\n Triggers.Initializers.addToggleListener($document);\n Triggers.Initializers.addCloseableListener($document);\n Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n let $document = $(document);\n Triggers.Initializers.addMutationEventsListener($document);\n Triggers.Initializers.addResizeListener();\n Triggers.Initializers.addScrollListener();\n Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function ($, Foundation) {\n onLoad($(window), function () {\n if ($.triggersInitialized !== true) {\n Triggers.Initializers.addSimpleListeners();\n Triggers.Initializers.addGlobalListeners();\n $.triggersInitialized = true;\n }\n });\n\n if(Foundation) {\n Foundation.Triggers = Triggers;\n // Legacy included to be backwards compatible for now.\n Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n }\n}\n\nexport {Triggers};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"]}
@@ -1,13 +1,13 @@
1
1
  (function webpackUniversalModuleDefinition(root, factory) {
2
2
  if(typeof exports === 'object' && typeof module === 'object')
3
- module.exports = factory(require("./foundation.core"), require("./foundation.util.box"), require("./foundation.util.keyboard"), require("./foundation.util.nest"), require("jquery"));
3
+ module.exports = factory(require("./foundation.core"), require("./foundation.util.box"), require("./foundation.util.keyboard"), require("./foundation.util.nest"), require("./foundation.util.touch"), require("jquery"));
4
4
  else if(typeof define === 'function' && define.amd)
5
- define(["./foundation.core", "./foundation.util.box", "./foundation.util.keyboard", "./foundation.util.nest", "jquery"], factory);
5
+ define(["./foundation.core", "./foundation.util.box", "./foundation.util.keyboard", "./foundation.util.nest", "./foundation.util.touch", "jquery"], factory);
6
6
  else if(typeof exports === 'object')
7
- exports["foundation.dropdownMenu"] = factory(require("./foundation.core"), require("./foundation.util.box"), require("./foundation.util.keyboard"), require("./foundation.util.nest"), require("jquery"));
7
+ exports["foundation.dropdownMenu"] = factory(require("./foundation.core"), require("./foundation.util.box"), require("./foundation.util.keyboard"), require("./foundation.util.nest"), require("./foundation.util.touch"), require("jquery"));
8
8
  else
9
- root["__FOUNDATION_EXTERNAL__"] = root["__FOUNDATION_EXTERNAL__"] || {}, root["__FOUNDATION_EXTERNAL__"]["foundation.dropdownMenu"] = factory(root["__FOUNDATION_EXTERNAL__"]["foundation.core"], root["__FOUNDATION_EXTERNAL__"]["foundation.util.box"], root["__FOUNDATION_EXTERNAL__"]["foundation.util.keyboard"], root["__FOUNDATION_EXTERNAL__"]["foundation.util.nest"], root["jQuery"]);
10
- })(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__, __WEBPACK_EXTERNAL_MODULE_jquery__) {
9
+ root["__FOUNDATION_EXTERNAL__"] = root["__FOUNDATION_EXTERNAL__"] || {}, root["__FOUNDATION_EXTERNAL__"]["foundation.dropdownMenu"] = factory(root["__FOUNDATION_EXTERNAL__"]["foundation.core"], root["__FOUNDATION_EXTERNAL__"]["foundation.util.box"], root["__FOUNDATION_EXTERNAL__"]["foundation.util.keyboard"], root["__FOUNDATION_EXTERNAL__"]["foundation.util.nest"], root["__FOUNDATION_EXTERNAL__"]["foundation.util.touch"], root["jQuery"]);
10
+ })(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__, __WEBPACK_EXTERNAL_MODULE_jquery__) {
11
11
  return /******/ (function(modules) { // webpackBootstrap
12
12
  /******/ // The module cache
13
13
  /******/ var installedModules = {};
@@ -140,6 +140,17 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__;
140
140
 
141
141
  /***/ }),
142
142
 
143
+ /***/ "./foundation.util.touch":
144
+ /*!****************************************************************************************************************************************************************************************!*\
145
+ !*** external {"root":["__FOUNDATION_EXTERNAL__","foundation.util.touch"],"amd":"./foundation.util.touch","commonjs":"./foundation.util.touch","commonjs2":"./foundation.util.touch"} ***!
146
+ \****************************************************************************************************************************************************************************************/
147
+ /*! no static exports found */
148
+ /***/ (function(module, exports) {
149
+
150
+ module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;
151
+
152
+ /***/ }),
153
+
143
154
  /***/ "./js/entries/plugins/foundation.dropdownMenu.js":
144
155
  /*!*******************************************************!*\
145
156
  !*** ./js/entries/plugins/foundation.dropdownMenu.js ***!
@@ -183,6 +194,8 @@ __webpack_require__.r(__webpack_exports__);
183
194
  /* harmony import */ var _foundation_util_nest__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_nest__WEBPACK_IMPORTED_MODULE_3__);
184
195
  /* harmony import */ var _foundation_util_box__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.util.box */ "./foundation.util.box");
185
196
  /* harmony import */ var _foundation_util_box__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_box__WEBPACK_IMPORTED_MODULE_4__);
197
+ /* harmony import */ var _foundation_util_touch__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./foundation.util.touch */ "./foundation.util.touch");
198
+ /* harmony import */ var _foundation_util_touch__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_touch__WEBPACK_IMPORTED_MODULE_5__);
186
199
 
187
200
 
188
201
  function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
@@ -209,12 +222,14 @@ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || func
209
222
 
210
223
 
211
224
 
225
+
212
226
  /**
213
227
  * DropdownMenu module.
214
- * @module foundation.dropdown-menu
228
+ * @module foundation.dropdownMenu
215
229
  * @requires foundation.util.keyboard
216
230
  * @requires foundation.util.box
217
231
  * @requires foundation.util.nest
232
+ * @requires foundation.util.touch
218
233
  */
219
234
 
220
235
  var DropdownMenu =
@@ -244,6 +259,8 @@ function (_Plugin) {
244
259
  this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, DropdownMenu.defaults, this.$element.data(), options);
245
260
  this.className = 'DropdownMenu'; // ie9 back compat
246
261
 
262
+ _foundation_util_touch__WEBPACK_IMPORTED_MODULE_5__["Touch"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a); // Touch init is idempotent, we just need to make sure it's initialied.
263
+
247
264
  this._init();
248
265
 
249
266
  _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__["Keyboard"].register('DropdownMenu', {
@@ -326,15 +343,13 @@ function (_Plugin) {
326
343
  if (hasClicked) {
327
344
  if (!_this.options.closeOnClick || !_this.options.clickOpen && !hasTouch || _this.options.forceFollow && hasTouch) {
328
345
  return;
329
- } else {
330
- e.stopImmediatePropagation();
331
- e.preventDefault();
332
-
333
- _this._hide($elem);
334
346
  }
347
+
348
+ e.preventDefault();
349
+
350
+ _this._hide($elem);
335
351
  } else {
336
352
  e.preventDefault();
337
- e.stopImmediatePropagation();
338
353
 
339
354
  _this._show($sub);
340
355
 
@@ -344,12 +359,12 @@ function (_Plugin) {
344
359
  };
345
360
 
346
361
  if (this.options.clickOpen || hasTouch) {
347
- this.$menuItems.on('click.zf.dropdownmenu touchstart.zf.dropdownmenu', handleClickFn);
362
+ this.$menuItems.on('click.zf.dropdownMenu touchstart.zf.dropdownMenu', handleClickFn);
348
363
  } // Handle Leaf element Clicks
349
364
 
350
365
 
351
366
  if (_this.options.closeOnClickInside) {
352
- this.$menuItems.on('click.zf.dropdownmenu', function (e) {
367
+ this.$menuItems.on('click.zf.dropdownMenu', function (e) {
353
368
  var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),
354
369
  hasSub = $elem.hasClass(parClass);
355
370
 
@@ -360,7 +375,7 @@ function (_Plugin) {
360
375
  }
361
376
 
362
377
  if (!this.options.disableHover) {
363
- this.$menuItems.on('mouseenter.zf.dropdownmenu', function (e) {
378
+ this.$menuItems.on('mouseenter.zf.dropdownMenu', function (e) {
364
379
  var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),
365
380
  hasSub = $elem.hasClass(parClass);
366
381
 
@@ -370,7 +385,7 @@ function (_Plugin) {
370
385
  _this._show($elem.children('.is-dropdown-submenu'));
371
386
  }, _this.options.hoverDelay));
372
387
  }
373
- }).on('mouseleave.zf.dropdownMenu', Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__["ignoreMousedisappear"])(function (e) {
388
+ }).on('mouseleave.zf.dropdownmenu', Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__["ignoreMousedisappear"])(function (e) {
374
389
  var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),
375
390
  hasSub = $elem.hasClass(parClass);
376
391
 
@@ -387,7 +402,7 @@ function (_Plugin) {
387
402
  }));
388
403
  }
389
404
 
390
- this.$menuItems.on('keydown.zf.dropdownmenu', function (e) {
405
+ this.$menuItems.on('keydown.zf.dropdownMenu', function (e) {
391
406
  var $element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target).parentsUntil('ul', '[role="menuitem"]'),
392
407
  isTab = _this.$tabs.index($element) > -1,
393
408
  $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),
@@ -440,9 +455,6 @@ function (_Plugin) {
440
455
 
441
456
 
442
457
  e.preventDefault();
443
- },
444
- handled: function handled() {
445
- e.stopImmediatePropagation();
446
458
  }
447
459
  };
448
460
 
@@ -519,27 +531,38 @@ function (_Plugin) {
519
531
  }, {
520
532
  key: "_addBodyHandler",
521
533
  value: function _addBodyHandler() {
522
- var $body = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body),
523
- _this = this;
534
+ var _this2 = this;
524
535
 
525
- $body.off('mouseup.zf.dropdownmenu touchend.zf.dropdownmenu').on('mouseup.zf.dropdownmenu touchend.zf.dropdownmenu', function (e) {
526
- var $link = _this.$element.find(e.target);
536
+ var $body = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body);
527
537
 
528
- if ($link.length) {
529
- return;
530
- }
538
+ this._removeBodyHandler();
539
+
540
+ $body.on('click.zf.dropdownMenu tap.zf.dropdownMenu', function (e) {
541
+ var isItself = !!jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target).closest(_this2.$element).length;
542
+ if (isItself) return;
531
543
 
532
- _this._hide();
544
+ _this2._hide();
533
545
 
534
- $body.off('mouseup.zf.dropdownmenu touchend.zf.dropdownmenu');
546
+ _this2._removeBodyHandler();
535
547
  });
536
548
  }
549
+ /**
550
+ * Remove the body event handler. See `_addBodyHandler`.
551
+ * @function
552
+ * @private
553
+ */
554
+
555
+ }, {
556
+ key: "_removeBodyHandler",
557
+ value: function _removeBodyHandler() {
558
+ jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).off('click.zf.dropdownMenu tap.zf.dropdownMenu');
559
+ }
537
560
  /**
538
561
  * Opens a dropdown pane, and checks for collisions first.
539
562
  * @param {jQuery} $sub - ul element that is a submenu to show
540
563
  * @function
541
564
  * @private
542
- * @fires Dropdownmenu#show
565
+ * @fires DropdownMenu#show
543
566
  */
544
567
 
545
568
  }, {
@@ -575,17 +598,18 @@ function (_Plugin) {
575
598
  }
576
599
  /**
577
600
  * Fires when the new dropdown pane is visible.
578
- * @event Dropdownmenu#show
601
+ * @event DropdownMenu#show
579
602
  */
580
603
 
581
604
 
582
- this.$element.trigger('show.zf.dropdownmenu', [$sub]);
605
+ this.$element.trigger('show.zf.dropdownMenu', [$sub]);
583
606
  }
584
607
  /**
585
608
  * Hides a single, currently open dropdown pane, if passed a parameter, otherwise, hides everything.
586
609
  * @function
587
610
  * @param {jQuery} $elem - element with a submenu to hide
588
611
  * @param {Number} idx - index of the $tabs collection to hide
612
+ * @fires DropdownMenu#hide
589
613
  * @private
590
614
  */
591
615
 
@@ -607,7 +631,8 @@ function (_Plugin) {
607
631
  var somethingToClose = $toClose.hasClass('is-active') || $toClose.find('.is-active').length > 0;
608
632
 
609
633
  if (somethingToClose) {
610
- $toClose.find('li.is-active').add($toClose).attr({
634
+ var $activeItem = $toClose.find('li.is-active');
635
+ $activeItem.add($toClose).attr({
611
636
  'data-is-click': false
612
637
  }).removeClass('is-active');
613
638
  $toClose.find('ul.js-dropdown-active').removeClass('js-dropdown-active');
@@ -617,13 +642,17 @@ function (_Plugin) {
617
642
  $toClose.find('li.is-dropdown-submenu-parent').add($toClose).removeClass("opens-inner opens-".concat(this.options.alignment)).addClass("opens-".concat(oldClass));
618
643
  this.changed = false;
619
644
  }
645
+
646
+ clearTimeout($activeItem.data('_delay'));
647
+
648
+ this._removeBodyHandler();
620
649
  /**
621
650
  * Fires when the open menus are closed.
622
- * @event Dropdownmenu#hide
651
+ * @event DropdownMenu#hide
623
652
  */
624
653
 
625
654
 
626
- this.$element.trigger('hide.zf.dropdownmenu', [$toClose]);
655
+ this.$element.trigger('hide.zf.dropdownMenu', [$toClose]);
627
656
  }
628
657
  }
629
658
  /**
@@ -634,8 +663,8 @@ function (_Plugin) {
634
663
  }, {
635
664
  key: "_destroy",
636
665
  value: function _destroy() {
637
- this.$menuItems.off('.zf.dropdownmenu').removeAttr('data-is-click').removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');
638
- jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).off('.zf.dropdownmenu');
666
+ this.$menuItems.off('.zf.dropdownMenu').removeAttr('data-is-click').removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');
667
+ jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).off('.zf.dropdownMenu');
639
668
  _foundation_util_nest__WEBPACK_IMPORTED_MODULE_3__["Nest"].Burn(this.$element, 'dropdown');
640
669
  }
641
670
  }]);
@@ -747,7 +776,7 @@ DropdownMenu.defaults = {
747
776
  /*! no static exports found */
748
777
  /***/ (function(module, exports, __webpack_require__) {
749
778
 
750
- module.exports = __webpack_require__(/*! /Users/ncoden/Documents/Documents/Projects/Programmation/Web/2016/Foundation/foundation-sites/js/entries/plugins/foundation.dropdownMenu.js */"./js/entries/plugins/foundation.dropdownMenu.js");
779
+ module.exports = __webpack_require__(/*! /Volumes/Data/Development/Foundation/foundation-sites/js/entries/plugins/foundation.dropdownMenu.js */"./js/entries/plugins/foundation.dropdownMenu.js");
751
780
 
752
781
 
753
782
  /***/ }),
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.nest\"],\"amd\":\"./foundation.util.nest\",\"commonjs\":\"./foundation.util.nest\",\"commonjs2\":\"./foundation.util.nest\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/entries/plugins/foundation.dropdownMenu.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.dropdownMenu.js","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","plugin","DropdownMenu","element","options","$element","$","extend","defaults","data","className","_init","Keyboard","register","Nest","Feather","subs","find","children","addClass","$menuItems","$tabs","verticalClass","alignment","hasClass","rightClass","Rtl","parents","is","changed","_events","css","_this","hasTouch","window","ontouchstart","parClass","handleClickFn","e","$elem","target","parentsUntil","hasSub","hasClicked","attr","$sub","closeOnClick","clickOpen","forceFollow","stopImmediatePropagation","preventDefault","_hide","_show","add","on","closeOnClickInside","disableHover","clearTimeout","setTimeout","hoverDelay","ignoreMousedisappear","autoclose","closingTime","isTab","index","$elements","siblings","$prevElement","$nextElement","each","i","eq","nextSibling","focus","prevSibling","openSub","length","closeSub","close","parent","functions","open","handled","_isVertical","_isRtl","down","up","next","previous","handleKey","$body","document","body","off","$link","idx","filter","el","$sibs","clear","Box","ImNotTouchingYou","oldClass","$parentLi","removeClass","_addBodyHandler","trigger","$toClose","not","somethingToClose","removeAttr","Burn","Plugin"],"mappings":"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","file":"foundation.dropdownMenu.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.box\", \"./foundation.util.keyboard\", \"./foundation.util.nest\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.dropdownMenu\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.dropdownMenu\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 5);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__;","import { Foundation } from './foundation.core';\n\nimport { DropdownMenu } from '../../foundation.dropdownMenu';\nFoundation.plugin(DropdownMenu, 'DropdownMenu');\n\nexport { Foundation, DropdownMenu};\n","'use strict';\n\nimport $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl, ignoreMousedisappear } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { Box } from './foundation.util.box';\n\n/**\n * DropdownMenu module.\n * @module foundation.dropdown-menu\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.nest\n */\n\nclass DropdownMenu extends Plugin {\n /**\n * Creates a new instance of DropdownMenu.\n * @class\n * @name DropdownMenu\n * @fires DropdownMenu#init\n * @param {jQuery} element - jQuery object to make into a dropdown menu.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, DropdownMenu.defaults, this.$element.data(), options);\n this.className = 'DropdownMenu'; // ie9 back compat\n\n this._init();\n\n Keyboard.register('DropdownMenu', {\n 'ENTER': 'open',\n 'SPACE': 'open',\n 'ARROW_RIGHT': 'next',\n 'ARROW_UP': 'up',\n 'ARROW_DOWN': 'down',\n 'ARROW_LEFT': 'previous',\n 'ESCAPE': 'close'\n });\n }\n\n /**\n * Initializes the plugin, and calls _prepareMenu\n * @private\n * @function\n */\n _init() {\n Nest.Feather(this.$element, 'dropdown');\n\n var subs = this.$element.find('li.is-dropdown-submenu-parent');\n this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');\n\n this.$menuItems = this.$element.find('[role=\"menuitem\"]');\n this.$tabs = this.$element.children('[role=\"menuitem\"]');\n this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);\n\n if (this.options.alignment === 'auto') {\n if (this.$element.hasClass(this.options.rightClass) || Rtl() || this.$element.parents('.top-bar-right').is('*')) {\n this.options.alignment = 'right';\n subs.addClass('opens-left');\n } else {\n this.options.alignment = 'left';\n subs.addClass('opens-right');\n }\n } else {\n if (this.options.alignment === 'right') {\n subs.addClass('opens-left');\n } else {\n subs.addClass('opens-right');\n }\n }\n this.changed = false;\n this._events();\n };\n\n _isVertical() {\n return this.$tabs.css('display') === 'block' || this.$element.css('flex-direction') === 'column';\n }\n\n _isRtl() {\n return this.$element.hasClass('align-right') || (Rtl() && !this.$element.hasClass('align-left'));\n }\n\n /**\n * Adds event listeners to elements within the menu\n * @private\n * @function\n */\n _events() {\n var _this = this,\n hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined'),\n parClass = 'is-dropdown-submenu-parent';\n\n // used for onClick and in the keyboard handlers\n var handleClickFn = function(e) {\n var $elem = $(e.target).parentsUntil('ul', `.${parClass}`),\n hasSub = $elem.hasClass(parClass),\n hasClicked = $elem.attr('data-is-click') === 'true',\n $sub = $elem.children('.is-dropdown-submenu');\n\n if (hasSub) {\n if (hasClicked) {\n if (!_this.options.closeOnClick || (!_this.options.clickOpen && !hasTouch) || (_this.options.forceFollow && hasTouch)) { return; }\n else {\n e.stopImmediatePropagation();\n e.preventDefault();\n _this._hide($elem);\n }\n } else {\n e.preventDefault();\n e.stopImmediatePropagation();\n _this._show($sub);\n $elem.add($elem.parentsUntil(_this.$element, `.${parClass}`)).attr('data-is-click', true);\n }\n }\n };\n\n if (this.options.clickOpen || hasTouch) {\n this.$menuItems.on('click.zf.dropdownmenu touchstart.zf.dropdownmenu', handleClickFn);\n }\n\n // Handle Leaf element Clicks\n if(_this.options.closeOnClickInside){\n this.$menuItems.on('click.zf.dropdownmenu', function(e) {\n var $elem = $(this),\n hasSub = $elem.hasClass(parClass);\n if(!hasSub){\n _this._hide();\n }\n });\n }\n\n if (!this.options.disableHover) {\n this.$menuItems.on('mouseenter.zf.dropdownmenu', function (e) {\n var $elem = $(this),\n hasSub = $elem.hasClass(parClass);\n\n if (hasSub) {\n clearTimeout($elem.data('_delay'));\n $elem.data('_delay', setTimeout(function () {\n _this._show($elem.children('.is-dropdown-submenu'));\n }, _this.options.hoverDelay));\n }\n }).on('mouseleave.zf.dropdownMenu', ignoreMousedisappear(function (e) {\n var $elem = $(this),\n hasSub = $elem.hasClass(parClass);\n if (hasSub && _this.options.autoclose) {\n if ($elem.attr('data-is-click') === 'true' && _this.options.clickOpen) { return false; }\n\n clearTimeout($elem.data('_delay'));\n $elem.data('_delay', setTimeout(function () {\n _this._hide($elem);\n }, _this.options.closingTime));\n }\n }));\n }\n this.$menuItems.on('keydown.zf.dropdownmenu', function(e) {\n var $element = $(e.target).parentsUntil('ul', '[role=\"menuitem\"]'),\n isTab = _this.$tabs.index($element) > -1,\n $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),\n $prevElement,\n $nextElement;\n\n $elements.each(function(i) {\n if ($(this).is($element)) {\n $prevElement = $elements.eq(i-1);\n $nextElement = $elements.eq(i+1);\n return;\n }\n });\n\n var nextSibling = function() {\n $nextElement.children('a:first').focus();\n e.preventDefault();\n }, prevSibling = function() {\n $prevElement.children('a:first').focus();\n e.preventDefault();\n }, openSub = function() {\n var $sub = $element.children('ul.is-dropdown-submenu');\n if ($sub.length) {\n _this._show($sub);\n $element.find('li > a:first').focus();\n e.preventDefault();\n } else { return; }\n }, closeSub = function() {\n //if ($element.is(':first-child')) {\n var close = $element.parent('ul').parent('li');\n close.children('a:first').focus();\n _this._hide(close);\n e.preventDefault();\n //}\n };\n var functions = {\n open: openSub,\n close: function() {\n _this._hide(_this.$element);\n _this.$menuItems.eq(0).children('a').focus(); // focus to first element\n e.preventDefault();\n },\n handled: function() {\n e.stopImmediatePropagation();\n }\n };\n\n if (isTab) {\n if (_this._isVertical()) { // vertical menu\n if (_this._isRtl()) { // right aligned\n $.extend(functions, {\n down: nextSibling,\n up: prevSibling,\n next: closeSub,\n previous: openSub\n });\n } else { // left aligned\n $.extend(functions, {\n down: nextSibling,\n up: prevSibling,\n next: openSub,\n previous: closeSub\n });\n }\n } else { // horizontal menu\n if (_this._isRtl()) { // right aligned\n $.extend(functions, {\n next: prevSibling,\n previous: nextSibling,\n down: openSub,\n up: closeSub\n });\n } else { // left aligned\n $.extend(functions, {\n next: nextSibling,\n previous: prevSibling,\n down: openSub,\n up: closeSub\n });\n }\n }\n } else { // not tabs -> one sub\n if (_this._isRtl()) { // right aligned\n $.extend(functions, {\n next: closeSub,\n previous: openSub,\n down: nextSibling,\n up: prevSibling\n });\n } else { // left aligned\n $.extend(functions, {\n next: openSub,\n previous: closeSub,\n down: nextSibling,\n up: prevSibling\n });\n }\n }\n Keyboard.handleKey(e, 'DropdownMenu', functions);\n\n });\n }\n\n /**\n * Adds an event handler to the body to close any dropdowns on a click.\n * @function\n * @private\n */\n _addBodyHandler() {\n var $body = $(document.body),\n _this = this;\n $body.off('mouseup.zf.dropdownmenu touchend.zf.dropdownmenu')\n .on('mouseup.zf.dropdownmenu touchend.zf.dropdownmenu', function(e) {\n var $link = _this.$element.find(e.target);\n if ($link.length) { return; }\n\n _this._hide();\n $body.off('mouseup.zf.dropdownmenu touchend.zf.dropdownmenu');\n });\n }\n\n /**\n * Opens a dropdown pane, and checks for collisions first.\n * @param {jQuery} $sub - ul element that is a submenu to show\n * @function\n * @private\n * @fires Dropdownmenu#show\n */\n _show($sub) {\n var idx = this.$tabs.index(this.$tabs.filter(function(i, el) {\n return $(el).find($sub).length > 0;\n }));\n var $sibs = $sub.parent('li.is-dropdown-submenu-parent').siblings('li.is-dropdown-submenu-parent');\n this._hide($sibs, idx);\n $sub.css('visibility', 'hidden').addClass('js-dropdown-active')\n .parent('li.is-dropdown-submenu-parent').addClass('is-active');\n var clear = Box.ImNotTouchingYou($sub, null, true);\n if (!clear) {\n var oldClass = this.options.alignment === 'left' ? '-right' : '-left',\n $parentLi = $sub.parent('.is-dropdown-submenu-parent');\n $parentLi.removeClass(`opens${oldClass}`).addClass(`opens-${this.options.alignment}`);\n clear = Box.ImNotTouchingYou($sub, null, true);\n if (!clear) {\n $parentLi.removeClass(`opens-${this.options.alignment}`).addClass('opens-inner');\n }\n this.changed = true;\n }\n $sub.css('visibility', '');\n if (this.options.closeOnClick) { this._addBodyHandler(); }\n /**\n * Fires when the new dropdown pane is visible.\n * @event Dropdownmenu#show\n */\n this.$element.trigger('show.zf.dropdownmenu', [$sub]);\n }\n\n /**\n * Hides a single, currently open dropdown pane, if passed a parameter, otherwise, hides everything.\n * @function\n * @param {jQuery} $elem - element with a submenu to hide\n * @param {Number} idx - index of the $tabs collection to hide\n * @private\n */\n _hide($elem, idx) {\n var $toClose;\n if ($elem && $elem.length) {\n $toClose = $elem;\n } else if (typeof idx !== 'undefined') {\n $toClose = this.$tabs.not(function(i, el) {\n return i === idx;\n });\n }\n else {\n $toClose = this.$element;\n }\n var somethingToClose = $toClose.hasClass('is-active') || $toClose.find('.is-active').length > 0;\n\n if (somethingToClose) {\n $toClose.find('li.is-active').add($toClose).attr({\n 'data-is-click': false\n }).removeClass('is-active');\n\n $toClose.find('ul.js-dropdown-active').removeClass('js-dropdown-active');\n\n if (this.changed || $toClose.find('opens-inner').length) {\n var oldClass = this.options.alignment === 'left' ? 'right' : 'left';\n $toClose.find('li.is-dropdown-submenu-parent').add($toClose)\n .removeClass(`opens-inner opens-${this.options.alignment}`)\n .addClass(`opens-${oldClass}`);\n this.changed = false;\n }\n /**\n * Fires when the open menus are closed.\n * @event Dropdownmenu#hide\n */\n this.$element.trigger('hide.zf.dropdownmenu', [$toClose]);\n }\n }\n\n /**\n * Destroys the plugin.\n * @function\n */\n _destroy() {\n this.$menuItems.off('.zf.dropdownmenu').removeAttr('data-is-click')\n .removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');\n $(document.body).off('.zf.dropdownmenu');\n Nest.Burn(this.$element, 'dropdown');\n }\n}\n\n/**\n * Default settings for plugin\n */\nDropdownMenu.defaults = {\n /**\n * Disallows hover events from opening submenus\n * @option\n * @type {boolean}\n * @default false\n */\n disableHover: false,\n /**\n * Allow a submenu to automatically close on a mouseleave event, if not clicked open.\n * @option\n * @type {boolean}\n * @default true\n */\n autoclose: true,\n /**\n * Amount of time to delay opening a submenu on hover event.\n * @option\n * @type {number}\n * @default 50\n */\n hoverDelay: 50,\n /**\n * Allow a submenu to open/remain open on parent click event. Allows cursor to move away from menu.\n * @option\n * @type {boolean}\n * @default false\n */\n clickOpen: false,\n /**\n * Amount of time to delay closing a submenu on a mouseleave event.\n * @option\n * @type {number}\n * @default 500\n */\n\n closingTime: 500,\n /**\n * Position of the menu relative to what direction the submenus should open. Handled by JS. Can be `'auto'`, `'left'` or `'right'`.\n * @option\n * @type {string}\n * @default 'auto'\n */\n alignment: 'auto',\n /**\n * Allow clicks on the body to close any open submenus.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnClick: true,\n /**\n * Allow clicks on leaf anchor links to close any open submenus.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnClickInside: true,\n /**\n * Class applied to vertical oriented menus, Foundation default is `vertical`. Update this if using your own class.\n * @option\n * @type {string}\n * @default 'vertical'\n */\n verticalClass: 'vertical',\n /**\n * Class applied to right-side oriented menus, Foundation default is `align-right`. Update this if using your own class.\n * @option\n * @type {string}\n * @default 'align-right'\n */\n rightClass: 'align-right',\n /**\n * Boolean to force overide the clicking of links to perform default action, on second touch event for mobile.\n * @option\n * @type {boolean}\n * @default true\n */\n forceFollow: true\n};\n\nexport {DropdownMenu};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.nest\"],\"amd\":\"./foundation.util.nest\",\"commonjs\":\"./foundation.util.nest\",\"commonjs2\":\"./foundation.util.nest\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/entries/plugins/foundation.dropdownMenu.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.dropdownMenu.js","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","plugin","DropdownMenu","element","options","$element","$","extend","defaults","data","className","Touch","init","_init","Keyboard","register","Nest","Feather","subs","find","children","addClass","$menuItems","$tabs","verticalClass","alignment","hasClass","rightClass","Rtl","parents","is","changed","_events","css","_this","hasTouch","window","ontouchstart","parClass","handleClickFn","e","$elem","target","parentsUntil","hasSub","hasClicked","attr","$sub","closeOnClick","clickOpen","forceFollow","preventDefault","_hide","_show","add","on","closeOnClickInside","disableHover","clearTimeout","setTimeout","hoverDelay","ignoreMousedisappear","autoclose","closingTime","isTab","index","$elements","siblings","$prevElement","$nextElement","each","i","eq","nextSibling","focus","prevSibling","openSub","length","closeSub","close","parent","functions","open","_isVertical","_isRtl","down","up","next","previous","handleKey","$body","document","body","_removeBodyHandler","isItself","closest","off","idx","filter","el","$sibs","clear","Box","ImNotTouchingYou","oldClass","$parentLi","removeClass","_addBodyHandler","trigger","$toClose","not","somethingToClose","$activeItem","removeAttr","Burn","Plugin"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;;;;;AClFA,8D;;;;;;;;;;;ACAA,kE;;;;;;;;;;;ACAA,uE;;;;;;;;;;;ACAA,mE;;;;;;;;;;;ACAA,oE;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACAA,2DAAU,CAACC,MAAX,CAAkBC,qEAAlB,EAAgC,cAAhC;;;;;;;;;;;;;ACHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAa;;;;;;;;;;;;;;;;;;;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;;IASMA,Y;;;;;;;;;;;;;;AACJ;;;;;;;;2BAQOC,O,EAASC,O,EAAS;AACvB,WAAKC,QAAL,GAAgBF,OAAhB;AACA,WAAKC,OAAL,GAAeE,6CAAC,CAACC,MAAF,CAAS,EAAT,EAAaL,YAAY,CAACM,QAA1B,EAAoC,KAAKH,QAAL,CAAcI,IAAd,EAApC,EAA0DL,OAA1D,CAAf;AACA,WAAKM,SAAL,GAAiB,cAAjB,CAHuB,CAGU;;AAEjCC,kEAAK,CAACC,IAAN,CAAWN,6CAAX,EALuB,CAKR;;AAEf,WAAKO,KAAL;;AAEAC,wEAAQ,CAACC,QAAT,CAAkB,cAAlB,EAAkC;AAChC,iBAAS,MADuB;AAEhC,iBAAS,MAFuB;AAGhC,uBAAe,MAHiB;AAIhC,oBAAY,IAJoB;AAKhC,sBAAc,MALkB;AAMhC,sBAAc,UANkB;AAOhC,kBAAU;AAPsB,OAAlC;AASD;AAED;;;;;;;;4BAKQ;AACNC,gEAAI,CAACC,OAAL,CAAa,KAAKZ,QAAlB,EAA4B,UAA5B;AAEA,UAAIa,IAAI,GAAG,KAAKb,QAAL,CAAcc,IAAd,CAAmB,+BAAnB,CAAX;AACA,WAAKd,QAAL,CAAce,QAAd,CAAuB,6BAAvB,EAAsDA,QAAtD,CAA+D,sBAA/D,EAAuFC,QAAvF,CAAgG,WAAhG;AAEA,WAAKC,UAAL,GAAkB,KAAKjB,QAAL,CAAcc,IAAd,CAAmB,mBAAnB,CAAlB;AACA,WAAKI,KAAL,GAAa,KAAKlB,QAAL,CAAce,QAAd,CAAuB,mBAAvB,CAAb;AACA,WAAKG,KAAL,CAAWJ,IAAX,CAAgB,wBAAhB,EAA0CE,QAA1C,CAAmD,KAAKjB,OAAL,CAAaoB,aAAhE;;AAEA,UAAI,KAAKpB,OAAL,CAAaqB,SAAb,KAA2B,MAA/B,EAAuC;AACnC,YAAI,KAAKpB,QAAL,CAAcqB,QAAd,CAAuB,KAAKtB,OAAL,CAAauB,UAApC,KAAmDC,mEAAG,EAAtD,IAA4D,KAAKvB,QAAL,CAAcwB,OAAd,CAAsB,gBAAtB,EAAwCC,EAAxC,CAA2C,GAA3C,CAAhE,EAAiH;AAC7G,eAAK1B,OAAL,CAAaqB,SAAb,GAAyB,OAAzB;AACAP,cAAI,CAACG,QAAL,CAAc,YAAd;AACH,SAHD,MAGO;AACH,eAAKjB,OAAL,CAAaqB,SAAb,GAAyB,MAAzB;AACAP,cAAI,CAACG,QAAL,CAAc,aAAd;AACH;AACJ,OARD,MAQO;AACL,YAAI,KAAKjB,OAAL,CAAaqB,SAAb,KAA2B,OAA/B,EAAwC;AACpCP,cAAI,CAACG,QAAL,CAAc,YAAd;AACH,SAFD,MAEO;AACHH,cAAI,CAACG,QAAL,CAAc,aAAd;AACH;AACF;;AACD,WAAKU,OAAL,GAAe,KAAf;;AACA,WAAKC,OAAL;AACD;;;kCAEa;AACZ,aAAO,KAAKT,KAAL,CAAWU,GAAX,CAAe,SAAf,MAA8B,OAA9B,IAAyC,KAAK5B,QAAL,CAAc4B,GAAd,CAAkB,gBAAlB,MAAwC,QAAxF;AACD;;;6BAEQ;AACP,aAAO,KAAK5B,QAAL,CAAcqB,QAAd,CAAuB,aAAvB,KAA0CE,mEAAG,MAAM,CAAC,KAAKvB,QAAL,CAAcqB,QAAd,CAAuB,YAAvB,CAA3D;AACD;AAED;;;;;;;;8BAKU;AACR,UAAIQ,KAAK,GAAG,IAAZ;AAAA,UACIC,QAAQ,GAAG,kBAAkBC,MAAlB,IAA6B,OAAOA,MAAM,CAACC,YAAd,KAA+B,WAD3E;AAAA,UAEIC,QAAQ,GAAG,4BAFf,CADQ,CAKR;;;AACA,UAAIC,aAAa,GAAG,SAAhBA,aAAgB,CAASC,CAAT,EAAY;AAC9B,YAAIC,KAAK,GAAGnC,6CAAC,CAACkC,CAAC,CAACE,MAAH,CAAD,CAAYC,YAAZ,CAAyB,IAAzB,aAAmCL,QAAnC,EAAZ;AAAA,YACIM,MAAM,GAAGH,KAAK,CAACf,QAAN,CAAeY,QAAf,CADb;AAAA,YAEIO,UAAU,GAAGJ,KAAK,CAACK,IAAN,CAAW,eAAX,MAAgC,MAFjD;AAAA,YAGIC,IAAI,GAAGN,KAAK,CAACrB,QAAN,CAAe,sBAAf,CAHX;;AAKA,YAAIwB,MAAJ,EAAY;AACV,cAAIC,UAAJ,EAAgB;AACd,gBAAI,CAACX,KAAK,CAAC9B,OAAN,CAAc4C,YAAf,IACE,CAACd,KAAK,CAAC9B,OAAN,CAAc6C,SAAf,IAA4B,CAACd,QAD/B,IAEED,KAAK,CAAC9B,OAAN,CAAc8C,WAAd,IAA6Bf,QAFnC,EAE8C;AAC5C;AACD;;AACDK,aAAC,CAACW,cAAF;;AACAjB,iBAAK,CAACkB,KAAN,CAAYX,KAAZ;AACD,WARD,MASK;AACHD,aAAC,CAACW,cAAF;;AACAjB,iBAAK,CAACmB,KAAN,CAAYN,IAAZ;;AACAN,iBAAK,CAACa,GAAN,CAAUb,KAAK,CAACE,YAAN,CAAmBT,KAAK,CAAC7B,QAAzB,aAAuCiC,QAAvC,EAAV,EAA8DQ,IAA9D,CAAmE,eAAnE,EAAoF,IAApF;AACD;AACF;AACF,OAtBD;;AAwBA,UAAI,KAAK1C,OAAL,CAAa6C,SAAb,IAA0Bd,QAA9B,EAAwC;AACtC,aAAKb,UAAL,CAAgBiC,EAAhB,CAAmB,kDAAnB,EAAuEhB,aAAvE;AACD,OAhCO,CAkCR;;;AACA,UAAGL,KAAK,CAAC9B,OAAN,CAAcoD,kBAAjB,EAAoC;AAClC,aAAKlC,UAAL,CAAgBiC,EAAhB,CAAmB,uBAAnB,EAA4C,UAASf,CAAT,EAAY;AACtD,cAAIC,KAAK,GAAGnC,6CAAC,CAAC,IAAD,CAAb;AAAA,cACIsC,MAAM,GAAGH,KAAK,CAACf,QAAN,CAAeY,QAAf,CADb;;AAEA,cAAG,CAACM,MAAJ,EAAW;AACTV,iBAAK,CAACkB,KAAN;AACD;AACF,SAND;AAOD;;AAED,UAAI,CAAC,KAAKhD,OAAL,CAAaqD,YAAlB,EAAgC;AAC9B,aAAKnC,UAAL,CAAgBiC,EAAhB,CAAmB,4BAAnB,EAAiD,UAAUf,CAAV,EAAa;AAC5D,cAAIC,KAAK,GAAGnC,6CAAC,CAAC,IAAD,CAAb;AAAA,cACEsC,MAAM,GAAGH,KAAK,CAACf,QAAN,CAAeY,QAAf,CADX;;AAGA,cAAIM,MAAJ,EAAY;AACVc,wBAAY,CAACjB,KAAK,CAAChC,IAAN,CAAW,QAAX,CAAD,CAAZ;AACAgC,iBAAK,CAAChC,IAAN,CAAW,QAAX,EAAqBkD,UAAU,CAAC,YAAY;AAC1CzB,mBAAK,CAACmB,KAAN,CAAYZ,KAAK,CAACrB,QAAN,CAAe,sBAAf,CAAZ;AACD,aAF8B,EAE5Bc,KAAK,CAAC9B,OAAN,CAAcwD,UAFc,CAA/B;AAGD;AACF,SAVD,EAUGL,EAVH,CAUM,4BAVN,EAUoCM,oFAAoB,CAAC,UAAUrB,CAAV,EAAa;AACpE,cAAIC,KAAK,GAAGnC,6CAAC,CAAC,IAAD,CAAb;AAAA,cACIsC,MAAM,GAAGH,KAAK,CAACf,QAAN,CAAeY,QAAf,CADb;;AAEA,cAAIM,MAAM,IAAIV,KAAK,CAAC9B,OAAN,CAAc0D,SAA5B,EAAuC;AACrC,gBAAIrB,KAAK,CAACK,IAAN,CAAW,eAAX,MAAgC,MAAhC,IAA0CZ,KAAK,CAAC9B,OAAN,CAAc6C,SAA5D,EAAuE;AAAE,qBAAO,KAAP;AAAe;;AAExFS,wBAAY,CAACjB,KAAK,CAAChC,IAAN,CAAW,QAAX,CAAD,CAAZ;AACAgC,iBAAK,CAAChC,IAAN,CAAW,QAAX,EAAqBkD,UAAU,CAAC,YAAY;AAC1CzB,mBAAK,CAACkB,KAAN,CAAYX,KAAZ;AACD,aAF8B,EAE5BP,KAAK,CAAC9B,OAAN,CAAc2D,WAFc,CAA/B;AAGD;AACF,SAXuD,CAVxD;AAsBD;;AACD,WAAKzC,UAAL,CAAgBiC,EAAhB,CAAmB,yBAAnB,EAA8C,UAASf,CAAT,EAAY;AACxD,YAAInC,QAAQ,GAAGC,6CAAC,CAACkC,CAAC,CAACE,MAAH,CAAD,CAAYC,YAAZ,CAAyB,IAAzB,EAA+B,mBAA/B,CAAf;AAAA,YACIqB,KAAK,GAAG9B,KAAK,CAACX,KAAN,CAAY0C,KAAZ,CAAkB5D,QAAlB,IAA8B,CAAC,CAD3C;AAAA,YAEI6D,SAAS,GAAGF,KAAK,GAAG9B,KAAK,CAACX,KAAT,GAAiBlB,QAAQ,CAAC8D,QAAT,CAAkB,IAAlB,EAAwBb,GAAxB,CAA4BjD,QAA5B,CAFtC;AAAA,YAGI+D,YAHJ;AAAA,YAIIC,YAJJ;AAMAH,iBAAS,CAACI,IAAV,CAAe,UAASC,CAAT,EAAY;AACzB,cAAIjE,6CAAC,CAAC,IAAD,CAAD,CAAQwB,EAAR,CAAWzB,QAAX,CAAJ,EAA0B;AACxB+D,wBAAY,GAAGF,SAAS,CAACM,EAAV,CAAaD,CAAC,GAAC,CAAf,CAAf;AACAF,wBAAY,GAAGH,SAAS,CAACM,EAAV,CAAaD,CAAC,GAAC,CAAf,CAAf;AACA;AACD;AACF,SAND;;AAQA,YAAIE,WAAW,GAAG,SAAdA,WAAc,GAAW;AAC3BJ,sBAAY,CAACjD,QAAb,CAAsB,SAAtB,EAAiCsD,KAAjC;AACAlC,WAAC,CAACW,cAAF;AACD,SAHD;AAAA,YAGGwB,WAAW,GAAG,SAAdA,WAAc,GAAW;AAC1BP,sBAAY,CAAChD,QAAb,CAAsB,SAAtB,EAAiCsD,KAAjC;AACAlC,WAAC,CAACW,cAAF;AACD,SAND;AAAA,YAMGyB,OAAO,GAAG,SAAVA,OAAU,GAAW;AACtB,cAAI7B,IAAI,GAAG1C,QAAQ,CAACe,QAAT,CAAkB,wBAAlB,CAAX;;AACA,cAAI2B,IAAI,CAAC8B,MAAT,EAAiB;AACf3C,iBAAK,CAACmB,KAAN,CAAYN,IAAZ;;AACA1C,oBAAQ,CAACc,IAAT,CAAc,cAAd,EAA8BuD,KAA9B;AACAlC,aAAC,CAACW,cAAF;AACD,WAJD,MAIO;AAAE;AAAS;AACnB,SAbD;AAAA,YAaG2B,QAAQ,GAAG,SAAXA,QAAW,GAAW;AACvB;AACA,cAAIC,KAAK,GAAG1E,QAAQ,CAAC2E,MAAT,CAAgB,IAAhB,EAAsBA,MAAtB,CAA6B,IAA7B,CAAZ;AACAD,eAAK,CAAC3D,QAAN,CAAe,SAAf,EAA0BsD,KAA1B;;AACAxC,eAAK,CAACkB,KAAN,CAAY2B,KAAZ;;AACAvC,WAAC,CAACW,cAAF,GALuB,CAMvB;AACD,SApBD;;AAqBA,YAAI8B,SAAS,GAAG;AACdC,cAAI,EAAEN,OADQ;AAEdG,eAAK,EAAE,iBAAW;AAChB7C,iBAAK,CAACkB,KAAN,CAAYlB,KAAK,CAAC7B,QAAlB;;AACA6B,iBAAK,CAACZ,UAAN,CAAiBkD,EAAjB,CAAoB,CAApB,EAAuBpD,QAAvB,CAAgC,GAAhC,EAAqCsD,KAArC,GAFgB,CAE8B;;;AAC9ClC,aAAC,CAACW,cAAF;AACD;AANa,SAAhB;;AASA,YAAIa,KAAJ,EAAW;AACT,cAAI9B,KAAK,CAACiD,WAAN,EAAJ,EAAyB;AAAE;AACzB,gBAAIjD,KAAK,CAACkD,MAAN,EAAJ,EAAoB;AAAE;AACpB9E,2DAAC,CAACC,MAAF,CAAS0E,SAAT,EAAoB;AAClBI,oBAAI,EAAEZ,WADY;AAElBa,kBAAE,EAAEX,WAFc;AAGlBY,oBAAI,EAAET,QAHY;AAIlBU,wBAAQ,EAAEZ;AAJQ,eAApB;AAMD,aAPD,MAOO;AAAE;AACPtE,2DAAC,CAACC,MAAF,CAAS0E,SAAT,EAAoB;AAClBI,oBAAI,EAAEZ,WADY;AAElBa,kBAAE,EAAEX,WAFc;AAGlBY,oBAAI,EAAEX,OAHY;AAIlBY,wBAAQ,EAAEV;AAJQ,eAApB;AAMD;AACF,WAhBD,MAgBO;AAAE;AACP,gBAAI5C,KAAK,CAACkD,MAAN,EAAJ,EAAoB;AAAE;AACpB9E,2DAAC,CAACC,MAAF,CAAS0E,SAAT,EAAoB;AAClBM,oBAAI,EAAEZ,WADY;AAElBa,wBAAQ,EAAEf,WAFQ;AAGlBY,oBAAI,EAAET,OAHY;AAIlBU,kBAAE,EAAER;AAJc,eAApB;AAMD,aAPD,MAOO;AAAE;AACPxE,2DAAC,CAACC,MAAF,CAAS0E,SAAT,EAAoB;AAClBM,oBAAI,EAAEd,WADY;AAElBe,wBAAQ,EAAEb,WAFQ;AAGlBU,oBAAI,EAAET,OAHY;AAIlBU,kBAAE,EAAER;AAJc,eAApB;AAMD;AACF;AACF,SAlCD,MAkCO;AAAE;AACP,cAAI5C,KAAK,CAACkD,MAAN,EAAJ,EAAoB;AAAE;AACpB9E,yDAAC,CAACC,MAAF,CAAS0E,SAAT,EAAoB;AAClBM,kBAAI,EAAET,QADY;AAElBU,sBAAQ,EAAEZ,OAFQ;AAGlBS,kBAAI,EAAEZ,WAHY;AAIlBa,gBAAE,EAAEX;AAJc,aAApB;AAMD,WAPD,MAOO;AAAE;AACPrE,yDAAC,CAACC,MAAF,CAAS0E,SAAT,EAAoB;AAClBM,kBAAI,EAAEX,OADY;AAElBY,sBAAQ,EAAEV,QAFQ;AAGlBO,kBAAI,EAAEZ,WAHY;AAIlBa,gBAAE,EAAEX;AAJc,aAApB;AAMD;AACF;;AACD7D,0EAAQ,CAAC2E,SAAT,CAAmBjD,CAAnB,EAAsB,cAAtB,EAAsCyC,SAAtC;AAED,OAlGD;AAmGD;AAED;;;;;;;;sCAKkB;AAAA;;AAChB,UAAMS,KAAK,GAAGpF,6CAAC,CAACqF,QAAQ,CAACC,IAAV,CAAf;;AACA,WAAKC,kBAAL;;AACAH,WAAK,CAACnC,EAAN,CAAS,2CAAT,EAAsD,UAACf,CAAD,EAAO;AAC3D,YAAIsD,QAAQ,GAAG,CAAC,CAACxF,6CAAC,CAACkC,CAAC,CAACE,MAAH,CAAD,CAAYqD,OAAZ,CAAoB,MAAI,CAAC1F,QAAzB,EAAmCwE,MAApD;AACA,YAAIiB,QAAJ,EAAc;;AAEd,cAAI,CAAC1C,KAAL;;AACA,cAAI,CAACyC,kBAAL;AACD,OAND;AAOD;AAED;;;;;;;;yCAKqB;AACnBvF,mDAAC,CAACqF,QAAQ,CAACC,IAAV,CAAD,CAAiBI,GAAjB,CAAqB,2CAArB;AACD;AAED;;;;;;;;;;0BAOMjD,I,EAAM;AACV,UAAIkD,GAAG,GAAG,KAAK1E,KAAL,CAAW0C,KAAX,CAAiB,KAAK1C,KAAL,CAAW2E,MAAX,CAAkB,UAAS3B,CAAT,EAAY4B,EAAZ,EAAgB;AAC3D,eAAO7F,6CAAC,CAAC6F,EAAD,CAAD,CAAMhF,IAAN,CAAW4B,IAAX,EAAiB8B,MAAjB,GAA0B,CAAjC;AACD,OAF0B,CAAjB,CAAV;AAGA,UAAIuB,KAAK,GAAGrD,IAAI,CAACiC,MAAL,CAAY,+BAAZ,EAA6Cb,QAA7C,CAAsD,+BAAtD,CAAZ;;AACA,WAAKf,KAAL,CAAWgD,KAAX,EAAkBH,GAAlB;;AACAlD,UAAI,CAACd,GAAL,CAAS,YAAT,EAAuB,QAAvB,EAAiCZ,QAAjC,CAA0C,oBAA1C,EACK2D,MADL,CACY,+BADZ,EAC6C3D,QAD7C,CACsD,WADtD;AAEA,UAAIgF,KAAK,GAAGC,wDAAG,CAACC,gBAAJ,CAAqBxD,IAArB,EAA2B,IAA3B,EAAiC,IAAjC,CAAZ;;AACA,UAAI,CAACsD,KAAL,EAAY;AACV,YAAIG,QAAQ,GAAG,KAAKpG,OAAL,CAAaqB,SAAb,KAA2B,MAA3B,GAAoC,QAApC,GAA+C,OAA9D;AAAA,YACIgF,SAAS,GAAG1D,IAAI,CAACiC,MAAL,CAAY,6BAAZ,CADhB;AAEAyB,iBAAS,CAACC,WAAV,gBAA8BF,QAA9B,GAA0CnF,QAA1C,iBAA4D,KAAKjB,OAAL,CAAaqB,SAAzE;AACA4E,aAAK,GAAGC,wDAAG,CAACC,gBAAJ,CAAqBxD,IAArB,EAA2B,IAA3B,EAAiC,IAAjC,CAAR;;AACA,YAAI,CAACsD,KAAL,EAAY;AACVI,mBAAS,CAACC,WAAV,iBAA+B,KAAKtG,OAAL,CAAaqB,SAA5C,GAAyDJ,QAAzD,CAAkE,aAAlE;AACD;;AACD,aAAKU,OAAL,GAAe,IAAf;AACD;;AACDgB,UAAI,CAACd,GAAL,CAAS,YAAT,EAAuB,EAAvB;;AACA,UAAI,KAAK7B,OAAL,CAAa4C,YAAjB,EAA+B;AAAE,aAAK2D,eAAL;AAAyB;AAC1D;;;;;;AAIA,WAAKtG,QAAL,CAAcuG,OAAd,CAAsB,sBAAtB,EAA8C,CAAC7D,IAAD,CAA9C;AACD;AAED;;;;;;;;;;;0BAQMN,K,EAAOwD,G,EAAK;AAChB,UAAIY,QAAJ;;AACA,UAAIpE,KAAK,IAAIA,KAAK,CAACoC,MAAnB,EAA2B;AACzBgC,gBAAQ,GAAGpE,KAAX;AACD,OAFD,MAEO,IAAI,OAAOwD,GAAP,KAAe,WAAnB,EAAgC;AACrCY,gBAAQ,GAAG,KAAKtF,KAAL,CAAWuF,GAAX,CAAe,UAASvC,CAAT,EAAY4B,EAAZ,EAAgB;AACxC,iBAAO5B,CAAC,KAAK0B,GAAb;AACD,SAFU,CAAX;AAGD,OAJM,MAKF;AACHY,gBAAQ,GAAG,KAAKxG,QAAhB;AACD;;AACD,UAAI0G,gBAAgB,GAAGF,QAAQ,CAACnF,QAAT,CAAkB,WAAlB,KAAkCmF,QAAQ,CAAC1F,IAAT,CAAc,YAAd,EAA4B0D,MAA5B,GAAqC,CAA9F;;AAEA,UAAIkC,gBAAJ,EAAsB;AACpB,YAAIC,WAAW,GAAGH,QAAQ,CAAC1F,IAAT,CAAc,cAAd,CAAlB;AACA6F,mBAAW,CAAC1D,GAAZ,CAAgBuD,QAAhB,EAA0B/D,IAA1B,CAA+B;AAC7B,2BAAiB;AADY,SAA/B,EAEG4D,WAFH,CAEe,WAFf;AAIAG,gBAAQ,CAAC1F,IAAT,CAAc,uBAAd,EAAuCuF,WAAvC,CAAmD,oBAAnD;;AAEA,YAAI,KAAK3E,OAAL,IAAgB8E,QAAQ,CAAC1F,IAAT,CAAc,aAAd,EAA6B0D,MAAjD,EAAyD;AACvD,cAAI2B,QAAQ,GAAG,KAAKpG,OAAL,CAAaqB,SAAb,KAA2B,MAA3B,GAAoC,OAApC,GAA8C,MAA7D;AACAoF,kBAAQ,CAAC1F,IAAT,CAAc,+BAAd,EAA+CmC,GAA/C,CAAmDuD,QAAnD,EACSH,WADT,6BAC0C,KAAKtG,OAAL,CAAaqB,SADvD,GAESJ,QAFT,iBAE2BmF,QAF3B;AAGA,eAAKzE,OAAL,GAAe,KAAf;AACD;;AAED2B,oBAAY,CAACsD,WAAW,CAACvG,IAAZ,CAAiB,QAAjB,CAAD,CAAZ;;AACA,aAAKoF,kBAAL;AAEA;;;;;;AAIA,aAAKxF,QAAL,CAAcuG,OAAd,CAAsB,sBAAtB,EAA8C,CAACC,QAAD,CAA9C;AACD;AACF;AAED;;;;;;;+BAIW;AACT,WAAKvF,UAAL,CAAgB0E,GAAhB,CAAoB,kBAApB,EAAwCiB,UAAxC,CAAmD,eAAnD,EACKP,WADL,CACiB,+EADjB;AAEApG,mDAAC,CAACqF,QAAQ,CAACC,IAAV,CAAD,CAAiBI,GAAjB,CAAqB,kBAArB;AACAhF,gEAAI,CAACkG,IAAL,CAAU,KAAK7G,QAAf,EAAyB,UAAzB;AACD;;;;EA7WwB8G,8D;AAgX3B;;;;;AAGAjH,YAAY,CAACM,QAAb,GAAwB;AACtB;;;;;;AAMAiD,cAAY,EAAE,KAPQ;;AAQtB;;;;;;AAMAK,WAAS,EAAE,IAdW;;AAetB;;;;;;AAMAF,YAAU,EAAE,EArBU;;AAsBtB;;;;;;AAMAX,WAAS,EAAE,KA5BW;;AA6BtB;;;;;;AAOAc,aAAW,EAAE,GApCS;;AAqCtB;;;;;;AAMAtC,WAAS,EAAE,MA3CW;;AA4CtB;;;;;;AAMAuB,cAAY,EAAE,IAlDQ;;AAmDtB;;;;;;AAMAQ,oBAAkB,EAAE,IAzDE;;AA0DtB;;;;;;AAMAhC,eAAa,EAAE,UAhEO;;AAiEtB;;;;;;AAMAG,YAAU,EAAE,aAvEU;;AAwEtB;;;;;;AAMAuB,aAAW,EAAE;AA9ES,CAAxB;;;;;;;;;;;;;;;;;;;;;;;;ACvYA,oD","file":"foundation.dropdownMenu.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.box\", \"./foundation.util.keyboard\", \"./foundation.util.nest\", \"./foundation.util.touch\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.dropdownMenu\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.dropdownMenu\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 5);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;","import { Foundation } from './foundation.core';\n\nimport { DropdownMenu } from '../../foundation.dropdownMenu';\nFoundation.plugin(DropdownMenu, 'DropdownMenu');\n\nexport { Foundation, DropdownMenu};\n","'use strict';\n\nimport $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl, ignoreMousedisappear } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { Box } from './foundation.util.box';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * DropdownMenu module.\n * @module foundation.dropdownMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.nest\n * @requires foundation.util.touch\n */\n\nclass DropdownMenu extends Plugin {\n /**\n * Creates a new instance of DropdownMenu.\n * @class\n * @name DropdownMenu\n * @fires DropdownMenu#init\n * @param {jQuery} element - jQuery object to make into a dropdown menu.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, DropdownMenu.defaults, this.$element.data(), options);\n this.className = 'DropdownMenu'; // ie9 back compat\n\n Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n this._init();\n\n Keyboard.register('DropdownMenu', {\n 'ENTER': 'open',\n 'SPACE': 'open',\n 'ARROW_RIGHT': 'next',\n 'ARROW_UP': 'up',\n 'ARROW_DOWN': 'down',\n 'ARROW_LEFT': 'previous',\n 'ESCAPE': 'close'\n });\n }\n\n /**\n * Initializes the plugin, and calls _prepareMenu\n * @private\n * @function\n */\n _init() {\n Nest.Feather(this.$element, 'dropdown');\n\n var subs = this.$element.find('li.is-dropdown-submenu-parent');\n this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');\n\n this.$menuItems = this.$element.find('[role=\"menuitem\"]');\n this.$tabs = this.$element.children('[role=\"menuitem\"]');\n this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);\n\n if (this.options.alignment === 'auto') {\n if (this.$element.hasClass(this.options.rightClass) || Rtl() || this.$element.parents('.top-bar-right').is('*')) {\n this.options.alignment = 'right';\n subs.addClass('opens-left');\n } else {\n this.options.alignment = 'left';\n subs.addClass('opens-right');\n }\n } else {\n if (this.options.alignment === 'right') {\n subs.addClass('opens-left');\n } else {\n subs.addClass('opens-right');\n }\n }\n this.changed = false;\n this._events();\n };\n\n _isVertical() {\n return this.$tabs.css('display') === 'block' || this.$element.css('flex-direction') === 'column';\n }\n\n _isRtl() {\n return this.$element.hasClass('align-right') || (Rtl() && !this.$element.hasClass('align-left'));\n }\n\n /**\n * Adds event listeners to elements within the menu\n * @private\n * @function\n */\n _events() {\n var _this = this,\n hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined'),\n parClass = 'is-dropdown-submenu-parent';\n\n // used for onClick and in the keyboard handlers\n var handleClickFn = function(e) {\n var $elem = $(e.target).parentsUntil('ul', `.${parClass}`),\n hasSub = $elem.hasClass(parClass),\n hasClicked = $elem.attr('data-is-click') === 'true',\n $sub = $elem.children('.is-dropdown-submenu');\n\n if (hasSub) {\n if (hasClicked) {\n if (!_this.options.closeOnClick\n || (!_this.options.clickOpen && !hasTouch)\n || (_this.options.forceFollow && hasTouch)) {\n return;\n }\n e.preventDefault();\n _this._hide($elem);\n }\n else {\n e.preventDefault();\n _this._show($sub);\n $elem.add($elem.parentsUntil(_this.$element, `.${parClass}`)).attr('data-is-click', true);\n }\n }\n };\n\n if (this.options.clickOpen || hasTouch) {\n this.$menuItems.on('click.zf.dropdownMenu touchstart.zf.dropdownMenu', handleClickFn);\n }\n\n // Handle Leaf element Clicks\n if(_this.options.closeOnClickInside){\n this.$menuItems.on('click.zf.dropdownMenu', function(e) {\n var $elem = $(this),\n hasSub = $elem.hasClass(parClass);\n if(!hasSub){\n _this._hide();\n }\n });\n }\n\n if (!this.options.disableHover) {\n this.$menuItems.on('mouseenter.zf.dropdownMenu', function (e) {\n var $elem = $(this),\n hasSub = $elem.hasClass(parClass);\n\n if (hasSub) {\n clearTimeout($elem.data('_delay'));\n $elem.data('_delay', setTimeout(function () {\n _this._show($elem.children('.is-dropdown-submenu'));\n }, _this.options.hoverDelay));\n }\n }).on('mouseleave.zf.dropdownmenu', ignoreMousedisappear(function (e) {\n var $elem = $(this),\n hasSub = $elem.hasClass(parClass);\n if (hasSub && _this.options.autoclose) {\n if ($elem.attr('data-is-click') === 'true' && _this.options.clickOpen) { return false; }\n\n clearTimeout($elem.data('_delay'));\n $elem.data('_delay', setTimeout(function () {\n _this._hide($elem);\n }, _this.options.closingTime));\n }\n }));\n }\n this.$menuItems.on('keydown.zf.dropdownMenu', function(e) {\n var $element = $(e.target).parentsUntil('ul', '[role=\"menuitem\"]'),\n isTab = _this.$tabs.index($element) > -1,\n $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),\n $prevElement,\n $nextElement;\n\n $elements.each(function(i) {\n if ($(this).is($element)) {\n $prevElement = $elements.eq(i-1);\n $nextElement = $elements.eq(i+1);\n return;\n }\n });\n\n var nextSibling = function() {\n $nextElement.children('a:first').focus();\n e.preventDefault();\n }, prevSibling = function() {\n $prevElement.children('a:first').focus();\n e.preventDefault();\n }, openSub = function() {\n var $sub = $element.children('ul.is-dropdown-submenu');\n if ($sub.length) {\n _this._show($sub);\n $element.find('li > a:first').focus();\n e.preventDefault();\n } else { return; }\n }, closeSub = function() {\n //if ($element.is(':first-child')) {\n var close = $element.parent('ul').parent('li');\n close.children('a:first').focus();\n _this._hide(close);\n e.preventDefault();\n //}\n };\n var functions = {\n open: openSub,\n close: function() {\n _this._hide(_this.$element);\n _this.$menuItems.eq(0).children('a').focus(); // focus to first element\n e.preventDefault();\n }\n };\n\n if (isTab) {\n if (_this._isVertical()) { // vertical menu\n if (_this._isRtl()) { // right aligned\n $.extend(functions, {\n down: nextSibling,\n up: prevSibling,\n next: closeSub,\n previous: openSub\n });\n } else { // left aligned\n $.extend(functions, {\n down: nextSibling,\n up: prevSibling,\n next: openSub,\n previous: closeSub\n });\n }\n } else { // horizontal menu\n if (_this._isRtl()) { // right aligned\n $.extend(functions, {\n next: prevSibling,\n previous: nextSibling,\n down: openSub,\n up: closeSub\n });\n } else { // left aligned\n $.extend(functions, {\n next: nextSibling,\n previous: prevSibling,\n down: openSub,\n up: closeSub\n });\n }\n }\n } else { // not tabs -> one sub\n if (_this._isRtl()) { // right aligned\n $.extend(functions, {\n next: closeSub,\n previous: openSub,\n down: nextSibling,\n up: prevSibling\n });\n } else { // left aligned\n $.extend(functions, {\n next: openSub,\n previous: closeSub,\n down: nextSibling,\n up: prevSibling\n });\n }\n }\n Keyboard.handleKey(e, 'DropdownMenu', functions);\n\n });\n }\n\n /**\n * Adds an event handler to the body to close any dropdowns on a click.\n * @function\n * @private\n */\n _addBodyHandler() {\n const $body = $(document.body);\n this._removeBodyHandler();\n $body.on('click.zf.dropdownMenu tap.zf.dropdownMenu', (e) => {\n var isItself = !!$(e.target).closest(this.$element).length;\n if (isItself) return;\n\n this._hide();\n this._removeBodyHandler();\n });\n }\n\n /**\n * Remove the body event handler. See `_addBodyHandler`.\n * @function\n * @private\n */\n _removeBodyHandler() {\n $(document.body).off('click.zf.dropdownMenu tap.zf.dropdownMenu');\n }\n\n /**\n * Opens a dropdown pane, and checks for collisions first.\n * @param {jQuery} $sub - ul element that is a submenu to show\n * @function\n * @private\n * @fires DropdownMenu#show\n */\n _show($sub) {\n var idx = this.$tabs.index(this.$tabs.filter(function(i, el) {\n return $(el).find($sub).length > 0;\n }));\n var $sibs = $sub.parent('li.is-dropdown-submenu-parent').siblings('li.is-dropdown-submenu-parent');\n this._hide($sibs, idx);\n $sub.css('visibility', 'hidden').addClass('js-dropdown-active')\n .parent('li.is-dropdown-submenu-parent').addClass('is-active');\n var clear = Box.ImNotTouchingYou($sub, null, true);\n if (!clear) {\n var oldClass = this.options.alignment === 'left' ? '-right' : '-left',\n $parentLi = $sub.parent('.is-dropdown-submenu-parent');\n $parentLi.removeClass(`opens${oldClass}`).addClass(`opens-${this.options.alignment}`);\n clear = Box.ImNotTouchingYou($sub, null, true);\n if (!clear) {\n $parentLi.removeClass(`opens-${this.options.alignment}`).addClass('opens-inner');\n }\n this.changed = true;\n }\n $sub.css('visibility', '');\n if (this.options.closeOnClick) { this._addBodyHandler(); }\n /**\n * Fires when the new dropdown pane is visible.\n * @event DropdownMenu#show\n */\n this.$element.trigger('show.zf.dropdownMenu', [$sub]);\n }\n\n /**\n * Hides a single, currently open dropdown pane, if passed a parameter, otherwise, hides everything.\n * @function\n * @param {jQuery} $elem - element with a submenu to hide\n * @param {Number} idx - index of the $tabs collection to hide\n * @fires DropdownMenu#hide\n * @private\n */\n _hide($elem, idx) {\n var $toClose;\n if ($elem && $elem.length) {\n $toClose = $elem;\n } else if (typeof idx !== 'undefined') {\n $toClose = this.$tabs.not(function(i, el) {\n return i === idx;\n });\n }\n else {\n $toClose = this.$element;\n }\n var somethingToClose = $toClose.hasClass('is-active') || $toClose.find('.is-active').length > 0;\n\n if (somethingToClose) {\n var $activeItem = $toClose.find('li.is-active');\n $activeItem.add($toClose).attr({\n 'data-is-click': false\n }).removeClass('is-active');\n\n $toClose.find('ul.js-dropdown-active').removeClass('js-dropdown-active');\n\n if (this.changed || $toClose.find('opens-inner').length) {\n var oldClass = this.options.alignment === 'left' ? 'right' : 'left';\n $toClose.find('li.is-dropdown-submenu-parent').add($toClose)\n .removeClass(`opens-inner opens-${this.options.alignment}`)\n .addClass(`opens-${oldClass}`);\n this.changed = false;\n }\n\n clearTimeout($activeItem.data('_delay'));\n this._removeBodyHandler();\n\n /**\n * Fires when the open menus are closed.\n * @event DropdownMenu#hide\n */\n this.$element.trigger('hide.zf.dropdownMenu', [$toClose]);\n }\n }\n\n /**\n * Destroys the plugin.\n * @function\n */\n _destroy() {\n this.$menuItems.off('.zf.dropdownMenu').removeAttr('data-is-click')\n .removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');\n $(document.body).off('.zf.dropdownMenu');\n Nest.Burn(this.$element, 'dropdown');\n }\n}\n\n/**\n * Default settings for plugin\n */\nDropdownMenu.defaults = {\n /**\n * Disallows hover events from opening submenus\n * @option\n * @type {boolean}\n * @default false\n */\n disableHover: false,\n /**\n * Allow a submenu to automatically close on a mouseleave event, if not clicked open.\n * @option\n * @type {boolean}\n * @default true\n */\n autoclose: true,\n /**\n * Amount of time to delay opening a submenu on hover event.\n * @option\n * @type {number}\n * @default 50\n */\n hoverDelay: 50,\n /**\n * Allow a submenu to open/remain open on parent click event. Allows cursor to move away from menu.\n * @option\n * @type {boolean}\n * @default false\n */\n clickOpen: false,\n /**\n * Amount of time to delay closing a submenu on a mouseleave event.\n * @option\n * @type {number}\n * @default 500\n */\n\n closingTime: 500,\n /**\n * Position of the menu relative to what direction the submenus should open. Handled by JS. Can be `'auto'`, `'left'` or `'right'`.\n * @option\n * @type {string}\n * @default 'auto'\n */\n alignment: 'auto',\n /**\n * Allow clicks on the body to close any open submenus.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnClick: true,\n /**\n * Allow clicks on leaf anchor links to close any open submenus.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnClickInside: true,\n /**\n * Class applied to vertical oriented menus, Foundation default is `vertical`. Update this if using your own class.\n * @option\n * @type {string}\n * @default 'vertical'\n */\n verticalClass: 'vertical',\n /**\n * Class applied to right-side oriented menus, Foundation default is `align-right`. Update this if using your own class.\n * @option\n * @type {string}\n * @default 'align-right'\n */\n rightClass: 'align-right',\n /**\n * Boolean to force overide the clicking of links to perform default action, on second touch event for mobile.\n * @option\n * @type {boolean}\n * @default true\n */\n forceFollow: true\n};\n\nexport {DropdownMenu};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- !function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("./foundation.core"),require("./foundation.util.box"),require("./foundation.util.keyboard"),require("./foundation.util.nest"),require("jquery")):"function"==typeof define&&define.amd?define(["./foundation.core","./foundation.util.box","./foundation.util.keyboard","./foundation.util.nest","jquery"],n):"object"==typeof exports?exports["foundation.dropdownMenu"]=n(require("./foundation.core"),require("./foundation.util.box"),require("./foundation.util.keyboard"),require("./foundation.util.nest"),require("jquery")):(e.__FOUNDATION_EXTERNAL__=e.__FOUNDATION_EXTERNAL__||{},e.__FOUNDATION_EXTERNAL__["foundation.dropdownMenu"]=n(e.__FOUNDATION_EXTERNAL__["foundation.core"],e.__FOUNDATION_EXTERNAL__["foundation.util.box"],e.__FOUNDATION_EXTERNAL__["foundation.util.keyboard"],e.__FOUNDATION_EXTERNAL__["foundation.util.nest"],e.jQuery))}(window,function(t,o,i,r,s){return function(t){var o={};function i(e){if(o[e])return o[e].exports;var n=o[e]={i:e,l:!1,exports:{}};return t[e].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=o,i.d=function(e,n,t){i.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(n,e){if(1&e&&(n=i(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)i.d(t,o,function(e){return n[e]}.bind(null,o));return t},i.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(n,"a",n),n},i.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},i.p="",i(i.s=5)}({"./foundation.core":function(e,n){e.exports=t},"./foundation.util.box":function(e,n){e.exports=o},"./foundation.util.keyboard":function(e,n){e.exports=i},"./foundation.util.nest":function(e,n){e.exports=r},"./js/entries/plugins/foundation.dropdownMenu.js":function(e,n,t){"use strict";t.r(n);var o=t("./foundation.core");t.d(n,"Foundation",function(){return o.Foundation});var i=t("./js/foundation.dropdownMenu.js");t.d(n,"DropdownMenu",function(){return i.DropdownMenu}),o.Foundation.plugin(i.DropdownMenu,"DropdownMenu")},"./js/foundation.dropdownMenu.js":function(e,n,t){"use strict";t.r(n),t.d(n,"DropdownMenu",function(){return h});var o=t("jquery"),f=t.n(o),u=t("./foundation.core"),p=t("./foundation.util.keyboard"),r=t("./foundation.util.nest"),s=t("./foundation.util.box");function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,n){for(var t=0;t<n.length;t++){var o=n[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function d(e,n){return!n||"object"!==i(n)&&"function"!=typeof n?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):n}function l(e){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,n){return(c=Object.setPrototypeOf||function(e,n){return e.__proto__=n,e})(e,n)}var h=function(e){function t(){return function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,t),d(this,l(t).apply(this,arguments))}var n,o,i;return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),n&&c(e,n)}(t,u["Plugin"]),n=t,(o=[{key:"_setup",value:function(e,n){this.$element=e,this.options=f.a.extend({},t.defaults,this.$element.data(),n),this.className="DropdownMenu",this._init(),p.Keyboard.register("DropdownMenu",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"up",ARROW_DOWN:"down",ARROW_LEFT:"previous",ESCAPE:"close"})}},{key:"_init",value:function(){r.Nest.Feather(this.$element,"dropdown");var e=this.$element.find("li.is-dropdown-submenu-parent");this.$element.children(".is-dropdown-submenu-parent").children(".is-dropdown-submenu").addClass("first-sub"),this.$menuItems=this.$element.find('[role="menuitem"]'),this.$tabs=this.$element.children('[role="menuitem"]'),this.$tabs.find("ul.is-dropdown-submenu").addClass(this.options.verticalClass),"auto"===this.options.alignment?this.$element.hasClass(this.options.rightClass)||Object(u.rtl)()||this.$element.parents(".top-bar-right").is("*")?(this.options.alignment="right",e.addClass("opens-left")):(this.options.alignment="left",e.addClass("opens-right")):"right"===this.options.alignment?e.addClass("opens-left"):e.addClass("opens-right"),this.changed=!1,this._events()}},{key:"_isVertical",value:function(){return"block"===this.$tabs.css("display")||"column"===this.$element.css("flex-direction")}},{key:"_isRtl",value:function(){return this.$element.hasClass("align-right")||Object(u.rtl)()&&!this.$element.hasClass("align-left")}},{key:"_events",value:function(){var c=this,r="ontouchstart"in window||void 0!==window.ontouchstart,s="is-dropdown-submenu-parent";(this.options.clickOpen||r)&&this.$menuItems.on("click.zf.dropdownmenu touchstart.zf.dropdownmenu",function(e){var n=f()(e.target).parentsUntil("ul",".".concat(s)),t=n.hasClass(s),o="true"===n.attr("data-is-click"),i=n.children(".is-dropdown-submenu");if(t)if(o){if(!c.options.closeOnClick||!c.options.clickOpen&&!r||c.options.forceFollow&&r)return;e.stopImmediatePropagation(),e.preventDefault(),c._hide(n)}else e.preventDefault(),e.stopImmediatePropagation(),c._show(i),n.add(n.parentsUntil(c.$element,".".concat(s))).attr("data-is-click",!0)}),c.options.closeOnClickInside&&this.$menuItems.on("click.zf.dropdownmenu",function(e){f()(this).hasClass(s)||c._hide()}),this.options.disableHover||this.$menuItems.on("mouseenter.zf.dropdownmenu",function(e){var n=f()(this);n.hasClass(s)&&(clearTimeout(n.data("_delay")),n.data("_delay",setTimeout(function(){c._show(n.children(".is-dropdown-submenu"))},c.options.hoverDelay)))}).on("mouseleave.zf.dropdownMenu",Object(u.ignoreMousedisappear)(function(e){var n=f()(this);if(n.hasClass(s)&&c.options.autoclose){if("true"===n.attr("data-is-click")&&c.options.clickOpen)return!1;clearTimeout(n.data("_delay")),n.data("_delay",setTimeout(function(){c._hide(n)},c.options.closingTime))}})),this.$menuItems.on("keydown.zf.dropdownmenu",function(n){var t,o,i=f()(n.target).parentsUntil("ul",'[role="menuitem"]'),e=-1<c.$tabs.index(i),r=e?c.$tabs:i.siblings("li").add(i);r.each(function(e){if(f()(this).is(i))return t=r.eq(e-1),void(o=r.eq(e+1))});var s=function(){o.children("a:first").focus(),n.preventDefault()},u=function(){t.children("a:first").focus(),n.preventDefault()},a=function(){var e=i.children("ul.is-dropdown-submenu");e.length&&(c._show(e),i.find("li > a:first").focus(),n.preventDefault())},d=function(){var e=i.parent("ul").parent("li");e.children("a:first").focus(),c._hide(e),n.preventDefault()},l={open:a,close:function(){c._hide(c.$element),c.$menuItems.eq(0).children("a").focus(),n.preventDefault()},handled:function(){n.stopImmediatePropagation()}};e?c._isVertical()?c._isRtl()?f.a.extend(l,{down:s,up:u,next:d,previous:a}):f.a.extend(l,{down:s,up:u,next:a,previous:d}):c._isRtl()?f.a.extend(l,{next:u,previous:s,down:a,up:d}):f.a.extend(l,{next:s,previous:u,down:a,up:d}):c._isRtl()?f.a.extend(l,{next:d,previous:a,down:s,up:u}):f.a.extend(l,{next:a,previous:d,down:s,up:u}),p.Keyboard.handleKey(n,"DropdownMenu",l)})}},{key:"_addBodyHandler",value:function(){var n=f()(document.body),t=this;n.off("mouseup.zf.dropdownmenu touchend.zf.dropdownmenu").on("mouseup.zf.dropdownmenu touchend.zf.dropdownmenu",function(e){t.$element.find(e.target).length||(t._hide(),n.off("mouseup.zf.dropdownmenu touchend.zf.dropdownmenu"))})}},{key:"_show",value:function(t){var e=this.$tabs.index(this.$tabs.filter(function(e,n){return 0<f()(n).find(t).length})),n=t.parent("li.is-dropdown-submenu-parent").siblings("li.is-dropdown-submenu-parent");this._hide(n,e),t.css("visibility","hidden").addClass("js-dropdown-active").parent("li.is-dropdown-submenu-parent").addClass("is-active");var o=s.Box.ImNotTouchingYou(t,null,!0);if(!o){var i="left"===this.options.alignment?"-right":"-left",r=t.parent(".is-dropdown-submenu-parent");r.removeClass("opens".concat(i)).addClass("opens-".concat(this.options.alignment)),(o=s.Box.ImNotTouchingYou(t,null,!0))||r.removeClass("opens-".concat(this.options.alignment)).addClass("opens-inner"),this.changed=!0}t.css("visibility",""),this.options.closeOnClick&&this._addBodyHandler(),this.$element.trigger("show.zf.dropdownmenu",[t])}},{key:"_hide",value:function(e,t){var n;if((n=e&&e.length?e:void 0!==t?this.$tabs.not(function(e,n){return e===t}):this.$element).hasClass("is-active")||0<n.find(".is-active").length){if(n.find("li.is-active").add(n).attr({"data-is-click":!1}).removeClass("is-active"),n.find("ul.js-dropdown-active").removeClass("js-dropdown-active"),this.changed||n.find("opens-inner").length){var o="left"===this.options.alignment?"right":"left";n.find("li.is-dropdown-submenu-parent").add(n).removeClass("opens-inner opens-".concat(this.options.alignment)).addClass("opens-".concat(o)),this.changed=!1}this.$element.trigger("hide.zf.dropdownmenu",[n])}}},{key:"_destroy",value:function(){this.$menuItems.off(".zf.dropdownmenu").removeAttr("data-is-click").removeClass("is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner"),f()(document.body).off(".zf.dropdownmenu"),r.Nest.Burn(this.$element,"dropdown")}}])&&a(n.prototype,o),i&&a(n,i),t}();h.defaults={disableHover:!1,autoclose:!0,hoverDelay:50,clickOpen:!1,closingTime:500,alignment:"auto",closeOnClick:!0,closeOnClickInside:!0,verticalClass:"vertical",rightClass:"align-right",forceFollow:!0}},5:function(e,n,t){e.exports=t("./js/entries/plugins/foundation.dropdownMenu.js")},jquery:function(e,n){e.exports=s}})});
1
+ !function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("./foundation.core"),require("./foundation.util.box"),require("./foundation.util.keyboard"),require("./foundation.util.nest"),require("./foundation.util.touch"),require("jquery")):"function"==typeof define&&define.amd?define(["./foundation.core","./foundation.util.box","./foundation.util.keyboard","./foundation.util.nest","./foundation.util.touch","jquery"],n):"object"==typeof exports?exports["foundation.dropdownMenu"]=n(require("./foundation.core"),require("./foundation.util.box"),require("./foundation.util.keyboard"),require("./foundation.util.nest"),require("./foundation.util.touch"),require("jquery")):(e.__FOUNDATION_EXTERNAL__=e.__FOUNDATION_EXTERNAL__||{},e.__FOUNDATION_EXTERNAL__["foundation.dropdownMenu"]=n(e.__FOUNDATION_EXTERNAL__["foundation.core"],e.__FOUNDATION_EXTERNAL__["foundation.util.box"],e.__FOUNDATION_EXTERNAL__["foundation.util.keyboard"],e.__FOUNDATION_EXTERNAL__["foundation.util.nest"],e.__FOUNDATION_EXTERNAL__["foundation.util.touch"],e.jQuery))}(window,function(t,o,i,r,s,u){return l={},a.m=d={"./foundation.core":function(e,n){e.exports=t},"./foundation.util.box":function(e,n){e.exports=o},"./foundation.util.keyboard":function(e,n){e.exports=i},"./foundation.util.nest":function(e,n){e.exports=r},"./foundation.util.touch":function(e,n){e.exports=s},"./js/entries/plugins/foundation.dropdownMenu.js":function(e,n,t){"use strict";t.r(n);var o=t("./foundation.core");t.d(n,"Foundation",function(){return o.Foundation});var i=t("./js/foundation.dropdownMenu.js");t.d(n,"DropdownMenu",function(){return i.DropdownMenu}),o.Foundation.plugin(i.DropdownMenu,"DropdownMenu")},"./js/foundation.dropdownMenu.js":function(e,n,t){"use strict";t.r(n),t.d(n,"DropdownMenu",function(){return m});var o=t("jquery"),f=t.n(o),i=t("./foundation.core"),p=t("./foundation.util.keyboard"),r=t("./foundation.util.nest"),s=t("./foundation.util.box"),u=t("./foundation.util.touch");function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(e,n){for(var t=0;t<n.length;t++){var o=n[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function l(e,n){return!n||"object"!==a(n)&&"function"!=typeof n?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):n}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function h(e,n){return(h=Object.setPrototypeOf||function(e,n){return e.__proto__=n,e})(e,n)}var m=function(){function t(){return function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,t),l(this,c(t).apply(this,arguments))}return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),n&&h(e,n)}(t,i["Plugin"]),function(e,n,t){n&&d(e.prototype,n),t&&d(e,t)}(t,[{key:"_setup",value:function(e,n){this.$element=e,this.options=f.a.extend({},t.defaults,this.$element.data(),n),this.className="DropdownMenu",u.Touch.init(f.a),this._init(),p.Keyboard.register("DropdownMenu",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"up",ARROW_DOWN:"down",ARROW_LEFT:"previous",ESCAPE:"close"})}},{key:"_init",value:function(){r.Nest.Feather(this.$element,"dropdown");var e=this.$element.find("li.is-dropdown-submenu-parent");this.$element.children(".is-dropdown-submenu-parent").children(".is-dropdown-submenu").addClass("first-sub"),this.$menuItems=this.$element.find('[role="menuitem"]'),this.$tabs=this.$element.children('[role="menuitem"]'),this.$tabs.find("ul.is-dropdown-submenu").addClass(this.options.verticalClass),"auto"===this.options.alignment?this.$element.hasClass(this.options.rightClass)||Object(i.rtl)()||this.$element.parents(".top-bar-right").is("*")?(this.options.alignment="right",e.addClass("opens-left")):(this.options.alignment="left",e.addClass("opens-right")):"right"===this.options.alignment?e.addClass("opens-left"):e.addClass("opens-right"),this.changed=!1,this._events()}},{key:"_isVertical",value:function(){return"block"===this.$tabs.css("display")||"column"===this.$element.css("flex-direction")}},{key:"_isRtl",value:function(){return this.$element.hasClass("align-right")||Object(i.rtl)()&&!this.$element.hasClass("align-left")}},{key:"_events",value:function(){var c=this,r="ontouchstart"in window||void 0!==window.ontouchstart,s="is-dropdown-submenu-parent";(this.options.clickOpen||r)&&this.$menuItems.on("click.zf.dropdownMenu touchstart.zf.dropdownMenu",function(e){var n=f()(e.target).parentsUntil("ul",".".concat(s)),t=n.hasClass(s),o="true"===n.attr("data-is-click"),i=n.children(".is-dropdown-submenu");if(t)if(o){if(!c.options.closeOnClick||!c.options.clickOpen&&!r||c.options.forceFollow&&r)return;e.preventDefault(),c._hide(n)}else e.preventDefault(),c._show(i),n.add(n.parentsUntil(c.$element,".".concat(s))).attr("data-is-click",!0)}),c.options.closeOnClickInside&&this.$menuItems.on("click.zf.dropdownMenu",function(e){f()(this).hasClass(s)||c._hide()}),this.options.disableHover||this.$menuItems.on("mouseenter.zf.dropdownMenu",function(e){var n=f()(this);n.hasClass(s)&&(clearTimeout(n.data("_delay")),n.data("_delay",setTimeout(function(){c._show(n.children(".is-dropdown-submenu"))},c.options.hoverDelay)))}).on("mouseleave.zf.dropdownmenu",Object(i.ignoreMousedisappear)(function(e){var n=f()(this);if(n.hasClass(s)&&c.options.autoclose){if("true"===n.attr("data-is-click")&&c.options.clickOpen)return!1;clearTimeout(n.data("_delay")),n.data("_delay",setTimeout(function(){c._hide(n)},c.options.closingTime))}})),this.$menuItems.on("keydown.zf.dropdownMenu",function(n){var t,o,i=f()(n.target).parentsUntil("ul",'[role="menuitem"]'),e=-1<c.$tabs.index(i),r=e?c.$tabs:i.siblings("li").add(i);r.each(function(e){if(f()(this).is(i))return t=r.eq(e-1),void(o=r.eq(e+1))});function s(){o.children("a:first").focus(),n.preventDefault()}function u(){t.children("a:first").focus(),n.preventDefault()}function a(){var e=i.children("ul.is-dropdown-submenu");e.length&&(c._show(e),i.find("li > a:first").focus(),n.preventDefault())}function d(){var e=i.parent("ul").parent("li");e.children("a:first").focus(),c._hide(e),n.preventDefault()}var l={open:a,close:function(){c._hide(c.$element),c.$menuItems.eq(0).children("a").focus(),n.preventDefault()}};e?c._isVertical()?c._isRtl()?f.a.extend(l,{down:s,up:u,next:d,previous:a}):f.a.extend(l,{down:s,up:u,next:a,previous:d}):c._isRtl()?f.a.extend(l,{next:u,previous:s,down:a,up:d}):f.a.extend(l,{next:s,previous:u,down:a,up:d}):c._isRtl()?f.a.extend(l,{next:d,previous:a,down:s,up:u}):f.a.extend(l,{next:a,previous:d,down:s,up:u}),p.Keyboard.handleKey(n,"DropdownMenu",l)})}},{key:"_addBodyHandler",value:function(){var n=this,e=f()(document.body);this._removeBodyHandler(),e.on("click.zf.dropdownMenu tap.zf.dropdownMenu",function(e){!f()(e.target).closest(n.$element).length&&(n._hide(),n._removeBodyHandler())})}},{key:"_removeBodyHandler",value:function(){f()(document.body).off("click.zf.dropdownMenu tap.zf.dropdownMenu")}},{key:"_show",value:function(t){var e=this.$tabs.index(this.$tabs.filter(function(e,n){return 0<f()(n).find(t).length})),n=t.parent("li.is-dropdown-submenu-parent").siblings("li.is-dropdown-submenu-parent");this._hide(n,e),t.css("visibility","hidden").addClass("js-dropdown-active").parent("li.is-dropdown-submenu-parent").addClass("is-active");var o=s.Box.ImNotTouchingYou(t,null,!0);if(!o){var i="left"===this.options.alignment?"-right":"-left",r=t.parent(".is-dropdown-submenu-parent");r.removeClass("opens".concat(i)).addClass("opens-".concat(this.options.alignment)),(o=s.Box.ImNotTouchingYou(t,null,!0))||r.removeClass("opens-".concat(this.options.alignment)).addClass("opens-inner"),this.changed=!0}t.css("visibility",""),this.options.closeOnClick&&this._addBodyHandler(),this.$element.trigger("show.zf.dropdownMenu",[t])}},{key:"_hide",value:function(e,t){var n;if((n=e&&e.length?e:void 0!==t?this.$tabs.not(function(e,n){return e===t}):this.$element).hasClass("is-active")||0<n.find(".is-active").length){var o=n.find("li.is-active");if(o.add(n).attr({"data-is-click":!1}).removeClass("is-active"),n.find("ul.js-dropdown-active").removeClass("js-dropdown-active"),this.changed||n.find("opens-inner").length){var i="left"===this.options.alignment?"right":"left";n.find("li.is-dropdown-submenu-parent").add(n).removeClass("opens-inner opens-".concat(this.options.alignment)).addClass("opens-".concat(i)),this.changed=!1}clearTimeout(o.data("_delay")),this._removeBodyHandler(),this.$element.trigger("hide.zf.dropdownMenu",[n])}}},{key:"_destroy",value:function(){this.$menuItems.off(".zf.dropdownMenu").removeAttr("data-is-click").removeClass("is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner"),f()(document.body).off(".zf.dropdownMenu"),r.Nest.Burn(this.$element,"dropdown")}}]),t}();m.defaults={disableHover:!1,autoclose:!0,hoverDelay:50,clickOpen:!1,closingTime:500,alignment:"auto",closeOnClick:!0,closeOnClickInside:!0,verticalClass:"vertical",rightClass:"align-right",forceFollow:!0}},5:function(e,n,t){e.exports=t("./js/entries/plugins/foundation.dropdownMenu.js")},jquery:function(e,n){e.exports=u}},a.c=l,a.d=function(e,n,t){a.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(n,e){if(1&e&&(n=a(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)a.d(t,o,function(e){return n[e]}.bind(null,o));return t},a.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(n,"a",n),n},a.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},a.p="",a(a.s=5);function a(e){if(l[e])return l[e].exports;var n=l[e]={i:e,l:!1,exports:{}};return d[e].call(n.exports,n,n.exports,a),n.l=!0,n.exports}var d,l});
2
2
  //# sourceMappingURL=foundation.dropdownMenu.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.nest\"],\"amd\":\"./foundation.util.nest\",\"commonjs\":\"./foundation.util.nest\",\"commonjs2\":\"./foundation.util.nest\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.dropdownMenu.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.dropdownMenu.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_box__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_nest__","__WEBPACK_EXTERNAL_MODULE_jquery__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","_foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","DropdownMenu","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__","_foundation_util_nest__WEBPACK_IMPORTED_MODULE_3__","_foundation_util_box__WEBPACK_IMPORTED_MODULE_4__","Plugin","element","options","this","$element","$","extend","defaults","data","className","_init","Keyboard","register","ENTER","SPACE","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ESCAPE","Nest","Feather","subs","find","children","addClass","$menuItems","$tabs","verticalClass","alignment","hasClass","rightClass","Rtl","parents","is","changed","_events","css","_this","hasTouch","ontouchstart","parClass","clickOpen","on","e","$elem","target","parentsUntil","concat","hasSub","hasClicked","attr","$sub","closeOnClick","forceFollow","stopImmediatePropagation","preventDefault","_hide","_show","add","closeOnClickInside","disableHover","clearTimeout","setTimeout","hoverDelay","ignoreMousedisappear","autoclose","closingTime","$prevElement","$nextElement","isTab","index","$elements","siblings","each","eq","nextSibling","focus","prevSibling","openSub","length","closeSub","close","parent","functions","open","handled","_isVertical","_isRtl","down","up","next","previous","handleKey","$body","document","body","off","idx","filter","el","$sibs","clear","Box","ImNotTouchingYou","oldClass","$parentLi","removeClass","_addBodyHandler","trigger","$toClose","not","data-is-click","removeAttr","Burn"],"mappings":"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","file":"foundation.dropdownMenu.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.box\", \"./foundation.util.keyboard\", \"./foundation.util.nest\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.dropdownMenu\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.dropdownMenu\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 5);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__;","import { Foundation } from './foundation.core';\n\nimport { DropdownMenu } from '../../foundation.dropdownMenu';\nFoundation.plugin(DropdownMenu, 'DropdownMenu');\n\nexport { Foundation, DropdownMenu};\n","'use strict';\n\nimport $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl, ignoreMousedisappear } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { Box } from './foundation.util.box';\n\n/**\n * DropdownMenu module.\n * @module foundation.dropdown-menu\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.nest\n */\n\nclass DropdownMenu extends Plugin {\n /**\n * Creates a new instance of DropdownMenu.\n * @class\n * @name DropdownMenu\n * @fires DropdownMenu#init\n * @param {jQuery} element - jQuery object to make into a dropdown menu.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, DropdownMenu.defaults, this.$element.data(), options);\n this.className = 'DropdownMenu'; // ie9 back compat\n\n this._init();\n\n Keyboard.register('DropdownMenu', {\n 'ENTER': 'open',\n 'SPACE': 'open',\n 'ARROW_RIGHT': 'next',\n 'ARROW_UP': 'up',\n 'ARROW_DOWN': 'down',\n 'ARROW_LEFT': 'previous',\n 'ESCAPE': 'close'\n });\n }\n\n /**\n * Initializes the plugin, and calls _prepareMenu\n * @private\n * @function\n */\n _init() {\n Nest.Feather(this.$element, 'dropdown');\n\n var subs = this.$element.find('li.is-dropdown-submenu-parent');\n this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');\n\n this.$menuItems = this.$element.find('[role=\"menuitem\"]');\n this.$tabs = this.$element.children('[role=\"menuitem\"]');\n this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);\n\n if (this.options.alignment === 'auto') {\n if (this.$element.hasClass(this.options.rightClass) || Rtl() || this.$element.parents('.top-bar-right').is('*')) {\n this.options.alignment = 'right';\n subs.addClass('opens-left');\n } else {\n this.options.alignment = 'left';\n subs.addClass('opens-right');\n }\n } else {\n if (this.options.alignment === 'right') {\n subs.addClass('opens-left');\n } else {\n subs.addClass('opens-right');\n }\n }\n this.changed = false;\n this._events();\n };\n\n _isVertical() {\n return this.$tabs.css('display') === 'block' || this.$element.css('flex-direction') === 'column';\n }\n\n _isRtl() {\n return this.$element.hasClass('align-right') || (Rtl() && !this.$element.hasClass('align-left'));\n }\n\n /**\n * Adds event listeners to elements within the menu\n * @private\n * @function\n */\n _events() {\n var _this = this,\n hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined'),\n parClass = 'is-dropdown-submenu-parent';\n\n // used for onClick and in the keyboard handlers\n var handleClickFn = function(e) {\n var $elem = $(e.target).parentsUntil('ul', `.${parClass}`),\n hasSub = $elem.hasClass(parClass),\n hasClicked = $elem.attr('data-is-click') === 'true',\n $sub = $elem.children('.is-dropdown-submenu');\n\n if (hasSub) {\n if (hasClicked) {\n if (!_this.options.closeOnClick || (!_this.options.clickOpen && !hasTouch) || (_this.options.forceFollow && hasTouch)) { return; }\n else {\n e.stopImmediatePropagation();\n e.preventDefault();\n _this._hide($elem);\n }\n } else {\n e.preventDefault();\n e.stopImmediatePropagation();\n _this._show($sub);\n $elem.add($elem.parentsUntil(_this.$element, `.${parClass}`)).attr('data-is-click', true);\n }\n }\n };\n\n if (this.options.clickOpen || hasTouch) {\n this.$menuItems.on('click.zf.dropdownmenu touchstart.zf.dropdownmenu', handleClickFn);\n }\n\n // Handle Leaf element Clicks\n if(_this.options.closeOnClickInside){\n this.$menuItems.on('click.zf.dropdownmenu', function(e) {\n var $elem = $(this),\n hasSub = $elem.hasClass(parClass);\n if(!hasSub){\n _this._hide();\n }\n });\n }\n\n if (!this.options.disableHover) {\n this.$menuItems.on('mouseenter.zf.dropdownmenu', function (e) {\n var $elem = $(this),\n hasSub = $elem.hasClass(parClass);\n\n if (hasSub) {\n clearTimeout($elem.data('_delay'));\n $elem.data('_delay', setTimeout(function () {\n _this._show($elem.children('.is-dropdown-submenu'));\n }, _this.options.hoverDelay));\n }\n }).on('mouseleave.zf.dropdownMenu', ignoreMousedisappear(function (e) {\n var $elem = $(this),\n hasSub = $elem.hasClass(parClass);\n if (hasSub && _this.options.autoclose) {\n if ($elem.attr('data-is-click') === 'true' && _this.options.clickOpen) { return false; }\n\n clearTimeout($elem.data('_delay'));\n $elem.data('_delay', setTimeout(function () {\n _this._hide($elem);\n }, _this.options.closingTime));\n }\n }));\n }\n this.$menuItems.on('keydown.zf.dropdownmenu', function(e) {\n var $element = $(e.target).parentsUntil('ul', '[role=\"menuitem\"]'),\n isTab = _this.$tabs.index($element) > -1,\n $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),\n $prevElement,\n $nextElement;\n\n $elements.each(function(i) {\n if ($(this).is($element)) {\n $prevElement = $elements.eq(i-1);\n $nextElement = $elements.eq(i+1);\n return;\n }\n });\n\n var nextSibling = function() {\n $nextElement.children('a:first').focus();\n e.preventDefault();\n }, prevSibling = function() {\n $prevElement.children('a:first').focus();\n e.preventDefault();\n }, openSub = function() {\n var $sub = $element.children('ul.is-dropdown-submenu');\n if ($sub.length) {\n _this._show($sub);\n $element.find('li > a:first').focus();\n e.preventDefault();\n } else { return; }\n }, closeSub = function() {\n //if ($element.is(':first-child')) {\n var close = $element.parent('ul').parent('li');\n close.children('a:first').focus();\n _this._hide(close);\n e.preventDefault();\n //}\n };\n var functions = {\n open: openSub,\n close: function() {\n _this._hide(_this.$element);\n _this.$menuItems.eq(0).children('a').focus(); // focus to first element\n e.preventDefault();\n },\n handled: function() {\n e.stopImmediatePropagation();\n }\n };\n\n if (isTab) {\n if (_this._isVertical()) { // vertical menu\n if (_this._isRtl()) { // right aligned\n $.extend(functions, {\n down: nextSibling,\n up: prevSibling,\n next: closeSub,\n previous: openSub\n });\n } else { // left aligned\n $.extend(functions, {\n down: nextSibling,\n up: prevSibling,\n next: openSub,\n previous: closeSub\n });\n }\n } else { // horizontal menu\n if (_this._isRtl()) { // right aligned\n $.extend(functions, {\n next: prevSibling,\n previous: nextSibling,\n down: openSub,\n up: closeSub\n });\n } else { // left aligned\n $.extend(functions, {\n next: nextSibling,\n previous: prevSibling,\n down: openSub,\n up: closeSub\n });\n }\n }\n } else { // not tabs -> one sub\n if (_this._isRtl()) { // right aligned\n $.extend(functions, {\n next: closeSub,\n previous: openSub,\n down: nextSibling,\n up: prevSibling\n });\n } else { // left aligned\n $.extend(functions, {\n next: openSub,\n previous: closeSub,\n down: nextSibling,\n up: prevSibling\n });\n }\n }\n Keyboard.handleKey(e, 'DropdownMenu', functions);\n\n });\n }\n\n /**\n * Adds an event handler to the body to close any dropdowns on a click.\n * @function\n * @private\n */\n _addBodyHandler() {\n var $body = $(document.body),\n _this = this;\n $body.off('mouseup.zf.dropdownmenu touchend.zf.dropdownmenu')\n .on('mouseup.zf.dropdownmenu touchend.zf.dropdownmenu', function(e) {\n var $link = _this.$element.find(e.target);\n if ($link.length) { return; }\n\n _this._hide();\n $body.off('mouseup.zf.dropdownmenu touchend.zf.dropdownmenu');\n });\n }\n\n /**\n * Opens a dropdown pane, and checks for collisions first.\n * @param {jQuery} $sub - ul element that is a submenu to show\n * @function\n * @private\n * @fires Dropdownmenu#show\n */\n _show($sub) {\n var idx = this.$tabs.index(this.$tabs.filter(function(i, el) {\n return $(el).find($sub).length > 0;\n }));\n var $sibs = $sub.parent('li.is-dropdown-submenu-parent').siblings('li.is-dropdown-submenu-parent');\n this._hide($sibs, idx);\n $sub.css('visibility', 'hidden').addClass('js-dropdown-active')\n .parent('li.is-dropdown-submenu-parent').addClass('is-active');\n var clear = Box.ImNotTouchingYou($sub, null, true);\n if (!clear) {\n var oldClass = this.options.alignment === 'left' ? '-right' : '-left',\n $parentLi = $sub.parent('.is-dropdown-submenu-parent');\n $parentLi.removeClass(`opens${oldClass}`).addClass(`opens-${this.options.alignment}`);\n clear = Box.ImNotTouchingYou($sub, null, true);\n if (!clear) {\n $parentLi.removeClass(`opens-${this.options.alignment}`).addClass('opens-inner');\n }\n this.changed = true;\n }\n $sub.css('visibility', '');\n if (this.options.closeOnClick) { this._addBodyHandler(); }\n /**\n * Fires when the new dropdown pane is visible.\n * @event Dropdownmenu#show\n */\n this.$element.trigger('show.zf.dropdownmenu', [$sub]);\n }\n\n /**\n * Hides a single, currently open dropdown pane, if passed a parameter, otherwise, hides everything.\n * @function\n * @param {jQuery} $elem - element with a submenu to hide\n * @param {Number} idx - index of the $tabs collection to hide\n * @private\n */\n _hide($elem, idx) {\n var $toClose;\n if ($elem && $elem.length) {\n $toClose = $elem;\n } else if (typeof idx !== 'undefined') {\n $toClose = this.$tabs.not(function(i, el) {\n return i === idx;\n });\n }\n else {\n $toClose = this.$element;\n }\n var somethingToClose = $toClose.hasClass('is-active') || $toClose.find('.is-active').length > 0;\n\n if (somethingToClose) {\n $toClose.find('li.is-active').add($toClose).attr({\n 'data-is-click': false\n }).removeClass('is-active');\n\n $toClose.find('ul.js-dropdown-active').removeClass('js-dropdown-active');\n\n if (this.changed || $toClose.find('opens-inner').length) {\n var oldClass = this.options.alignment === 'left' ? 'right' : 'left';\n $toClose.find('li.is-dropdown-submenu-parent').add($toClose)\n .removeClass(`opens-inner opens-${this.options.alignment}`)\n .addClass(`opens-${oldClass}`);\n this.changed = false;\n }\n /**\n * Fires when the open menus are closed.\n * @event Dropdownmenu#hide\n */\n this.$element.trigger('hide.zf.dropdownmenu', [$toClose]);\n }\n }\n\n /**\n * Destroys the plugin.\n * @function\n */\n _destroy() {\n this.$menuItems.off('.zf.dropdownmenu').removeAttr('data-is-click')\n .removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');\n $(document.body).off('.zf.dropdownmenu');\n Nest.Burn(this.$element, 'dropdown');\n }\n}\n\n/**\n * Default settings for plugin\n */\nDropdownMenu.defaults = {\n /**\n * Disallows hover events from opening submenus\n * @option\n * @type {boolean}\n * @default false\n */\n disableHover: false,\n /**\n * Allow a submenu to automatically close on a mouseleave event, if not clicked open.\n * @option\n * @type {boolean}\n * @default true\n */\n autoclose: true,\n /**\n * Amount of time to delay opening a submenu on hover event.\n * @option\n * @type {number}\n * @default 50\n */\n hoverDelay: 50,\n /**\n * Allow a submenu to open/remain open on parent click event. Allows cursor to move away from menu.\n * @option\n * @type {boolean}\n * @default false\n */\n clickOpen: false,\n /**\n * Amount of time to delay closing a submenu on a mouseleave event.\n * @option\n * @type {number}\n * @default 500\n */\n\n closingTime: 500,\n /**\n * Position of the menu relative to what direction the submenus should open. Handled by JS. Can be `'auto'`, `'left'` or `'right'`.\n * @option\n * @type {string}\n * @default 'auto'\n */\n alignment: 'auto',\n /**\n * Allow clicks on the body to close any open submenus.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnClick: true,\n /**\n * Allow clicks on leaf anchor links to close any open submenus.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnClickInside: true,\n /**\n * Class applied to vertical oriented menus, Foundation default is `vertical`. Update this if using your own class.\n * @option\n * @type {string}\n * @default 'vertical'\n */\n verticalClass: 'vertical',\n /**\n * Class applied to right-side oriented menus, Foundation default is `align-right`. Update this if using your own class.\n * @option\n * @type {string}\n * @default 'align-right'\n */\n rightClass: 'align-right',\n /**\n * Boolean to force overide the clicking of links to perform default action, on second touch event for mobile.\n * @option\n * @type {boolean}\n * @default true\n */\n forceFollow: true\n};\n\nexport {DropdownMenu};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"]}
1
+ {"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.nest\"],\"amd\":\"./foundation.util.nest\",\"commonjs\":\"./foundation.util.nest\",\"commonjs2\":\"./foundation.util.nest\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.dropdownMenu.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.dropdownMenu.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_box__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_nest__","__WEBPACK_EXTERNAL_MODULE__foundation_util_touch__","__WEBPACK_EXTERNAL_MODULE_jquery__","installedModules","__webpack_require__","m","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","DropdownMenu","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__","_foundation_util_nest__WEBPACK_IMPORTED_MODULE_3__","_foundation_util_box__WEBPACK_IMPORTED_MODULE_4__","_foundation_util_touch__WEBPACK_IMPORTED_MODULE_5__","Plugin","element","options","this","$element","$","extend","defaults","data","className","Touch","init","_init","Keyboard","register","ENTER","SPACE","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ESCAPE","Nest","Feather","subs","find","children","addClass","$menuItems","$tabs","verticalClass","alignment","hasClass","rightClass","Rtl","parents","is","changed","_events","css","_this","hasTouch","ontouchstart","parClass","clickOpen","on","e","$elem","target","parentsUntil","concat","hasSub","hasClicked","attr","$sub","closeOnClick","forceFollow","preventDefault","_hide","_show","add","closeOnClickInside","disableHover","clearTimeout","setTimeout","hoverDelay","ignoreMousedisappear","autoclose","closingTime","$prevElement","$nextElement","isTab","index","$elements","siblings","each","i","eq","nextSibling","focus","prevSibling","openSub","length","closeSub","close","parent","functions","open","_isVertical","_isRtl","down","up","next","previous","handleKey","_this2","$body","document","body","_removeBodyHandler","closest","off","idx","filter","el","$sibs","clear","Box","ImNotTouchingYou","oldClass","$parentLi","removeClass","_addBodyHandler","trigger","$toClose","not","$activeItem","data-is-click","removeAttr","Burn","c","name","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","object","property","prototype","hasOwnProperty","call","p","s","moduleId","l","modules"],"mappings":"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","file":"foundation.dropdownMenu.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.box\", \"./foundation.util.keyboard\", \"./foundation.util.nest\", \"./foundation.util.touch\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.dropdownMenu\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.dropdownMenu\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 5);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;","import { Foundation } from './foundation.core';\n\nimport { DropdownMenu } from '../../foundation.dropdownMenu';\nFoundation.plugin(DropdownMenu, 'DropdownMenu');\n\nexport { Foundation, DropdownMenu};\n","'use strict';\n\nimport $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl, ignoreMousedisappear } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { Box } from './foundation.util.box';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * DropdownMenu module.\n * @module foundation.dropdownMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.nest\n * @requires foundation.util.touch\n */\n\nclass DropdownMenu extends Plugin {\n /**\n * Creates a new instance of DropdownMenu.\n * @class\n * @name DropdownMenu\n * @fires DropdownMenu#init\n * @param {jQuery} element - jQuery object to make into a dropdown menu.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, DropdownMenu.defaults, this.$element.data(), options);\n this.className = 'DropdownMenu'; // ie9 back compat\n\n Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n this._init();\n\n Keyboard.register('DropdownMenu', {\n 'ENTER': 'open',\n 'SPACE': 'open',\n 'ARROW_RIGHT': 'next',\n 'ARROW_UP': 'up',\n 'ARROW_DOWN': 'down',\n 'ARROW_LEFT': 'previous',\n 'ESCAPE': 'close'\n });\n }\n\n /**\n * Initializes the plugin, and calls _prepareMenu\n * @private\n * @function\n */\n _init() {\n Nest.Feather(this.$element, 'dropdown');\n\n var subs = this.$element.find('li.is-dropdown-submenu-parent');\n this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');\n\n this.$menuItems = this.$element.find('[role=\"menuitem\"]');\n this.$tabs = this.$element.children('[role=\"menuitem\"]');\n this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);\n\n if (this.options.alignment === 'auto') {\n if (this.$element.hasClass(this.options.rightClass) || Rtl() || this.$element.parents('.top-bar-right').is('*')) {\n this.options.alignment = 'right';\n subs.addClass('opens-left');\n } else {\n this.options.alignment = 'left';\n subs.addClass('opens-right');\n }\n } else {\n if (this.options.alignment === 'right') {\n subs.addClass('opens-left');\n } else {\n subs.addClass('opens-right');\n }\n }\n this.changed = false;\n this._events();\n };\n\n _isVertical() {\n return this.$tabs.css('display') === 'block' || this.$element.css('flex-direction') === 'column';\n }\n\n _isRtl() {\n return this.$element.hasClass('align-right') || (Rtl() && !this.$element.hasClass('align-left'));\n }\n\n /**\n * Adds event listeners to elements within the menu\n * @private\n * @function\n */\n _events() {\n var _this = this,\n hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined'),\n parClass = 'is-dropdown-submenu-parent';\n\n // used for onClick and in the keyboard handlers\n var handleClickFn = function(e) {\n var $elem = $(e.target).parentsUntil('ul', `.${parClass}`),\n hasSub = $elem.hasClass(parClass),\n hasClicked = $elem.attr('data-is-click') === 'true',\n $sub = $elem.children('.is-dropdown-submenu');\n\n if (hasSub) {\n if (hasClicked) {\n if (!_this.options.closeOnClick\n || (!_this.options.clickOpen && !hasTouch)\n || (_this.options.forceFollow && hasTouch)) {\n return;\n }\n e.preventDefault();\n _this._hide($elem);\n }\n else {\n e.preventDefault();\n _this._show($sub);\n $elem.add($elem.parentsUntil(_this.$element, `.${parClass}`)).attr('data-is-click', true);\n }\n }\n };\n\n if (this.options.clickOpen || hasTouch) {\n this.$menuItems.on('click.zf.dropdownMenu touchstart.zf.dropdownMenu', handleClickFn);\n }\n\n // Handle Leaf element Clicks\n if(_this.options.closeOnClickInside){\n this.$menuItems.on('click.zf.dropdownMenu', function(e) {\n var $elem = $(this),\n hasSub = $elem.hasClass(parClass);\n if(!hasSub){\n _this._hide();\n }\n });\n }\n\n if (!this.options.disableHover) {\n this.$menuItems.on('mouseenter.zf.dropdownMenu', function (e) {\n var $elem = $(this),\n hasSub = $elem.hasClass(parClass);\n\n if (hasSub) {\n clearTimeout($elem.data('_delay'));\n $elem.data('_delay', setTimeout(function () {\n _this._show($elem.children('.is-dropdown-submenu'));\n }, _this.options.hoverDelay));\n }\n }).on('mouseleave.zf.dropdownmenu', ignoreMousedisappear(function (e) {\n var $elem = $(this),\n hasSub = $elem.hasClass(parClass);\n if (hasSub && _this.options.autoclose) {\n if ($elem.attr('data-is-click') === 'true' && _this.options.clickOpen) { return false; }\n\n clearTimeout($elem.data('_delay'));\n $elem.data('_delay', setTimeout(function () {\n _this._hide($elem);\n }, _this.options.closingTime));\n }\n }));\n }\n this.$menuItems.on('keydown.zf.dropdownMenu', function(e) {\n var $element = $(e.target).parentsUntil('ul', '[role=\"menuitem\"]'),\n isTab = _this.$tabs.index($element) > -1,\n $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),\n $prevElement,\n $nextElement;\n\n $elements.each(function(i) {\n if ($(this).is($element)) {\n $prevElement = $elements.eq(i-1);\n $nextElement = $elements.eq(i+1);\n return;\n }\n });\n\n var nextSibling = function() {\n $nextElement.children('a:first').focus();\n e.preventDefault();\n }, prevSibling = function() {\n $prevElement.children('a:first').focus();\n e.preventDefault();\n }, openSub = function() {\n var $sub = $element.children('ul.is-dropdown-submenu');\n if ($sub.length) {\n _this._show($sub);\n $element.find('li > a:first').focus();\n e.preventDefault();\n } else { return; }\n }, closeSub = function() {\n //if ($element.is(':first-child')) {\n var close = $element.parent('ul').parent('li');\n close.children('a:first').focus();\n _this._hide(close);\n e.preventDefault();\n //}\n };\n var functions = {\n open: openSub,\n close: function() {\n _this._hide(_this.$element);\n _this.$menuItems.eq(0).children('a').focus(); // focus to first element\n e.preventDefault();\n }\n };\n\n if (isTab) {\n if (_this._isVertical()) { // vertical menu\n if (_this._isRtl()) { // right aligned\n $.extend(functions, {\n down: nextSibling,\n up: prevSibling,\n next: closeSub,\n previous: openSub\n });\n } else { // left aligned\n $.extend(functions, {\n down: nextSibling,\n up: prevSibling,\n next: openSub,\n previous: closeSub\n });\n }\n } else { // horizontal menu\n if (_this._isRtl()) { // right aligned\n $.extend(functions, {\n next: prevSibling,\n previous: nextSibling,\n down: openSub,\n up: closeSub\n });\n } else { // left aligned\n $.extend(functions, {\n next: nextSibling,\n previous: prevSibling,\n down: openSub,\n up: closeSub\n });\n }\n }\n } else { // not tabs -> one sub\n if (_this._isRtl()) { // right aligned\n $.extend(functions, {\n next: closeSub,\n previous: openSub,\n down: nextSibling,\n up: prevSibling\n });\n } else { // left aligned\n $.extend(functions, {\n next: openSub,\n previous: closeSub,\n down: nextSibling,\n up: prevSibling\n });\n }\n }\n Keyboard.handleKey(e, 'DropdownMenu', functions);\n\n });\n }\n\n /**\n * Adds an event handler to the body to close any dropdowns on a click.\n * @function\n * @private\n */\n _addBodyHandler() {\n const $body = $(document.body);\n this._removeBodyHandler();\n $body.on('click.zf.dropdownMenu tap.zf.dropdownMenu', (e) => {\n var isItself = !!$(e.target).closest(this.$element).length;\n if (isItself) return;\n\n this._hide();\n this._removeBodyHandler();\n });\n }\n\n /**\n * Remove the body event handler. See `_addBodyHandler`.\n * @function\n * @private\n */\n _removeBodyHandler() {\n $(document.body).off('click.zf.dropdownMenu tap.zf.dropdownMenu');\n }\n\n /**\n * Opens a dropdown pane, and checks for collisions first.\n * @param {jQuery} $sub - ul element that is a submenu to show\n * @function\n * @private\n * @fires DropdownMenu#show\n */\n _show($sub) {\n var idx = this.$tabs.index(this.$tabs.filter(function(i, el) {\n return $(el).find($sub).length > 0;\n }));\n var $sibs = $sub.parent('li.is-dropdown-submenu-parent').siblings('li.is-dropdown-submenu-parent');\n this._hide($sibs, idx);\n $sub.css('visibility', 'hidden').addClass('js-dropdown-active')\n .parent('li.is-dropdown-submenu-parent').addClass('is-active');\n var clear = Box.ImNotTouchingYou($sub, null, true);\n if (!clear) {\n var oldClass = this.options.alignment === 'left' ? '-right' : '-left',\n $parentLi = $sub.parent('.is-dropdown-submenu-parent');\n $parentLi.removeClass(`opens${oldClass}`).addClass(`opens-${this.options.alignment}`);\n clear = Box.ImNotTouchingYou($sub, null, true);\n if (!clear) {\n $parentLi.removeClass(`opens-${this.options.alignment}`).addClass('opens-inner');\n }\n this.changed = true;\n }\n $sub.css('visibility', '');\n if (this.options.closeOnClick) { this._addBodyHandler(); }\n /**\n * Fires when the new dropdown pane is visible.\n * @event DropdownMenu#show\n */\n this.$element.trigger('show.zf.dropdownMenu', [$sub]);\n }\n\n /**\n * Hides a single, currently open dropdown pane, if passed a parameter, otherwise, hides everything.\n * @function\n * @param {jQuery} $elem - element with a submenu to hide\n * @param {Number} idx - index of the $tabs collection to hide\n * @fires DropdownMenu#hide\n * @private\n */\n _hide($elem, idx) {\n var $toClose;\n if ($elem && $elem.length) {\n $toClose = $elem;\n } else if (typeof idx !== 'undefined') {\n $toClose = this.$tabs.not(function(i, el) {\n return i === idx;\n });\n }\n else {\n $toClose = this.$element;\n }\n var somethingToClose = $toClose.hasClass('is-active') || $toClose.find('.is-active').length > 0;\n\n if (somethingToClose) {\n var $activeItem = $toClose.find('li.is-active');\n $activeItem.add($toClose).attr({\n 'data-is-click': false\n }).removeClass('is-active');\n\n $toClose.find('ul.js-dropdown-active').removeClass('js-dropdown-active');\n\n if (this.changed || $toClose.find('opens-inner').length) {\n var oldClass = this.options.alignment === 'left' ? 'right' : 'left';\n $toClose.find('li.is-dropdown-submenu-parent').add($toClose)\n .removeClass(`opens-inner opens-${this.options.alignment}`)\n .addClass(`opens-${oldClass}`);\n this.changed = false;\n }\n\n clearTimeout($activeItem.data('_delay'));\n this._removeBodyHandler();\n\n /**\n * Fires when the open menus are closed.\n * @event DropdownMenu#hide\n */\n this.$element.trigger('hide.zf.dropdownMenu', [$toClose]);\n }\n }\n\n /**\n * Destroys the plugin.\n * @function\n */\n _destroy() {\n this.$menuItems.off('.zf.dropdownMenu').removeAttr('data-is-click')\n .removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');\n $(document.body).off('.zf.dropdownMenu');\n Nest.Burn(this.$element, 'dropdown');\n }\n}\n\n/**\n * Default settings for plugin\n */\nDropdownMenu.defaults = {\n /**\n * Disallows hover events from opening submenus\n * @option\n * @type {boolean}\n * @default false\n */\n disableHover: false,\n /**\n * Allow a submenu to automatically close on a mouseleave event, if not clicked open.\n * @option\n * @type {boolean}\n * @default true\n */\n autoclose: true,\n /**\n * Amount of time to delay opening a submenu on hover event.\n * @option\n * @type {number}\n * @default 50\n */\n hoverDelay: 50,\n /**\n * Allow a submenu to open/remain open on parent click event. Allows cursor to move away from menu.\n * @option\n * @type {boolean}\n * @default false\n */\n clickOpen: false,\n /**\n * Amount of time to delay closing a submenu on a mouseleave event.\n * @option\n * @type {number}\n * @default 500\n */\n\n closingTime: 500,\n /**\n * Position of the menu relative to what direction the submenus should open. Handled by JS. Can be `'auto'`, `'left'` or `'right'`.\n * @option\n * @type {string}\n * @default 'auto'\n */\n alignment: 'auto',\n /**\n * Allow clicks on the body to close any open submenus.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnClick: true,\n /**\n * Allow clicks on leaf anchor links to close any open submenus.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnClickInside: true,\n /**\n * Class applied to vertical oriented menus, Foundation default is `vertical`. Update this if using your own class.\n * @option\n * @type {string}\n * @default 'vertical'\n */\n verticalClass: 'vertical',\n /**\n * Class applied to right-side oriented menus, Foundation default is `align-right`. Update this if using your own class.\n * @option\n * @type {string}\n * @default 'align-right'\n */\n rightClass: 'align-right',\n /**\n * Boolean to force overide the clicking of links to perform default action, on second touch event for mobile.\n * @option\n * @type {boolean}\n * @default true\n */\n forceFollow: true\n};\n\nexport {DropdownMenu};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"]}
@@ -593,7 +593,7 @@ Equalizer.defaults = {
593
593
  /*! no static exports found */
594
594
  /***/ (function(module, exports, __webpack_require__) {
595
595
 
596
- module.exports = __webpack_require__(/*! /Users/ncoden/Documents/Documents/Projects/Programmation/Web/2016/Foundation/foundation-sites/js/entries/plugins/foundation.equalizer.js */"./js/entries/plugins/foundation.equalizer.js");
596
+ module.exports = __webpack_require__(/*! /Volumes/Data/Development/Foundation/foundation-sites/js/entries/plugins/foundation.equalizer.js */"./js/entries/plugins/foundation.equalizer.js");
597
597
 
598
598
 
599
599
  /***/ }),
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("./foundation.core"),require("./foundation.util.imageLoader"),require("./foundation.util.mediaQuery"),require("jquery")):"function"==typeof define&&define.amd?define(["./foundation.core","./foundation.util.imageLoader","./foundation.util.mediaQuery","jquery"],t):"object"==typeof exports?exports["foundation.equalizer"]=t(require("./foundation.core"),require("./foundation.util.imageLoader"),require("./foundation.util.mediaQuery"),require("jquery")):(e.__FOUNDATION_EXTERNAL__=e.__FOUNDATION_EXTERNAL__||{},e.__FOUNDATION_EXTERNAL__["foundation.equalizer"]=t(e.__FOUNDATION_EXTERNAL__["foundation.core"],e.__FOUNDATION_EXTERNAL__["foundation.util.imageLoader"],e.__FOUNDATION_EXTERNAL__["foundation.util.mediaQuery"],e.jQuery))}(window,function(i,n,o,r){return function(i){var n={};function o(e){if(n[e])return n[e].exports;var t=n[e]={i:e,l:!1,exports:{}};return i[e].call(t.exports,t,t.exports,o),t.l=!0,t.exports}return o.m=i,o.c=n,o.d=function(e,t,i){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(o.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)o.d(i,n,function(e){return t[e]}.bind(null,n));return i},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=6)}({"./foundation.core":function(e,t){e.exports=i},"./foundation.util.imageLoader":function(e,t){e.exports=n},"./foundation.util.mediaQuery":function(e,t){e.exports=o},"./js/entries/plugins/foundation.equalizer.js":function(e,t,i){"use strict";i.r(t);var n=i("./foundation.core");i.d(t,"Foundation",function(){return n.Foundation});var o=i("./js/foundation.equalizer.js");i.d(t,"Equalizer",function(){return o.Equalizer}),n.Foundation.plugin(o.Equalizer,"Equalizer")},"./js/foundation.equalizer.js":function(e,t,i){"use strict";i.r(t),i.d(t,"Equalizer",function(){return c});var n=i("jquery"),h=i.n(n),r=i("./foundation.util.mediaQuery"),u=i("./foundation.util.imageLoader"),a=i("./foundation.core");function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(e,t){return!t||"object"!==o(t)&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function f(e){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var c=function(e){function i(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),l(this,f(i).apply(this,arguments))}var t,n,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&d(e,t)}(i,a["Plugin"]),t=i,(n=[{key:"_setup",value:function(e,t){this.$element=e,this.options=h.a.extend({},i.defaults,this.$element.data(),t),this.className="Equalizer",this._init()}},{key:"_init",value:function(){var e=this.$element.attr("data-equalizer")||"",t=this.$element.find('[data-equalizer-watch="'.concat(e,'"]'));r.MediaQuery._init(),this.$watched=t.length?t:this.$element.find("[data-equalizer-watch]"),this.$element.attr("data-resize",e||Object(a.GetYoDigits)(6,"eq")),this.$element.attr("data-mutate",e||Object(a.GetYoDigits)(6,"eq")),this.hasNested=0<this.$element.find("[data-equalizer]").length,this.isNested=0<this.$element.parentsUntil(document.body,"[data-equalizer]").length,this.isOn=!1,this._bindHandler={onResizeMeBound:this._onResizeMe.bind(this),onPostEqualizedBound:this._onPostEqualized.bind(this)};var i,n=this.$element.find("img");this.options.equalizeOn?(i=this._checkMQ(),h()(window).on("changed.zf.mediaquery",this._checkMQ.bind(this))):this._events(),(void 0!==i&&!1===i||void 0===i)&&(n.length?Object(u.onImagesLoaded)(n,this._reflow.bind(this)):this._reflow())}},{key:"_pauseEvents",value:function(){this.isOn=!1,this.$element.off({".zf.equalizer":this._bindHandler.onPostEqualizedBound,"resizeme.zf.trigger":this._bindHandler.onResizeMeBound,"mutateme.zf.trigger":this._bindHandler.onResizeMeBound})}},{key:"_onResizeMe",value:function(e){this._reflow()}},{key:"_onPostEqualized",value:function(e){e.target!==this.$element[0]&&this._reflow()}},{key:"_events",value:function(){this._pauseEvents(),this.hasNested?this.$element.on("postequalized.zf.equalizer",this._bindHandler.onPostEqualizedBound):(this.$element.on("resizeme.zf.trigger",this._bindHandler.onResizeMeBound),this.$element.on("mutateme.zf.trigger",this._bindHandler.onResizeMeBound)),this.isOn=!0}},{key:"_checkMQ",value:function(){var e=!r.MediaQuery.is(this.options.equalizeOn);return e?this.isOn&&(this._pauseEvents(),this.$watched.css("height","auto")):this.isOn||this._events(),e}},{key:"_killswitch",value:function(){}},{key:"_reflow",value:function(){if(!this.options.equalizeOnStack&&this._isStacked())return this.$watched.css("height","auto"),!1;this.options.equalizeByRow?this.getHeightsByRow(this.applyHeightByRow.bind(this)):this.getHeights(this.applyHeight.bind(this))}},{key:"_isStacked",value:function(){return!this.$watched[0]||!this.$watched[1]||this.$watched[0].getBoundingClientRect().top!==this.$watched[1].getBoundingClientRect().top}},{key:"getHeights",value:function(e){for(var t=[],i=0,n=this.$watched.length;i<n;i++)this.$watched[i].style.height="auto",t.push(this.$watched[i].offsetHeight);e(t)}},{key:"getHeightsByRow",value:function(e){var t=this.$watched.length?this.$watched.first().offset().top:0,i=[],n=0;i[n]=[];for(var o=0,r=this.$watched.length;o<r;o++){this.$watched[o].style.height="auto";var u=h()(this.$watched[o]).offset().top;u!=t&&(i[++n]=[],t=u),i[n].push([this.$watched[o],this.$watched[o].offsetHeight])}for(var a=0,s=i.length;a<s;a++){var l=h()(i[a]).map(function(){return this[1]}).get(),f=Math.max.apply(null,l);i[a].push(f)}e(i)}},{key:"applyHeight",value:function(e){var t=Math.max.apply(null,e);this.$element.trigger("preequalized.zf.equalizer"),this.$watched.css("height",t),this.$element.trigger("postequalized.zf.equalizer")}},{key:"applyHeightByRow",value:function(e){this.$element.trigger("preequalized.zf.equalizer");for(var t=0,i=e.length;t<i;t++){var n=e[t].length,o=e[t][n-1];if(n<=2)h()(e[t][0][0]).css({height:"auto"});else{this.$element.trigger("preequalizedrow.zf.equalizer");for(var r=0,u=n-1;r<u;r++)h()(e[t][r][0]).css({height:o});this.$element.trigger("postequalizedrow.zf.equalizer")}}this.$element.trigger("postequalized.zf.equalizer")}},{key:"_destroy",value:function(){this._pauseEvents(),this.$watched.css("height","auto")}}])&&s(t.prototype,n),o&&s(t,o),i}();c.defaults={equalizeOnStack:!1,equalizeByRow:!1,equalizeOn:""}},6:function(e,t,i){e.exports=i("./js/entries/plugins/foundation.equalizer.js")},jquery:function(e,t){e.exports=r}})});
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("./foundation.core"),require("./foundation.util.imageLoader"),require("./foundation.util.mediaQuery"),require("jquery")):"function"==typeof define&&define.amd?define(["./foundation.core","./foundation.util.imageLoader","./foundation.util.mediaQuery","jquery"],t):"object"==typeof exports?exports["foundation.equalizer"]=t(require("./foundation.core"),require("./foundation.util.imageLoader"),require("./foundation.util.mediaQuery"),require("jquery")):(e.__FOUNDATION_EXTERNAL__=e.__FOUNDATION_EXTERNAL__||{},e.__FOUNDATION_EXTERNAL__["foundation.equalizer"]=t(e.__FOUNDATION_EXTERNAL__["foundation.core"],e.__FOUNDATION_EXTERNAL__["foundation.util.imageLoader"],e.__FOUNDATION_EXTERNAL__["foundation.util.mediaQuery"],e.jQuery))}(window,function(i,n,o,r){return s={},u.m=a={"./foundation.core":function(e,t){e.exports=i},"./foundation.util.imageLoader":function(e,t){e.exports=n},"./foundation.util.mediaQuery":function(e,t){e.exports=o},"./js/entries/plugins/foundation.equalizer.js":function(e,t,i){"use strict";i.r(t);var n=i("./foundation.core");i.d(t,"Foundation",function(){return n.Foundation});var o=i("./js/foundation.equalizer.js");i.d(t,"Equalizer",function(){return o.Equalizer}),n.Foundation.plugin(o.Equalizer,"Equalizer")},"./js/foundation.equalizer.js":function(e,t,i){"use strict";i.r(t),i.d(t,"Equalizer",function(){return c});var n=i("jquery"),h=i.n(n),o=i("./foundation.util.mediaQuery"),r=i("./foundation.util.imageLoader"),u=i("./foundation.core");function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(e,t){return!t||"object"!==a(t)&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function f(e){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var c=function(){function i(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),l(this,f(i).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&d(e,t)}(i,u["Plugin"]),function(e,t,i){t&&s(e.prototype,t),i&&s(e,i)}(i,[{key:"_setup",value:function(e,t){this.$element=e,this.options=h.a.extend({},i.defaults,this.$element.data(),t),this.className="Equalizer",this._init()}},{key:"_init",value:function(){var e=this.$element.attr("data-equalizer")||"",t=this.$element.find('[data-equalizer-watch="'.concat(e,'"]'));o.MediaQuery._init(),this.$watched=t.length?t:this.$element.find("[data-equalizer-watch]"),this.$element.attr("data-resize",e||Object(u.GetYoDigits)(6,"eq")),this.$element.attr("data-mutate",e||Object(u.GetYoDigits)(6,"eq")),this.hasNested=0<this.$element.find("[data-equalizer]").length,this.isNested=0<this.$element.parentsUntil(document.body,"[data-equalizer]").length,this.isOn=!1,this._bindHandler={onResizeMeBound:this._onResizeMe.bind(this),onPostEqualizedBound:this._onPostEqualized.bind(this)};var i,n=this.$element.find("img");this.options.equalizeOn?(i=this._checkMQ(),h()(window).on("changed.zf.mediaquery",this._checkMQ.bind(this))):this._events(),(void 0!==i&&!1===i||void 0===i)&&(n.length?Object(r.onImagesLoaded)(n,this._reflow.bind(this)):this._reflow())}},{key:"_pauseEvents",value:function(){this.isOn=!1,this.$element.off({".zf.equalizer":this._bindHandler.onPostEqualizedBound,"resizeme.zf.trigger":this._bindHandler.onResizeMeBound,"mutateme.zf.trigger":this._bindHandler.onResizeMeBound})}},{key:"_onResizeMe",value:function(e){this._reflow()}},{key:"_onPostEqualized",value:function(e){e.target!==this.$element[0]&&this._reflow()}},{key:"_events",value:function(){this._pauseEvents(),this.hasNested?this.$element.on("postequalized.zf.equalizer",this._bindHandler.onPostEqualizedBound):(this.$element.on("resizeme.zf.trigger",this._bindHandler.onResizeMeBound),this.$element.on("mutateme.zf.trigger",this._bindHandler.onResizeMeBound)),this.isOn=!0}},{key:"_checkMQ",value:function(){var e=!o.MediaQuery.is(this.options.equalizeOn);return e?this.isOn&&(this._pauseEvents(),this.$watched.css("height","auto")):this.isOn||this._events(),e}},{key:"_killswitch",value:function(){}},{key:"_reflow",value:function(){if(!this.options.equalizeOnStack&&this._isStacked())return this.$watched.css("height","auto"),!1;this.options.equalizeByRow?this.getHeightsByRow(this.applyHeightByRow.bind(this)):this.getHeights(this.applyHeight.bind(this))}},{key:"_isStacked",value:function(){return!this.$watched[0]||!this.$watched[1]||this.$watched[0].getBoundingClientRect().top!==this.$watched[1].getBoundingClientRect().top}},{key:"getHeights",value:function(e){for(var t=[],i=0,n=this.$watched.length;i<n;i++)this.$watched[i].style.height="auto",t.push(this.$watched[i].offsetHeight);e(t)}},{key:"getHeightsByRow",value:function(e){var t=this.$watched.length?this.$watched.first().offset().top:0,i=[],n=0;i[n]=[];for(var o=0,r=this.$watched.length;o<r;o++){this.$watched[o].style.height="auto";var u=h()(this.$watched[o]).offset().top;u!=t&&(i[++n]=[],t=u),i[n].push([this.$watched[o],this.$watched[o].offsetHeight])}for(var a=0,s=i.length;a<s;a++){var l=h()(i[a]).map(function(){return this[1]}).get(),f=Math.max.apply(null,l);i[a].push(f)}e(i)}},{key:"applyHeight",value:function(e){var t=Math.max.apply(null,e);this.$element.trigger("preequalized.zf.equalizer"),this.$watched.css("height",t),this.$element.trigger("postequalized.zf.equalizer")}},{key:"applyHeightByRow",value:function(e){this.$element.trigger("preequalized.zf.equalizer");for(var t=0,i=e.length;t<i;t++){var n=e[t].length,o=e[t][n-1];if(n<=2)h()(e[t][0][0]).css({height:"auto"});else{this.$element.trigger("preequalizedrow.zf.equalizer");for(var r=0,u=n-1;r<u;r++)h()(e[t][r][0]).css({height:o});this.$element.trigger("postequalizedrow.zf.equalizer")}}this.$element.trigger("postequalized.zf.equalizer")}},{key:"_destroy",value:function(){this._pauseEvents(),this.$watched.css("height","auto")}}]),i}();c.defaults={equalizeOnStack:!1,equalizeByRow:!1,equalizeOn:""}},6:function(e,t,i){e.exports=i("./js/entries/plugins/foundation.equalizer.js")},jquery:function(e,t){e.exports=r}},u.c=s,u.d=function(e,t,i){u.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},u.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},u.t=function(t,e){if(1&e&&(t=u(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(u.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)u.d(i,n,function(e){return t[e]}.bind(null,n));return i},u.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return u.d(t,"a",t),t},u.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},u.p="",u(u.s=6);function u(e){if(s[e])return s[e].exports;var t=s[e]={i:e,l:!1,exports:{}};return a[e].call(t.exports,t,t.exports,u),t.l=!0,t.exports}var a,s});
2
2
  //# sourceMappingURL=foundation.equalizer.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.imageLoader\"],\"amd\":\"./foundation.util.imageLoader\",\"commonjs\":\"./foundation.util.imageLoader\",\"commonjs2\":\"./foundation.util.imageLoader\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.equalizer.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.equalizer.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE_jquery__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","_foundation_equalizer__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Equalizer","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__","Plugin","element","options","this","$element","$","extend","defaults","data","className","_init","eqId","attr","$watched","find","concat","MediaQuery","length","GetYoDigits","hasNested","isNested","parentsUntil","document","body","isOn","_bindHandler","onResizeMeBound","_onResizeMe","onPostEqualizedBound","_onPostEqualized","tooSmall","imgs","equalizeOn","_checkMQ","on","_events","onImagesLoaded","_reflow","off",".zf.equalizer","resizeme.zf.trigger","mutateme.zf.trigger","e","target","_pauseEvents","is","css","equalizeOnStack","_isStacked","equalizeByRow","getHeightsByRow","applyHeightByRow","getHeights","applyHeight","getBoundingClientRect","top","cb","heights","len","style","height","push","offsetHeight","lastElTopOffset","first","offset","groups","group","elOffsetTop","j","ln","map","max","Math","apply","trigger","groupsILength","lenJ"],"mappings":"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","file":"foundation.equalizer.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.imageLoader\", \"./foundation.util.mediaQuery\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.equalizer\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.equalizer\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.imageLoader\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 6);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;","import { Foundation } from './foundation.core';\n\nimport { Equalizer } from '../../foundation.equalizer';\nFoundation.plugin(Equalizer, 'Equalizer');\n\nexport { Foundation, Equalizer };\n","'use strict';\n\nimport $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Equalizer module.\n * @module foundation.equalizer\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.imageLoader if equalizer contains images\n */\n\nclass Equalizer extends Plugin {\n /**\n * Creates a new instance of Equalizer.\n * @class\n * @name Equalizer\n * @fires Equalizer#init\n * @param {Object} element - jQuery object to add the trigger to.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options){\n this.$element = element;\n this.options = $.extend({}, Equalizer.defaults, this.$element.data(), options);\n this.className = 'Equalizer'; // ie9 back compat\n\n this._init();\n }\n\n /**\n * Initializes the Equalizer plugin and calls functions to get equalizer functioning on load.\n * @private\n */\n _init() {\n var eqId = this.$element.attr('data-equalizer') || '';\n var $watched = this.$element.find(`[data-equalizer-watch=\"${eqId}\"]`);\n\n MediaQuery._init();\n\n this.$watched = $watched.length ? $watched : this.$element.find('[data-equalizer-watch]');\n this.$element.attr('data-resize', (eqId || GetYoDigits(6, 'eq')));\n this.$element.attr('data-mutate', (eqId || GetYoDigits(6, 'eq')));\n\n this.hasNested = this.$element.find('[data-equalizer]').length > 0;\n this.isNested = this.$element.parentsUntil(document.body, '[data-equalizer]').length > 0;\n this.isOn = false;\n this._bindHandler = {\n onResizeMeBound: this._onResizeMe.bind(this),\n onPostEqualizedBound: this._onPostEqualized.bind(this)\n };\n\n var imgs = this.$element.find('img');\n var tooSmall;\n if(this.options.equalizeOn){\n tooSmall = this._checkMQ();\n $(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));\n }else{\n this._events();\n }\n if((typeof tooSmall !== 'undefined' && tooSmall === false) || typeof tooSmall === 'undefined'){\n if(imgs.length){\n onImagesLoaded(imgs, this._reflow.bind(this));\n }else{\n this._reflow();\n }\n }\n }\n\n /**\n * Removes event listeners if the breakpoint is too small.\n * @private\n */\n _pauseEvents() {\n this.isOn = false;\n this.$element.off({\n '.zf.equalizer': this._bindHandler.onPostEqualizedBound,\n 'resizeme.zf.trigger': this._bindHandler.onResizeMeBound,\n\t 'mutateme.zf.trigger': this._bindHandler.onResizeMeBound\n });\n }\n\n /**\n * function to handle $elements resizeme.zf.trigger, with bound this on _bindHandler.onResizeMeBound\n * @private\n */\n _onResizeMe(e) {\n this._reflow();\n }\n\n /**\n * function to handle $elements postequalized.zf.equalizer, with bound this on _bindHandler.onPostEqualizedBound\n * @private\n */\n _onPostEqualized(e) {\n if(e.target !== this.$element[0]){ this._reflow(); }\n }\n\n /**\n * Initializes events for Equalizer.\n * @private\n */\n _events() {\n var _this = this;\n this._pauseEvents();\n if(this.hasNested){\n this.$element.on('postequalized.zf.equalizer', this._bindHandler.onPostEqualizedBound);\n }else{\n this.$element.on('resizeme.zf.trigger', this._bindHandler.onResizeMeBound);\n\t this.$element.on('mutateme.zf.trigger', this._bindHandler.onResizeMeBound);\n }\n this.isOn = true;\n }\n\n /**\n * Checks the current breakpoint to the minimum required size.\n * @private\n */\n _checkMQ() {\n var tooSmall = !MediaQuery.is(this.options.equalizeOn);\n if(tooSmall){\n if(this.isOn){\n this._pauseEvents();\n this.$watched.css('height', 'auto');\n }\n }else{\n if(!this.isOn){\n this._events();\n }\n }\n return tooSmall;\n }\n\n /**\n * A noop version for the plugin\n * @private\n */\n _killswitch() {\n return;\n }\n\n /**\n * Calls necessary functions to update Equalizer upon DOM change\n * @private\n */\n _reflow() {\n if(!this.options.equalizeOnStack){\n if(this._isStacked()){\n this.$watched.css('height', 'auto');\n return false;\n }\n }\n if (this.options.equalizeByRow) {\n this.getHeightsByRow(this.applyHeightByRow.bind(this));\n }else{\n this.getHeights(this.applyHeight.bind(this));\n }\n }\n\n /**\n * Manually determines if the first 2 elements are *NOT* stacked.\n * @private\n */\n _isStacked() {\n if (!this.$watched[0] || !this.$watched[1]) {\n return true;\n }\n return this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top;\n }\n\n /**\n * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n * @param {Function} cb - A non-optional callback to return the heights array to.\n * @returns {Array} heights - An array of heights of children within Equalizer container\n */\n getHeights(cb) {\n var heights = [];\n for(var i = 0, len = this.$watched.length; i < len; i++){\n this.$watched[i].style.height = 'auto';\n heights.push(this.$watched[i].offsetHeight);\n }\n cb(heights);\n }\n\n /**\n * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n * @param {Function} cb - A non-optional callback to return the heights array to.\n * @returns {Array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n */\n getHeightsByRow(cb) {\n var lastElTopOffset = (this.$watched.length ? this.$watched.first().offset().top : 0),\n groups = [],\n group = 0;\n //group by Row\n groups[group] = [];\n for(var i = 0, len = this.$watched.length; i < len; i++){\n this.$watched[i].style.height = 'auto';\n //maybe could use this.$watched[i].offsetTop\n var elOffsetTop = $(this.$watched[i]).offset().top;\n if (elOffsetTop!=lastElTopOffset) {\n group++;\n groups[group] = [];\n lastElTopOffset=elOffsetTop;\n }\n groups[group].push([this.$watched[i],this.$watched[i].offsetHeight]);\n }\n\n for (var j = 0, ln = groups.length; j < ln; j++) {\n var heights = $(groups[j]).map(function(){ return this[1]; }).get();\n var max = Math.max.apply(null, heights);\n groups[j].push(max);\n }\n cb(groups);\n }\n\n /**\n * Changes the CSS height property of each child in an Equalizer parent to match the tallest\n * @param {array} heights - An array of heights of children within Equalizer container\n * @fires Equalizer#preequalized\n * @fires Equalizer#postequalized\n */\n applyHeight(heights) {\n var max = Math.max.apply(null, heights);\n /**\n * Fires before the heights are applied\n * @event Equalizer#preequalized\n */\n this.$element.trigger('preequalized.zf.equalizer');\n\n this.$watched.css('height', max);\n\n /**\n * Fires when the heights have been applied\n * @event Equalizer#postequalized\n */\n this.$element.trigger('postequalized.zf.equalizer');\n }\n\n /**\n * Changes the CSS height property of each child in an Equalizer parent to match the tallest by row\n * @param {array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n * @fires Equalizer#preequalized\n * @fires Equalizer#preequalizedrow\n * @fires Equalizer#postequalizedrow\n * @fires Equalizer#postequalized\n */\n applyHeightByRow(groups) {\n /**\n * Fires before the heights are applied\n */\n this.$element.trigger('preequalized.zf.equalizer');\n for (var i = 0, len = groups.length; i < len ; i++) {\n var groupsILength = groups[i].length,\n max = groups[i][groupsILength - 1];\n if (groupsILength<=2) {\n $(groups[i][0][0]).css({'height':'auto'});\n continue;\n }\n /**\n * Fires before the heights per row are applied\n * @event Equalizer#preequalizedrow\n */\n this.$element.trigger('preequalizedrow.zf.equalizer');\n for (var j = 0, lenJ = (groupsILength-1); j < lenJ ; j++) {\n $(groups[i][j][0]).css({'height':max});\n }\n /**\n * Fires when the heights per row have been applied\n * @event Equalizer#postequalizedrow\n */\n this.$element.trigger('postequalizedrow.zf.equalizer');\n }\n /**\n * Fires when the heights have been applied\n */\n this.$element.trigger('postequalized.zf.equalizer');\n }\n\n /**\n * Destroys an instance of Equalizer.\n * @function\n */\n _destroy() {\n this._pauseEvents();\n this.$watched.css('height', 'auto');\n }\n}\n\n/**\n * Default settings for plugin\n */\nEqualizer.defaults = {\n /**\n * Enable height equalization when stacked on smaller screens.\n * @option\n * @type {boolean}\n * @default false\n */\n equalizeOnStack: false,\n /**\n * Enable height equalization row by row.\n * @option\n * @type {boolean}\n * @default false\n */\n equalizeByRow: false,\n /**\n * String representing the minimum breakpoint size the plugin should equalize heights on.\n * @option\n * @type {string}\n * @default ''\n */\n equalizeOn: ''\n};\n\nexport {Equalizer};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"]}
1
+ {"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.imageLoader\"],\"amd\":\"./foundation.util.imageLoader\",\"commonjs\":\"./foundation.util.imageLoader\",\"commonjs2\":\"./foundation.util.imageLoader\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.equalizer.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.equalizer.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE_jquery__","installedModules","__webpack_require__","m","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_equalizer__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Equalizer","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__","Plugin","element","options","this","$element","$","extend","defaults","data","className","_init","eqId","attr","$watched","find","concat","MediaQuery","length","GetYoDigits","hasNested","isNested","parentsUntil","document","body","isOn","_bindHandler","onResizeMeBound","_onResizeMe","bind","onPostEqualizedBound","_onPostEqualized","tooSmall","imgs","equalizeOn","_checkMQ","on","_events","onImagesLoaded","_reflow","off",".zf.equalizer","resizeme.zf.trigger","mutateme.zf.trigger","e","target","_pauseEvents","is","css","equalizeOnStack","_isStacked","equalizeByRow","getHeightsByRow","applyHeightByRow","getHeights","applyHeight","getBoundingClientRect","top","cb","heights","i","len","style","height","push","offsetHeight","lastElTopOffset","first","offset","groups","group","elOffsetTop","j","ln","map","get","max","Math","apply","trigger","groupsILength","lenJ","c","name","getter","o","Object","defineProperty","enumerable","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","object","property","prototype","hasOwnProperty","call","p","s","moduleId","l","modules"],"mappings":"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","file":"foundation.equalizer.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.imageLoader\", \"./foundation.util.mediaQuery\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.equalizer\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.equalizer\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.imageLoader\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 6);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;","import { Foundation } from './foundation.core';\n\nimport { Equalizer } from '../../foundation.equalizer';\nFoundation.plugin(Equalizer, 'Equalizer');\n\nexport { Foundation, Equalizer };\n","'use strict';\n\nimport $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Equalizer module.\n * @module foundation.equalizer\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.imageLoader if equalizer contains images\n */\n\nclass Equalizer extends Plugin {\n /**\n * Creates a new instance of Equalizer.\n * @class\n * @name Equalizer\n * @fires Equalizer#init\n * @param {Object} element - jQuery object to add the trigger to.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options){\n this.$element = element;\n this.options = $.extend({}, Equalizer.defaults, this.$element.data(), options);\n this.className = 'Equalizer'; // ie9 back compat\n\n this._init();\n }\n\n /**\n * Initializes the Equalizer plugin and calls functions to get equalizer functioning on load.\n * @private\n */\n _init() {\n var eqId = this.$element.attr('data-equalizer') || '';\n var $watched = this.$element.find(`[data-equalizer-watch=\"${eqId}\"]`);\n\n MediaQuery._init();\n\n this.$watched = $watched.length ? $watched : this.$element.find('[data-equalizer-watch]');\n this.$element.attr('data-resize', (eqId || GetYoDigits(6, 'eq')));\n this.$element.attr('data-mutate', (eqId || GetYoDigits(6, 'eq')));\n\n this.hasNested = this.$element.find('[data-equalizer]').length > 0;\n this.isNested = this.$element.parentsUntil(document.body, '[data-equalizer]').length > 0;\n this.isOn = false;\n this._bindHandler = {\n onResizeMeBound: this._onResizeMe.bind(this),\n onPostEqualizedBound: this._onPostEqualized.bind(this)\n };\n\n var imgs = this.$element.find('img');\n var tooSmall;\n if(this.options.equalizeOn){\n tooSmall = this._checkMQ();\n $(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));\n }else{\n this._events();\n }\n if((typeof tooSmall !== 'undefined' && tooSmall === false) || typeof tooSmall === 'undefined'){\n if(imgs.length){\n onImagesLoaded(imgs, this._reflow.bind(this));\n }else{\n this._reflow();\n }\n }\n }\n\n /**\n * Removes event listeners if the breakpoint is too small.\n * @private\n */\n _pauseEvents() {\n this.isOn = false;\n this.$element.off({\n '.zf.equalizer': this._bindHandler.onPostEqualizedBound,\n 'resizeme.zf.trigger': this._bindHandler.onResizeMeBound,\n\t 'mutateme.zf.trigger': this._bindHandler.onResizeMeBound\n });\n }\n\n /**\n * function to handle $elements resizeme.zf.trigger, with bound this on _bindHandler.onResizeMeBound\n * @private\n */\n _onResizeMe(e) {\n this._reflow();\n }\n\n /**\n * function to handle $elements postequalized.zf.equalizer, with bound this on _bindHandler.onPostEqualizedBound\n * @private\n */\n _onPostEqualized(e) {\n if(e.target !== this.$element[0]){ this._reflow(); }\n }\n\n /**\n * Initializes events for Equalizer.\n * @private\n */\n _events() {\n var _this = this;\n this._pauseEvents();\n if(this.hasNested){\n this.$element.on('postequalized.zf.equalizer', this._bindHandler.onPostEqualizedBound);\n }else{\n this.$element.on('resizeme.zf.trigger', this._bindHandler.onResizeMeBound);\n\t this.$element.on('mutateme.zf.trigger', this._bindHandler.onResizeMeBound);\n }\n this.isOn = true;\n }\n\n /**\n * Checks the current breakpoint to the minimum required size.\n * @private\n */\n _checkMQ() {\n var tooSmall = !MediaQuery.is(this.options.equalizeOn);\n if(tooSmall){\n if(this.isOn){\n this._pauseEvents();\n this.$watched.css('height', 'auto');\n }\n }else{\n if(!this.isOn){\n this._events();\n }\n }\n return tooSmall;\n }\n\n /**\n * A noop version for the plugin\n * @private\n */\n _killswitch() {\n return;\n }\n\n /**\n * Calls necessary functions to update Equalizer upon DOM change\n * @private\n */\n _reflow() {\n if(!this.options.equalizeOnStack){\n if(this._isStacked()){\n this.$watched.css('height', 'auto');\n return false;\n }\n }\n if (this.options.equalizeByRow) {\n this.getHeightsByRow(this.applyHeightByRow.bind(this));\n }else{\n this.getHeights(this.applyHeight.bind(this));\n }\n }\n\n /**\n * Manually determines if the first 2 elements are *NOT* stacked.\n * @private\n */\n _isStacked() {\n if (!this.$watched[0] || !this.$watched[1]) {\n return true;\n }\n return this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top;\n }\n\n /**\n * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n * @param {Function} cb - A non-optional callback to return the heights array to.\n * @returns {Array} heights - An array of heights of children within Equalizer container\n */\n getHeights(cb) {\n var heights = [];\n for(var i = 0, len = this.$watched.length; i < len; i++){\n this.$watched[i].style.height = 'auto';\n heights.push(this.$watched[i].offsetHeight);\n }\n cb(heights);\n }\n\n /**\n * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n * @param {Function} cb - A non-optional callback to return the heights array to.\n * @returns {Array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n */\n getHeightsByRow(cb) {\n var lastElTopOffset = (this.$watched.length ? this.$watched.first().offset().top : 0),\n groups = [],\n group = 0;\n //group by Row\n groups[group] = [];\n for(var i = 0, len = this.$watched.length; i < len; i++){\n this.$watched[i].style.height = 'auto';\n //maybe could use this.$watched[i].offsetTop\n var elOffsetTop = $(this.$watched[i]).offset().top;\n if (elOffsetTop!=lastElTopOffset) {\n group++;\n groups[group] = [];\n lastElTopOffset=elOffsetTop;\n }\n groups[group].push([this.$watched[i],this.$watched[i].offsetHeight]);\n }\n\n for (var j = 0, ln = groups.length; j < ln; j++) {\n var heights = $(groups[j]).map(function(){ return this[1]; }).get();\n var max = Math.max.apply(null, heights);\n groups[j].push(max);\n }\n cb(groups);\n }\n\n /**\n * Changes the CSS height property of each child in an Equalizer parent to match the tallest\n * @param {array} heights - An array of heights of children within Equalizer container\n * @fires Equalizer#preequalized\n * @fires Equalizer#postequalized\n */\n applyHeight(heights) {\n var max = Math.max.apply(null, heights);\n /**\n * Fires before the heights are applied\n * @event Equalizer#preequalized\n */\n this.$element.trigger('preequalized.zf.equalizer');\n\n this.$watched.css('height', max);\n\n /**\n * Fires when the heights have been applied\n * @event Equalizer#postequalized\n */\n this.$element.trigger('postequalized.zf.equalizer');\n }\n\n /**\n * Changes the CSS height property of each child in an Equalizer parent to match the tallest by row\n * @param {array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n * @fires Equalizer#preequalized\n * @fires Equalizer#preequalizedrow\n * @fires Equalizer#postequalizedrow\n * @fires Equalizer#postequalized\n */\n applyHeightByRow(groups) {\n /**\n * Fires before the heights are applied\n */\n this.$element.trigger('preequalized.zf.equalizer');\n for (var i = 0, len = groups.length; i < len ; i++) {\n var groupsILength = groups[i].length,\n max = groups[i][groupsILength - 1];\n if (groupsILength<=2) {\n $(groups[i][0][0]).css({'height':'auto'});\n continue;\n }\n /**\n * Fires before the heights per row are applied\n * @event Equalizer#preequalizedrow\n */\n this.$element.trigger('preequalizedrow.zf.equalizer');\n for (var j = 0, lenJ = (groupsILength-1); j < lenJ ; j++) {\n $(groups[i][j][0]).css({'height':max});\n }\n /**\n * Fires when the heights per row have been applied\n * @event Equalizer#postequalizedrow\n */\n this.$element.trigger('postequalizedrow.zf.equalizer');\n }\n /**\n * Fires when the heights have been applied\n */\n this.$element.trigger('postequalized.zf.equalizer');\n }\n\n /**\n * Destroys an instance of Equalizer.\n * @function\n */\n _destroy() {\n this._pauseEvents();\n this.$watched.css('height', 'auto');\n }\n}\n\n/**\n * Default settings for plugin\n */\nEqualizer.defaults = {\n /**\n * Enable height equalization when stacked on smaller screens.\n * @option\n * @type {boolean}\n * @default false\n */\n equalizeOnStack: false,\n /**\n * Enable height equalization row by row.\n * @option\n * @type {boolean}\n * @default false\n */\n equalizeByRow: false,\n /**\n * String representing the minimum breakpoint size the plugin should equalize heights on.\n * @option\n * @type {string}\n * @default ''\n */\n equalizeOn: ''\n};\n\nexport {Equalizer};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"]}
@@ -211,7 +211,7 @@ function (_Plugin) {
211
211
  */
212
212
  value: function _setup(element, options) {
213
213
  this.$element = element;
214
- this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Interchange.defaults, options);
214
+ this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Interchange.defaults, this.$element.data(), options);
215
215
  this.rules = [];
216
216
  this.currentPath = '';
217
217
  this.className = 'Interchange'; // ie9 back compat
@@ -237,6 +237,8 @@ function (_Plugin) {
237
237
  'id': id
238
238
  });
239
239
 
240
+ this._parseOptions();
241
+
240
242
  this._addBreakpoints();
241
243
 
242
244
  this._generateRules();
@@ -252,10 +254,10 @@ function (_Plugin) {
252
254
  }, {
253
255
  key: "_events",
254
256
  value: function _events() {
255
- var _this2 = this;
257
+ var _this = this;
256
258
 
257
259
  this.$element.off('resizeme.zf.trigger').on('resizeme.zf.trigger', function () {
258
- return _this2._reflow();
260
+ return _this._reflow();
259
261
  });
260
262
  }
261
263
  /**
@@ -283,6 +285,22 @@ function (_Plugin) {
283
285
  this.replace(match.path);
284
286
  }
285
287
  }
288
+ /**
289
+ * Check options valifity and set defaults for:
290
+ * - `data-interchange-type`: if set, enforce the type of replacement (auto, src, background or html)
291
+ * @function
292
+ * @private
293
+ */
294
+
295
+ }, {
296
+ key: "_parseOptions",
297
+ value: function _parseOptions() {
298
+ var types = ['auto', 'src', 'background', 'html'];
299
+ if (typeof this.options.type === 'undefined') this.options.type = 'auto';else if (types.indexOf(this.options.type) === -1) {
300
+ console.log("Warning: invalid value \"".concat(this.options.type, "\" for Interchange option \"type\""));
301
+ this.options.type = 'auto';
302
+ }
303
+ }
286
304
  /**
287
305
  * Gets the Foundation breakpoints and adds them to the Interchange.SPECIAL_QUERIES object.
288
306
  * @function
@@ -350,29 +368,34 @@ function (_Plugin) {
350
368
  }, {
351
369
  key: "replace",
352
370
  value: function replace(path) {
371
+ var _this2 = this;
372
+
353
373
  if (this.currentPath === path) return;
374
+ var trigger = 'replaced.zf.interchange';
375
+ var type = this.options.type;
354
376
 
355
- var _this = this,
356
- trigger = 'replaced.zf.interchange'; // Replacing images
377
+ if (type === 'auto') {
378
+ if (this.$element[0].nodeName === 'IMG') type = 'src';else if (path.match(/\.(gif|jpe?g|png|svg|tiff)([?#].*)?/i)) type = 'background';else type = 'html';
379
+ } // Replacing images
357
380
 
358
381
 
359
- if (this.$element[0].nodeName === 'IMG') {
382
+ if (type === 'src') {
360
383
  this.$element.attr('src', path).on('load', function () {
361
- _this.currentPath = path;
384
+ _this2.currentPath = path;
362
385
  }).trigger(trigger);
363
386
  } // Replacing background images
364
- else if (path.match(/\.(gif|jpg|jpeg|png|svg|tiff)([?#].*)?/i)) {
387
+ else if (type === 'background') {
365
388
  path = path.replace(/\(/g, '%28').replace(/\)/g, '%29');
366
389
  this.$element.css({
367
390
  'background-image': 'url(' + path + ')'
368
391
  }).trigger(trigger);
369
392
  } // Replacing HTML
370
- else {
393
+ else if (type === 'html') {
371
394
  jquery__WEBPACK_IMPORTED_MODULE_0___default.a.get(path, function (response) {
372
- _this.$element.html(response).trigger(trigger);
395
+ _this2.$element.html(response).trigger(trigger);
373
396
 
374
397
  jquery__WEBPACK_IMPORTED_MODULE_0___default()(response).foundation();
375
- _this.currentPath = path;
398
+ _this2.currentPath = path;
376
399
  });
377
400
  }
378
401
  /**
@@ -408,7 +431,19 @@ Interchange.defaults = {
408
431
  * @type {?array}
409
432
  * @default null
410
433
  */
411
- rules: null
434
+ rules: null,
435
+
436
+ /**
437
+ * Type of the responsive ressource to replace. It can take the following options:
438
+ * - `auto` (default): choose the type according to the element tag or the ressource extension,
439
+ * - `src`: replace the `[src]` attribute, recommended for images `<img>`.
440
+ * - `background`: replace the `background-image` CSS property.
441
+ * - `html`: replace the element content.
442
+ * @option
443
+ * @type {string}
444
+ * @default 'auto'
445
+ */
446
+ type: 'auto'
412
447
  };
413
448
  Interchange.SPECIAL_QUERIES = {
414
449
  'landscape': 'screen and (orientation: landscape)',
@@ -426,7 +461,7 @@ Interchange.SPECIAL_QUERIES = {
426
461
  /*! no static exports found */
427
462
  /***/ (function(module, exports, __webpack_require__) {
428
463
 
429
- module.exports = __webpack_require__(/*! /Users/ncoden/Documents/Documents/Projects/Programmation/Web/2016/Foundation/foundation-sites/js/entries/plugins/foundation.interchange.js */"./js/entries/plugins/foundation.interchange.js");
464
+ module.exports = __webpack_require__(/*! /Volumes/Data/Development/Foundation/foundation-sites/js/entries/plugins/foundation.interchange.js */"./js/entries/plugins/foundation.interchange.js");
430
465
 
431
466
 
432
467
  /***/ }),