foundation-rails 6.6.1.0 → 6.6.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (192) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/bower.json +2 -2
  4. data/lib/foundation/rails/version.rb +1 -1
  5. data/vendor/assets/js/foundation.cjs.js +164 -127
  6. data/vendor/assets/js/foundation.cjs.js.map +1 -1
  7. data/vendor/assets/js/foundation.es6.js +135 -102
  8. data/vendor/assets/js/foundation.es6.js.map +1 -1
  9. data/vendor/assets/js/foundation.esm.js +164 -127
  10. data/vendor/assets/js/foundation.esm.js.map +1 -1
  11. data/vendor/assets/js/foundation.js +159 -155
  12. data/vendor/assets/js/foundation.js.map +1 -1
  13. data/vendor/assets/js/foundation.min.js +1 -1
  14. data/vendor/assets/js/foundation.min.js.map +1 -1
  15. data/vendor/assets/js/plugins/foundation.abide.js +60 -44
  16. data/vendor/assets/js/plugins/foundation.abide.js.map +1 -1
  17. data/vendor/assets/js/plugins/foundation.abide.min.js +1 -1
  18. data/vendor/assets/js/plugins/foundation.abide.min.js.map +1 -1
  19. data/vendor/assets/js/plugins/foundation.accordion.js +12 -6
  20. data/vendor/assets/js/plugins/foundation.accordion.js.map +1 -1
  21. data/vendor/assets/js/plugins/foundation.accordion.min.js +1 -1
  22. data/vendor/assets/js/plugins/foundation.accordion.min.js.map +1 -1
  23. data/vendor/assets/js/plugins/foundation.accordionMenu.js +1 -3
  24. data/vendor/assets/js/plugins/foundation.accordionMenu.js.map +1 -1
  25. data/vendor/assets/js/plugins/foundation.accordionMenu.min.js +1 -1
  26. data/vendor/assets/js/plugins/foundation.accordionMenu.min.js.map +1 -1
  27. data/vendor/assets/js/plugins/foundation.core.js +9 -13
  28. data/vendor/assets/js/plugins/foundation.core.js.map +1 -1
  29. data/vendor/assets/js/plugins/foundation.core.min.js +1 -1
  30. data/vendor/assets/js/plugins/foundation.core.min.js.map +1 -1
  31. data/vendor/assets/js/plugins/foundation.drilldown.js +2 -2
  32. data/vendor/assets/js/plugins/foundation.drilldown.js.map +1 -1
  33. data/vendor/assets/js/plugins/foundation.drilldown.min.js +1 -1
  34. data/vendor/assets/js/plugins/foundation.drilldown.min.js.map +1 -1
  35. data/vendor/assets/js/plugins/foundation.dropdown.js +5 -8
  36. data/vendor/assets/js/plugins/foundation.dropdown.js.map +1 -1
  37. data/vendor/assets/js/plugins/foundation.dropdown.min.js +1 -1
  38. data/vendor/assets/js/plugins/foundation.dropdown.min.js.map +1 -1
  39. data/vendor/assets/js/plugins/foundation.dropdownMenu.js +7 -5
  40. data/vendor/assets/js/plugins/foundation.dropdownMenu.js.map +1 -1
  41. data/vendor/assets/js/plugins/foundation.dropdownMenu.min.js +1 -1
  42. data/vendor/assets/js/plugins/foundation.dropdownMenu.min.js.map +1 -1
  43. data/vendor/assets/js/plugins/foundation.equalizer.js +1 -1
  44. data/vendor/assets/js/plugins/foundation.interchange.js +320 -6
  45. data/vendor/assets/js/plugins/foundation.interchange.js.map +1 -1
  46. data/vendor/assets/js/plugins/foundation.interchange.min.js +1 -1
  47. data/vendor/assets/js/plugins/foundation.interchange.min.js.map +1 -1
  48. data/vendor/assets/js/plugins/foundation.magellan.js +2 -7
  49. data/vendor/assets/js/plugins/foundation.magellan.js.map +1 -1
  50. data/vendor/assets/js/plugins/foundation.magellan.min.js +1 -1
  51. data/vendor/assets/js/plugins/foundation.magellan.min.js.map +1 -1
  52. data/vendor/assets/js/plugins/foundation.offcanvas.js +1 -1
  53. data/vendor/assets/js/plugins/foundation.orbit.js +1 -1
  54. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.js +4 -14
  55. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.js.map +1 -1
  56. data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.min.js.map +1 -1
  57. data/vendor/assets/js/plugins/foundation.responsiveMenu.js +1 -1
  58. data/vendor/assets/js/plugins/foundation.responsiveToggle.js +1 -1
  59. data/vendor/assets/js/plugins/foundation.reveal.js +2 -2
  60. data/vendor/assets/js/plugins/foundation.reveal.js.map +1 -1
  61. data/vendor/assets/js/plugins/foundation.reveal.min.js.map +1 -1
  62. data/vendor/assets/js/plugins/foundation.slider.js +4 -8
  63. data/vendor/assets/js/plugins/foundation.slider.js.map +1 -1
  64. data/vendor/assets/js/plugins/foundation.slider.min.js +1 -1
  65. data/vendor/assets/js/plugins/foundation.slider.min.js.map +1 -1
  66. data/vendor/assets/js/plugins/foundation.smoothScroll.js +1 -1
  67. data/vendor/assets/js/plugins/foundation.sticky.js +1 -2
  68. data/vendor/assets/js/plugins/foundation.sticky.js.map +1 -1
  69. data/vendor/assets/js/plugins/foundation.sticky.min.js.map +1 -1
  70. data/vendor/assets/js/plugins/foundation.tabs.js +1 -1
  71. data/vendor/assets/js/plugins/foundation.toggler.js +1 -1
  72. data/vendor/assets/js/plugins/foundation.tooltip.js +2 -4
  73. data/vendor/assets/js/plugins/foundation.tooltip.js.map +1 -1
  74. data/vendor/assets/js/plugins/foundation.tooltip.min.js +1 -1
  75. data/vendor/assets/js/plugins/foundation.tooltip.min.js.map +1 -1
  76. data/vendor/assets/js/plugins/foundation.util.box.js +61 -63
  77. data/vendor/assets/js/plugins/foundation.util.box.js.map +1 -1
  78. data/vendor/assets/js/plugins/foundation.util.box.min.js +1 -1
  79. data/vendor/assets/js/plugins/foundation.util.box.min.js.map +1 -1
  80. data/vendor/assets/js/plugins/foundation.util.imageLoader.js +1 -1
  81. data/vendor/assets/js/plugins/foundation.util.keyboard.js +1 -1
  82. data/vendor/assets/js/plugins/foundation.util.mediaQuery.js +1 -1
  83. data/vendor/assets/js/plugins/foundation.util.motion.js +5 -1
  84. data/vendor/assets/js/plugins/foundation.util.motion.js.map +1 -1
  85. data/vendor/assets/js/plugins/foundation.util.motion.min.js +1 -1
  86. data/vendor/assets/js/plugins/foundation.util.motion.min.js.map +1 -1
  87. data/vendor/assets/js/plugins/foundation.util.nest.js +5 -2
  88. data/vendor/assets/js/plugins/foundation.util.nest.js.map +1 -1
  89. data/vendor/assets/js/plugins/foundation.util.nest.min.js +1 -1
  90. data/vendor/assets/js/plugins/foundation.util.nest.min.js.map +1 -1
  91. data/vendor/assets/js/plugins/foundation.util.timer.js +1 -1
  92. data/vendor/assets/js/plugins/foundation.util.touch.js +1 -1
  93. data/vendor/assets/js/plugins/foundation.util.triggers.js +1 -1
  94. data/vendor/assets/scss/_global.scss +2 -2
  95. data/vendor/assets/scss/components/_accordion.scss +2 -2
  96. data/vendor/assets/scss/components/_badge.scss +2 -2
  97. data/vendor/assets/scss/components/_breadcrumbs.scss +2 -2
  98. data/vendor/assets/scss/components/_button-group.scss +11 -6
  99. data/vendor/assets/scss/components/_button.scss +2 -2
  100. data/vendor/assets/scss/components/_callout.scss +2 -2
  101. data/vendor/assets/scss/components/_card.scss +2 -2
  102. data/vendor/assets/scss/components/_close-button.scss +2 -2
  103. data/vendor/assets/scss/components/_drilldown.scss +2 -2
  104. data/vendor/assets/scss/components/_dropdown-menu.scss +2 -2
  105. data/vendor/assets/scss/components/_dropdown.scss +2 -2
  106. data/vendor/assets/scss/components/_flex.scss +2 -2
  107. data/vendor/assets/scss/components/_float.scss +2 -2
  108. data/vendor/assets/scss/components/_label.scss +2 -2
  109. data/vendor/assets/scss/components/_media-object.scss +2 -2
  110. data/vendor/assets/scss/components/_menu.scss +2 -2
  111. data/vendor/assets/scss/components/_off-canvas.scss +2 -2
  112. data/vendor/assets/scss/components/_orbit.scss +2 -2
  113. data/vendor/assets/scss/components/_pagination.scss +2 -2
  114. data/vendor/assets/scss/components/_progress-bar.scss +2 -2
  115. data/vendor/assets/scss/components/_responsive-embed.scss +2 -2
  116. data/vendor/assets/scss/components/_reveal.scss +2 -2
  117. data/vendor/assets/scss/components/_slider.scss +2 -2
  118. data/vendor/assets/scss/components/_sticky.scss +2 -2
  119. data/vendor/assets/scss/components/_switch.scss +2 -2
  120. data/vendor/assets/scss/components/_table.scss +2 -2
  121. data/vendor/assets/scss/components/_tabs.scss +2 -2
  122. data/vendor/assets/scss/components/_thumbnail.scss +2 -2
  123. data/vendor/assets/scss/components/_title-bar.scss +2 -2
  124. data/vendor/assets/scss/components/_tooltip.scss +2 -2
  125. data/vendor/assets/scss/components/_top-bar.scss +2 -2
  126. data/vendor/assets/scss/components/_visibility.scss +3 -3
  127. data/vendor/assets/scss/forms/_checkbox.scss +2 -2
  128. data/vendor/assets/scss/forms/_error.scss +2 -2
  129. data/vendor/assets/scss/forms/_fieldset.scss +2 -2
  130. data/vendor/assets/scss/forms/_forms.scss +2 -2
  131. data/vendor/assets/scss/forms/_help-text.scss +2 -2
  132. data/vendor/assets/scss/forms/_input-group.scss +2 -2
  133. data/vendor/assets/scss/forms/_label.scss +2 -2
  134. data/vendor/assets/scss/forms/_meter.scss +2 -2
  135. data/vendor/assets/scss/forms/_progress.scss +2 -2
  136. data/vendor/assets/scss/forms/_range.scss +2 -2
  137. data/vendor/assets/scss/forms/_select.scss +2 -2
  138. data/vendor/assets/scss/forms/_text.scss +2 -2
  139. data/vendor/assets/scss/foundation.scss +3 -3
  140. data/vendor/assets/scss/grid/_classes.scss +2 -2
  141. data/vendor/assets/scss/grid/_column.scss +2 -2
  142. data/vendor/assets/scss/grid/_flex-grid.scss +2 -2
  143. data/vendor/assets/scss/grid/_grid.scss +2 -2
  144. data/vendor/assets/scss/grid/_gutter.scss +2 -2
  145. data/vendor/assets/scss/grid/_layout.scss +2 -2
  146. data/vendor/assets/scss/grid/_position.scss +2 -2
  147. data/vendor/assets/scss/grid/_row.scss +2 -2
  148. data/vendor/assets/scss/grid/_size.scss +2 -2
  149. data/vendor/assets/scss/prototype/_arrow.scss +2 -2
  150. data/vendor/assets/scss/prototype/_border-box.scss +2 -2
  151. data/vendor/assets/scss/prototype/_border-none.scss +2 -2
  152. data/vendor/assets/scss/prototype/_bordered.scss +2 -2
  153. data/vendor/assets/scss/prototype/_box.scss +2 -2
  154. data/vendor/assets/scss/prototype/_display.scss +2 -2
  155. data/vendor/assets/scss/prototype/_font-styling.scss +2 -2
  156. data/vendor/assets/scss/prototype/_list-style-type.scss +2 -2
  157. data/vendor/assets/scss/prototype/_overflow.scss +2 -2
  158. data/vendor/assets/scss/prototype/_position.scss +2 -2
  159. data/vendor/assets/scss/prototype/_prototype.scss +2 -2
  160. data/vendor/assets/scss/prototype/_rotate.scss +2 -2
  161. data/vendor/assets/scss/prototype/_rounded.scss +2 -2
  162. data/vendor/assets/scss/prototype/_separator.scss +2 -2
  163. data/vendor/assets/scss/prototype/_shadow.scss +2 -2
  164. data/vendor/assets/scss/prototype/_sizing.scss +2 -2
  165. data/vendor/assets/scss/prototype/_spacing.scss +2 -2
  166. data/vendor/assets/scss/prototype/_text-decoration.scss +2 -2
  167. data/vendor/assets/scss/prototype/_text-transformation.scss +2 -2
  168. data/vendor/assets/scss/prototype/_text-utilities.scss +2 -2
  169. data/vendor/assets/scss/typography/_alignment.scss +2 -2
  170. data/vendor/assets/scss/typography/_base.scss +2 -2
  171. data/vendor/assets/scss/typography/_helpers.scss +2 -2
  172. data/vendor/assets/scss/typography/_print.scss +2 -2
  173. data/vendor/assets/scss/typography/_typography.scss +2 -2
  174. data/vendor/assets/scss/util/_breakpoint.scss +3 -3
  175. data/vendor/assets/scss/util/_color.scss +2 -2
  176. data/vendor/assets/scss/util/_direction.scss +2 -2
  177. data/vendor/assets/scss/util/_math.scss +2 -2
  178. data/vendor/assets/scss/util/_mixins.scss +2 -2
  179. data/vendor/assets/scss/util/_selector.scss +2 -2
  180. data/vendor/assets/scss/util/_typography.scss +2 -2
  181. data/vendor/assets/scss/util/_unit.scss +2 -2
  182. data/vendor/assets/scss/util/_util.scss +2 -2
  183. data/vendor/assets/scss/util/_value.scss +2 -2
  184. data/vendor/assets/scss/xy-grid/_cell.scss +2 -2
  185. data/vendor/assets/scss/xy-grid/_classes.scss +8 -8
  186. data/vendor/assets/scss/xy-grid/_collapse.scss +2 -2
  187. data/vendor/assets/scss/xy-grid/_grid.scss +2 -2
  188. data/vendor/assets/scss/xy-grid/_gutters.scss +2 -2
  189. data/vendor/assets/scss/xy-grid/_layout.scss +2 -2
  190. data/vendor/assets/scss/xy-grid/_position.scss +2 -2
  191. data/vendor/assets/scss/xy-grid/_xy-grid.scss +2 -2
  192. metadata +3 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/entries/plugins/foundation.core.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.core.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.core.plugin.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.core.utils.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.util.mediaQuery.js","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","addToJquery","$","Plugin","rtl","GetYoDigits","transitionend","RegExpEscape","onLoad","window","FOUNDATION_VERSION","version","_plugins","_uuids","plugin","name","className","functionName","attrName","hyphenate","registerPlugin","pluginName","constructor","toLowerCase","uuid","$element","attr","data","trigger","push","unregisterPlugin","splice","indexOf","removeAttr","removeData","prop","reInit","plugins","isJQ","each","_init","type","_this","fns","plgs","forEach","p","foundation","Object","keys","err","console","error","reflow","elem","i","$elem","find","addBack","filter","$el","opts","thing","split","e","opt","map","el","trim","parseValue","er","getFnName","method","$noJS","length","removeClass","MediaQuery","args","Array","prototype","slice","call","arguments","plugClass","apply","ReferenceError","TypeError","fn","util","throttle","func","delay","timer","context","setTimeout","Date","now","getTime","vendors","requestAnimationFrame","vp","cancelAnimationFrame","test","navigator","userAgent","lastTime","callback","nextTime","Math","max","clearTimeout","performance","start","Function","bind","oThis","aArgs","fToBind","fNOP","fBound","concat","funcNameRegex","results","exec","toString","str","isNaN","parseFloat","replace","element","options","_setup","getPluginName","_destroy","obj","namespace","chars","charsLength","floor","random","transitions","document","createElement","end","t","style","triggerHandler","handler","didLoad","readyState","eventType","cb","one","ignoreMousedisappear","ignoreLeaveWindow","ignoreReappear","leaveEventHandler","eLeave","rest","relatedTarget","leaveEventDebouncer","hasFocus","reenterEventHandler","eReenter","currentTarget","has","target","defaultQueries","landscape","portrait","retina","matchMedia","styleMedia","media","script","getElementsByTagName","info","id","head","appendChild","parentNode","insertBefore","getComputedStyle","currentStyle","matchMedium","text","styleSheet","cssText","textContent","width","matches","queries","current","isInitialized","self","$meta","appendTo","extractedStyles","css","namedQueries","parseStyleToObject","key","hasOwnProperty","value","_getCurrentSize","_watcher","_reInit","atLeast","size","query","get","only","upTo","nextSize","next","is","parts","bpSize","bpModifier","Error","queryIndex","findIndex","q","_getQueryName","nextQuery","matched","off","on","newSize","currentSize","styleObject","reduce","ret","param","val","decodeURIComponent","isArray"],"mappings":"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","file":"foundation.core.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.core\"] = factory(require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"] = factory(root[\"jQuery\"]);\n})(window, function(__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 = 0);\n","// --- Foundation Core API ---\n// Initialize Foundation and add some utilities to its public API for backward compatibility.\n// Please note that every utility do not have to be added to the core API.\nimport $ from 'jquery';\nimport { Foundation } from '../../foundation.core';\nimport { Plugin } from '../../foundation.core.plugin';\nimport { rtl, GetYoDigits, transitionend, RegExpEscape, onLoad } from '../../foundation.core.utils';\n\nFoundation.addToJquery($);\n\n// Every plugin depends on plugin now, we can include that on the core for the\n// script inclusion path.\nFoundation.Plugin = Plugin;\n\n// These are now separated out, but historically were a part of this module,\n// and since this is here for backwards compatibility we include them in\n// this entry.\nFoundation.rtl = rtl;\nFoundation.GetYoDigits = GetYoDigits;\nFoundation.transitionend = transitionend;\nFoundation.RegExpEscape = RegExpEscape;\nFoundation.onLoad = onLoad;\n\nwindow.Foundation = Foundation;\n\n// --- Foundation Core exports ---\n// Export \"Plugin\" and all core utilities, since the `foundation.core` entry plays the role of\n// all core source files.\n\nexport { Foundation };\nexport * from '../../foundation.core.plugin';\nexport * from '../../foundation.core.utils';\n","\"use strict\";\n\nimport $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nvar FOUNDATION_VERSION = '6.6.1';\n\n// Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\nvar Foundation = {\n version: FOUNDATION_VERSION,\n\n /**\n * Stores initialized plugins.\n */\n _plugins: {},\n\n /**\n * Stores generated unique ids for plugin instances\n */\n _uuids: [],\n\n /**\n * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n * @param {Object} plugin - The constructor of the plugin.\n */\n plugin: function(plugin, name) {\n // Object key to use when adding to global Foundation object\n // Examples: Foundation.Reveal, Foundation.OffCanvas\n var className = (name || functionName(plugin));\n // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n // Examples: data-reveal, data-off-canvas\n var attrName = hyphenate(className);\n\n // Add to the Foundation object and the plugins list (for reflowing)\n this._plugins[attrName] = this[className] = plugin;\n },\n /**\n * @function\n * Populates the _uuids array with pointers to each individual plugin instance.\n * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n * Also fires the initialization event for each plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @param {String} name - the name of the plugin, passed as a camelCased string.\n * @fires Plugin#init\n */\n registerPlugin: function(plugin, name){\n var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n plugin.uuid = GetYoDigits(6, pluginName);\n\n if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }\n if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n plugin.$element.trigger(`init.zf.${pluginName}`);\n\n this._uuids.push(plugin.uuid);\n\n return;\n },\n /**\n * @function\n * Removes the plugins uuid from the _uuids array.\n * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n * Also fires the destroyed event for the plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @fires Plugin#destroyed\n */\n unregisterPlugin: function(plugin){\n var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger(`destroyed.zf.${pluginName}`);\n for(var prop in plugin){\n plugin[prop] = null;//clean up script to prep for garbage collection.\n }\n return;\n },\n\n /**\n * @function\n * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n * @default If no argument is passed, reflow all currently active plugins.\n */\n reInit: function(plugins){\n var isJQ = plugins instanceof $;\n try{\n if(isJQ){\n plugins.each(function(){\n $(this).data('zfPlugin')._init();\n });\n }else{\n var type = typeof plugins,\n _this = this,\n fns = {\n 'object': function(plgs){\n plgs.forEach(function(p){\n p = hyphenate(p);\n $('[data-'+ p +']').foundation('_init');\n });\n },\n 'string': function(){\n plugins = hyphenate(plugins);\n $('[data-'+ plugins +']').foundation('_init');\n },\n 'undefined': function(){\n this['object'](Object.keys(_this._plugins));\n }\n };\n fns[type](plugins);\n }\n }catch(err){\n console.error(err);\n }finally{\n return plugins;\n }\n },\n\n /**\n * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n */\n reflow: function(elem, plugins) {\n\n // If plugins is undefined, just grab everything\n if (typeof plugins === 'undefined') {\n plugins = Object.keys(this._plugins);\n }\n // If plugins is a string, convert it to an array with one item\n else if (typeof plugins === 'string') {\n plugins = [plugins];\n }\n\n var _this = this;\n\n // Iterate through each plugin\n $.each(plugins, function(i, name) {\n // Get the current plugin\n var plugin = _this._plugins[name];\n\n // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']').filter(function () {\n return typeof $(this).data(\"zfPlugin\") === 'undefined';\n });\n\n // For each plugin found, initialize it\n $elem.each(function() {\n var $el = $(this),\n opts = { reflow: true };\n\n if($el.attr('data-options')){\n var thing = $el.attr('data-options').split(';').forEach(function(e, i){\n var opt = e.split(':').map(function(el){ return el.trim(); });\n if(opt[0]) opts[opt[0]] = parseValue(opt[1]);\n });\n }\n try{\n $el.data('zfPlugin', new plugin($(this), opts));\n }catch(er){\n console.error(er);\n }finally{\n return;\n }\n });\n });\n },\n getFnName: functionName,\n\n addToJquery: function($) {\n // TODO: consider not making this a jQuery function\n // TODO: need way to reflow vs. re-initialize\n /**\n * The Foundation jQuery method.\n * @param {String|Array} method - An action to perform on the current jQuery object.\n */\n var foundation = function(method) {\n var type = typeof method,\n $noJS = $('.no-js');\n\n if($noJS.length){\n $noJS.removeClass('no-js');\n }\n\n if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.\n MediaQuery._init();\n Foundation.reflow(this);\n }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins\n var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary\n var plugClass = this.data('zfPlugin');//determine the class of plugin\n\n if(typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined'){//make sure both the class and method exist\n if(this.length === 1){//if there's only one, call it directly.\n plugClass[method].apply(plugClass, args);\n }else{\n this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each\n plugClass[method].apply($(el).data('zfPlugin'), args);\n });\n }\n }else{//error for no class or no method\n throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n }\n }else{//error for invalid argument type\n throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);\n }\n return this;\n };\n $.fn.foundation = foundation;\n return $;\n }\n};\n\nFoundation.util = {\n /**\n * Function for applying a debounce effect to a function call.\n * @function\n * @param {Function} func - Function to be called at end of timeout.\n * @param {Number} delay - Time in ms to delay the call of `func`.\n * @returns function\n */\n throttle: function (func, delay) {\n var timer = null;\n\n return function () {\n var context = this, args = arguments;\n\n if (timer === null) {\n timer = setTimeout(function () {\n func.apply(context, args);\n timer = null;\n }, delay);\n }\n };\n }\n};\n\nwindow.Foundation = Foundation;\n\n// Polyfill for requestAnimationFrame\n(function() {\n if (!Date.now || !window.Date.now)\n window.Date.now = Date.now = function() { return new Date().getTime(); };\n\n var vendors = ['webkit', 'moz'];\n for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n var vp = vendors[i];\n window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];\n window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']\n || window[vp+'CancelRequestAnimationFrame']);\n }\n if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)\n || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n var lastTime = 0;\n window.requestAnimationFrame = function(callback) {\n var now = Date.now();\n var nextTime = Math.max(lastTime + 16, now);\n return setTimeout(function() { callback(lastTime = nextTime); },\n nextTime - now);\n };\n window.cancelAnimationFrame = clearTimeout;\n }\n /**\n * Polyfill for performance.now, required by rAF\n */\n if(!window.performance || !window.performance.now){\n window.performance = {\n start: Date.now(),\n now: function(){ return Date.now() - this.start; }\n };\n }\n})();\nif (!Function.prototype.bind) {\n Function.prototype.bind = function(oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function() {},\n fBound = function() {\n return fToBind.apply(this instanceof fNOP\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n fBound.prototype = new fNOP();\n\n return fBound;\n };\n}\n// Polyfill to get the name of a function in IE9\nfunction functionName(fn) {\n if (typeof Function.prototype.name === 'undefined') {\n var funcNameRegex = /function\\s([^(]{1,})\\(/;\n var results = (funcNameRegex).exec((fn).toString());\n return (results && results.length > 1) ? results[1].trim() : \"\";\n }\n else if (typeof fn.prototype === 'undefined') {\n return fn.constructor.name;\n }\n else {\n return fn.prototype.constructor.name;\n }\n}\nfunction parseValue(str){\n if ('true' === str) return true;\n else if ('false' === str) return false;\n else if (!isNaN(str * 1)) return parseFloat(str);\n return str;\n}\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport {Foundation};\n","'use strict';\n\nimport $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\n\n// Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\nclass Plugin {\n\n constructor(element, options) {\n this._setup(element, options);\n var pluginName = getPluginName(this);\n this.uuid = GetYoDigits(6, pluginName);\n\n if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); }\n if(!this.$element.data('zfPlugin')){ this.$element.data('zfPlugin', this); }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n this.$element.trigger(`init.zf.${pluginName}`);\n }\n\n destroy() {\n this._destroy();\n var pluginName = getPluginName(this);\n this.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger(`destroyed.zf.${pluginName}`);\n for(var prop in this){\n this[prop] = null;//clean up script to prep for garbage collection.\n }\n }\n}\n\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n if(typeof(obj.constructor.name) !== 'undefined') {\n return hyphenate(obj.constructor.name);\n } else {\n return hyphenate(obj.className);\n }\n}\n\nexport {Plugin};\n","\"use strict\";\n\nimport $ from 'jquery';\n\n// Core Foundation Utilities, utilized in a number of places.\n\n /**\n * Returns a boolean for RTL support\n */\nfunction rtl() {\n return $('html').attr('dir') === 'rtl';\n}\n\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\nfunction GetYoDigits(length = 6, namespace){\n let str = '';\n const chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n const charsLength = chars.length;\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * charsLength)];\n }\n return namespace ? `${str}-${namespace}` : str;\n}\n\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\nfunction RegExpEscape(str){\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem){\n var transitions = {\n 'transition': 'transitionend',\n 'WebkitTransition': 'webkitTransitionEnd',\n 'MozTransition': 'transitionend',\n 'OTransition': 'otransitionend'\n };\n var elem = document.createElement('div'),\n end;\n\n for (var t in transitions){\n if (typeof elem.style[t] !== 'undefined'){\n end = transitions[t];\n }\n }\n if(end){\n return end;\n }else{\n end = setTimeout(function(){\n $elem.triggerHandler('transitionend', [$elem]);\n }, 1);\n return 'transitionend';\n }\n}\n\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\nfunction onLoad($elem, handler) {\n const didLoad = document.readyState === 'complete';\n const eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n const cb = () => $elem.triggerHandler(eventType);\n\n if ($elem) {\n if (handler) $elem.one(eventType, handler);\n\n if (didLoad)\n setTimeout(cb);\n else\n $(window).one('load', cb);\n }\n\n return eventType;\n}\n\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n * (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n * outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\nfunction ignoreMousedisappear(handler, { ignoreLeaveWindow = false, ignoreReappear = false } = {}) {\n return function leaveEventHandler(eLeave, ...rest) {\n const callback = handler.bind(this, eLeave, ...rest);\n\n // The mouse left: call the given callback if the mouse entered elsewhere\n if (eLeave.relatedTarget !== null) {\n return callback();\n }\n\n // Otherwise, check if the mouse actually left the window.\n // In firefox if the user switched between windows, the window sill have the focus by the time\n // the event is triggered. We have to debounce the event to test this case.\n setTimeout(function leaveEventDebouncer() {\n if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n return callback();\n }\n\n // Otherwise, wait for the mouse to reeapear outside of the element,\n if (!ignoreReappear) {\n $(document).one('mouseenter', function reenterEventHandler(eReenter) {\n if (!$(eLeave.currentTarget).has(eReenter.target).length) {\n // Fill where the mouse finally entered.\n eLeave.relatedTarget = eReenter.target;\n callback();\n }\n });\n }\n\n }, 0);\n };\n}\n\n\nexport { rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear };\n","'use strict';\n\nimport $ from 'jquery';\n\n// Default set of media queries\nconst defaultQueries = {\n 'default' : 'only screen',\n landscape : 'only screen and (orientation: landscape)',\n portrait : 'only screen and (orientation: portrait)',\n retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n 'only screen and (min--moz-device-pixel-ratio: 2),' +\n 'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n 'only screen and (min-device-pixel-ratio: 2),' +\n 'only screen and (min-resolution: 192dpi),' +\n 'only screen and (min-resolution: 2dppx)'\n };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright © 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n \"use strict\";\n\n // For browsers that support matchMedium api such as IE 9 and webkit\n var styleMedia = (window.styleMedia || window.media);\n\n // For those that don't support matchMedium\n if (!styleMedia) {\n var style = document.createElement('style'),\n script = document.getElementsByTagName('script')[0],\n info = null;\n\n style.type = 'text/css';\n style.id = 'matchmediajs-test';\n\n if (!script) {\n document.head.appendChild(style);\n } else {\n script.parentNode.insertBefore(style, script);\n }\n\n // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n styleMedia = {\n matchMedium: function (media) {\n var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n if (style.styleSheet) {\n style.styleSheet.cssText = text;\n } else {\n style.textContent = text;\n }\n\n // Test if media query is true or false\n return info.width === '1px';\n }\n };\n }\n\n return function(media) {\n return {\n matches: styleMedia.matchMedium(media || 'all'),\n media: media || 'all'\n };\n };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n queries: [],\n\n current: '',\n\n /**\n * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n * @function\n * @private\n */\n _init() {\n\n // make sure the initialization is only done once when calling _init() several times\n if (this.isInitialized === true) {\n return;\n } else {\n this.isInitialized = true;\n }\n\n var self = this;\n var $meta = $('meta.foundation-mq');\n if(!$meta.length){\n $('<meta class=\"foundation-mq\">').appendTo(document.head);\n }\n\n var extractedStyles = $('.foundation-mq').css('font-family');\n var namedQueries;\n\n namedQueries = parseStyleToObject(extractedStyles);\n\n self.queries = []; // reset\n\n for (var key in namedQueries) {\n if(namedQueries.hasOwnProperty(key)) {\n self.queries.push({\n name: key,\n value: `only screen and (min-width: ${namedQueries[key]})`\n });\n }\n }\n\n this.current = this._getCurrentSize();\n\n this._watcher();\n },\n\n /**\n * Reinitializes the media query helper.\n * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n * @function\n * @private\n */\n _reInit() {\n this.isInitialized = false;\n this._init();\n },\n\n /**\n * Checks if the screen is at least as wide as a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n */\n atLeast(size) {\n var query = this.get(size);\n\n if (query) {\n return window.matchMedia(query).matches;\n }\n\n return false;\n },\n\n /**\n * Checks if the screen is within the given breakpoint.\n * If smaller than the breakpoint of larger than its upper limit it returns false.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n */\n only(size) {\n return size === this._getCurrentSize();\n },\n\n /**\n * Checks if the screen is within a breakpoint or smaller.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n */\n upTo(size) {\n const nextSize = this.next(size);\n\n // If the next breakpoint does not match, the screen is smaller than\n // the upper limit of this breakpoint.\n if (nextSize) {\n return !this.atLeast(nextSize);\n }\n\n // If there is no next breakpoint, the \"size\" breakpoint does not have\n // an upper limit and the screen will always be within it or smaller.\n return true;\n },\n\n /**\n * Checks if the screen matches to a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n */\n is(size) {\n const parts = size.trim().split(' ').filter(p => !!p.length);\n const [bpSize, bpModifier = ''] = parts;\n\n // Only the breakpont\n if (bpModifier === 'only') {\n return this.only(bpSize);\n }\n // At least the breakpoint (included)\n if (!bpModifier || bpModifier === 'up') {\n return this.atLeast(bpSize);\n }\n // Up to the breakpoint (included)\n if (bpModifier === 'down') {\n return this.upTo(bpSize);\n }\n\n throw new Error(`\n Invalid breakpoint passed to MediaQuery.is().\n Expected a breakpoint name formatted like \"<size> <modifier>\", got \"${size}\".\n `);\n },\n\n /**\n * Gets the media query of a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to get.\n * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n */\n get(size) {\n for (var i in this.queries) {\n if(this.queries.hasOwnProperty(i)) {\n var query = this.queries[i];\n if (size === query.name) return query.value;\n }\n }\n\n return null;\n },\n\n /**\n * Get the breakpoint following the given breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint.\n * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n */\n next(size) {\n const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n if (queryIndex === -1) {\n throw new Error(`\n Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n Ensure it is present in your Sass \"$breakpoints\" setting.\n `);\n }\n\n const nextQuery = this.queries[queryIndex + 1];\n return nextQuery ? nextQuery.name : null;\n },\n\n /**\n * Returns the name of the breakpoint related to the given value.\n * @function\n * @private\n * @param {String|Object} value - Breakpoint name or query object.\n * @returns {String} Name of the breakpoint.\n */\n _getQueryName(value) {\n if (typeof value === 'string')\n return value;\n if (typeof value === 'object')\n return value.name;\n throw new TypeError(`\n Invalid value passed to MediaQuery._getQueryName().\n Expected a breakpoint name (String) or a breakpoint query (Object), got \"${value}\" (${typeof value})\n `);\n },\n\n /**\n * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n * @function\n * @private\n * @returns {String} Name of the current breakpoint.\n */\n _getCurrentSize() {\n var matched;\n\n for (var i = 0; i < this.queries.length; i++) {\n var query = this.queries[i];\n\n if (window.matchMedia(query.value).matches) {\n matched = query;\n }\n }\n\n return matched && this._getQueryName(matched);\n },\n\n /**\n * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n * @function\n * @private\n */\n _watcher() {\n $(window).off('resize.zf.mediaquery').on('resize.zf.mediaquery', () => {\n var newSize = this._getCurrentSize(), currentSize = this.current;\n\n if (newSize !== currentSize) {\n // Change the current media query\n this.current = newSize;\n\n // Broadcast the media query change on the window\n $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n }\n });\n }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n var styleObject = {};\n\n if (typeof str !== 'string') {\n return styleObject;\n }\n\n str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n if (!str) {\n return styleObject;\n }\n\n styleObject = str.split('&').reduce(function(ret, param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = parts[0];\n var val = parts[1];\n key = decodeURIComponent(key);\n\n // missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n if (!ret.hasOwnProperty(key)) {\n ret[key] = val;\n } else if (Array.isArray(ret[key])) {\n ret[key].push(val);\n } else {\n ret[key] = [ret[key], val];\n }\n return ret;\n }, {});\n\n return styleObject;\n}\n\nexport {MediaQuery};\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]/./js/entries/plugins/foundation.core.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.core.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.core.plugin.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.core.utils.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.util.mediaQuery.js","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","addToJquery","$","Plugin","rtl","GetYoDigits","transitionend","RegExpEscape","onLoad","window","FOUNDATION_VERSION","version","_plugins","_uuids","plugin","name","className","functionName","attrName","hyphenate","registerPlugin","pluginName","constructor","toLowerCase","uuid","$element","attr","data","trigger","push","unregisterPlugin","splice","indexOf","removeAttr","removeData","prop","reInit","plugins","isJQ","each","_init","type","_this","fns","plgs","forEach","p","foundation","Object","keys","err","console","error","reflow","elem","i","$elem","find","addBack","filter","$el","opts","split","option","_index","opt","map","el","trim","parseValue","er","getFnName","method","$noJS","length","removeClass","MediaQuery","args","Array","prototype","slice","call","arguments","plugClass","apply","ReferenceError","TypeError","fn","util","throttle","func","delay","timer","context","setTimeout","Date","now","getTime","vendors","requestAnimationFrame","vp","cancelAnimationFrame","test","navigator","userAgent","lastTime","callback","nextTime","Math","max","clearTimeout","performance","start","Function","bind","oThis","aArgs","fToBind","fNOP","fBound","concat","funcNameRegex","results","exec","toString","str","isNaN","parseFloat","replace","element","options","_setup","getPluginName","_destroy","obj","namespace","chars","charsLength","floor","random","transitions","document","createElement","end","transition","style","triggerHandler","handler","didLoad","readyState","eventType","cb","one","ignoreMousedisappear","ignoreLeaveWindow","ignoreReappear","leaveEventHandler","eLeave","rest","relatedTarget","leaveEventDebouncer","hasFocus","reenterEventHandler","eReenter","currentTarget","has","target","defaultQueries","landscape","portrait","retina","matchMedia","styleMedia","media","script","getElementsByTagName","info","id","head","appendChild","parentNode","insertBefore","getComputedStyle","currentStyle","matchMedium","text","styleSheet","cssText","textContent","width","matches","queries","current","isInitialized","self","$meta","appendTo","extractedStyles","css","namedQueries","parseStyleToObject","key","hasOwnProperty","value","_getCurrentSize","_watcher","_reInit","atLeast","size","query","get","only","upTo","nextSize","next","is","parts","bpSize","bpModifier","Error","queryIndex","findIndex","q","_getQueryName","nextQuery","matched","off","on","newSize","currentSize","styleObject","reduce","ret","param","val","decodeURIComponent","isArray"],"mappings":"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","file":"foundation.core.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.core\"] = factory(require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"] = factory(root[\"jQuery\"]);\n})(window, function(__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 = 0);\n","// --- Foundation Core API ---\n// Initialize Foundation and add some utilities to its public API for backward compatibility.\n// Please note that every utility do not have to be added to the core API.\nimport $ from 'jquery';\nimport { Foundation } from '../../foundation.core';\nimport { Plugin } from '../../foundation.core.plugin';\nimport { rtl, GetYoDigits, transitionend, RegExpEscape, onLoad } from '../../foundation.core.utils';\n\nFoundation.addToJquery($);\n\n// Every plugin depends on plugin now, we can include that on the core for the\n// script inclusion path.\nFoundation.Plugin = Plugin;\n\n// These are now separated out, but historically were a part of this module,\n// and since this is here for backwards compatibility we include them in\n// this entry.\nFoundation.rtl = rtl;\nFoundation.GetYoDigits = GetYoDigits;\nFoundation.transitionend = transitionend;\nFoundation.RegExpEscape = RegExpEscape;\nFoundation.onLoad = onLoad;\n\nwindow.Foundation = Foundation;\n\n// --- Foundation Core exports ---\n// Export \"Plugin\" and all core utilities, since the `foundation.core` entry plays the role of\n// all core source files.\n\nexport { Foundation };\nexport * from '../../foundation.core.plugin';\nexport * from '../../foundation.core.utils';\n","\"use strict\";\n\nimport $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nvar FOUNDATION_VERSION = '6.6.2';\n\n// Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\nvar Foundation = {\n version: FOUNDATION_VERSION,\n\n /**\n * Stores initialized plugins.\n */\n _plugins: {},\n\n /**\n * Stores generated unique ids for plugin instances\n */\n _uuids: [],\n\n /**\n * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n * @param {Object} plugin - The constructor of the plugin.\n */\n plugin: function(plugin, name) {\n // Object key to use when adding to global Foundation object\n // Examples: Foundation.Reveal, Foundation.OffCanvas\n var className = (name || functionName(plugin));\n // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n // Examples: data-reveal, data-off-canvas\n var attrName = hyphenate(className);\n\n // Add to the Foundation object and the plugins list (for reflowing)\n this._plugins[attrName] = this[className] = plugin;\n },\n /**\n * @function\n * Populates the _uuids array with pointers to each individual plugin instance.\n * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n * Also fires the initialization event for each plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @param {String} name - the name of the plugin, passed as a camelCased string.\n * @fires Plugin#init\n */\n registerPlugin: function(plugin, name){\n var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n plugin.uuid = GetYoDigits(6, pluginName);\n\n if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }\n if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n plugin.$element.trigger(`init.zf.${pluginName}`);\n\n this._uuids.push(plugin.uuid);\n\n return;\n },\n /**\n * @function\n * Removes the plugins uuid from the _uuids array.\n * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n * Also fires the destroyed event for the plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @fires Plugin#destroyed\n */\n unregisterPlugin: function(plugin){\n var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger(`destroyed.zf.${pluginName}`);\n for(var prop in plugin){\n plugin[prop] = null;//clean up script to prep for garbage collection.\n }\n return;\n },\n\n /**\n * @function\n * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n * @default If no argument is passed, reflow all currently active plugins.\n */\n reInit: function(plugins){\n var isJQ = plugins instanceof $;\n try{\n if(isJQ){\n plugins.each(function(){\n $(this).data('zfPlugin')._init();\n });\n }else{\n var type = typeof plugins,\n _this = this,\n fns = {\n 'object': function(plgs){\n plgs.forEach(function(p){\n p = hyphenate(p);\n $('[data-'+ p +']').foundation('_init');\n });\n },\n 'string': function(){\n plugins = hyphenate(plugins);\n $('[data-'+ plugins +']').foundation('_init');\n },\n 'undefined': function(){\n this['object'](Object.keys(_this._plugins));\n }\n };\n fns[type](plugins);\n }\n }catch(err){\n console.error(err);\n }finally{\n return plugins;\n }\n },\n\n /**\n * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n */\n reflow: function(elem, plugins) {\n\n // If plugins is undefined, just grab everything\n if (typeof plugins === 'undefined') {\n plugins = Object.keys(this._plugins);\n }\n // If plugins is a string, convert it to an array with one item\n else if (typeof plugins === 'string') {\n plugins = [plugins];\n }\n\n var _this = this;\n\n // Iterate through each plugin\n $.each(plugins, function(i, name) {\n // Get the current plugin\n var plugin = _this._plugins[name];\n\n // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']').filter(function () {\n return typeof $(this).data(\"zfPlugin\") === 'undefined';\n });\n\n // For each plugin found, initialize it\n $elem.each(function() {\n var $el = $(this),\n opts = { reflow: true };\n\n if($el.attr('data-options')){\n $el.attr('data-options').split(';').forEach(function(option, _index){\n var opt = option.split(':').map(function(el){ return el.trim(); });\n if(opt[0]) opts[opt[0]] = parseValue(opt[1]);\n });\n }\n try{\n $el.data('zfPlugin', new plugin($(this), opts));\n }catch(er){\n console.error(er);\n }finally{\n return;\n }\n });\n });\n },\n getFnName: functionName,\n\n addToJquery: function($) {\n // TODO: consider not making this a jQuery function\n // TODO: need way to reflow vs. re-initialize\n /**\n * The Foundation jQuery method.\n * @param {String|Array} method - An action to perform on the current jQuery object.\n */\n var foundation = function(method) {\n var type = typeof method,\n $noJS = $('.no-js');\n\n if($noJS.length){\n $noJS.removeClass('no-js');\n }\n\n if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.\n MediaQuery._init();\n Foundation.reflow(this);\n }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins\n var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary\n var plugClass = this.data('zfPlugin');//determine the class of plugin\n\n if(typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined'){//make sure both the class and method exist\n if(this.length === 1){//if there's only one, call it directly.\n plugClass[method].apply(plugClass, args);\n }else{\n this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each\n plugClass[method].apply($(el).data('zfPlugin'), args);\n });\n }\n }else{//error for no class or no method\n throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n }\n }else{//error for invalid argument type\n throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);\n }\n return this;\n };\n $.fn.foundation = foundation;\n return $;\n }\n};\n\nFoundation.util = {\n /**\n * Function for applying a debounce effect to a function call.\n * @function\n * @param {Function} func - Function to be called at end of timeout.\n * @param {Number} delay - Time in ms to delay the call of `func`.\n * @returns function\n */\n throttle: function (func, delay) {\n var timer = null;\n\n return function () {\n var context = this, args = arguments;\n\n if (timer === null) {\n timer = setTimeout(function () {\n func.apply(context, args);\n timer = null;\n }, delay);\n }\n };\n }\n};\n\nwindow.Foundation = Foundation;\n\n// Polyfill for requestAnimationFrame\n(function() {\n if (!Date.now || !window.Date.now)\n window.Date.now = Date.now = function() { return new Date().getTime(); };\n\n var vendors = ['webkit', 'moz'];\n for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n var vp = vendors[i];\n window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];\n window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']\n || window[vp+'CancelRequestAnimationFrame']);\n }\n if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)\n || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n var lastTime = 0;\n window.requestAnimationFrame = function(callback) {\n var now = Date.now();\n var nextTime = Math.max(lastTime + 16, now);\n return setTimeout(function() { callback(lastTime = nextTime); },\n nextTime - now);\n };\n window.cancelAnimationFrame = clearTimeout;\n }\n /**\n * Polyfill for performance.now, required by rAF\n */\n if(!window.performance || !window.performance.now){\n window.performance = {\n start: Date.now(),\n now: function(){ return Date.now() - this.start; }\n };\n }\n})();\nif (!Function.prototype.bind) {\n Function.prototype.bind = function(oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function() {},\n fBound = function() {\n return fToBind.apply(this instanceof fNOP\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n fBound.prototype = new fNOP();\n\n return fBound;\n };\n}\n// Polyfill to get the name of a function in IE9\nfunction functionName(fn) {\n if (typeof Function.prototype.name === 'undefined') {\n var funcNameRegex = /function\\s([^(]{1,})\\(/;\n var results = (funcNameRegex).exec((fn).toString());\n return (results && results.length > 1) ? results[1].trim() : \"\";\n }\n else if (typeof fn.prototype === 'undefined') {\n return fn.constructor.name;\n }\n else {\n return fn.prototype.constructor.name;\n }\n}\nfunction parseValue(str){\n if ('true' === str) return true;\n else if ('false' === str) return false;\n else if (!isNaN(str * 1)) return parseFloat(str);\n return str;\n}\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport {Foundation};\n","'use strict';\n\nimport $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\n\n// Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\nclass Plugin {\n\n constructor(element, options) {\n this._setup(element, options);\n var pluginName = getPluginName(this);\n this.uuid = GetYoDigits(6, pluginName);\n\n if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); }\n if(!this.$element.data('zfPlugin')){ this.$element.data('zfPlugin', this); }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n this.$element.trigger(`init.zf.${pluginName}`);\n }\n\n destroy() {\n this._destroy();\n var pluginName = getPluginName(this);\n this.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger(`destroyed.zf.${pluginName}`);\n for(var prop in this){\n this[prop] = null;//clean up script to prep for garbage collection.\n }\n }\n}\n\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n return hyphenate(obj.className);\n}\n\nexport {Plugin};\n","\"use strict\";\n\nimport $ from 'jquery';\n\n// Core Foundation Utilities, utilized in a number of places.\n\n /**\n * Returns a boolean for RTL support\n */\nfunction rtl() {\n return $('html').attr('dir') === 'rtl';\n}\n\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\nfunction GetYoDigits(length = 6, namespace){\n let str = '';\n const chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n const charsLength = chars.length;\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * charsLength)];\n }\n return namespace ? `${str}-${namespace}` : str;\n}\n\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\nfunction RegExpEscape(str){\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem){\n var transitions = {\n 'transition': 'transitionend',\n 'WebkitTransition': 'webkitTransitionEnd',\n 'MozTransition': 'transitionend',\n 'OTransition': 'otransitionend'\n };\n var elem = document.createElement('div'),\n end;\n\n for (let transition in transitions){\n if (typeof elem.style[transition] !== 'undefined'){\n end = transitions[transition];\n }\n }\n if (end) {\n return end;\n } else {\n setTimeout(function(){\n $elem.triggerHandler('transitionend', [$elem]);\n }, 1);\n return 'transitionend';\n }\n}\n\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\nfunction onLoad($elem, handler) {\n const didLoad = document.readyState === 'complete';\n const eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n const cb = () => $elem.triggerHandler(eventType);\n\n if ($elem) {\n if (handler) $elem.one(eventType, handler);\n\n if (didLoad)\n setTimeout(cb);\n else\n $(window).one('load', cb);\n }\n\n return eventType;\n}\n\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n * (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n * outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\nfunction ignoreMousedisappear(handler, { ignoreLeaveWindow = false, ignoreReappear = false } = {}) {\n return function leaveEventHandler(eLeave, ...rest) {\n const callback = handler.bind(this, eLeave, ...rest);\n\n // The mouse left: call the given callback if the mouse entered elsewhere\n if (eLeave.relatedTarget !== null) {\n return callback();\n }\n\n // Otherwise, check if the mouse actually left the window.\n // In firefox if the user switched between windows, the window sill have the focus by the time\n // the event is triggered. We have to debounce the event to test this case.\n setTimeout(function leaveEventDebouncer() {\n if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n return callback();\n }\n\n // Otherwise, wait for the mouse to reeapear outside of the element,\n if (!ignoreReappear) {\n $(document).one('mouseenter', function reenterEventHandler(eReenter) {\n if (!$(eLeave.currentTarget).has(eReenter.target).length) {\n // Fill where the mouse finally entered.\n eLeave.relatedTarget = eReenter.target;\n callback();\n }\n });\n }\n\n }, 0);\n };\n}\n\n\nexport { rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear };\n","'use strict';\n\nimport $ from 'jquery';\n\n// Default set of media queries\nconst defaultQueries = {\n 'default' : 'only screen',\n landscape : 'only screen and (orientation: landscape)',\n portrait : 'only screen and (orientation: portrait)',\n retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n 'only screen and (min--moz-device-pixel-ratio: 2),' +\n 'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n 'only screen and (min-device-pixel-ratio: 2),' +\n 'only screen and (min-resolution: 192dpi),' +\n 'only screen and (min-resolution: 2dppx)'\n };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright © 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n \"use strict\";\n\n // For browsers that support matchMedium api such as IE 9 and webkit\n var styleMedia = (window.styleMedia || window.media);\n\n // For those that don't support matchMedium\n if (!styleMedia) {\n var style = document.createElement('style'),\n script = document.getElementsByTagName('script')[0],\n info = null;\n\n style.type = 'text/css';\n style.id = 'matchmediajs-test';\n\n if (!script) {\n document.head.appendChild(style);\n } else {\n script.parentNode.insertBefore(style, script);\n }\n\n // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n styleMedia = {\n matchMedium: function (media) {\n var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n if (style.styleSheet) {\n style.styleSheet.cssText = text;\n } else {\n style.textContent = text;\n }\n\n // Test if media query is true or false\n return info.width === '1px';\n }\n };\n }\n\n return function(media) {\n return {\n matches: styleMedia.matchMedium(media || 'all'),\n media: media || 'all'\n };\n };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n queries: [],\n\n current: '',\n\n /**\n * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n * @function\n * @private\n */\n _init() {\n\n // make sure the initialization is only done once when calling _init() several times\n if (this.isInitialized === true) {\n return;\n } else {\n this.isInitialized = true;\n }\n\n var self = this;\n var $meta = $('meta.foundation-mq');\n if(!$meta.length){\n $('<meta class=\"foundation-mq\">').appendTo(document.head);\n }\n\n var extractedStyles = $('.foundation-mq').css('font-family');\n var namedQueries;\n\n namedQueries = parseStyleToObject(extractedStyles);\n\n self.queries = []; // reset\n\n for (var key in namedQueries) {\n if(namedQueries.hasOwnProperty(key)) {\n self.queries.push({\n name: key,\n value: `only screen and (min-width: ${namedQueries[key]})`\n });\n }\n }\n\n this.current = this._getCurrentSize();\n\n this._watcher();\n },\n\n /**\n * Reinitializes the media query helper.\n * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n * @function\n * @private\n */\n _reInit() {\n this.isInitialized = false;\n this._init();\n },\n\n /**\n * Checks if the screen is at least as wide as a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n */\n atLeast(size) {\n var query = this.get(size);\n\n if (query) {\n return window.matchMedia(query).matches;\n }\n\n return false;\n },\n\n /**\n * Checks if the screen is within the given breakpoint.\n * If smaller than the breakpoint of larger than its upper limit it returns false.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n */\n only(size) {\n return size === this._getCurrentSize();\n },\n\n /**\n * Checks if the screen is within a breakpoint or smaller.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n */\n upTo(size) {\n const nextSize = this.next(size);\n\n // If the next breakpoint does not match, the screen is smaller than\n // the upper limit of this breakpoint.\n if (nextSize) {\n return !this.atLeast(nextSize);\n }\n\n // If there is no next breakpoint, the \"size\" breakpoint does not have\n // an upper limit and the screen will always be within it or smaller.\n return true;\n },\n\n /**\n * Checks if the screen matches to a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n */\n is(size) {\n const parts = size.trim().split(' ').filter(p => !!p.length);\n const [bpSize, bpModifier = ''] = parts;\n\n // Only the breakpont\n if (bpModifier === 'only') {\n return this.only(bpSize);\n }\n // At least the breakpoint (included)\n if (!bpModifier || bpModifier === 'up') {\n return this.atLeast(bpSize);\n }\n // Up to the breakpoint (included)\n if (bpModifier === 'down') {\n return this.upTo(bpSize);\n }\n\n throw new Error(`\n Invalid breakpoint passed to MediaQuery.is().\n Expected a breakpoint name formatted like \"<size> <modifier>\", got \"${size}\".\n `);\n },\n\n /**\n * Gets the media query of a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to get.\n * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n */\n get(size) {\n for (var i in this.queries) {\n if(this.queries.hasOwnProperty(i)) {\n var query = this.queries[i];\n if (size === query.name) return query.value;\n }\n }\n\n return null;\n },\n\n /**\n * Get the breakpoint following the given breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint.\n * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n */\n next(size) {\n const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n if (queryIndex === -1) {\n throw new Error(`\n Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n Ensure it is present in your Sass \"$breakpoints\" setting.\n `);\n }\n\n const nextQuery = this.queries[queryIndex + 1];\n return nextQuery ? nextQuery.name : null;\n },\n\n /**\n * Returns the name of the breakpoint related to the given value.\n * @function\n * @private\n * @param {String|Object} value - Breakpoint name or query object.\n * @returns {String} Name of the breakpoint.\n */\n _getQueryName(value) {\n if (typeof value === 'string')\n return value;\n if (typeof value === 'object')\n return value.name;\n throw new TypeError(`\n Invalid value passed to MediaQuery._getQueryName().\n Expected a breakpoint name (String) or a breakpoint query (Object), got \"${value}\" (${typeof value})\n `);\n },\n\n /**\n * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n * @function\n * @private\n * @returns {String} Name of the current breakpoint.\n */\n _getCurrentSize() {\n var matched;\n\n for (var i = 0; i < this.queries.length; i++) {\n var query = this.queries[i];\n\n if (window.matchMedia(query.value).matches) {\n matched = query;\n }\n }\n\n return matched && this._getQueryName(matched);\n },\n\n /**\n * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n * @function\n * @private\n */\n _watcher() {\n $(window).off('resize.zf.mediaquery').on('resize.zf.mediaquery', () => {\n var newSize = this._getCurrentSize(), currentSize = this.current;\n\n if (newSize !== currentSize) {\n // Change the current media query\n this.current = newSize;\n\n // Broadcast the media query change on the window\n $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n }\n });\n }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n var styleObject = {};\n\n if (typeof str !== 'string') {\n return styleObject;\n }\n\n str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n if (!str) {\n return styleObject;\n }\n\n styleObject = str.split('&').reduce(function(ret, param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = parts[0];\n var val = parts[1];\n key = decodeURIComponent(key);\n\n // missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n if (!ret.hasOwnProperty(key)) {\n ret[key] = val;\n } else if (Array.isArray(ret[key])) {\n ret[key].push(val);\n } else {\n ret[key] = [ret[key], val];\n }\n return ret;\n }, {});\n\n return styleObject;\n}\n\nexport {MediaQuery};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- !function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof exports?exports["foundation.core"]=n(require("jquery")):(t.__FOUNDATION_EXTERNAL__=t.__FOUNDATION_EXTERNAL__||{},t.__FOUNDATION_EXTERNAL__["foundation.core"]=n(t.jQuery))}(window,function(e){return o={},i.m=r={"./js/entries/plugins/foundation.core.js":function(t,n,e){"use strict";e.r(n);var r=e("jquery"),i=e.n(r),o=e("./js/foundation.core.js");e.d(n,"Foundation",function(){return o.Foundation});var a=e("./js/foundation.core.plugin.js"),u=e("./js/foundation.core.utils.js");e.d(n,"Plugin",function(){return a.Plugin}),e.d(n,"rtl",function(){return u.rtl}),e.d(n,"GetYoDigits",function(){return u.GetYoDigits}),e.d(n,"RegExpEscape",function(){return u.RegExpEscape}),e.d(n,"transitionend",function(){return u.transitionend}),e.d(n,"onLoad",function(){return u.onLoad}),e.d(n,"ignoreMousedisappear",function(){return u.ignoreMousedisappear}),o.Foundation.addToJquery(i.a),o.Foundation.Plugin=a.Plugin,o.Foundation.rtl=u.rtl,o.Foundation.GetYoDigits=u.GetYoDigits,o.Foundation.transitionend=u.transitionend,o.Foundation.RegExpEscape=u.RegExpEscape,o.Foundation.onLoad=u.onLoad,window.Foundation=o.Foundation},"./js/foundation.core.js":function(t,n,e){"use strict";e.r(n),e.d(n,"Foundation",function(){return s});var r=e("jquery"),o=e.n(r),i=e("./js/foundation.core.utils.js"),a=e("./js/foundation.util.mediaQuery.js");function u(t){return(u="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 s={version:"6.6.1",_plugins:{},_uuids:[],plugin:function(t,n){var e=n||c(t),r=d(e);this._plugins[r]=this[e]=t},registerPlugin:function(t,n){var e=n?d(n):c(t.constructor).toLowerCase();t.uuid=Object(i.GetYoDigits)(6,e),t.$element.attr("data-".concat(e))||t.$element.attr("data-".concat(e),t.uuid),t.$element.data("zfPlugin")||t.$element.data("zfPlugin",t),t.$element.trigger("init.zf.".concat(e)),this._uuids.push(t.uuid)},unregisterPlugin:function(t){var n=d(c(t.$element.data("zfPlugin").constructor));for(var e in this._uuids.splice(this._uuids.indexOf(t.uuid),1),t.$element.removeAttr("data-".concat(n)).removeData("zfPlugin").trigger("destroyed.zf.".concat(n)),t)t[e]=null},reInit:function(t){var n=t instanceof o.a;try{if(n)t.each(function(){o()(this).data("zfPlugin")._init()});else{var e=u(t),r=this;({object:function(t){t.forEach(function(t){t=d(t),o()("[data-"+t+"]").foundation("_init")})},string:function(){t=d(t),o()("[data-"+t+"]").foundation("_init")},undefined:function(){this.object(Object.keys(r._plugins))}})[e](t)}}catch(t){console.error(t)}finally{return t}},reflow:function(r,t){void 0===t?t=Object.keys(this._plugins):"string"==typeof t&&(t=[t]);var i=this;o.a.each(t,function(t,n){var e=i._plugins[n];o()(r).find("[data-"+n+"]").addBack("[data-"+n+"]").filter(function(){return void 0===o()(this).data("zfPlugin")}).each(function(){var t=o()(this),r={reflow:!0};if(t.attr("data-options"))t.attr("data-options").split(";").forEach(function(t,n){var e=t.split(":").map(function(t){return t.trim()});e[0]&&(r[e[0]]=function(t){{if("true"===t)return!0;if("false"===t)return!1;if(!isNaN(1*t))return parseFloat(t)}return t}(e[1]))});try{t.data("zfPlugin",new e(o()(this),r))}catch(t){console.error(t)}finally{return}})})},getFnName:c,addToJquery:function(o){return o.fn.foundation=function(e){var t=u(e),n=o(".no-js");if(n.length&&n.removeClass("no-js"),"undefined"===t)a.MediaQuery._init(),s.reflow(this);else{if("string"!==t)throw new TypeError("We're sorry, ".concat(t," is not a valid parameter. You must use a string representing the method you wish to invoke."));var r=Array.prototype.slice.call(arguments,1),i=this.data("zfPlugin");if(void 0===i||void 0===i[e])throw new ReferenceError("We're sorry, '"+e+"' is not an available method for "+(i?c(i):"this element")+".");1===this.length?i[e].apply(i,r):this.each(function(t,n){i[e].apply(o(n).data("zfPlugin"),r)})}return this},o}};function c(t){if(void 0!==Function.prototype.name)return void 0===t.prototype?t.constructor.name:t.prototype.constructor.name;var n=/function\s([^(]{1,})\(/.exec(t.toString());return n&&1<n.length?n[1].trim():""}function d(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}s.util={throttle:function(e,r){var i=null;return function(){var t=this,n=arguments;null===i&&(i=setTimeout(function(){e.apply(t,n),i=null},r))}}},window.Foundation=s,function(){Date.now&&window.Date.now||(window.Date.now=Date.now=function(){return(new Date).getTime()});for(var t=["webkit","moz"],n=0;n<t.length&&!window.requestAnimationFrame;++n){var e=t[n];window.requestAnimationFrame=window[e+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e+"CancelAnimationFrame"]||window[e+"CancelRequestAnimationFrame"]}if(/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)||!window.requestAnimationFrame||!window.cancelAnimationFrame){var r=0;window.requestAnimationFrame=function(t){var n=Date.now(),e=Math.max(r+16,n);return setTimeout(function(){t(r=e)},e-n)},window.cancelAnimationFrame=clearTimeout}window.performance&&window.performance.now||(window.performance={start:Date.now(),now:function(){return Date.now()-this.start}})}(),Function.prototype.bind||(Function.prototype.bind=function(t){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");function n(){}function e(){return i.apply(this instanceof n?this:t,r.concat(Array.prototype.slice.call(arguments)))}var r=Array.prototype.slice.call(arguments,1),i=this;return this.prototype&&(n.prototype=this.prototype),e.prototype=new n,e})},"./js/foundation.core.plugin.js":function(t,n,e){"use strict";e.r(n),e.d(n,"Plugin",function(){return r});e("jquery");var i=e("./js/foundation.core.utils.js");function o(t,n){for(var e=0;e<n.length;e++){var r=n[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var r=function(){function r(t,n){!function(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}(this,r),this._setup(t,n);var e=u(this);this.uuid=Object(i.GetYoDigits)(6,e),this.$element.attr("data-".concat(e))||this.$element.attr("data-".concat(e),this.uuid),this.$element.data("zfPlugin")||this.$element.data("zfPlugin",this),this.$element.trigger("init.zf.".concat(e))}return function(t,n,e){n&&o(t.prototype,n),e&&o(t,e)}(r,[{key:"destroy",value:function(){this._destroy();var t=u(this);for(var n in this.$element.removeAttr("data-".concat(t)).removeData("zfPlugin").trigger("destroyed.zf.".concat(t)),this)this[n]=null}}]),r}();function a(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function u(t){return void 0!==t.constructor.name?a(t.constructor.name):a(t.className)}},"./js/foundation.core.utils.js":function(t,n,e){"use strict";e.r(n),e.d(n,"rtl",function(){return i}),e.d(n,"GetYoDigits",function(){return o}),e.d(n,"RegExpEscape",function(){return a}),e.d(n,"transitionend",function(){return u}),e.d(n,"onLoad",function(){return c}),e.d(n,"ignoreMousedisappear",function(){return d});var r=e("jquery"),s=e.n(r);function i(){return"rtl"===s()("html").attr("dir")}function o(){for(var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:6,n=1<arguments.length?arguments[1]:void 0,e="",r="0123456789abcdefghijklmnopqrstuvwxyz",i=r.length,o=0;o<t;o++)e+=r[Math.floor(Math.random()*i)];return n?"".concat(e,"-").concat(n):e}function a(t){return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}function u(t){var n,e={transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend"},r=document.createElement("div");for(var i in e)void 0!==r.style[i]&&(n=e[i]);return n||(n=setTimeout(function(){t.triggerHandler("transitionend",[t])},1),"transitionend")}function c(t,n){function e(){return t.triggerHandler(i)}var r="complete"===document.readyState,i=(r?"_didLoad":"load")+".zf.util.onLoad";return t&&(n&&t.one(i,n),r?setTimeout(e):s()(window).one("load",e)),i}function d(o){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},n=t.ignoreLeaveWindow,a=void 0!==n&&n,e=t.ignoreReappear,u=void 0!==e&&e;return function(n){for(var t=arguments.length,e=new Array(1<t?t-1:0),r=1;r<t;r++)e[r-1]=arguments[r];var i=o.bind.apply(o,[this,n].concat(e));if(null!==n.relatedTarget)return i();setTimeout(function(){if(!a&&document.hasFocus&&!document.hasFocus())return i();u||s()(document).one("mouseenter",function(t){s()(n.currentTarget).has(t.target).length||(n.relatedTarget=t.target,i())})},0)}}},"./js/foundation.util.mediaQuery.js":function(t,n,e){"use strict";e.r(n),e.d(n,"MediaQuery",function(){return u});var r=e("jquery"),i=e.n(r);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,n){return function(t){if(Array.isArray(t))return t}(t)||function(t,n){var e=[],r=!0,i=!1,o=void 0;try{for(var a,u=t[Symbol.iterator]();!(r=(a=u.next()).done)&&(e.push(a.value),!n||e.length!==n);r=!0);}catch(t){i=!0,o=t}finally{try{r||null==u.return||u.return()}finally{if(i)throw o}}return e}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}window.matchMedia||(window.matchMedia=function(){var n=window.styleMedia||window.media;if(!n){var e,r=document.createElement("style"),t=document.getElementsByTagName("script")[0];r.type="text/css",r.id="matchmediajs-test",t?t.parentNode.insertBefore(r,t):document.head.appendChild(r),e="getComputedStyle"in window&&window.getComputedStyle(r,null)||r.currentStyle,n={matchMedium:function(t){var n="@media "+t+"{ #matchmediajs-test { width: 1px; } }";return r.styleSheet?r.styleSheet.cssText=n:r.textContent=n,"1px"===e.width}}}return function(t){return{matches:n.matchMedium(t||"all"),media:t||"all"}}}());var u={queries:[],current:"",_init:function(){if(!0!==this.isInitialized){this.isInitialized=!0;i()("meta.foundation-mq").length||i()('<meta class="foundation-mq">').appendTo(document.head);var t,n=i()(".foundation-mq").css("font-family");for(var e in t=function(t){var n={};return"string"==typeof t&&(t=t.trim().slice(1,-1))?n=t.split("&").reduce(function(t,n){var e=n.replace(/\+/g," ").split("="),r=e[0],i=e[1];return r=decodeURIComponent(r),i=void 0===i?null:decodeURIComponent(i),t.hasOwnProperty(r)?Array.isArray(t[r])?t[r].push(i):t[r]=[t[r],i]:t[r]=i,t},{}):n}(n),this.queries=[],t)t.hasOwnProperty(e)&&this.queries.push({name:e,value:"only screen and (min-width: ".concat(t[e],")")});this.current=this._getCurrentSize(),this._watcher()}},_reInit:function(){this.isInitialized=!1,this._init()},atLeast:function(t){var n=this.get(t);return!!n&&window.matchMedia(n).matches},only:function(t){return t===this._getCurrentSize()},upTo:function(t){var n=this.next(t);return!n||!this.atLeast(n)},is:function(t){var n=a(t.trim().split(" ").filter(function(t){return!!t.length}),2),e=n[0],r=n[1],i=void 0===r?"":r;if("only"===i)return this.only(e);if(!i||"up"===i)return this.atLeast(e);if("down"===i)return this.upTo(e);throw new Error('\n Invalid breakpoint passed to MediaQuery.is().\n Expected a breakpoint name formatted like "<size> <modifier>", got "'.concat(t,'".\n '))},get:function(t){for(var n in this.queries)if(this.queries.hasOwnProperty(n)){var e=this.queries[n];if(t===e.name)return e.value}return null},next:function(n){var e=this,t=this.queries.findIndex(function(t){return e._getQueryName(t)===n});if(-1===t)throw new Error('\n Unknown breakpoint "'.concat(n,'" passed to MediaQuery.next().\n Ensure it is present in your Sass "$breakpoints" setting.\n '));var r=this.queries[t+1];return r?r.name:null},_getQueryName:function(t){if("string"==typeof t)return t;if("object"===o(t))return t.name;throw new TypeError('\n Invalid value passed to MediaQuery._getQueryName().\n Expected a breakpoint name (String) or a breakpoint query (Object), got "'.concat(t,'" (').concat(o(t),")\n "))},_getCurrentSize:function(){for(var t,n=0;n<this.queries.length;n++){var e=this.queries[n];window.matchMedia(e.value).matches&&(t=e)}return t&&this._getQueryName(t)},_watcher:function(){var e=this;i()(window).off("resize.zf.mediaquery").on("resize.zf.mediaquery",function(){var t=e._getCurrentSize(),n=e.current;t!==n&&(e.current=t,i()(window).trigger("changed.zf.mediaquery",[t,n]))})}}},0:function(t,n,e){t.exports=e("./js/entries/plugins/foundation.core.js")},jquery:function(t,n){t.exports=e}},i.c=o,i.d=function(t,n,e){i.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:e})},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(n,t){if(1&t&&(n=i(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var e=Object.create(null);if(i.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var r in n)i.d(e,r,function(t){return n[t]}.bind(null,r));return e},i.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(n,"a",n),n},i.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},i.p="",i(i.s=0);function i(t){if(o[t])return o[t].exports;var n=o[t]={i:t,l:!1,exports:{}};return r[t].call(n.exports,n,n.exports,i),n.l=!0,n.exports}var r,o});
1
+ !function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof exports?exports["foundation.core"]=n(require("jquery")):(t.__FOUNDATION_EXTERNAL__=t.__FOUNDATION_EXTERNAL__||{},t.__FOUNDATION_EXTERNAL__["foundation.core"]=n(t.jQuery))}(window,function(e){return o={},i.m=r={"./js/entries/plugins/foundation.core.js":function(t,n,e){"use strict";e.r(n);var r=e("jquery"),i=e.n(r),o=e("./js/foundation.core.js");e.d(n,"Foundation",function(){return o.Foundation});var a=e("./js/foundation.core.plugin.js"),u=e("./js/foundation.core.utils.js");e.d(n,"Plugin",function(){return a.Plugin}),e.d(n,"rtl",function(){return u.rtl}),e.d(n,"GetYoDigits",function(){return u.GetYoDigits}),e.d(n,"RegExpEscape",function(){return u.RegExpEscape}),e.d(n,"transitionend",function(){return u.transitionend}),e.d(n,"onLoad",function(){return u.onLoad}),e.d(n,"ignoreMousedisappear",function(){return u.ignoreMousedisappear}),o.Foundation.addToJquery(i.a),o.Foundation.Plugin=a.Plugin,o.Foundation.rtl=u.rtl,o.Foundation.GetYoDigits=u.GetYoDigits,o.Foundation.transitionend=u.transitionend,o.Foundation.RegExpEscape=u.RegExpEscape,o.Foundation.onLoad=u.onLoad,window.Foundation=o.Foundation},"./js/foundation.core.js":function(t,n,e){"use strict";e.r(n),e.d(n,"Foundation",function(){return s});var r=e("jquery"),o=e.n(r),i=e("./js/foundation.core.utils.js"),a=e("./js/foundation.util.mediaQuery.js");function u(t){return(u="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 s={version:"6.6.2",_plugins:{},_uuids:[],plugin:function(t,n){var e=n||c(t),r=d(e);this._plugins[r]=this[e]=t},registerPlugin:function(t,n){var e=n?d(n):c(t.constructor).toLowerCase();t.uuid=Object(i.GetYoDigits)(6,e),t.$element.attr("data-".concat(e))||t.$element.attr("data-".concat(e),t.uuid),t.$element.data("zfPlugin")||t.$element.data("zfPlugin",t),t.$element.trigger("init.zf.".concat(e)),this._uuids.push(t.uuid)},unregisterPlugin:function(t){var n=d(c(t.$element.data("zfPlugin").constructor));for(var e in this._uuids.splice(this._uuids.indexOf(t.uuid),1),t.$element.removeAttr("data-".concat(n)).removeData("zfPlugin").trigger("destroyed.zf.".concat(n)),t)t[e]=null},reInit:function(t){var n=t instanceof o.a;try{if(n)t.each(function(){o()(this).data("zfPlugin")._init()});else{var e=u(t),r=this;({object:function(t){t.forEach(function(t){t=d(t),o()("[data-"+t+"]").foundation("_init")})},string:function(){t=d(t),o()("[data-"+t+"]").foundation("_init")},undefined:function(){this.object(Object.keys(r._plugins))}})[e](t)}}catch(t){console.error(t)}finally{return t}},reflow:function(r,t){void 0===t?t=Object.keys(this._plugins):"string"==typeof t&&(t=[t]);var i=this;o.a.each(t,function(t,n){var e=i._plugins[n];o()(r).find("[data-"+n+"]").addBack("[data-"+n+"]").filter(function(){return void 0===o()(this).data("zfPlugin")}).each(function(){var t=o()(this),r={reflow:!0};t.attr("data-options")&&t.attr("data-options").split(";").forEach(function(t,n){var e=t.split(":").map(function(t){return t.trim()});e[0]&&(r[e[0]]=function(t){{if("true"===t)return!0;if("false"===t)return!1;if(!isNaN(1*t))return parseFloat(t)}return t}(e[1]))});try{t.data("zfPlugin",new e(o()(this),r))}catch(t){console.error(t)}finally{return}})})},getFnName:c,addToJquery:function(o){return o.fn.foundation=function(e){var t=u(e),n=o(".no-js");if(n.length&&n.removeClass("no-js"),"undefined"===t)a.MediaQuery._init(),s.reflow(this);else{if("string"!==t)throw new TypeError("We're sorry, ".concat(t," is not a valid parameter. You must use a string representing the method you wish to invoke."));var r=Array.prototype.slice.call(arguments,1),i=this.data("zfPlugin");if(void 0===i||void 0===i[e])throw new ReferenceError("We're sorry, '"+e+"' is not an available method for "+(i?c(i):"this element")+".");1===this.length?i[e].apply(i,r):this.each(function(t,n){i[e].apply(o(n).data("zfPlugin"),r)})}return this},o}};function c(t){if(void 0!==Function.prototype.name)return void 0===t.prototype?t.constructor.name:t.prototype.constructor.name;var n=/function\s([^(]{1,})\(/.exec(t.toString());return n&&1<n.length?n[1].trim():""}function d(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}s.util={throttle:function(e,r){var i=null;return function(){var t=this,n=arguments;null===i&&(i=setTimeout(function(){e.apply(t,n),i=null},r))}}},window.Foundation=s,function(){Date.now&&window.Date.now||(window.Date.now=Date.now=function(){return(new Date).getTime()});for(var t=["webkit","moz"],n=0;n<t.length&&!window.requestAnimationFrame;++n){var e=t[n];window.requestAnimationFrame=window[e+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e+"CancelAnimationFrame"]||window[e+"CancelRequestAnimationFrame"]}if(/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)||!window.requestAnimationFrame||!window.cancelAnimationFrame){var r=0;window.requestAnimationFrame=function(t){var n=Date.now(),e=Math.max(r+16,n);return setTimeout(function(){t(r=e)},e-n)},window.cancelAnimationFrame=clearTimeout}window.performance&&window.performance.now||(window.performance={start:Date.now(),now:function(){return Date.now()-this.start}})}(),Function.prototype.bind||(Function.prototype.bind=function(t){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");function n(){}function e(){return i.apply(this instanceof n?this:t,r.concat(Array.prototype.slice.call(arguments)))}var r=Array.prototype.slice.call(arguments,1),i=this;return this.prototype&&(n.prototype=this.prototype),e.prototype=new n,e})},"./js/foundation.core.plugin.js":function(t,n,e){"use strict";e.r(n),e.d(n,"Plugin",function(){return r});e("jquery");var i=e("./js/foundation.core.utils.js");function o(t,n){for(var e=0;e<n.length;e++){var r=n[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var r=function(){function r(t,n){!function(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}(this,r),this._setup(t,n);var e=a(this);this.uuid=Object(i.GetYoDigits)(6,e),this.$element.attr("data-".concat(e))||this.$element.attr("data-".concat(e),this.uuid),this.$element.data("zfPlugin")||this.$element.data("zfPlugin",this),this.$element.trigger("init.zf.".concat(e))}return function(t,n,e){n&&o(t.prototype,n),e&&o(t,e)}(r,[{key:"destroy",value:function(){this._destroy();var t=a(this);for(var n in this.$element.removeAttr("data-".concat(t)).removeData("zfPlugin").trigger("destroyed.zf.".concat(t)),this)this[n]=null}}]),r}();function a(t){return function(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}(t.className)}},"./js/foundation.core.utils.js":function(t,n,e){"use strict";e.r(n),e.d(n,"rtl",function(){return i}),e.d(n,"GetYoDigits",function(){return o}),e.d(n,"RegExpEscape",function(){return a}),e.d(n,"transitionend",function(){return u}),e.d(n,"onLoad",function(){return c}),e.d(n,"ignoreMousedisappear",function(){return d});var r=e("jquery"),s=e.n(r);function i(){return"rtl"===s()("html").attr("dir")}function o(){for(var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:6,n=1<arguments.length?arguments[1]:void 0,e="",r="0123456789abcdefghijklmnopqrstuvwxyz",i=r.length,o=0;o<t;o++)e+=r[Math.floor(Math.random()*i)];return n?"".concat(e,"-").concat(n):e}function a(t){return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}function u(t){var n,e={transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend"},r=document.createElement("div");for(var i in e)void 0!==r.style[i]&&(n=e[i]);return n||(setTimeout(function(){t.triggerHandler("transitionend",[t])},1),"transitionend")}function c(t,n){function e(){return t.triggerHandler(i)}var r="complete"===document.readyState,i=(r?"_didLoad":"load")+".zf.util.onLoad";return t&&(n&&t.one(i,n),r?setTimeout(e):s()(window).one("load",e)),i}function d(o){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},n=t.ignoreLeaveWindow,a=void 0!==n&&n,e=t.ignoreReappear,u=void 0!==e&&e;return function(n){for(var t=arguments.length,e=new Array(1<t?t-1:0),r=1;r<t;r++)e[r-1]=arguments[r];var i=o.bind.apply(o,[this,n].concat(e));if(null!==n.relatedTarget)return i();setTimeout(function(){if(!a&&document.hasFocus&&!document.hasFocus())return i();u||s()(document).one("mouseenter",function(t){s()(n.currentTarget).has(t.target).length||(n.relatedTarget=t.target,i())})},0)}}},"./js/foundation.util.mediaQuery.js":function(t,n,e){"use strict";e.r(n),e.d(n,"MediaQuery",function(){return u});var r=e("jquery"),i=e.n(r);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,n){return function(t){if(Array.isArray(t))return t}(t)||function(t,n){var e=[],r=!0,i=!1,o=void 0;try{for(var a,u=t[Symbol.iterator]();!(r=(a=u.next()).done)&&(e.push(a.value),!n||e.length!==n);r=!0);}catch(t){i=!0,o=t}finally{try{r||null==u.return||u.return()}finally{if(i)throw o}}return e}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}window.matchMedia||(window.matchMedia=function(){var n=window.styleMedia||window.media;if(!n){var e,r=document.createElement("style"),t=document.getElementsByTagName("script")[0];r.type="text/css",r.id="matchmediajs-test",t?t.parentNode.insertBefore(r,t):document.head.appendChild(r),e="getComputedStyle"in window&&window.getComputedStyle(r,null)||r.currentStyle,n={matchMedium:function(t){var n="@media "+t+"{ #matchmediajs-test { width: 1px; } }";return r.styleSheet?r.styleSheet.cssText=n:r.textContent=n,"1px"===e.width}}}return function(t){return{matches:n.matchMedium(t||"all"),media:t||"all"}}}());var u={queries:[],current:"",_init:function(){if(!0!==this.isInitialized){this.isInitialized=!0;i()("meta.foundation-mq").length||i()('<meta class="foundation-mq">').appendTo(document.head);var t,n=i()(".foundation-mq").css("font-family");for(var e in t=function(t){var n={};return"string"==typeof t&&(t=t.trim().slice(1,-1))?n=t.split("&").reduce(function(t,n){var e=n.replace(/\+/g," ").split("="),r=e[0],i=e[1];return r=decodeURIComponent(r),i=void 0===i?null:decodeURIComponent(i),t.hasOwnProperty(r)?Array.isArray(t[r])?t[r].push(i):t[r]=[t[r],i]:t[r]=i,t},{}):n}(n),this.queries=[],t)t.hasOwnProperty(e)&&this.queries.push({name:e,value:"only screen and (min-width: ".concat(t[e],")")});this.current=this._getCurrentSize(),this._watcher()}},_reInit:function(){this.isInitialized=!1,this._init()},atLeast:function(t){var n=this.get(t);return!!n&&window.matchMedia(n).matches},only:function(t){return t===this._getCurrentSize()},upTo:function(t){var n=this.next(t);return!n||!this.atLeast(n)},is:function(t){var n=a(t.trim().split(" ").filter(function(t){return!!t.length}),2),e=n[0],r=n[1],i=void 0===r?"":r;if("only"===i)return this.only(e);if(!i||"up"===i)return this.atLeast(e);if("down"===i)return this.upTo(e);throw new Error('\n Invalid breakpoint passed to MediaQuery.is().\n Expected a breakpoint name formatted like "<size> <modifier>", got "'.concat(t,'".\n '))},get:function(t){for(var n in this.queries)if(this.queries.hasOwnProperty(n)){var e=this.queries[n];if(t===e.name)return e.value}return null},next:function(n){var e=this,t=this.queries.findIndex(function(t){return e._getQueryName(t)===n});if(-1===t)throw new Error('\n Unknown breakpoint "'.concat(n,'" passed to MediaQuery.next().\n Ensure it is present in your Sass "$breakpoints" setting.\n '));var r=this.queries[t+1];return r?r.name:null},_getQueryName:function(t){if("string"==typeof t)return t;if("object"===o(t))return t.name;throw new TypeError('\n Invalid value passed to MediaQuery._getQueryName().\n Expected a breakpoint name (String) or a breakpoint query (Object), got "'.concat(t,'" (').concat(o(t),")\n "))},_getCurrentSize:function(){for(var t,n=0;n<this.queries.length;n++){var e=this.queries[n];window.matchMedia(e.value).matches&&(t=e)}return t&&this._getQueryName(t)},_watcher:function(){var e=this;i()(window).off("resize.zf.mediaquery").on("resize.zf.mediaquery",function(){var t=e._getCurrentSize(),n=e.current;t!==n&&(e.current=t,i()(window).trigger("changed.zf.mediaquery",[t,n]))})}}},0:function(t,n,e){t.exports=e("./js/entries/plugins/foundation.core.js")},jquery:function(t,n){t.exports=e}},i.c=o,i.d=function(t,n,e){i.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:e})},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(n,t){if(1&t&&(n=i(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var e=Object.create(null);if(i.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var r in n)i.d(e,r,function(t){return n[t]}.bind(null,r));return e},i.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(n,"a",n),n},i.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},i.p="",i(i.s=0);function i(t){if(o[t])return o[t].exports;var n=o[t]={i:t,l:!1,exports:{}};return r[t].call(n.exports,n,n.exports,i),n.l=!0,n.exports}var r,o});
2
2
  //# sourceMappingURL=foundation.core.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]/js/entries/plugins/foundation.core.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.core.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.core.plugin.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.core.utils.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.mediaQuery.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_jquery__","installedModules","__webpack_require__","m","r","__webpack_exports__","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core__WEBPACK_IMPORTED_MODULE_1__","d","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__","Foundation","addToJquery","$","Plugin","rtl","GetYoDigits","transitionend","RegExpEscape","onLoad","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__","version","_plugins","_uuids","plugin","name","className","functionName","attrName","hyphenate","this","registerPlugin","pluginName","constructor","toLowerCase","uuid","$element","attr","concat","data","trigger","push","unregisterPlugin","prop","splice","indexOf","removeAttr","removeData","reInit","plugins","isJQ","each","_init","type","_typeof","_this","object","plgs","forEach","p","foundation","string","undefined","Object","keys","err","console","error","reflow","elem","i","find","addBack","filter","$el","opts","split","e","opt","map","el","trim","str","isNaN","parseFloat","parseValue","er","getFnName","fn","method","$noJS","length","removeClass","MediaQuery","TypeError","args","Array","prototype","slice","call","arguments","plugClass","ReferenceError","apply","Function","results","exec","toString","replace","util","throttle","func","delay","timer","context","setTimeout","Date","now","getTime","vendors","requestAnimationFrame","vp","cancelAnimationFrame","test","navigator","userAgent","lastTime","callback","nextTime","Math","max","clearTimeout","performance","start","bind","oThis","fNOP","fBound","fToBind","aArgs","element","options","_classCallCheck","_setup","getPluginName","_destroy","obj","ignoreMousedisappear","namespace","chars","charsLength","floor","random","$elem","end","transitions","transition","WebkitTransition","MozTransition","OTransition","document","createElement","t","style","triggerHandler","handler","cb","eventType","didLoad","readyState","one","_ref","_ref$ignoreLeaveWindo","ignoreLeaveWindow","_ref$ignoreReappear","ignoreReappear","eLeave","_len","rest","_key","relatedTarget","hasFocus","eReenter","currentTarget","has","target","matchMedia","styleMedia","media","info","script","getElementsByTagName","id","parentNode","insertBefore","head","appendChild","getComputedStyle","currentStyle","matchMedium","text","styleSheet","cssText","textContent","width","matches","queries","current","isInitialized","appendTo","namedQueries","extractedStyles","css","key","styleObject","reduce","ret","param","parts","val","decodeURIComponent","hasOwnProperty","isArray","parseStyleToObject","value","_getCurrentSize","_watcher","_reInit","atLeast","size","query","get","only","upTo","nextSize","next","is","_parts","_slicedToArray","bpSize","_parts$","bpModifier","Error","queryIndex","findIndex","q","_getQueryName","nextQuery","matched","_this2","off","on","newSize","currentSize","c","getter","o","defineProperty","enumerable","Symbol","toStringTag","mode","__esModule","ns","create","property","s","moduleId","l","modules"],"mappings":"CAAA,SAAAA,EAAAC,GACA,iBAAAC,SAAA,iBAAAC,OACAA,OAAAD,QAAAD,EAAAG,QAAA,WACA,mBAAAC,QAAAA,OAAAC,IACAD,OAAA,CAAA,UAAAJ,GACA,iBAAAC,QACAA,QAAA,mBAAAD,EAAAG,QAAA,YAEAJ,EAAA,wBAAAA,EAAA,yBAAA,GAAyEA,EAAA,wBAAA,mBAAAC,EAAAD,EAAA,SARzE,CASCO,OAAA,SAAAC,GACD,OCTAC,EAAA,GA4BAC,EAAAC,4EC7BAD,EAAAE,EAAAC,GAAA,IAAAC,EAAAJ,EAAA,UAAAK,EAAAL,EAAAM,EAAAF,GAAAG,EAAAP,EAAA,2BAAAA,EAAAQ,EAAAL,EAAA,aAAA,WAAA,OAAAI,EAAA,aAAA,IAAAE,EAAAT,EAAA,kCAAAU,EAAAV,EAAA,iCAAAA,EAAAQ,EAAAL,EAAA,SAAA,WAAA,OAAAM,EAAA,SAAAT,EAAAQ,EAAAL,EAAA,MAAA,WAAA,OAAAO,EAAA,MAAAV,EAAAQ,EAAAL,EAAA,cAAA,WAAA,OAAAO,EAAA,cAAAV,EAAAQ,EAAAL,EAAA,eAAA,WAAA,OAAAO,EAAA,eAAAV,EAAAQ,EAAAL,EAAA,gBAAA,WAAA,OAAAO,EAAA,gBAAAV,EAAAQ,EAAAL,EAAA,SAAA,WAAA,OAAAO,EAAA,SAAAV,EAAAQ,EAAAL,EAAA,uBAAA,WAAA,OAAAO,EAAA,uBAQAC,EAAAA,WAAWC,YAAYC,EAAAA,GAIvBF,EAAAA,WAAWG,OAASA,EAAAA,OAKpBH,EAAAA,WAAWI,IAAMA,EAAAA,IACjBJ,EAAAA,WAAWK,YAAcA,EAAAA,YACzBL,EAAAA,WAAWM,cAAgBA,EAAAA,cAC3BN,EAAAA,WAAWO,aAAeA,EAAAA,aAC1BP,EAAAA,WAAWQ,OAASA,EAAAA,OAEpBtB,OAAOc,WAAaA,EAAAA,mECvBpBX,EAAAE,EAAAC,GAAAH,EAAAQ,EAAAL,EAAA,aAAA,WAAA,OAAAQ,IAAA,IAAAP,EAAAJ,EAAA,UAAAK,EAAAL,EAAAM,EAAAF,GAAAgB,EAAApB,EAAA,iCAAAqB,EAAArB,EAAA,2QAMA,IAIIW,EAAa,CACfW,QALuB,QAUvBC,SAAU,GAKVC,OAAQ,GAMRC,OAAQ,SAASA,EAAQC,GAGvB,IAAIC,EAAaD,GAAQE,EAAaH,GAGlCI,EAAYC,EAAUH,GAG1BI,KAAKR,SAASM,GAAYE,KAAKJ,GAAaF,GAW9CO,eAAgB,SAASP,EAAQC,GAC/B,IAAIO,EAAaP,EAAOI,EAAUJ,GAAQE,EAAaH,EAAOS,aAAaC,cAC3EV,EAAOW,KAAOpB,OAAAA,EAAAA,YAAAA,CAAY,EAAGiB,GAEzBR,EAAOY,SAASC,KAAhB,QAAAC,OAA6BN,KAAgBR,EAAOY,SAASC,KAAhB,QAAAC,OAA6BN,GAAcR,EAAOW,MAC/FX,EAAOY,SAASG,KAAK,aAAcf,EAAOY,SAASG,KAAK,WAAYf,GAKxEA,EAAOY,SAASI,QAAhB,WAAAF,OAAmCN,IAEnCF,KAAKP,OAAOkB,KAAKjB,EAAOW,OAY1BO,iBAAkB,SAASlB,GACzB,IAAIQ,EAAaH,EAAUF,EAAaH,EAAOY,SAASG,KAAK,YAAYN,cASzE,IAAI,IAAIU,KAPRb,KAAKP,OAAOqB,OAAOd,KAAKP,OAAOsB,QAAQrB,EAAOW,MAAO,GACrDX,EAAOY,SAASU,WAAhB,QAAAR,OAAmCN,IAAce,WAAW,YAKrDP,QALP,gBAAAF,OAK+BN,IACfR,EACdA,EAAOmB,GAAQ,MAWlBK,OAAQ,SAASC,GACf,IAAIC,EAAOD,aAAmBrC,EAAAA,EAC9B,IACE,GAAGsC,EACDD,EAAQE,KAAK,WACXvC,GAAAA,CAAEkB,MAAMS,KAAK,YAAYa,cAExB,CACH,IAAIC,EAAIC,EAAUL,GAClBM,EAAQzB,MACF,CACJ0B,OAAU,SAASC,GACjBA,EAAKC,QAAQ,SAASC,GACpBA,EAAI9B,EAAU8B,GACd/C,GAAAA,CAAE,SAAU+C,EAAG,KAAKC,WAAW,YAGnCC,OAAU,WACRZ,EAAUpB,EAAUoB,GACpBrC,GAAAA,CAAE,SAAUqC,EAAS,KAAKW,WAAW,UAEvCE,UAAa,WACXhC,KAAA,OAAeiC,OAAOC,KAAKT,EAAMjC,cAGjC+B,GAAMJ,IAEb,MAAMgB,GACLC,QAAQC,MAAMF,GA1BhB,QA4BE,OAAOhB,IASZmB,OAAQ,SAASC,EAAMpB,QAGE,IAAZA,EACTA,EAAUc,OAAOC,KAAKlC,KAAKR,UAGD,iBAAZ2B,IACdA,EAAU,CAACA,IAGb,IAAIM,EAAQzB,KAGZlB,EAAAA,EAAEuC,KAAKF,EAAS,SAASqB,EAAG7C,GAE1B,IAAID,EAAS+B,EAAMjC,SAASG,GAGhBb,GAAAA,CAAEyD,GAAME,KAAK,SAAS9C,EAAK,KAAK+C,QAAQ,SAAS/C,EAAK,KAAKgD,OAAO,WAC5E,YAA2C,IAA7B7D,GAAAA,CAAEkB,MAAMS,KAAK,cAIvBY,KAAK,WACT,IAAIuB,EAAM9D,GAAAA,CAAEkB,MACR6C,EAAO,CAAEP,QAAQ,GAErB,GAAGM,EAAIrC,KAAK,gBACEqC,EAAIrC,KAAK,gBAAgBuC,MAAM,KAAKlB,QAAQ,SAASmB,EAAGP,GAClE,IAAIQ,EAAMD,EAAED,MAAM,KAAKG,IAAI,SAASC,GAAK,OAAOA,EAAGC,SAChDH,EAAI,KAAIH,EAAKG,EAAI,IA8JhC,SAAoBI,GAClB,CAAA,GAAI,SAAWA,EAAK,OAAO,EACtB,GAAI,UAAYA,EAAK,OAAO,EAC5B,IAAKC,MAAY,EAAND,GAAU,OAAOE,WAAWF,GAC5C,OAAOA,EAlK6BG,CAAWP,EAAI,OAG7C,IACEJ,EAAInC,KAAK,WAAY,IAAIf,EAAOZ,GAAAA,CAAEkB,MAAO6C,IAC1C,MAAMW,GACLpB,QAAQC,MAAMmB,GAHhB,QAKE,aAKRC,UAAW5D,EAEXhB,YAAa,SAASC,GAuCpB,OADAA,EAAE4E,GAAG5B,WA/BY,SAAS6B,GACxB,IAAIpC,EAAIC,EAAUmC,GACdC,EAAQ9E,EAAE,UAMd,GAJG8E,EAAMC,QACPD,EAAME,YAAY,SAGR,cAATvC,EACDwC,EAAAA,WAAWzC,QACX1C,EAAW0D,OAAOtC,UACd,CAAA,GAAY,WAATuB,EAgBP,MAAM,IAAIyC,UAAJ,gBAAAxD,OAA8Be,EAA9B,iGAfN,IAAI0C,EAAOC,MAAMC,UAAUC,MAAMC,KAAKC,UAAW,GAC7CC,EAAYvE,KAAKS,KAAK,YAE1B,QAAwB,IAAd8D,QAA0D,IAAtBA,EAAUZ,GAStD,MAAM,IAAIa,eAAe,iBAAmBb,EAAS,qCAAuCY,EAAY1E,EAAa0E,GAAa,gBAAkB,KARjI,IAAhBvE,KAAK6D,OACJU,EAAUZ,GAAQc,MAAMF,EAAWN,GAErCjE,KAAKqB,KAAK,SAASmB,EAAGU,GACpBqB,EAAUZ,GAAQc,MAAM3F,EAAEoE,GAAIzC,KAAK,YAAawD,KASxD,OAAOjE,MAGFlB,IA2FX,SAASe,EAAa6D,GACpB,QAAuC,IAA5BgB,SAASP,UAAUxE,KAKzB,YAA4B,IAAjB+D,EAAGS,UACVT,EAAGvD,YAAYR,KAGf+D,EAAGS,UAAUhE,YAAYR,KARhC,IACIgF,EADgB,yBACUC,KAAMlB,EAAImB,YACxC,OAAQF,GAA4B,EAAjBA,EAAQd,OAAcc,EAAQ,GAAGxB,OAAS,GAiBjE,SAASpD,EAAUqD,GACjB,OAAOA,EAAI0B,QAAQ,kBAAmB,SAAS1E,cA7GjDxB,EAAWmG,KAAO,CAQhBC,SAAU,SAAUC,EAAMC,GACxB,IAAIC,EAAQ,KAEZ,OAAO,WACL,IAAIC,EAAUpF,KAAMiE,EAAOK,UAEb,OAAVa,IACFA,EAAQE,WAAW,WACjBJ,EAAKR,MAAMW,EAASnB,GACpBkB,EAAQ,MACPD,OAMXpH,OAAOc,WAAaA,EAGpB,WACO0G,KAAKC,KAAQzH,OAAOwH,KAAKC,MAC5BzH,OAAOwH,KAAKC,IAAMD,KAAKC,IAAM,WAAa,OAAO,IAAID,MAAOE,YAG9D,IADA,IAAIC,EAAU,CAAC,SAAU,OAChBjD,EAAI,EAAGA,EAAIiD,EAAQ5B,SAAW/F,OAAO4H,wBAAyBlD,EAAG,CACtE,IAAImD,EAAKF,EAAQjD,GACjB1E,OAAO4H,sBAAwB5H,OAAO6H,EAAG,yBACzC7H,OAAO8H,qBAAwB9H,OAAO6H,EAAG,yBACX7H,OAAO6H,EAAG,+BAE5C,GAAI,uBAAuBE,KAAK/H,OAAOgI,UAAUC,aAC3CjI,OAAO4H,wBAA0B5H,OAAO8H,qBAAsB,CAClE,IAAII,EAAW,EACflI,OAAO4H,sBAAwB,SAASO,GACpC,IAAIV,EAAMD,KAAKC,MACXW,EAAWC,KAAKC,IAAIJ,EAAW,GAAIT,GACvC,OAAOF,WAAW,WAAaY,EAASD,EAAWE,IACjCA,EAAWX,IAEjCzH,OAAO8H,qBAAuBS,aAK5BvI,OAAOwI,aAAgBxI,OAAOwI,YAAYf,MAC5CzH,OAAOwI,YAAc,CACnBC,MAAOjB,KAAKC,MACZA,IAAK,WAAY,OAAOD,KAAKC,MAAQvF,KAAKuG,SA5BhD,GAgCK7B,SAASP,UAAUqC,OACtB9B,SAASP,UAAUqC,KAAO,SAASC,GACjC,GAAoB,mBAATzG,KAGT,MAAM,IAAIgE,UAAU,wEAKR,SAAV0C,KACU,SAAVC,IACE,OAAOC,EAAQnC,MAAMzE,gBAAgB0G,EAC5B1G,KACAyG,EACFI,EAAMrG,OAAO0D,MAAMC,UAAUC,MAAMC,KAAKC,aAPrD,IAAIuC,EAAU3C,MAAMC,UAAUC,MAAMC,KAAKC,UAAW,GAChDsC,EAAU5G,KAed,OANIA,KAAKmE,YAEPuC,EAAKvC,UAAYnE,KAAKmE,WAExBwC,EAAOxC,UAAY,IAAIuC,EAEhBC,mEChTX1I,EAAAE,EAAAC,GAAAH,EAAAQ,EAAAL,EAAA,SAAA,WAAA,OAAAW,IAAAd,EAAA,UAAA,IAAAoB,EAAApB,EAAA,2MAQMc,aAEJ,SAAAA,EAAY+H,EAASC,gGAASC,CAAAhH,KAAAjB,GAC5BiB,KAAKiH,OAAOH,EAASC,GACrB,IAAI7G,EAAagH,EAAclH,MAC/BA,KAAKK,KAAOpB,OAAAA,EAAAA,YAAAA,CAAY,EAAGiB,GAEvBF,KAAKM,SAASC,KAAd,QAAAC,OAA2BN,KAAgBF,KAAKM,SAASC,KAAd,QAAAC,OAA2BN,GAAcF,KAAKK,MACzFL,KAAKM,SAASG,KAAK,aAAcT,KAAKM,SAASG,KAAK,WAAYT,MAKpEA,KAAKM,SAASI,QAAd,WAAAF,OAAiCN,6FAIjCF,KAAKmH,WACL,IAAIjH,EAAagH,EAAclH,MAO/B,IAAI,IAAIa,KANRb,KAAKM,SAASU,WAAd,QAAAR,OAAiCN,IAAce,WAAW,YAKrDP,QALL,gBAAAF,OAK6BN,IACbF,KACdA,KAAKa,GAAQ,cAOnB,SAASd,EAAUqD,GACjB,OAAOA,EAAI0B,QAAQ,kBAAmB,SAAS1E,cAGjD,SAAS8G,EAAcE,GACrB,YAAoC,IAA1BA,EAAIjH,YAAYR,KACjBI,EAAUqH,EAAIjH,YAAYR,MAE1BI,EAAUqH,EAAIxH,0ECjDzB3B,EAAAE,EAAAC,GAAAH,EAAAQ,EAAAL,EAAA,MAAA,WAAA,OAAAY,IAAAf,EAAAQ,EAAAL,EAAA,cAAA,WAAA,OAAAa,IAAAhB,EAAAQ,EAAAL,EAAA,eAAA,WAAA,OAAAe,IAAAlB,EAAAQ,EAAAL,EAAA,gBAAA,WAAA,OAAAc,IAAAjB,EAAAQ,EAAAL,EAAA,SAAA,WAAA,OAAAgB,IAAAnB,EAAAQ,EAAAL,EAAA,uBAAA,WAAA,OAAAiJ,IAAA,IAAAhJ,EAAAJ,EAAA,UAAAK,EAAAL,EAAAM,EAAAF,GASA,SAASW,IACP,MAAiC,QAA1BF,GAAAA,CAAE,QAAQyB,KAAK,OAWxB,SAAStB,IAIP,IAJyC,IAAtB4E,EAAsB,EAAAS,UAAAT,aAAA7B,IAAAsC,UAAA,GAAAA,UAAA,GAAb,EAAGgD,EAAU,EAAAhD,UAAAT,OAAAS,UAAA,QAAAtC,EACrCoB,EAAM,GACJmE,EAAQ,uCACRC,EAAcD,EAAM1D,OACjBrB,EAAI,EAAGA,EAAIqB,EAAQrB,IAC1BY,GAAOmE,EAAMpB,KAAKsB,MAAMtB,KAAKuB,SAAWF,IAE1C,OAAOF,EAAS,GAAA9G,OAAM4C,EAAN,KAAA5C,OAAa8G,GAAclE,EAW7C,SAASjE,EAAaiE,GACpB,OAAOA,EAAI0B,QAAQ,2BAA4B,QAGjD,SAAS5F,EAAcyI,GACrB,IAOIC,EAPAC,EAAc,CAChBC,WAAc,gBACdC,iBAAoB,sBACpBC,cAAiB,gBACjBC,YAAe,kBAEb1F,EAAO2F,SAASC,cAAc,OAGlC,IAAK,IAAIC,KAAKP,OACiB,IAAlBtF,EAAK8F,MAAMD,KACpBR,EAAMC,EAAYO,IAGtB,OAAGR,IAGDA,EAAMvC,WAAW,WACfsC,EAAMW,eAAe,gBAAiB,CAACX,KACtC,GACI,iBAgBX,SAASvI,EAAOuI,EAAOY,GAGV,SAALC,IAAK,OAAMb,EAAMW,eAAeG,GAFtC,IAAMC,EAAkC,aAAxBR,SAASS,WACnBF,GAAaC,EAAU,WAAa,QAAU,kBAYpD,OATIf,IACEY,GAASZ,EAAMiB,IAAIH,EAAWF,GAE9BG,EACFrD,WAAWmD,GAEX1J,GAAAA,CAAEhB,QAAQ8K,IAAI,OAAQJ,IAGnBC,EAqBT,SAASpB,EAAqBkB,GAAqE,IAAAM,EAAA,EAAAvE,UAAAT,aAAA7B,IAAAsC,UAAA,GAAAA,UAAA,GAAJ,GAAIwE,EAAAD,EAA1DE,kBAAAA,OAA0D,IAAAD,GAAAA,EAAAE,EAAAH,EAA/BI,eAAAA,OAA+B,IAAAD,GAAAA,EACjG,OAAO,SAA2BE,GAAiB,IAAA,IAAAC,EAAA7E,UAAAT,OAANuF,EAAM,IAAAlF,MAAA,EAAAiF,EAAAA,EAAA,EAAA,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAND,EAAMC,EAAA,GAAA/E,UAAA+E,GACjD,IAAMpD,EAAWsC,EAAQ/B,KAAR/B,MAAA8D,EAAO,CAAMvI,KAAMkJ,GAAZ1I,OAAuB4I,IAG/C,GAA6B,OAAzBF,EAAOI,cACT,OAAOrD,IAMTZ,WAAW,WACT,IAAK0D,GAAqBb,SAASqB,WAAarB,SAASqB,WACvD,OAAOtD,IAIJgD,GACHnK,GAAAA,CAAEoJ,UAAUU,IAAI,aAAc,SAA6BY,GACpD1K,GAAAA,CAAEoK,EAAOO,eAAeC,IAAIF,EAASG,QAAQ9F,SAEhDqF,EAAOI,cAAgBE,EAASG,OAChC1D,QAKL,wEC/IPhI,EAAAE,EAAAC,GAAAH,EAAAQ,EAAAL,EAAA,aAAA,WAAA,OAAA2F,IAAA,IAAA1F,EAAAJ,EAAA,UAAAK,EAAAL,EAAAM,EAAAF,0nBAqBAP,OAAO8L,aAAe9L,OAAO8L,WAAc,WAIzC,IAAIC,EAAc/L,OAAO+L,YAAc/L,OAAOgM,MAG9C,IAAKD,EAAY,CACf,IAEAE,EAFI1B,EAAUH,SAASC,cAAc,SACrC6B,EAAc9B,SAAS+B,qBAAqB,UAAU,GAGtD5B,EAAM9G,KAAQ,WACd8G,EAAM6B,GAAQ,oBAETF,EAGHA,EAAOG,WAAWC,aAAa/B,EAAO2B,GAFtC9B,SAASmC,KAAKC,YAAYjC,GAM5B0B,EAAQ,qBAAsBjM,QAAWA,OAAOyM,iBAAiBlC,EAAO,OAASA,EAAMmC,aAEvFX,EAAa,CACXY,YAAa,SAAUX,GACrB,IAAIY,EAAO,UAAYZ,EAAQ,yCAU/B,OAPIzB,EAAMsC,WACRtC,EAAMsC,WAAWC,QAAUF,EAE3BrC,EAAMwC,YAAcH,EAIA,QAAfX,EAAKe,QAKlB,OAAO,SAAShB,GACd,MAAO,CACLiB,QAASlB,EAAWY,YAAYX,GAAS,OACzCA,MAAOA,GAAS,QA5CqB,IAkD3C,IAAI/F,EAAa,CACfiH,QAAS,GAETC,QAAS,GAOT3J,MAVe,WAab,IAA2B,IAAvBtB,KAAKkL,cAAT,CAGElL,KAAKkL,eAAgB,EAIXpM,GAAAA,CAAE,sBACJ+E,QACR/E,GAAAA,CAAE,gCAAgCqM,SAASjD,SAASmC,MAGtD,IACIe,EADAC,EAAkBvM,GAAAA,CAAE,kBAAkBwM,IAAI,eAO9C,IAAK,IAAIC,KAJTH,EA0MJ,SAA4BhI,GAC1B,IAAIoI,EAAc,GAElB,MAAmB,iBAARpI,IAIXA,EAAMA,EAAID,OAAOiB,MAAM,GAAI,IAM3BoH,EAAcpI,EAAIN,MAAM,KAAK2I,OAAO,SAASC,EAAKC,GAChD,IAAIC,EAAQD,EAAM7G,QAAQ,MAAO,KAAKhC,MAAM,KACxCyI,EAAMK,EAAM,GACZC,EAAMD,EAAM,GAchB,OAbAL,EAAMO,mBAAmBP,GAIzBM,OAAqB,IAARA,EAAsB,KAAOC,mBAAmBD,GAExDH,EAAIK,eAAeR,GAEbrH,MAAM8H,QAAQN,EAAIH,IAC3BG,EAAIH,GAAK5K,KAAKkL,GAEdH,EAAIH,GAAO,CAACG,EAAIH,GAAMM,GAJtBH,EAAIH,GAAOM,EAMNH,GACN,IA3BMF,EA9MQS,CAAmBZ,GATvBrL,KAWNgL,QAAU,GAECI,EACXA,EAAaW,eAAeR,IAdtBvL,KAeFgL,QAAQrK,KAAK,CAChBhB,KAAM4L,EACNW,MAAK,+BAAA1L,OAAiC4K,EAAaG,GAA9C,OAKXvL,KAAKiL,QAAUjL,KAAKmM,kBAEpBnM,KAAKoM,aASPC,QApDe,WAqDbrM,KAAKkL,eAAgB,EACrBlL,KAAKsB,SASPgL,QA/De,SA+DPC,GACN,IAAIC,EAAQxM,KAAKyM,IAAIF,GAErB,QAAIC,GACK1O,OAAO8L,WAAW4C,GAAOzB,SAapC2B,KAhFe,SAgFVH,GACH,OAAOA,IAASvM,KAAKmM,mBASvBQ,KA1Fe,SA0FVJ,GACH,IAAMK,EAAW5M,KAAK6M,KAAKN,GAI3B,OAAIK,IACM5M,KAAKsM,QAAQM,IAczBE,GA9Ge,SA8GZP,GACD,IADOQ,EAAAC,EACOT,EAAKpJ,OAAOL,MAAM,KAAKH,OAAO,SAAAd,GAAC,QAAMA,EAAEgC,SAD9C,GAEAoJ,EAFAF,EAAA,GAAAG,EAAAH,EAAA,GAEQI,OAFR,IAAAD,EAEqB,GAFrBA,EAKP,GAAmB,SAAfC,EACF,OAAOnN,KAAK0M,KAAKO,GAGnB,IAAKE,GAA6B,OAAfA,EACjB,OAAOnN,KAAKsM,QAAQW,GAGtB,GAAmB,SAAfE,EACF,OAAOnN,KAAK2M,KAAKM,GAGnB,MAAM,IAAIG,MAAJ,oIAAA5M,OAEkE+L,EAFlE,cAYRE,IA3Ie,SA2IXF,GACF,IAAK,IAAI/J,KAAKxC,KAAKgL,QACjB,GAAGhL,KAAKgL,QAAQe,eAAevJ,GAAI,CACjC,IAAIgK,EAAQxM,KAAKgL,QAAQxI,GACzB,GAAI+J,IAASC,EAAM7M,KAAM,OAAO6M,EAAMN,MAI1C,OAAO,MASTW,KA5Je,SA4JVN,GAAM,IAAA9K,EAAAzB,KACHqN,EAAarN,KAAKgL,QAAQsC,UAAU,SAACC,GAAD,OAAO9L,EAAK+L,cAAcD,KAAOhB,IAC3E,IAAoB,IAAhBc,EACF,MAAM,IAAID,MAAJ,iCAAA5M,OACkB+L,EADlB,8GAMR,IAAMkB,EAAYzN,KAAKgL,QAAQqC,EAAa,GAC5C,OAAOI,EAAYA,EAAU9N,KAAO,MAUtC6N,cAhLe,SAgLDtB,GACZ,GAAqB,iBAAVA,EACT,OAAOA,EACT,GAAqB,WAAjB1K,EAAO0K,GACT,OAAOA,EAAMvM,KACf,MAAM,IAAIqE,UAAJ,+IAAAxD,OAEuE0L,EAFvE,OAAA1L,OAAAgB,EAEyF0K,GAFzF,aAYRC,gBAjMe,WAoMb,IAFA,IAAIuB,EAEKlL,EAAI,EAAGA,EAAIxC,KAAKgL,QAAQnH,OAAQrB,IAAK,CAC5C,IAAIgK,EAAQxM,KAAKgL,QAAQxI,GAErB1E,OAAO8L,WAAW4C,EAAMN,OAAOnB,UACjC2C,EAAUlB,GAId,OAAOkB,GAAW1N,KAAKwN,cAAcE,IAQvCtB,SApNe,WAoNJ,IAAAuB,EAAA3N,KACTlB,GAAAA,CAAEhB,QAAQ8P,IAAI,wBAAwBC,GAAG,uBAAwB,WAC/D,IAAIC,EAAUH,EAAKxB,kBAAmB4B,EAAcJ,EAAK1C,QAErD6C,IAAYC,IAEdJ,EAAK1C,QAAU6C,EAGfhP,GAAAA,CAAEhB,QAAQ4C,QAAQ,wBAAyB,CAACoN,EAASC,yGCpS7DrQ,EAAAD,QAAAM,INgCAE,EAAA+P,EAAAhQ,EAGAC,EAAAQ,EAAA,SAAAhB,EAAAkC,EAAAsO,GACAhQ,EAAAiQ,EAAAzQ,EAAAkC,IACAsC,OAAAkM,eAAA1Q,EAAAkC,EAAA,CAA0CyO,YAAA,EAAA3B,IAAAwB,KAK1ChQ,EAAAE,EAAA,SAAAV,GACA,oBAAA4Q,QAAAA,OAAAC,aACArM,OAAAkM,eAAA1Q,EAAA4Q,OAAAC,YAAA,CAAwDpC,MAAA,WAExDjK,OAAAkM,eAAA1Q,EAAA,aAAA,CAAiDyO,OAAA,KAQjDjO,EAAAmK,EAAA,SAAA8D,EAAAqC,GAEA,GADA,EAAAA,IAAArC,EAAAjO,EAAAiO,IACA,EAAAqC,EAAA,OAAArC,EACA,GAAA,EAAAqC,GAAA,iBAAArC,GAAAA,GAAAA,EAAAsC,WAAA,OAAAtC,EACA,IAAAuC,EAAAxM,OAAAyM,OAAA,MAGA,GAFAzQ,EAAAE,EAAAsQ,GACAxM,OAAAkM,eAAAM,EAAA,UAAA,CAAyCL,YAAA,EAAAlC,MAAAA,IACzC,EAAAqC,GAAA,iBAAArC,EAAA,IAAA,IAAAX,KAAAW,EAAAjO,EAAAQ,EAAAgQ,EAAAlD,EAAA,SAAAA,GAAgH,OAAAW,EAAAX,IAAqB/E,KAAA,KAAA+E,IACrI,OAAAkD,GAIAxQ,EAAAM,EAAA,SAAAb,GACA,IAAAuQ,EAAAvQ,GAAAA,EAAA8Q,WACA,WAA2B,OAAA9Q,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAO,EAAAQ,EAAAwP,EAAA,IAAAA,GACAA,GAIAhQ,EAAAiQ,EAAA,SAAAxM,EAAAiN,GAAsD,OAAA1M,OAAAkC,UAAA4H,eAAA1H,KAAA3C,EAAAiN,IAGtD1Q,EAAA4D,EAAA,GAIA5D,EAAAA,EAAA2Q,EAAA,GA9EA,SAAA3Q,EAAA4Q,GAGA,GAAA7Q,EAAA6Q,GACA,OAAA7Q,EAAA6Q,GAAApR,QAGA,IAAAC,EAAAM,EAAA6Q,GAAA,CACArM,EAAAqM,EACAC,GAAA,EACArR,QAAA,IAUA,OANAsR,EAAAF,GAAAxK,KAAA3G,EAAAD,QAAAC,EAAAA,EAAAD,QAAAQ,GAGAP,EAAAoR,GAAA,EAGApR,EAAAD,cAvBAO","file":"foundation.core.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.core\"] = factory(require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"] = factory(root[\"jQuery\"]);\n})(window, function(__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 = 0);\n","// --- Foundation Core API ---\n// Initialize Foundation and add some utilities to its public API for backward compatibility.\n// Please note that every utility do not have to be added to the core API.\nimport $ from 'jquery';\nimport { Foundation } from '../../foundation.core';\nimport { Plugin } from '../../foundation.core.plugin';\nimport { rtl, GetYoDigits, transitionend, RegExpEscape, onLoad } from '../../foundation.core.utils';\n\nFoundation.addToJquery($);\n\n// Every plugin depends on plugin now, we can include that on the core for the\n// script inclusion path.\nFoundation.Plugin = Plugin;\n\n// These are now separated out, but historically were a part of this module,\n// and since this is here for backwards compatibility we include them in\n// this entry.\nFoundation.rtl = rtl;\nFoundation.GetYoDigits = GetYoDigits;\nFoundation.transitionend = transitionend;\nFoundation.RegExpEscape = RegExpEscape;\nFoundation.onLoad = onLoad;\n\nwindow.Foundation = Foundation;\n\n// --- Foundation Core exports ---\n// Export \"Plugin\" and all core utilities, since the `foundation.core` entry plays the role of\n// all core source files.\n\nexport { Foundation };\nexport * from '../../foundation.core.plugin';\nexport * from '../../foundation.core.utils';\n","\"use strict\";\n\nimport $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nvar FOUNDATION_VERSION = '6.6.1';\n\n// Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\nvar Foundation = {\n version: FOUNDATION_VERSION,\n\n /**\n * Stores initialized plugins.\n */\n _plugins: {},\n\n /**\n * Stores generated unique ids for plugin instances\n */\n _uuids: [],\n\n /**\n * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n * @param {Object} plugin - The constructor of the plugin.\n */\n plugin: function(plugin, name) {\n // Object key to use when adding to global Foundation object\n // Examples: Foundation.Reveal, Foundation.OffCanvas\n var className = (name || functionName(plugin));\n // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n // Examples: data-reveal, data-off-canvas\n var attrName = hyphenate(className);\n\n // Add to the Foundation object and the plugins list (for reflowing)\n this._plugins[attrName] = this[className] = plugin;\n },\n /**\n * @function\n * Populates the _uuids array with pointers to each individual plugin instance.\n * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n * Also fires the initialization event for each plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @param {String} name - the name of the plugin, passed as a camelCased string.\n * @fires Plugin#init\n */\n registerPlugin: function(plugin, name){\n var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n plugin.uuid = GetYoDigits(6, pluginName);\n\n if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }\n if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n plugin.$element.trigger(`init.zf.${pluginName}`);\n\n this._uuids.push(plugin.uuid);\n\n return;\n },\n /**\n * @function\n * Removes the plugins uuid from the _uuids array.\n * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n * Also fires the destroyed event for the plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @fires Plugin#destroyed\n */\n unregisterPlugin: function(plugin){\n var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger(`destroyed.zf.${pluginName}`);\n for(var prop in plugin){\n plugin[prop] = null;//clean up script to prep for garbage collection.\n }\n return;\n },\n\n /**\n * @function\n * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n * @default If no argument is passed, reflow all currently active plugins.\n */\n reInit: function(plugins){\n var isJQ = plugins instanceof $;\n try{\n if(isJQ){\n plugins.each(function(){\n $(this).data('zfPlugin')._init();\n });\n }else{\n var type = typeof plugins,\n _this = this,\n fns = {\n 'object': function(plgs){\n plgs.forEach(function(p){\n p = hyphenate(p);\n $('[data-'+ p +']').foundation('_init');\n });\n },\n 'string': function(){\n plugins = hyphenate(plugins);\n $('[data-'+ plugins +']').foundation('_init');\n },\n 'undefined': function(){\n this['object'](Object.keys(_this._plugins));\n }\n };\n fns[type](plugins);\n }\n }catch(err){\n console.error(err);\n }finally{\n return plugins;\n }\n },\n\n /**\n * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n */\n reflow: function(elem, plugins) {\n\n // If plugins is undefined, just grab everything\n if (typeof plugins === 'undefined') {\n plugins = Object.keys(this._plugins);\n }\n // If plugins is a string, convert it to an array with one item\n else if (typeof plugins === 'string') {\n plugins = [plugins];\n }\n\n var _this = this;\n\n // Iterate through each plugin\n $.each(plugins, function(i, name) {\n // Get the current plugin\n var plugin = _this._plugins[name];\n\n // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']').filter(function () {\n return typeof $(this).data(\"zfPlugin\") === 'undefined';\n });\n\n // For each plugin found, initialize it\n $elem.each(function() {\n var $el = $(this),\n opts = { reflow: true };\n\n if($el.attr('data-options')){\n var thing = $el.attr('data-options').split(';').forEach(function(e, i){\n var opt = e.split(':').map(function(el){ return el.trim(); });\n if(opt[0]) opts[opt[0]] = parseValue(opt[1]);\n });\n }\n try{\n $el.data('zfPlugin', new plugin($(this), opts));\n }catch(er){\n console.error(er);\n }finally{\n return;\n }\n });\n });\n },\n getFnName: functionName,\n\n addToJquery: function($) {\n // TODO: consider not making this a jQuery function\n // TODO: need way to reflow vs. re-initialize\n /**\n * The Foundation jQuery method.\n * @param {String|Array} method - An action to perform on the current jQuery object.\n */\n var foundation = function(method) {\n var type = typeof method,\n $noJS = $('.no-js');\n\n if($noJS.length){\n $noJS.removeClass('no-js');\n }\n\n if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.\n MediaQuery._init();\n Foundation.reflow(this);\n }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins\n var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary\n var plugClass = this.data('zfPlugin');//determine the class of plugin\n\n if(typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined'){//make sure both the class and method exist\n if(this.length === 1){//if there's only one, call it directly.\n plugClass[method].apply(plugClass, args);\n }else{\n this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each\n plugClass[method].apply($(el).data('zfPlugin'), args);\n });\n }\n }else{//error for no class or no method\n throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n }\n }else{//error for invalid argument type\n throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);\n }\n return this;\n };\n $.fn.foundation = foundation;\n return $;\n }\n};\n\nFoundation.util = {\n /**\n * Function for applying a debounce effect to a function call.\n * @function\n * @param {Function} func - Function to be called at end of timeout.\n * @param {Number} delay - Time in ms to delay the call of `func`.\n * @returns function\n */\n throttle: function (func, delay) {\n var timer = null;\n\n return function () {\n var context = this, args = arguments;\n\n if (timer === null) {\n timer = setTimeout(function () {\n func.apply(context, args);\n timer = null;\n }, delay);\n }\n };\n }\n};\n\nwindow.Foundation = Foundation;\n\n// Polyfill for requestAnimationFrame\n(function() {\n if (!Date.now || !window.Date.now)\n window.Date.now = Date.now = function() { return new Date().getTime(); };\n\n var vendors = ['webkit', 'moz'];\n for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n var vp = vendors[i];\n window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];\n window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']\n || window[vp+'CancelRequestAnimationFrame']);\n }\n if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)\n || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n var lastTime = 0;\n window.requestAnimationFrame = function(callback) {\n var now = Date.now();\n var nextTime = Math.max(lastTime + 16, now);\n return setTimeout(function() { callback(lastTime = nextTime); },\n nextTime - now);\n };\n window.cancelAnimationFrame = clearTimeout;\n }\n /**\n * Polyfill for performance.now, required by rAF\n */\n if(!window.performance || !window.performance.now){\n window.performance = {\n start: Date.now(),\n now: function(){ return Date.now() - this.start; }\n };\n }\n})();\nif (!Function.prototype.bind) {\n Function.prototype.bind = function(oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function() {},\n fBound = function() {\n return fToBind.apply(this instanceof fNOP\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n fBound.prototype = new fNOP();\n\n return fBound;\n };\n}\n// Polyfill to get the name of a function in IE9\nfunction functionName(fn) {\n if (typeof Function.prototype.name === 'undefined') {\n var funcNameRegex = /function\\s([^(]{1,})\\(/;\n var results = (funcNameRegex).exec((fn).toString());\n return (results && results.length > 1) ? results[1].trim() : \"\";\n }\n else if (typeof fn.prototype === 'undefined') {\n return fn.constructor.name;\n }\n else {\n return fn.prototype.constructor.name;\n }\n}\nfunction parseValue(str){\n if ('true' === str) return true;\n else if ('false' === str) return false;\n else if (!isNaN(str * 1)) return parseFloat(str);\n return str;\n}\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport {Foundation};\n","'use strict';\n\nimport $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\n\n// Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\nclass Plugin {\n\n constructor(element, options) {\n this._setup(element, options);\n var pluginName = getPluginName(this);\n this.uuid = GetYoDigits(6, pluginName);\n\n if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); }\n if(!this.$element.data('zfPlugin')){ this.$element.data('zfPlugin', this); }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n this.$element.trigger(`init.zf.${pluginName}`);\n }\n\n destroy() {\n this._destroy();\n var pluginName = getPluginName(this);\n this.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger(`destroyed.zf.${pluginName}`);\n for(var prop in this){\n this[prop] = null;//clean up script to prep for garbage collection.\n }\n }\n}\n\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n if(typeof(obj.constructor.name) !== 'undefined') {\n return hyphenate(obj.constructor.name);\n } else {\n return hyphenate(obj.className);\n }\n}\n\nexport {Plugin};\n","\"use strict\";\n\nimport $ from 'jquery';\n\n// Core Foundation Utilities, utilized in a number of places.\n\n /**\n * Returns a boolean for RTL support\n */\nfunction rtl() {\n return $('html').attr('dir') === 'rtl';\n}\n\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\nfunction GetYoDigits(length = 6, namespace){\n let str = '';\n const chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n const charsLength = chars.length;\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * charsLength)];\n }\n return namespace ? `${str}-${namespace}` : str;\n}\n\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\nfunction RegExpEscape(str){\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem){\n var transitions = {\n 'transition': 'transitionend',\n 'WebkitTransition': 'webkitTransitionEnd',\n 'MozTransition': 'transitionend',\n 'OTransition': 'otransitionend'\n };\n var elem = document.createElement('div'),\n end;\n\n for (var t in transitions){\n if (typeof elem.style[t] !== 'undefined'){\n end = transitions[t];\n }\n }\n if(end){\n return end;\n }else{\n end = setTimeout(function(){\n $elem.triggerHandler('transitionend', [$elem]);\n }, 1);\n return 'transitionend';\n }\n}\n\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\nfunction onLoad($elem, handler) {\n const didLoad = document.readyState === 'complete';\n const eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n const cb = () => $elem.triggerHandler(eventType);\n\n if ($elem) {\n if (handler) $elem.one(eventType, handler);\n\n if (didLoad)\n setTimeout(cb);\n else\n $(window).one('load', cb);\n }\n\n return eventType;\n}\n\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n * (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n * outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\nfunction ignoreMousedisappear(handler, { ignoreLeaveWindow = false, ignoreReappear = false } = {}) {\n return function leaveEventHandler(eLeave, ...rest) {\n const callback = handler.bind(this, eLeave, ...rest);\n\n // The mouse left: call the given callback if the mouse entered elsewhere\n if (eLeave.relatedTarget !== null) {\n return callback();\n }\n\n // Otherwise, check if the mouse actually left the window.\n // In firefox if the user switched between windows, the window sill have the focus by the time\n // the event is triggered. We have to debounce the event to test this case.\n setTimeout(function leaveEventDebouncer() {\n if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n return callback();\n }\n\n // Otherwise, wait for the mouse to reeapear outside of the element,\n if (!ignoreReappear) {\n $(document).one('mouseenter', function reenterEventHandler(eReenter) {\n if (!$(eLeave.currentTarget).has(eReenter.target).length) {\n // Fill where the mouse finally entered.\n eLeave.relatedTarget = eReenter.target;\n callback();\n }\n });\n }\n\n }, 0);\n };\n}\n\n\nexport { rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear };\n","'use strict';\n\nimport $ from 'jquery';\n\n// Default set of media queries\nconst defaultQueries = {\n 'default' : 'only screen',\n landscape : 'only screen and (orientation: landscape)',\n portrait : 'only screen and (orientation: portrait)',\n retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n 'only screen and (min--moz-device-pixel-ratio: 2),' +\n 'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n 'only screen and (min-device-pixel-ratio: 2),' +\n 'only screen and (min-resolution: 192dpi),' +\n 'only screen and (min-resolution: 2dppx)'\n };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright © 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n \"use strict\";\n\n // For browsers that support matchMedium api such as IE 9 and webkit\n var styleMedia = (window.styleMedia || window.media);\n\n // For those that don't support matchMedium\n if (!styleMedia) {\n var style = document.createElement('style'),\n script = document.getElementsByTagName('script')[0],\n info = null;\n\n style.type = 'text/css';\n style.id = 'matchmediajs-test';\n\n if (!script) {\n document.head.appendChild(style);\n } else {\n script.parentNode.insertBefore(style, script);\n }\n\n // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n styleMedia = {\n matchMedium: function (media) {\n var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n if (style.styleSheet) {\n style.styleSheet.cssText = text;\n } else {\n style.textContent = text;\n }\n\n // Test if media query is true or false\n return info.width === '1px';\n }\n };\n }\n\n return function(media) {\n return {\n matches: styleMedia.matchMedium(media || 'all'),\n media: media || 'all'\n };\n };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n queries: [],\n\n current: '',\n\n /**\n * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n * @function\n * @private\n */\n _init() {\n\n // make sure the initialization is only done once when calling _init() several times\n if (this.isInitialized === true) {\n return;\n } else {\n this.isInitialized = true;\n }\n\n var self = this;\n var $meta = $('meta.foundation-mq');\n if(!$meta.length){\n $('<meta class=\"foundation-mq\">').appendTo(document.head);\n }\n\n var extractedStyles = $('.foundation-mq').css('font-family');\n var namedQueries;\n\n namedQueries = parseStyleToObject(extractedStyles);\n\n self.queries = []; // reset\n\n for (var key in namedQueries) {\n if(namedQueries.hasOwnProperty(key)) {\n self.queries.push({\n name: key,\n value: `only screen and (min-width: ${namedQueries[key]})`\n });\n }\n }\n\n this.current = this._getCurrentSize();\n\n this._watcher();\n },\n\n /**\n * Reinitializes the media query helper.\n * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n * @function\n * @private\n */\n _reInit() {\n this.isInitialized = false;\n this._init();\n },\n\n /**\n * Checks if the screen is at least as wide as a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n */\n atLeast(size) {\n var query = this.get(size);\n\n if (query) {\n return window.matchMedia(query).matches;\n }\n\n return false;\n },\n\n /**\n * Checks if the screen is within the given breakpoint.\n * If smaller than the breakpoint of larger than its upper limit it returns false.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n */\n only(size) {\n return size === this._getCurrentSize();\n },\n\n /**\n * Checks if the screen is within a breakpoint or smaller.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n */\n upTo(size) {\n const nextSize = this.next(size);\n\n // If the next breakpoint does not match, the screen is smaller than\n // the upper limit of this breakpoint.\n if (nextSize) {\n return !this.atLeast(nextSize);\n }\n\n // If there is no next breakpoint, the \"size\" breakpoint does not have\n // an upper limit and the screen will always be within it or smaller.\n return true;\n },\n\n /**\n * Checks if the screen matches to a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n */\n is(size) {\n const parts = size.trim().split(' ').filter(p => !!p.length);\n const [bpSize, bpModifier = ''] = parts;\n\n // Only the breakpont\n if (bpModifier === 'only') {\n return this.only(bpSize);\n }\n // At least the breakpoint (included)\n if (!bpModifier || bpModifier === 'up') {\n return this.atLeast(bpSize);\n }\n // Up to the breakpoint (included)\n if (bpModifier === 'down') {\n return this.upTo(bpSize);\n }\n\n throw new Error(`\n Invalid breakpoint passed to MediaQuery.is().\n Expected a breakpoint name formatted like \"<size> <modifier>\", got \"${size}\".\n `);\n },\n\n /**\n * Gets the media query of a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to get.\n * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n */\n get(size) {\n for (var i in this.queries) {\n if(this.queries.hasOwnProperty(i)) {\n var query = this.queries[i];\n if (size === query.name) return query.value;\n }\n }\n\n return null;\n },\n\n /**\n * Get the breakpoint following the given breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint.\n * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n */\n next(size) {\n const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n if (queryIndex === -1) {\n throw new Error(`\n Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n Ensure it is present in your Sass \"$breakpoints\" setting.\n `);\n }\n\n const nextQuery = this.queries[queryIndex + 1];\n return nextQuery ? nextQuery.name : null;\n },\n\n /**\n * Returns the name of the breakpoint related to the given value.\n * @function\n * @private\n * @param {String|Object} value - Breakpoint name or query object.\n * @returns {String} Name of the breakpoint.\n */\n _getQueryName(value) {\n if (typeof value === 'string')\n return value;\n if (typeof value === 'object')\n return value.name;\n throw new TypeError(`\n Invalid value passed to MediaQuery._getQueryName().\n Expected a breakpoint name (String) or a breakpoint query (Object), got \"${value}\" (${typeof value})\n `);\n },\n\n /**\n * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n * @function\n * @private\n * @returns {String} Name of the current breakpoint.\n */\n _getCurrentSize() {\n var matched;\n\n for (var i = 0; i < this.queries.length; i++) {\n var query = this.queries[i];\n\n if (window.matchMedia(query.value).matches) {\n matched = query;\n }\n }\n\n return matched && this._getQueryName(matched);\n },\n\n /**\n * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n * @function\n * @private\n */\n _watcher() {\n $(window).off('resize.zf.mediaquery').on('resize.zf.mediaquery', () => {\n var newSize = this._getCurrentSize(), currentSize = this.current;\n\n if (newSize !== currentSize) {\n // Change the current media query\n this.current = newSize;\n\n // Broadcast the media query change on the window\n $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n }\n });\n }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n var styleObject = {};\n\n if (typeof str !== 'string') {\n return styleObject;\n }\n\n str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n if (!str) {\n return styleObject;\n }\n\n styleObject = str.split('&').reduce(function(ret, param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = parts[0];\n var val = parts[1];\n key = decodeURIComponent(key);\n\n // missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n if (!ret.hasOwnProperty(key)) {\n ret[key] = val;\n } else if (Array.isArray(ret[key])) {\n ret[key].push(val);\n } else {\n ret[key] = [ret[key], val];\n }\n return ret;\n }, {});\n\n return styleObject;\n}\n\nexport {MediaQuery};\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]/js/entries/plugins/foundation.core.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.core.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.core.plugin.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.core.utils.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.mediaQuery.js"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE_jquery__","installedModules","__webpack_require__","m","r","__webpack_exports__","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core__WEBPACK_IMPORTED_MODULE_1__","d","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__","Foundation","addToJquery","$","Plugin","rtl","GetYoDigits","transitionend","RegExpEscape","onLoad","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__","version","_plugins","_uuids","plugin","name","className","functionName","attrName","hyphenate","this","registerPlugin","pluginName","constructor","toLowerCase","uuid","$element","attr","concat","data","trigger","push","unregisterPlugin","prop","splice","indexOf","removeAttr","removeData","reInit","plugins","isJQ","each","_init","type","_typeof","_this","object","plgs","forEach","p","foundation","string","undefined","Object","keys","err","console","error","reflow","elem","i","find","addBack","filter","$el","opts","thing","split","_index","opt","e","map","el","trim","str","isNaN","parseFloat","parseValue","er","getFnName","fn","method","$noJS","length","removeClass","MediaQuery","TypeError","args","Array","prototype","slice","call","arguments","plugClass","ReferenceError","apply","Function","results","exec","toString","replace","util","throttle","func","delay","timer","context","setTimeout","Date","now","getTime","vendors","requestAnimationFrame","vp","cancelAnimationFrame","test","navigator","userAgent","lastTime","callback","nextTime","Math","max","clearTimeout","performance","start","bind","oThis","fNOP","fBound","fToBind","aArgs","element","options","_classCallCheck","_setup","getPluginName","_destroy","obj","ignoreMousedisappear","chars","floor","random","charsLength","namespace","end","transitions","transition","MozTransition","OTransition","document","createElement","triggerHandler","$elem","cb","didLoad","readyState","handler","eventType","one","_ref$ignoreReappear","ignoreReappear","ignoreLeaveWindow","eLeave","_len","_key","rest","relatedTarget","hasFocus","eReenter","target","Symbol","iterator","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","matchMedia","styleMedia","media","style","info","head","appendChild","script","insertBefore","getComputedStyle","currentStyle","styleSheet","matchMedium","cssText","text","textContent","matches","queries","current","isInitialized","appendTo","extractedStyles","css","namedQueries","styleObject","reduce","ret","param","parts","key","val","decodeURIComponent","hasOwnProperty","isArray","parseStyleToObject","value","_getCurrentSize","_watcher","size","upTo","nextSize","atLeast","next","bpSize","_parts$","_parts","bpModifier","only","query","_getQueryName","q","queryIndex","Error","nextQuery","matched","newSize","_this2","currentSize","c","getter","o","defineProperty","enumerable","get","toStringTag","t","mode","__esModule","ns","create","property","s","moduleId","l","modules"],"mappings":"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","file":"foundation.core.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.core\"] = factory(require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"] = factory(root[\"jQuery\"]);\n})(window, function(__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 = 0);\n","// --- Foundation Core API ---\n// Initialize Foundation and add some utilities to its public API for backward compatibility.\n// Please note that every utility do not have to be added to the core API.\nimport $ from 'jquery';\nimport { Foundation } from '../../foundation.core';\nimport { Plugin } from '../../foundation.core.plugin';\nimport { rtl, GetYoDigits, transitionend, RegExpEscape, onLoad } from '../../foundation.core.utils';\n\nFoundation.addToJquery($);\n\n// Every plugin depends on plugin now, we can include that on the core for the\n// script inclusion path.\nFoundation.Plugin = Plugin;\n\n// These are now separated out, but historically were a part of this module,\n// and since this is here for backwards compatibility we include them in\n// this entry.\nFoundation.rtl = rtl;\nFoundation.GetYoDigits = GetYoDigits;\nFoundation.transitionend = transitionend;\nFoundation.RegExpEscape = RegExpEscape;\nFoundation.onLoad = onLoad;\n\nwindow.Foundation = Foundation;\n\n// --- Foundation Core exports ---\n// Export \"Plugin\" and all core utilities, since the `foundation.core` entry plays the role of\n// all core source files.\n\nexport { Foundation };\nexport * from '../../foundation.core.plugin';\nexport * from '../../foundation.core.utils';\n","\"use strict\";\n\nimport $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nvar FOUNDATION_VERSION = '6.6.1';\n\n// Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\nvar Foundation = {\n version: FOUNDATION_VERSION,\n\n /**\n * Stores initialized plugins.\n */\n _plugins: {},\n\n /**\n * Stores generated unique ids for plugin instances\n */\n _uuids: [],\n\n /**\n * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n * @param {Object} plugin - The constructor of the plugin.\n */\n plugin: function(plugin, name) {\n // Object key to use when adding to global Foundation object\n // Examples: Foundation.Reveal, Foundation.OffCanvas\n var className = (name || functionName(plugin));\n // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n // Examples: data-reveal, data-off-canvas\n var attrName = hyphenate(className);\n\n // Add to the Foundation object and the plugins list (for reflowing)\n this._plugins[attrName] = this[className] = plugin;\n },\n /**\n * @function\n * Populates the _uuids array with pointers to each individual plugin instance.\n * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n * Also fires the initialization event for each plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @param {String} name - the name of the plugin, passed as a camelCased string.\n * @fires Plugin#init\n */\n registerPlugin: function(plugin, name){\n var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n plugin.uuid = GetYoDigits(6, pluginName);\n\n if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }\n if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n plugin.$element.trigger(`init.zf.${pluginName}`);\n\n this._uuids.push(plugin.uuid);\n\n return;\n },\n /**\n * @function\n * Removes the plugins uuid from the _uuids array.\n * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n * Also fires the destroyed event for the plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @fires Plugin#destroyed\n */\n unregisterPlugin: function(plugin){\n var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger(`destroyed.zf.${pluginName}`);\n for(var prop in plugin){\n plugin[prop] = null;//clean up script to prep for garbage collection.\n }\n return;\n },\n\n /**\n * @function\n * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n * @default If no argument is passed, reflow all currently active plugins.\n */\n reInit: function(plugins){\n var isJQ = plugins instanceof $;\n try{\n if(isJQ){\n plugins.each(function(){\n $(this).data('zfPlugin')._init();\n });\n }else{\n var type = typeof plugins,\n _this = this,\n fns = {\n 'object': function(plgs){\n plgs.forEach(function(p){\n p = hyphenate(p);\n $('[data-'+ p +']').foundation('_init');\n });\n },\n 'string': function(){\n plugins = hyphenate(plugins);\n $('[data-'+ plugins +']').foundation('_init');\n },\n 'undefined': function(){\n this['object'](Object.keys(_this._plugins));\n }\n };\n fns[type](plugins);\n }\n }catch(err){\n console.error(err);\n }finally{\n return plugins;\n }\n },\n\n /**\n * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n */\n reflow: function(elem, plugins) {\n\n // If plugins is undefined, just grab everything\n if (typeof plugins === 'undefined') {\n plugins = Object.keys(this._plugins);\n }\n // If plugins is a string, convert it to an array with one item\n else if (typeof plugins === 'string') {\n plugins = [plugins];\n }\n\n var _this = this;\n\n // Iterate through each plugin\n $.each(plugins, function(i, name) {\n // Get the current plugin\n var plugin = _this._plugins[name];\n\n // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']').filter(function () {\n return typeof $(this).data(\"zfPlugin\") === 'undefined';\n });\n\n // For each plugin found, initialize it\n $elem.each(function() {\n var $el = $(this),\n opts = { reflow: true };\n\n if($el.attr('data-options')){\n var thing = $el.attr('data-options').split(';').forEach(function(e, i){\n var opt = e.split(':').map(function(el){ return el.trim(); });\n if(opt[0]) opts[opt[0]] = parseValue(opt[1]);\n });\n }\n try{\n $el.data('zfPlugin', new plugin($(this), opts));\n }catch(er){\n console.error(er);\n }finally{\n return;\n }\n });\n });\n },\n getFnName: functionName,\n\n addToJquery: function($) {\n // TODO: consider not making this a jQuery function\n // TODO: need way to reflow vs. re-initialize\n /**\n * The Foundation jQuery method.\n * @param {String|Array} method - An action to perform on the current jQuery object.\n */\n var foundation = function(method) {\n var type = typeof method,\n $noJS = $('.no-js');\n\n if($noJS.length){\n $noJS.removeClass('no-js');\n }\n\n if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.\n MediaQuery._init();\n Foundation.reflow(this);\n }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins\n var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary\n var plugClass = this.data('zfPlugin');//determine the class of plugin\n\n if(typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined'){//make sure both the class and method exist\n if(this.length === 1){//if there's only one, call it directly.\n plugClass[method].apply(plugClass, args);\n }else{\n this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each\n plugClass[method].apply($(el).data('zfPlugin'), args);\n });\n }\n }else{//error for no class or no method\n throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n }\n }else{//error for invalid argument type\n throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);\n }\n return this;\n };\n $.fn.foundation = foundation;\n return $;\n }\n};\n\nFoundation.util = {\n /**\n * Function for applying a debounce effect to a function call.\n * @function\n * @param {Function} func - Function to be called at end of timeout.\n * @param {Number} delay - Time in ms to delay the call of `func`.\n * @returns function\n */\n throttle: function (func, delay) {\n var timer = null;\n\n return function () {\n var context = this, args = arguments;\n\n if (timer === null) {\n timer = setTimeout(function () {\n func.apply(context, args);\n timer = null;\n }, delay);\n }\n };\n }\n};\n\nwindow.Foundation = Foundation;\n\n// Polyfill for requestAnimationFrame\n(function() {\n if (!Date.now || !window.Date.now)\n window.Date.now = Date.now = function() { return new Date().getTime(); };\n\n var vendors = ['webkit', 'moz'];\n for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n var vp = vendors[i];\n window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];\n window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']\n || window[vp+'CancelRequestAnimationFrame']);\n }\n if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)\n || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n var lastTime = 0;\n window.requestAnimationFrame = function(callback) {\n var now = Date.now();\n var nextTime = Math.max(lastTime + 16, now);\n return setTimeout(function() { callback(lastTime = nextTime); },\n nextTime - now);\n };\n window.cancelAnimationFrame = clearTimeout;\n }\n /**\n * Polyfill for performance.now, required by rAF\n */\n if(!window.performance || !window.performance.now){\n window.performance = {\n start: Date.now(),\n now: function(){ return Date.now() - this.start; }\n };\n }\n})();\nif (!Function.prototype.bind) {\n Function.prototype.bind = function(oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function() {},\n fBound = function() {\n return fToBind.apply(this instanceof fNOP\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n fBound.prototype = new fNOP();\n\n return fBound;\n };\n}\n// Polyfill to get the name of a function in IE9\nfunction functionName(fn) {\n if (typeof Function.prototype.name === 'undefined') {\n var funcNameRegex = /function\\s([^(]{1,})\\(/;\n var results = (funcNameRegex).exec((fn).toString());\n return (results && results.length > 1) ? results[1].trim() : \"\";\n }\n else if (typeof fn.prototype === 'undefined') {\n return fn.constructor.name;\n }\n else {\n return fn.prototype.constructor.name;\n }\n}\nfunction parseValue(str){\n if ('true' === str) return true;\n else if ('false' === str) return false;\n else if (!isNaN(str * 1)) return parseFloat(str);\n return str;\n}\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport {Foundation};\n","'use strict';\n\nimport $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\n\n// Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\nclass Plugin {\n\n constructor(element, options) {\n this._setup(element, options);\n var pluginName = getPluginName(this);\n this.uuid = GetYoDigits(6, pluginName);\n\n if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); }\n if(!this.$element.data('zfPlugin')){ this.$element.data('zfPlugin', this); }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n this.$element.trigger(`init.zf.${pluginName}`);\n }\n\n destroy() {\n this._destroy();\n var pluginName = getPluginName(this);\n this.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger(`destroyed.zf.${pluginName}`);\n for(var prop in this){\n this[prop] = null;//clean up script to prep for garbage collection.\n }\n }\n}\n\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n if(typeof(obj.constructor.name) !== 'undefined') {\n return hyphenate(obj.constructor.name);\n } else {\n return hyphenate(obj.className);\n }\n}\n\nexport {Plugin};\n","\"use strict\";\n\nimport $ from 'jquery';\n\n// Core Foundation Utilities, utilized in a number of places.\n\n /**\n * Returns a boolean for RTL support\n */\nfunction rtl() {\n return $('html').attr('dir') === 'rtl';\n}\n\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\nfunction GetYoDigits(length = 6, namespace){\n let str = '';\n const chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n const charsLength = chars.length;\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * charsLength)];\n }\n return namespace ? `${str}-${namespace}` : str;\n}\n\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\nfunction RegExpEscape(str){\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem){\n var transitions = {\n 'transition': 'transitionend',\n 'WebkitTransition': 'webkitTransitionEnd',\n 'MozTransition': 'transitionend',\n 'OTransition': 'otransitionend'\n };\n var elem = document.createElement('div'),\n end;\n\n for (var t in transitions){\n if (typeof elem.style[t] !== 'undefined'){\n end = transitions[t];\n }\n }\n if(end){\n return end;\n }else{\n end = setTimeout(function(){\n $elem.triggerHandler('transitionend', [$elem]);\n }, 1);\n return 'transitionend';\n }\n}\n\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\nfunction onLoad($elem, handler) {\n const didLoad = document.readyState === 'complete';\n const eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n const cb = () => $elem.triggerHandler(eventType);\n\n if ($elem) {\n if (handler) $elem.one(eventType, handler);\n\n if (didLoad)\n setTimeout(cb);\n else\n $(window).one('load', cb);\n }\n\n return eventType;\n}\n\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n * (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n * outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\nfunction ignoreMousedisappear(handler, { ignoreLeaveWindow = false, ignoreReappear = false } = {}) {\n return function leaveEventHandler(eLeave, ...rest) {\n const callback = handler.bind(this, eLeave, ...rest);\n\n // The mouse left: call the given callback if the mouse entered elsewhere\n if (eLeave.relatedTarget !== null) {\n return callback();\n }\n\n // Otherwise, check if the mouse actually left the window.\n // In firefox if the user switched between windows, the window sill have the focus by the time\n // the event is triggered. We have to debounce the event to test this case.\n setTimeout(function leaveEventDebouncer() {\n if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n return callback();\n }\n\n // Otherwise, wait for the mouse to reeapear outside of the element,\n if (!ignoreReappear) {\n $(document).one('mouseenter', function reenterEventHandler(eReenter) {\n if (!$(eLeave.currentTarget).has(eReenter.target).length) {\n // Fill where the mouse finally entered.\n eLeave.relatedTarget = eReenter.target;\n callback();\n }\n });\n }\n\n }, 0);\n };\n}\n\n\nexport { rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear };\n","'use strict';\n\nimport $ from 'jquery';\n\n// Default set of media queries\nconst defaultQueries = {\n 'default' : 'only screen',\n landscape : 'only screen and (orientation: landscape)',\n portrait : 'only screen and (orientation: portrait)',\n retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n 'only screen and (min--moz-device-pixel-ratio: 2),' +\n 'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n 'only screen and (min-device-pixel-ratio: 2),' +\n 'only screen and (min-resolution: 192dpi),' +\n 'only screen and (min-resolution: 2dppx)'\n };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright © 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n \"use strict\";\n\n // For browsers that support matchMedium api such as IE 9 and webkit\n var styleMedia = (window.styleMedia || window.media);\n\n // For those that don't support matchMedium\n if (!styleMedia) {\n var style = document.createElement('style'),\n script = document.getElementsByTagName('script')[0],\n info = null;\n\n style.type = 'text/css';\n style.id = 'matchmediajs-test';\n\n if (!script) {\n document.head.appendChild(style);\n } else {\n script.parentNode.insertBefore(style, script);\n }\n\n // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n styleMedia = {\n matchMedium: function (media) {\n var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n if (style.styleSheet) {\n style.styleSheet.cssText = text;\n } else {\n style.textContent = text;\n }\n\n // Test if media query is true or false\n return info.width === '1px';\n }\n };\n }\n\n return function(media) {\n return {\n matches: styleMedia.matchMedium(media || 'all'),\n media: media || 'all'\n };\n };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n queries: [],\n\n current: '',\n\n /**\n * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n * @function\n * @private\n */\n _init() {\n\n // make sure the initialization is only done once when calling _init() several times\n if (this.isInitialized === true) {\n return;\n } else {\n this.isInitialized = true;\n }\n\n var self = this;\n var $meta = $('meta.foundation-mq');\n if(!$meta.length){\n $('<meta class=\"foundation-mq\">').appendTo(document.head);\n }\n\n var extractedStyles = $('.foundation-mq').css('font-family');\n var namedQueries;\n\n namedQueries = parseStyleToObject(extractedStyles);\n\n self.queries = []; // reset\n\n for (var key in namedQueries) {\n if(namedQueries.hasOwnProperty(key)) {\n self.queries.push({\n name: key,\n value: `only screen and (min-width: ${namedQueries[key]})`\n });\n }\n }\n\n this.current = this._getCurrentSize();\n\n this._watcher();\n },\n\n /**\n * Reinitializes the media query helper.\n * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n * @function\n * @private\n */\n _reInit() {\n this.isInitialized = false;\n this._init();\n },\n\n /**\n * Checks if the screen is at least as wide as a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n */\n atLeast(size) {\n var query = this.get(size);\n\n if (query) {\n return window.matchMedia(query).matches;\n }\n\n return false;\n },\n\n /**\n * Checks if the screen is within the given breakpoint.\n * If smaller than the breakpoint of larger than its upper limit it returns false.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n */\n only(size) {\n return size === this._getCurrentSize();\n },\n\n /**\n * Checks if the screen is within a breakpoint or smaller.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n */\n upTo(size) {\n const nextSize = this.next(size);\n\n // If the next breakpoint does not match, the screen is smaller than\n // the upper limit of this breakpoint.\n if (nextSize) {\n return !this.atLeast(nextSize);\n }\n\n // If there is no next breakpoint, the \"size\" breakpoint does not have\n // an upper limit and the screen will always be within it or smaller.\n return true;\n },\n\n /**\n * Checks if the screen matches to a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n */\n is(size) {\n const parts = size.trim().split(' ').filter(p => !!p.length);\n const [bpSize, bpModifier = ''] = parts;\n\n // Only the breakpont\n if (bpModifier === 'only') {\n return this.only(bpSize);\n }\n // At least the breakpoint (included)\n if (!bpModifier || bpModifier === 'up') {\n return this.atLeast(bpSize);\n }\n // Up to the breakpoint (included)\n if (bpModifier === 'down') {\n return this.upTo(bpSize);\n }\n\n throw new Error(`\n Invalid breakpoint passed to MediaQuery.is().\n Expected a breakpoint name formatted like \"<size> <modifier>\", got \"${size}\".\n `);\n },\n\n /**\n * Gets the media query of a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to get.\n * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n */\n get(size) {\n for (var i in this.queries) {\n if(this.queries.hasOwnProperty(i)) {\n var query = this.queries[i];\n if (size === query.name) return query.value;\n }\n }\n\n return null;\n },\n\n /**\n * Get the breakpoint following the given breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint.\n * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n */\n next(size) {\n const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n if (queryIndex === -1) {\n throw new Error(`\n Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n Ensure it is present in your Sass \"$breakpoints\" setting.\n `);\n }\n\n const nextQuery = this.queries[queryIndex + 1];\n return nextQuery ? nextQuery.name : null;\n },\n\n /**\n * Returns the name of the breakpoint related to the given value.\n * @function\n * @private\n * @param {String|Object} value - Breakpoint name or query object.\n * @returns {String} Name of the breakpoint.\n */\n _getQueryName(value) {\n if (typeof value === 'string')\n return value;\n if (typeof value === 'object')\n return value.name;\n throw new TypeError(`\n Invalid value passed to MediaQuery._getQueryName().\n Expected a breakpoint name (String) or a breakpoint query (Object), got \"${value}\" (${typeof value})\n `);\n },\n\n /**\n * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n * @function\n * @private\n * @returns {String} Name of the current breakpoint.\n */\n _getCurrentSize() {\n var matched;\n\n for (var i = 0; i < this.queries.length; i++) {\n var query = this.queries[i];\n\n if (window.matchMedia(query.value).matches) {\n matched = query;\n }\n }\n\n return matched && this._getQueryName(matched);\n },\n\n /**\n * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n * @function\n * @private\n */\n _watcher() {\n $(window).off('resize.zf.mediaquery').on('resize.zf.mediaquery', () => {\n var newSize = this._getCurrentSize(), currentSize = this.current;\n\n if (newSize !== currentSize) {\n // Change the current media query\n this.current = newSize;\n\n // Broadcast the media query change on the window\n $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n }\n });\n }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n var styleObject = {};\n\n if (typeof str !== 'string') {\n return styleObject;\n }\n\n str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n if (!str) {\n return styleObject;\n }\n\n styleObject = str.split('&').reduce(function(ret, param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = parts[0];\n var val = parts[1];\n key = decodeURIComponent(key);\n\n // missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n if (!ret.hasOwnProperty(key)) {\n ret[key] = val;\n } else if (Array.isArray(ret[key])) {\n ret[key].push(val);\n } else {\n ret[key] = [ret[key], val];\n }\n return ret;\n }, {});\n\n return styleObject;\n}\n\nexport {MediaQuery};\n"]}
@@ -310,7 +310,7 @@ function (_Plugin) {
310
310
  var $sub = $link.parent();
311
311
 
312
312
  if (_this.options.parentLink) {
313
- $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>');
313
+ $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="none"></li>');
314
314
  }
315
315
 
316
316
  $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);
@@ -947,7 +947,7 @@ Drilldown.defaults = {
947
947
  /*! no static exports found */
948
948
  /***/ (function(module, exports, __webpack_require__) {
949
949
 
950
- module.exports = __webpack_require__(/*! /Volumes/Data/Development/Foundation/foundation-sites/js/entries/plugins/foundation.drilldown.js */"./js/entries/plugins/foundation.drilldown.js");
950
+ module.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.drilldown.js */"./js/entries/plugins/foundation.drilldown.js");
951
951
 
952
952
 
953
953
  /***/ }),
@@ -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":["Foundation","plugin","Drilldown","element","options","$element","$","extend","defaults","data","className","_init","Keyboard","register","Nest","Feather","autoApplyClass","addClass","attr","$submenuAnchors","find","children","$submenus","parent","$menuItems","not","$currentMenu","GetYoDigits","_prepareMenu","_registerEvents","_keyboardEvents","_this","each","$link","$sub","parentLink","clone","prependTo","wrap","removeAttr","_events","$menu","$back","length","backButtonPosition","append","backButton","prepend","console","error","_back","autoHeight","hasClass","$wrapper","wrapper","animateHeight","css","_getMaxDims","$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","$elements","$prevElement","$nextElement","i","is","eq","Math","max","min","handleKey","next","one","transitionend","first","focus","previous","_hide","setTimeout","up","down","close","siblings","open","handled","calcHeight","closest","height","removeClass","parentSubMenu","autoFocus","$expandedSubmenus","index","_setHideSubMenuClasses","isLastChild","_setShowSubMenuClasses","$submenu","blur","maxHeight","result","numOfElems","Box","GetDimensions","getBoundingClientRect","width","Burn","unwrap","remove","end","detach","removeData","Plugin"],"mappings":"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","file":"foundation.drilldown.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__;"],"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]/./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":["Foundation","plugin","Drilldown","element","options","$element","$","extend","defaults","data","className","_init","Keyboard","register","Nest","Feather","autoApplyClass","addClass","attr","$submenuAnchors","find","children","$submenus","parent","$menuItems","not","$currentMenu","GetYoDigits","_prepareMenu","_registerEvents","_keyboardEvents","_this","each","$link","$sub","parentLink","clone","prependTo","wrap","removeAttr","_events","$menu","$back","length","backButtonPosition","append","backButton","prepend","console","error","_back","autoHeight","hasClass","$wrapper","wrapper","animateHeight","css","_getMaxDims","$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","$elements","$prevElement","$nextElement","i","is","eq","Math","max","min","handleKey","next","one","transitionend","first","focus","previous","_hide","setTimeout","up","down","close","siblings","open","handled","calcHeight","closest","height","removeClass","parentSubMenu","autoFocus","$expandedSubmenus","index","_setHideSubMenuClasses","isLastChild","_setShowSubMenuClasses","$submenu","blur","maxHeight","result","numOfElems","Box","GetDimensions","getBoundingClientRect","width","Burn","unwrap","remove","end","detach","removeData","Plugin"],"mappings":"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","file":"foundation.drilldown.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=\"none\"></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__;"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(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"],t):"object"==typeof exports?exports["foundation.drilldown"]=t(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.drilldown"]=t(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(n,i,o,r,s){return u={},a.m=l={"./foundation.core":function(e,t){e.exports=n},"./foundation.util.box":function(e,t){e.exports=i},"./foundation.util.keyboard":function(e,t){e.exports=o},"./foundation.util.nest":function(e,t){e.exports=r},"./js/entries/plugins/foundation.drilldown.js":function(e,t,n){"use strict";n.r(t);var i=n("./foundation.core");n.d(t,"Foundation",function(){return i.Foundation});var o=n("./js/foundation.drilldown.js");n.d(t,"Drilldown",function(){return o.Drilldown}),i.Foundation.plugin(o.Drilldown,"Drilldown")},"./js/foundation.drilldown.js":function(e,t,n){"use strict";n.r(t),n.d(t,"Drilldown",function(){return p});var i=n("jquery"),s=n.n(i),a=n("./foundation.util.keyboard"),o=n("./foundation.util.nest"),l=n("./foundation.core"),r=n("./foundation.util.box");function u(e){return(u="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,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function c(e,t){return!t||"object"!==u(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 h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var p=function(){function n(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),c(this,f(n).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&&h(e,t)}(n,l["Plugin"]),function(e,t,n){t&&d(e.prototype,t),n&&d(e,n)}(n,[{key:"_setup",value:function(e,t){this.$element=e,this.options=s.a.extend({},n.defaults,this.$element.data(),t),this.className="Drilldown",this._init(),a.Keyboard.register("Drilldown",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"up",ARROW_DOWN:"down",ARROW_LEFT:"previous",ESCAPE:"close",TAB:"down",SHIFT_TAB:"up"})}},{key:"_init",value:function(){o.Nest.Feather(this.$element,"drilldown"),this.options.autoApplyClass&&this.$element.addClass("drilldown"),this.$element.attr({role:"tree","aria-multiselectable":!1}),this.$submenuAnchors=this.$element.find("li.is-drilldown-submenu-parent").children("a"),this.$submenus=this.$submenuAnchors.parent("li").children("[data-submenu]").attr("role","group"),this.$menuItems=this.$element.find("li").not(".js-drilldown-back").attr("role","treeitem").find("a"),this.$currentMenu=this.$element,this.$element.attr("data-mutate",this.$element.attr("data-drilldown")||Object(l.GetYoDigits)(6,"drilldown")),this._prepareMenu(),this._registerEvents(),this._keyboardEvents()}},{key:"_prepareMenu",value:function(){var n=this;this.$submenuAnchors.each(function(){var e=s()(this),t=e.parent();n.options.parentLink&&e.clone().prependTo(t.children("[data-submenu]")).wrap('<li data-is-parent-link class="is-submenu-parent-item is-submenu-item is-drilldown-submenu-item" role="menuitem"></li>'),e.data("savedHref",e.attr("href")).removeAttr("href").attr("tabindex",0),e.children("[data-submenu]").attr({"aria-hidden":!0,tabindex:0,role:"group"}),n._events(e)}),this.$submenus.each(function(){var e=s()(this);if(!e.find(".js-drilldown-back").length)switch(n.options.backButtonPosition){case"bottom":e.append(n.options.backButton);break;case"top":e.prepend(n.options.backButton);break;default:console.error("Unsupported backButtonPosition value '"+n.options.backButtonPosition+"'")}n._back(e)}),this.$submenus.addClass("invisible"),this.options.autoHeight||this.$submenus.addClass("drilldown-submenu-cover-previous"),this.$element.parent().hasClass("is-drilldown")||(this.$wrapper=s()(this.options.wrapper).addClass("is-drilldown"),this.options.animateHeight&&this.$wrapper.addClass("animate-height"),this.$element.wrap(this.$wrapper)),this.$wrapper=this.$element.parent(),this.$wrapper.css(this._getMaxDims())}},{key:"_resize",value:function(){this.$wrapper.css({"max-width":"none","min-height":"none"}),this.$wrapper.css(this._getMaxDims())}},{key:"_events",value:function(n){var i=this;n.off("click.zf.drilldown").on("click.zf.drilldown",function(e){if(s()(e.target).parentsUntil("ul","li").hasClass("is-drilldown-submenu-parent")&&e.preventDefault(),i._show(n.parent("li")),i.options.closeOnClick){var t=s()("body");t.off(".zf.drilldown").on("click.zf.drilldown",function(e){e.target===i.$element[0]||s.a.contains(i.$element[0],e.target)||(e.preventDefault(),i._hideAll(),t.off(".zf.drilldown"))})}})}},{key:"_registerEvents",value:function(){this.options.scrollTop&&(this._bindHandler=this._scrollTop.bind(this),this.$element.on("open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown",this._bindHandler)),this.$element.on("mutateme.zf.trigger",this._resize.bind(this))}},{key:"_scrollTop",value:function(){var e=this,t=""!=e.options.scrollTopElement?s()(e.options.scrollTopElement):e.$element,n=parseInt(t.offset().top+e.options.scrollTopOffset,10);s()("html, body").stop(!0).animate({scrollTop:n},e.options.animationDuration,e.options.animationEasing,function(){this===s()("html")[0]&&e.$element.trigger("scrollme.zf.drilldown")})}},{key:"_keyboardEvents",value:function(){var e=this;this.$menuItems.add(this.$element.find(".js-drilldown-back > a, .is-submenu-parent-item > a")).on("keydown.zf.drilldown",function(t){var n,i,o=s()(this),r=o.parent("li").parent("ul").children("li").children("a");r.each(function(e){if(s()(this).is(o))return n=r.eq(Math.max(0,e-1)),void(i=r.eq(Math.min(e+1,r.length-1)))}),a.Keyboard.handleKey(t,"Drilldown",{next:function(){if(o.is(e.$submenuAnchors))return e._show(o.parent("li")),o.parent("li").one(Object(l.transitionend)(o),function(){o.parent("li").find("ul li a").not(".js-drilldown-back a").first().focus()}),!0},previous:function(){return e._hide(o.parent("li").parent("ul")),o.parent("li").parent("ul").one(Object(l.transitionend)(o),function(){setTimeout(function(){o.parent("li").parent("ul").parent("li").children("a").first().focus()},1)}),!0},up:function(){return n.focus(),!o.is(e.$element.find("> li:first-child > a"))},down:function(){return i.focus(),!o.is(e.$element.find("> li:last-child > a"))},close:function(){o.is(e.$element.find("> li > a"))||(e._hide(o.parent().parent()),o.parent().parent().siblings("a").focus())},open:function(){return(!e.options.parentLink||!o.attr("href"))&&(o.is(e.$menuItems)?o.is(e.$submenuAnchors)?(e._show(o.parent("li")),o.parent("li").one(Object(l.transitionend)(o),function(){o.parent("li").find("ul li a").not(".js-drilldown-back a").first().focus()}),!0):void 0:(e._hide(o.parent("li").parent("ul")),o.parent("li").parent("ul").one(Object(l.transitionend)(o),function(){setTimeout(function(){o.parent("li").parent("ul").parent("li").children("a").first().focus()},1)}),!0))},handled:function(e){e&&t.preventDefault()}})})}},{key:"_hideAll",value:function(){var e=this,t=this.$element.find(".is-drilldown-submenu.is-active");if(t.addClass("is-closing"),this.options.autoHeight){var n=t.parent().closest("ul").data("calcHeight");this.$wrapper.css({height:n})}this.$element.trigger("close.zf.drilldown"),t.one(Object(l.transitionend)(t),function(){t.removeClass("is-active is-closing"),e.$element.trigger("closed.zf.drilldown")})}},{key:"_back",value:function(n){var i=this;n.off("click.zf.drilldown"),n.children(".js-drilldown-back").on("click.zf.drilldown",function(e){i._hide(n);var t=n.parent("li").parent("ul").parent("li");t.length&&i._show(t)})}},{key:"_menuLinkEvents",value:function(){var t=this;this.$menuItems.not(".is-drilldown-submenu-parent").off("click.zf.drilldown").on("click.zf.drilldown",function(e){setTimeout(function(){t._hideAll()},0)})}},{key:"_setShowSubMenuClasses",value:function(e,t){e.addClass("is-active").removeClass("invisible").attr("aria-hidden",!1),e.parent("li").attr("aria-expanded",!0),!0===t&&this.$element.trigger("open.zf.drilldown",[e])}},{key:"_setHideSubMenuClasses",value:function(e,t){e.removeClass("is-active").addClass("invisible").attr("aria-hidden",!0),e.parent("li").attr("aria-expanded",!1),!0===t&&e.trigger("hide.zf.drilldown",[e])}},{key:"_showMenu",value:function(n,i){var o=this;if(this.$element.find('li[aria-expanded="true"] > ul[data-submenu]').each(function(e){o._setHideSubMenuClasses(s()(this))}),(this.$currentMenu=n).is("[data-drilldown]"))return!0===i&&n.find('li[role="treeitem"] > a').first().focus(),void(this.options.autoHeight&&this.$wrapper.css("height",n.data("calcHeight")));var r=n.children().first().parentsUntil("[data-drilldown]","[data-submenu]");r.each(function(e){0===e&&o.options.autoHeight&&o.$wrapper.css("height",s()(this).data("calcHeight"));var t=e==r.length-1;!0==t&&s()(this).one(Object(l.transitionend)(s()(this)),function(){!0===i&&n.find('li[role="treeitem"] > a').first().focus()}),o._setShowSubMenuClasses(s()(this),t)})}},{key:"_show",value:function(e){var t=e.children("[data-submenu]");e.attr("aria-expanded",!0),(this.$currentMenu=t).addClass("is-active").removeClass("invisible").attr("aria-hidden",!1),this.options.autoHeight&&this.$wrapper.css({height:t.data("calcHeight")}),this.$element.trigger("open.zf.drilldown",[e])}},{key:"_hide",value:function(e){this.options.autoHeight&&this.$wrapper.css({height:e.parent().closest("ul").data("calcHeight")});e.parent("li").attr("aria-expanded",!1),e.attr("aria-hidden",!0),e.addClass("is-closing").one(Object(l.transitionend)(e),function(){e.removeClass("is-active is-closing"),e.blur().addClass("invisible")}),e.trigger("hide.zf.drilldown",[e])}},{key:"_getMaxDims",value:function(){var t=0,e={},n=this;return this.$submenus.add(this.$element).each(function(){s()(this).children("li").length;var e=r.Box.GetDimensions(this).height;t=t<e?e:t,n.options.autoHeight&&s()(this).data("calcHeight",e)}),this.options.autoHeight?e.height=this.$currentMenu.data("calcHeight"):e["min-height"]="".concat(t,"px"),e["max-width"]="".concat(this.$element[0].getBoundingClientRect().width,"px"),e}},{key:"_destroy",value:function(){this.options.scrollTop&&this.$element.off(".zf.drilldown",this._bindHandler),this._hideAll(),this.$element.off("mutateme.zf.trigger"),o.Nest.Burn(this.$element,"drilldown"),this.$element.unwrap().find(".js-drilldown-back, .is-submenu-parent-item").remove().end().find(".is-active, .is-closing, .is-drilldown-submenu").removeClass("is-active is-closing is-drilldown-submenu").end().find("[data-submenu]").removeAttr("aria-hidden tabindex role"),this.$submenuAnchors.each(function(){s()(this).off(".zf.drilldown")}),this.$element.find("[data-is-parent-link]").detach(),this.$submenus.removeClass("drilldown-submenu-cover-previous invisible"),this.$element.find("a").each(function(){var e=s()(this);e.removeAttr("tabindex"),e.data("savedHref")&&e.attr("href",e.data("savedHref")).removeData("savedHref")})}}]),n}();p.defaults={autoApplyClass:!0,backButton:'<li class="js-drilldown-back"><a tabindex="0">Back</a></li>',backButtonPosition:"top",wrapper:"<div></div>",parentLink:!1,closeOnClick:!1,autoHeight:!1,animateHeight:!1,scrollTop:!1,scrollTopElement:"",scrollTopOffset:0,animationDuration:500,animationEasing:"swing"}},3:function(e,t,n){e.exports=n("./js/entries/plugins/foundation.drilldown.js")},jquery:function(e,t){e.exports=s}},a.c=u,a.d=function(e,t,n){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},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(t,e){if(1&e&&(t=a(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)a.d(n,i,function(e){return t[e]}.bind(null,i));return n},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=3);function a(e){if(u[e])return u[e].exports;var t=u[e]={i:e,l:!1,exports:{}};return l[e].call(t.exports,t,t.exports,a),t.l=!0,t.exports}var l,u});
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(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"],t):"object"==typeof exports?exports["foundation.drilldown"]=t(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.drilldown"]=t(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(n,i,o,r,s){return u={},a.m=l={"./foundation.core":function(e,t){e.exports=n},"./foundation.util.box":function(e,t){e.exports=i},"./foundation.util.keyboard":function(e,t){e.exports=o},"./foundation.util.nest":function(e,t){e.exports=r},"./js/entries/plugins/foundation.drilldown.js":function(e,t,n){"use strict";n.r(t);var i=n("./foundation.core");n.d(t,"Foundation",function(){return i.Foundation});var o=n("./js/foundation.drilldown.js");n.d(t,"Drilldown",function(){return o.Drilldown}),i.Foundation.plugin(o.Drilldown,"Drilldown")},"./js/foundation.drilldown.js":function(e,t,n){"use strict";n.r(t),n.d(t,"Drilldown",function(){return p});var i=n("jquery"),s=n.n(i),a=n("./foundation.util.keyboard"),o=n("./foundation.util.nest"),l=n("./foundation.core"),r=n("./foundation.util.box");function u(e){return(u="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,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function c(e,t){return!t||"object"!==u(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 h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var p=function(){function n(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),c(this,f(n).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&&h(e,t)}(n,l["Plugin"]),function(e,t,n){t&&d(e.prototype,t),n&&d(e,n)}(n,[{key:"_setup",value:function(e,t){this.$element=e,this.options=s.a.extend({},n.defaults,this.$element.data(),t),this.className="Drilldown",this._init(),a.Keyboard.register("Drilldown",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"up",ARROW_DOWN:"down",ARROW_LEFT:"previous",ESCAPE:"close",TAB:"down",SHIFT_TAB:"up"})}},{key:"_init",value:function(){o.Nest.Feather(this.$element,"drilldown"),this.options.autoApplyClass&&this.$element.addClass("drilldown"),this.$element.attr({role:"tree","aria-multiselectable":!1}),this.$submenuAnchors=this.$element.find("li.is-drilldown-submenu-parent").children("a"),this.$submenus=this.$submenuAnchors.parent("li").children("[data-submenu]").attr("role","group"),this.$menuItems=this.$element.find("li").not(".js-drilldown-back").attr("role","treeitem").find("a"),this.$currentMenu=this.$element,this.$element.attr("data-mutate",this.$element.attr("data-drilldown")||Object(l.GetYoDigits)(6,"drilldown")),this._prepareMenu(),this._registerEvents(),this._keyboardEvents()}},{key:"_prepareMenu",value:function(){var n=this;this.$submenuAnchors.each(function(){var e=s()(this),t=e.parent();n.options.parentLink&&e.clone().prependTo(t.children("[data-submenu]")).wrap('<li data-is-parent-link class="is-submenu-parent-item is-submenu-item is-drilldown-submenu-item" role="none"></li>'),e.data("savedHref",e.attr("href")).removeAttr("href").attr("tabindex",0),e.children("[data-submenu]").attr({"aria-hidden":!0,tabindex:0,role:"group"}),n._events(e)}),this.$submenus.each(function(){var e=s()(this);if(!e.find(".js-drilldown-back").length)switch(n.options.backButtonPosition){case"bottom":e.append(n.options.backButton);break;case"top":e.prepend(n.options.backButton);break;default:console.error("Unsupported backButtonPosition value '"+n.options.backButtonPosition+"'")}n._back(e)}),this.$submenus.addClass("invisible"),this.options.autoHeight||this.$submenus.addClass("drilldown-submenu-cover-previous"),this.$element.parent().hasClass("is-drilldown")||(this.$wrapper=s()(this.options.wrapper).addClass("is-drilldown"),this.options.animateHeight&&this.$wrapper.addClass("animate-height"),this.$element.wrap(this.$wrapper)),this.$wrapper=this.$element.parent(),this.$wrapper.css(this._getMaxDims())}},{key:"_resize",value:function(){this.$wrapper.css({"max-width":"none","min-height":"none"}),this.$wrapper.css(this._getMaxDims())}},{key:"_events",value:function(n){var i=this;n.off("click.zf.drilldown").on("click.zf.drilldown",function(e){if(s()(e.target).parentsUntil("ul","li").hasClass("is-drilldown-submenu-parent")&&e.preventDefault(),i._show(n.parent("li")),i.options.closeOnClick){var t=s()("body");t.off(".zf.drilldown").on("click.zf.drilldown",function(e){e.target===i.$element[0]||s.a.contains(i.$element[0],e.target)||(e.preventDefault(),i._hideAll(),t.off(".zf.drilldown"))})}})}},{key:"_registerEvents",value:function(){this.options.scrollTop&&(this._bindHandler=this._scrollTop.bind(this),this.$element.on("open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown",this._bindHandler)),this.$element.on("mutateme.zf.trigger",this._resize.bind(this))}},{key:"_scrollTop",value:function(){var e=this,t=""!=e.options.scrollTopElement?s()(e.options.scrollTopElement):e.$element,n=parseInt(t.offset().top+e.options.scrollTopOffset,10);s()("html, body").stop(!0).animate({scrollTop:n},e.options.animationDuration,e.options.animationEasing,function(){this===s()("html")[0]&&e.$element.trigger("scrollme.zf.drilldown")})}},{key:"_keyboardEvents",value:function(){var e=this;this.$menuItems.add(this.$element.find(".js-drilldown-back > a, .is-submenu-parent-item > a")).on("keydown.zf.drilldown",function(t){var n,i,o=s()(this),r=o.parent("li").parent("ul").children("li").children("a");r.each(function(e){if(s()(this).is(o))return n=r.eq(Math.max(0,e-1)),void(i=r.eq(Math.min(e+1,r.length-1)))}),a.Keyboard.handleKey(t,"Drilldown",{next:function(){if(o.is(e.$submenuAnchors))return e._show(o.parent("li")),o.parent("li").one(Object(l.transitionend)(o),function(){o.parent("li").find("ul li a").not(".js-drilldown-back a").first().focus()}),!0},previous:function(){return e._hide(o.parent("li").parent("ul")),o.parent("li").parent("ul").one(Object(l.transitionend)(o),function(){setTimeout(function(){o.parent("li").parent("ul").parent("li").children("a").first().focus()},1)}),!0},up:function(){return n.focus(),!o.is(e.$element.find("> li:first-child > a"))},down:function(){return i.focus(),!o.is(e.$element.find("> li:last-child > a"))},close:function(){o.is(e.$element.find("> li > a"))||(e._hide(o.parent().parent()),o.parent().parent().siblings("a").focus())},open:function(){return(!e.options.parentLink||!o.attr("href"))&&(o.is(e.$menuItems)?o.is(e.$submenuAnchors)?(e._show(o.parent("li")),o.parent("li").one(Object(l.transitionend)(o),function(){o.parent("li").find("ul li a").not(".js-drilldown-back a").first().focus()}),!0):void 0:(e._hide(o.parent("li").parent("ul")),o.parent("li").parent("ul").one(Object(l.transitionend)(o),function(){setTimeout(function(){o.parent("li").parent("ul").parent("li").children("a").first().focus()},1)}),!0))},handled:function(e){e&&t.preventDefault()}})})}},{key:"_hideAll",value:function(){var e=this,t=this.$element.find(".is-drilldown-submenu.is-active");if(t.addClass("is-closing"),this.options.autoHeight){var n=t.parent().closest("ul").data("calcHeight");this.$wrapper.css({height:n})}this.$element.trigger("close.zf.drilldown"),t.one(Object(l.transitionend)(t),function(){t.removeClass("is-active is-closing"),e.$element.trigger("closed.zf.drilldown")})}},{key:"_back",value:function(n){var i=this;n.off("click.zf.drilldown"),n.children(".js-drilldown-back").on("click.zf.drilldown",function(e){i._hide(n);var t=n.parent("li").parent("ul").parent("li");t.length&&i._show(t)})}},{key:"_menuLinkEvents",value:function(){var t=this;this.$menuItems.not(".is-drilldown-submenu-parent").off("click.zf.drilldown").on("click.zf.drilldown",function(e){setTimeout(function(){t._hideAll()},0)})}},{key:"_setShowSubMenuClasses",value:function(e,t){e.addClass("is-active").removeClass("invisible").attr("aria-hidden",!1),e.parent("li").attr("aria-expanded",!0),!0===t&&this.$element.trigger("open.zf.drilldown",[e])}},{key:"_setHideSubMenuClasses",value:function(e,t){e.removeClass("is-active").addClass("invisible").attr("aria-hidden",!0),e.parent("li").attr("aria-expanded",!1),!0===t&&e.trigger("hide.zf.drilldown",[e])}},{key:"_showMenu",value:function(n,i){var o=this;if(this.$element.find('li[aria-expanded="true"] > ul[data-submenu]').each(function(e){o._setHideSubMenuClasses(s()(this))}),(this.$currentMenu=n).is("[data-drilldown]"))return!0===i&&n.find('li[role="treeitem"] > a').first().focus(),void(this.options.autoHeight&&this.$wrapper.css("height",n.data("calcHeight")));var r=n.children().first().parentsUntil("[data-drilldown]","[data-submenu]");r.each(function(e){0===e&&o.options.autoHeight&&o.$wrapper.css("height",s()(this).data("calcHeight"));var t=e==r.length-1;!0==t&&s()(this).one(Object(l.transitionend)(s()(this)),function(){!0===i&&n.find('li[role="treeitem"] > a').first().focus()}),o._setShowSubMenuClasses(s()(this),t)})}},{key:"_show",value:function(e){var t=e.children("[data-submenu]");e.attr("aria-expanded",!0),(this.$currentMenu=t).addClass("is-active").removeClass("invisible").attr("aria-hidden",!1),this.options.autoHeight&&this.$wrapper.css({height:t.data("calcHeight")}),this.$element.trigger("open.zf.drilldown",[e])}},{key:"_hide",value:function(e){this.options.autoHeight&&this.$wrapper.css({height:e.parent().closest("ul").data("calcHeight")});e.parent("li").attr("aria-expanded",!1),e.attr("aria-hidden",!0),e.addClass("is-closing").one(Object(l.transitionend)(e),function(){e.removeClass("is-active is-closing"),e.blur().addClass("invisible")}),e.trigger("hide.zf.drilldown",[e])}},{key:"_getMaxDims",value:function(){var t=0,e={},n=this;return this.$submenus.add(this.$element).each(function(){s()(this).children("li").length;var e=r.Box.GetDimensions(this).height;t=t<e?e:t,n.options.autoHeight&&s()(this).data("calcHeight",e)}),this.options.autoHeight?e.height=this.$currentMenu.data("calcHeight"):e["min-height"]="".concat(t,"px"),e["max-width"]="".concat(this.$element[0].getBoundingClientRect().width,"px"),e}},{key:"_destroy",value:function(){this.options.scrollTop&&this.$element.off(".zf.drilldown",this._bindHandler),this._hideAll(),this.$element.off("mutateme.zf.trigger"),o.Nest.Burn(this.$element,"drilldown"),this.$element.unwrap().find(".js-drilldown-back, .is-submenu-parent-item").remove().end().find(".is-active, .is-closing, .is-drilldown-submenu").removeClass("is-active is-closing is-drilldown-submenu").end().find("[data-submenu]").removeAttr("aria-hidden tabindex role"),this.$submenuAnchors.each(function(){s()(this).off(".zf.drilldown")}),this.$element.find("[data-is-parent-link]").detach(),this.$submenus.removeClass("drilldown-submenu-cover-previous invisible"),this.$element.find("a").each(function(){var e=s()(this);e.removeAttr("tabindex"),e.data("savedHref")&&e.attr("href",e.data("savedHref")).removeData("savedHref")})}}]),n}();p.defaults={autoApplyClass:!0,backButton:'<li class="js-drilldown-back"><a tabindex="0">Back</a></li>',backButtonPosition:"top",wrapper:"<div></div>",parentLink:!1,closeOnClick:!1,autoHeight:!1,animateHeight:!1,scrollTop:!1,scrollTopElement:"",scrollTopOffset:0,animationDuration:500,animationEasing:"swing"}},3:function(e,t,n){e.exports=n("./js/entries/plugins/foundation.drilldown.js")},jquery:function(e,t){e.exports=s}},a.c=u,a.d=function(e,t,n){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},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(t,e){if(1&e&&(t=a(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)a.d(n,i,function(e){return t[e]}.bind(null,i));return n},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=3);function a(e){if(u[e])return u[e].exports;var t=u[e]={i:e,l:!1,exports:{}};return l[e].call(t.exports,t,t.exports,a),t.l=!0,t.exports}var l,u});
2
2
  //# sourceMappingURL=foundation.drilldown.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.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__;"]}
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__;"]}
@@ -306,7 +306,6 @@ function (_Positionable) {
306
306
  this.$currentAnchor.attr('id', Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__["GetYoDigits"])(6, 'dd-anchor'));
307
307
  }
308
308
 
309
- ;
310
309
  this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));
311
310
  }
312
311
 
@@ -394,12 +393,10 @@ function (_Positionable) {
394
393
  this.$anchors.off('click.zf.trigger').on('click.zf.trigger', function (e) {
395
394
  _this._setCurrentAnchor(this);
396
395
 
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
396
+ if ( // if forceFollow false, always prevent default action
397
+ _this.options.forceFollow === false || // if forceFollow true and hover option true, only prevent default action on 1st click
398
+ // on 2nd click (dropown opened) the default action (e.g. follow a href) gets executed
399
+ hasTouch && _this.options.hover && _this.$element.hasClass('is-open') === false) {
403
400
  e.preventDefault();
404
401
  }
405
402
  });
@@ -1310,7 +1307,7 @@ Triggers.init = function ($, Foundation) {
1310
1307
  /*! no static exports found */
1311
1308
  /***/ (function(module, exports, __webpack_require__) {
1312
1309
 
1313
- module.exports = __webpack_require__(/*! /Volumes/Data/Development/Foundation/foundation-sites/js/entries/plugins/foundation.dropdown.js */"./js/entries/plugins/foundation.dropdown.js");
1310
+ module.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.dropdown.js */"./js/entries/plugins/foundation.dropdown.js");
1314
1311
 
1315
1312
 
1316
1313
  /***/ }),
@@ -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","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":"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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.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
+ {"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","hover","hasClass","preventDefault","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":"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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.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 (\n // if forceFollow false, always prevent default action\n (_this.options.forceFollow === 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 (hasTouch && _this.options.hover && _this.$element.hasClass('is-open') === false)\n ) {\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(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});
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||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__","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
+ {"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"],"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__","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","position","match","horizontalPosition","exec","alignment","el","_this","ontouchstart","open.zf.trigger","open","bind","close.zf.trigger","toggle.zf.trigger","close","resizeme.zf.trigger","toggle","off","on","e","preventDefault","hover","hasClass","clearTimeout","timeout","setTimeout","hoverDelay","Object","add","$target","visibleFocusableElements","focus","$body","is","target","find","addClass","autoFocus","$focusable","findFocusable","closeOnClick","_addBodyHandler","trapFocus","removeClass","releaseFocus","document","body","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__","_typeof","obj","Symbol","iterator","constructor","prototype","POSITIONS","VERTICAL_ALIGNMENTS","HORIZONTAL_ALIGNMENTS","left","right","top","ALIGNMENTS","bottom","nextItem","currentIdx","array","indexOf","item","Positionable","_getDefaultAlignment","triedPositions","key","value","i","isExhausted","_alignmentsExhausted","$anchor","allowOverlap","_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__","GetExplicitOffsets","_getVOffset","_getHOffset","Box","minCoordinates","minOverlap","_positionsExhausted","overlap","OverlapArea","allowBottomOverlap","_reposition","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","triggers","type","split","forEach","id","MutationObserver","prefixes","Listeners","Basic","debounceGlobalListener","debounce","trigger","listener","timer","args","apply","Initializers","openListener","animation","closeableListener","stopPropagation","animateOut","fadeOut","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","Global","resizeListener","$nodes","scrollListener","namespace","not","pluginId","closeMeListener","plugins","each","yetiBoxes","pluginName","plugNames","console","error","listeners","map","name","addResizeListener","addScrollListener","addMutationEventsListener","mutationRecordsList","listeningElementsMutation","pageYOffset","attributeName","closest","observe","attributes","childList","elementObserver","addSimpleListeners","$document","addGlobalListeners","addClosemeListener","onLoad","c","getter","o","defineProperty","enumerable","get","toStringTag","t","mode","__esModule","ns","create","object","property","hasOwnProperty","call","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"]}
@@ -285,8 +285,8 @@ function (_Plugin) {
285
285
  _foundation_util_nest__WEBPACK_IMPORTED_MODULE_3__["Nest"].Feather(this.$element, 'dropdown');
286
286
  var subs = this.$element.find('li.is-dropdown-submenu-parent');
287
287
  this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');
288
- this.$menuItems = this.$element.find('[role="menuitem"]');
289
- this.$tabs = this.$element.children('[role="menuitem"]');
288
+ this.$menuItems = this.$element.find('li[role="none"]');
289
+ this.$tabs = this.$element.children('li[role="none"]');
290
290
  this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);
291
291
 
292
292
  if (this.options.alignment === 'auto') {
@@ -345,10 +345,12 @@ function (_Plugin) {
345
345
  return;
346
346
  }
347
347
 
348
+ e.stopImmediatePropagation();
348
349
  e.preventDefault();
349
350
 
350
351
  _this._hide($elem);
351
352
  } else {
353
+ e.stopImmediatePropagation();
352
354
  e.preventDefault();
353
355
 
354
356
  _this._show($sub);
@@ -385,7 +387,7 @@ function (_Plugin) {
385
387
  _this._show($elem.children('.is-dropdown-submenu'));
386
388
  }, _this.options.hoverDelay));
387
389
  }
388
- }).on('mouseleave.zf.dropdownmenu', Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__["ignoreMousedisappear"])(function (e) {
390
+ }).on('mouseleave.zf.dropdownMenu', Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__["ignoreMousedisappear"])(function (e) {
389
391
  var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),
390
392
  hasSub = $elem.hasClass(parClass);
391
393
 
@@ -403,7 +405,7 @@ function (_Plugin) {
403
405
  }
404
406
 
405
407
  this.$menuItems.on('keydown.zf.dropdownMenu', function (e) {
406
- var $element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target).parentsUntil('ul', '[role="menuitem"]'),
408
+ var $element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target).parentsUntil('ul', '[role="none"]'),
407
409
  isTab = _this.$tabs.index($element) > -1,
408
410
  $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),
409
411
  $prevElement,
@@ -776,7 +778,7 @@ DropdownMenu.defaults = {
776
778
  /*! no static exports found */
777
779
  /***/ (function(module, exports, __webpack_require__) {
778
780
 
779
- module.exports = __webpack_require__(/*! /Volumes/Data/Development/Foundation/foundation-sites/js/entries/plugins/foundation.dropdownMenu.js */"./js/entries/plugins/foundation.dropdownMenu.js");
781
+ module.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.dropdownMenu.js */"./js/entries/plugins/foundation.dropdownMenu.js");
780
782
 
781
783
 
782
784
  /***/ }),
@@ -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]/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":"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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(\"./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
+ {"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","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","_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":"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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(\"./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('li[role=\"none\"]');\n this.$tabs = this.$element.children('li[role=\"none\"]');\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.stopImmediatePropagation();\n e.preventDefault();\n _this._hide($elem);\n }\n else {\n e.stopImmediatePropagation();\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=\"none\"]'),\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("./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});
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('li[role="none"]'),this.$tabs=this.$element.children('li[role="none"]'),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.stopImmediatePropagation(),e.preventDefault(),c._hide(n)}else e.stopImmediatePropagation(),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="none"]'),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]/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__;"]}
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__","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","e","$elem","target","parentsUntil","concat","hasSub","hasClicked","attr","$sub","closeOnClick","forceFollow","preventDefault","_hide","add","hoverDelay","_show","on","autoclose","closingTime","$elements","$nextElement","$prevElement","index","isTab","siblings","eq","i","focus","prevSibling","openSub","length","closeSub","close","up","a","functions","next","previous","down","nextSibling","handleKey","key","$body","_removeBodyHandler","document","body","isItself","_this2","value","off","idx","filter","el","$sibs","parent","clear","ImNotTouchingYou","$parentLi","oldClass","removeClass","Box","_addBodyHandler","trigger","$activeItem","$toClose","not","clearTimeout","disableHover","closeOnClickInside","c","name","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","t","mode","__esModule","ns","create","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__(/*! /Volumes/Data/Development/Foundation/foundation-sites/js/entries/plugins/foundation.equalizer.js */"./js/entries/plugins/foundation.equalizer.js");
596
+ module.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.equalizer.js */"./js/entries/plugins/foundation.equalizer.js");
597
597
 
598
598
 
599
599
  /***/ }),
@@ -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.mediaQuery"), require("jquery"));
3
+ module.exports = factory(require("./foundation.core"), require("./foundation.util.mediaQuery"), require("./foundation.util.motion"), require("jquery"));
4
4
  else if(typeof define === 'function' && define.amd)
5
- define(["./foundation.core", "./foundation.util.mediaQuery", "jquery"], factory);
5
+ define(["./foundation.core", "./foundation.util.mediaQuery", "./foundation.util.motion", "jquery"], factory);
6
6
  else if(typeof exports === 'object')
7
- exports["foundation.interchange"] = factory(require("./foundation.core"), require("./foundation.util.mediaQuery"), require("jquery"));
7
+ exports["foundation.interchange"] = factory(require("./foundation.core"), require("./foundation.util.mediaQuery"), require("./foundation.util.motion"), require("jquery"));
8
8
  else
9
- root["__FOUNDATION_EXTERNAL__"] = root["__FOUNDATION_EXTERNAL__"] || {}, root["__FOUNDATION_EXTERNAL__"]["foundation.interchange"] = factory(root["__FOUNDATION_EXTERNAL__"]["foundation.core"], root["__FOUNDATION_EXTERNAL__"]["foundation.util.mediaQuery"], root["jQuery"]);
10
- })(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE_jquery__) {
9
+ root["__FOUNDATION_EXTERNAL__"] = root["__FOUNDATION_EXTERNAL__"] || {}, root["__FOUNDATION_EXTERNAL__"]["foundation.interchange"] = factory(root["__FOUNDATION_EXTERNAL__"]["foundation.core"], root["__FOUNDATION_EXTERNAL__"]["foundation.util.mediaQuery"], root["__FOUNDATION_EXTERNAL__"]["foundation.util.motion"], root["jQuery"]);
10
+ })(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {
11
11
  return /******/ (function(modules) { // webpackBootstrap
12
12
  /******/ // The module cache
13
13
  /******/ var installedModules = {};
@@ -118,6 +118,17 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;
118
118
 
119
119
  /***/ }),
120
120
 
121
+ /***/ "./foundation.util.motion":
122
+ /*!********************************************************************************************************************************************************************************************!*\
123
+ !*** external {"root":["__FOUNDATION_EXTERNAL__","foundation.util.motion"],"amd":"./foundation.util.motion","commonjs":"./foundation.util.motion","commonjs2":"./foundation.util.motion"} ***!
124
+ \********************************************************************************************************************************************************************************************/
125
+ /*! no static exports found */
126
+ /***/ (function(module, exports) {
127
+
128
+ module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;
129
+
130
+ /***/ }),
131
+
121
132
  /***/ "./js/entries/plugins/foundation.interchange.js":
122
133
  /*!******************************************************!*\
123
134
  !*** ./js/entries/plugins/foundation.interchange.js ***!
@@ -157,6 +168,7 @@ __webpack_require__.r(__webpack_exports__);
157
168
  /* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__);
158
169
  /* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.core.plugin */ "./foundation.core");
159
170
  /* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__);
171
+ /* harmony import */ var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.util.triggers */ "./js/foundation.util.triggers.js");
160
172
 
161
173
 
162
174
  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); }
@@ -181,6 +193,7 @@ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || func
181
193
 
182
194
 
183
195
 
196
+
184
197
  /**
185
198
  * Interchange module.
186
199
  * @module foundation.interchange
@@ -215,6 +228,9 @@ function (_Plugin) {
215
228
  this.rules = [];
216
229
  this.currentPath = '';
217
230
  this.className = 'Interchange'; // ie9 back compat
231
+ // Triggers init is idempotent, just need to make sure it is initialized
232
+
233
+ _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__["Triggers"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);
218
234
 
219
235
  this._init();
220
236
 
@@ -452,6 +468,304 @@ Interchange.SPECIAL_QUERIES = {
452
468
  };
453
469
 
454
470
 
471
+ /***/ }),
472
+
473
+ /***/ "./js/foundation.util.triggers.js":
474
+ /*!****************************************!*\
475
+ !*** ./js/foundation.util.triggers.js ***!
476
+ \****************************************/
477
+ /*! exports provided: Triggers */
478
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
479
+
480
+ "use strict";
481
+ __webpack_require__.r(__webpack_exports__);
482
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Triggers", function() { return Triggers; });
483
+ /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");
484
+ /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);
485
+ /* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ "./foundation.core");
486
+ /* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);
487
+ /* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.motion */ "./foundation.util.motion");
488
+ /* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__);
489
+
490
+
491
+ 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); }
492
+
493
+
494
+
495
+
496
+
497
+ var MutationObserver = function () {
498
+ var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];
499
+
500
+ for (var i = 0; i < prefixes.length; i++) {
501
+ if ("".concat(prefixes[i], "MutationObserver") in window) {
502
+ return window["".concat(prefixes[i], "MutationObserver")];
503
+ }
504
+ }
505
+
506
+ return false;
507
+ }();
508
+
509
+ var triggers = function triggers(el, type) {
510
+ el.data(type).split(' ').forEach(function (id) {
511
+ jquery__WEBPACK_IMPORTED_MODULE_0___default()("#".concat(id))[type === 'close' ? 'trigger' : 'triggerHandler']("".concat(type, ".zf.trigger"), [el]);
512
+ });
513
+ };
514
+
515
+ var Triggers = {
516
+ Listeners: {
517
+ Basic: {},
518
+ Global: {}
519
+ },
520
+ Initializers: {}
521
+ };
522
+ Triggers.Listeners.Basic = {
523
+ openListener: function openListener() {
524
+ triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'open');
525
+ },
526
+ closeListener: function closeListener() {
527
+ var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('close');
528
+
529
+ if (id) {
530
+ triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'close');
531
+ } else {
532
+ jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('close.zf.trigger');
533
+ }
534
+ },
535
+ toggleListener: function toggleListener() {
536
+ var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');
537
+
538
+ if (id) {
539
+ triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle');
540
+ } else {
541
+ jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('toggle.zf.trigger');
542
+ }
543
+ },
544
+ closeableListener: function closeableListener(e) {
545
+ var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable'); // Only close the first closable element. See https://git.io/zf-7833
546
+
547
+ e.stopPropagation();
548
+
549
+ if (animation !== '') {
550
+ _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__["Motion"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {
551
+ jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('closed.zf');
552
+ });
553
+ } else {
554
+ jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).fadeOut().trigger('closed.zf');
555
+ }
556
+ },
557
+ toggleFocusListener: function toggleFocusListener() {
558
+ var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle-focus');
559
+ jquery__WEBPACK_IMPORTED_MODULE_0___default()("#".concat(id)).triggerHandler('toggle.zf.trigger', [jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)]);
560
+ }
561
+ }; // Elements with [data-open] will reveal a plugin that supports it when clicked.
562
+
563
+ Triggers.Initializers.addOpenListener = function ($elem) {
564
+ $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);
565
+ $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);
566
+ }; // Elements with [data-close] will close a plugin that supports it when clicked.
567
+ // If used without a value on [data-close], the event will bubble, allowing it to close a parent component.
568
+
569
+
570
+ Triggers.Initializers.addCloseListener = function ($elem) {
571
+ $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);
572
+ $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);
573
+ }; // Elements with [data-toggle] will toggle a plugin that supports it when clicked.
574
+
575
+
576
+ Triggers.Initializers.addToggleListener = function ($elem) {
577
+ $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);
578
+ $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);
579
+ }; // Elements with [data-closable] will respond to close.zf.trigger events.
580
+
581
+
582
+ Triggers.Initializers.addCloseableListener = function ($elem) {
583
+ $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);
584
+ $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);
585
+ }; // Elements with [data-toggle-focus] will respond to coming in and out of focus
586
+
587
+
588
+ Triggers.Initializers.addToggleFocusListener = function ($elem) {
589
+ $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);
590
+ $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);
591
+ }; // More Global/complex listeners and triggers
592
+
593
+
594
+ Triggers.Listeners.Global = {
595
+ resizeListener: function resizeListener($nodes) {
596
+ if (!MutationObserver) {
597
+ //fallback for IE 9
598
+ $nodes.each(function () {
599
+ jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('resizeme.zf.trigger');
600
+ });
601
+ } //trigger all listening elements and signal a resize event
602
+
603
+
604
+ $nodes.attr('data-events', "resize");
605
+ },
606
+ scrollListener: function scrollListener($nodes) {
607
+ if (!MutationObserver) {
608
+ //fallback for IE 9
609
+ $nodes.each(function () {
610
+ jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('scrollme.zf.trigger');
611
+ });
612
+ } //trigger all listening elements and signal a scroll event
613
+
614
+
615
+ $nodes.attr('data-events', "scroll");
616
+ },
617
+ closeMeListener: function closeMeListener(e, pluginId) {
618
+ var plugin = e.namespace.split('.')[0];
619
+ var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default()("[data-".concat(plugin, "]")).not("[data-yeti-box=\"".concat(pluginId, "\"]"));
620
+ plugins.each(function () {
621
+ var _this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);
622
+
623
+ _this.triggerHandler('close.zf.trigger', [_this]);
624
+ });
625
+ } // Global, parses whole document.
626
+
627
+ };
628
+
629
+ Triggers.Initializers.addClosemeListener = function (pluginName) {
630
+ var yetiBoxes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-yeti-box]'),
631
+ plugNames = ['dropdown', 'tooltip', 'reveal'];
632
+
633
+ if (pluginName) {
634
+ if (typeof pluginName === 'string') {
635
+ plugNames.push(pluginName);
636
+ } else if (_typeof(pluginName) === 'object' && typeof pluginName[0] === 'string') {
637
+ plugNames = plugNames.concat(pluginName);
638
+ } else {
639
+ console.error('Plugin names must be strings');
640
+ }
641
+ }
642
+
643
+ if (yetiBoxes.length) {
644
+ var listeners = plugNames.map(function (name) {
645
+ return "closeme.zf.".concat(name);
646
+ }).join(' ');
647
+ jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);
648
+ }
649
+ };
650
+
651
+ function debounceGlobalListener(debounce, trigger, listener) {
652
+ var timer,
653
+ args = Array.prototype.slice.call(arguments, 3);
654
+ jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(trigger).on(trigger, function (e) {
655
+ if (timer) {
656
+ clearTimeout(timer);
657
+ }
658
+
659
+ timer = setTimeout(function () {
660
+ listener.apply(null, args);
661
+ }, debounce || 10); //default time to emit scroll event
662
+ });
663
+ }
664
+
665
+ Triggers.Initializers.addResizeListener = function (debounce) {
666
+ var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-resize]');
667
+
668
+ if ($nodes.length) {
669
+ debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);
670
+ }
671
+ };
672
+
673
+ Triggers.Initializers.addScrollListener = function (debounce) {
674
+ var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-scroll]');
675
+
676
+ if ($nodes.length) {
677
+ debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);
678
+ }
679
+ };
680
+
681
+ Triggers.Initializers.addMutationEventsListener = function ($elem) {
682
+ if (!MutationObserver) {
683
+ return false;
684
+ }
685
+
686
+ var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]'); //element callback
687
+
688
+ var listeningElementsMutation = function listeningElementsMutation(mutationRecordsList) {
689
+ var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(mutationRecordsList[0].target); //trigger the event handler for the element depending on type
690
+
691
+ switch (mutationRecordsList[0].type) {
692
+ case "attributes":
693
+ if ($target.attr("data-events") === "scroll" && mutationRecordsList[0].attributeName === "data-events") {
694
+ $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);
695
+ }
696
+
697
+ if ($target.attr("data-events") === "resize" && mutationRecordsList[0].attributeName === "data-events") {
698
+ $target.triggerHandler('resizeme.zf.trigger', [$target]);
699
+ }
700
+
701
+ if (mutationRecordsList[0].attributeName === "style") {
702
+ $target.closest("[data-mutate]").attr("data-events", "mutate");
703
+ $target.closest("[data-mutate]").triggerHandler('mutateme.zf.trigger', [$target.closest("[data-mutate]")]);
704
+ }
705
+
706
+ break;
707
+
708
+ case "childList":
709
+ $target.closest("[data-mutate]").attr("data-events", "mutate");
710
+ $target.closest("[data-mutate]").triggerHandler('mutateme.zf.trigger', [$target.closest("[data-mutate]")]);
711
+ break;
712
+
713
+ default:
714
+ return false;
715
+ //nothing
716
+ }
717
+ };
718
+
719
+ if ($nodes.length) {
720
+ //for each element that needs to listen for resizing, scrolling, or mutation add a single observer
721
+ for (var i = 0; i <= $nodes.length - 1; i++) {
722
+ var elementObserver = new MutationObserver(listeningElementsMutation);
723
+ elementObserver.observe($nodes[i], {
724
+ attributes: true,
725
+ childList: true,
726
+ characterData: false,
727
+ subtree: true,
728
+ attributeFilter: ["data-events", "style"]
729
+ });
730
+ }
731
+ }
732
+ };
733
+
734
+ Triggers.Initializers.addSimpleListeners = function () {
735
+ var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);
736
+ Triggers.Initializers.addOpenListener($document);
737
+ Triggers.Initializers.addCloseListener($document);
738
+ Triggers.Initializers.addToggleListener($document);
739
+ Triggers.Initializers.addCloseableListener($document);
740
+ Triggers.Initializers.addToggleFocusListener($document);
741
+ };
742
+
743
+ Triggers.Initializers.addGlobalListeners = function () {
744
+ var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);
745
+ Triggers.Initializers.addMutationEventsListener($document);
746
+ Triggers.Initializers.addResizeListener();
747
+ Triggers.Initializers.addScrollListener();
748
+ Triggers.Initializers.addClosemeListener();
749
+ };
750
+
751
+ Triggers.init = function ($, Foundation) {
752
+ Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__["onLoad"])($(window), function () {
753
+ if ($.triggersInitialized !== true) {
754
+ Triggers.Initializers.addSimpleListeners();
755
+ Triggers.Initializers.addGlobalListeners();
756
+ $.triggersInitialized = true;
757
+ }
758
+ });
759
+
760
+ if (Foundation) {
761
+ Foundation.Triggers = Triggers; // Legacy included to be backwards compatible for now.
762
+
763
+ Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;
764
+ }
765
+ };
766
+
767
+
768
+
455
769
  /***/ }),
456
770
 
457
771
  /***/ 7:
@@ -461,7 +775,7 @@ Interchange.SPECIAL_QUERIES = {
461
775
  /*! no static exports found */
462
776
  /***/ (function(module, exports, __webpack_require__) {
463
777
 
464
- module.exports = __webpack_require__(/*! /Volumes/Data/Development/Foundation/foundation-sites/js/entries/plugins/foundation.interchange.js */"./js/entries/plugins/foundation.interchange.js");
778
+ module.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.interchange.js */"./js/entries/plugins/foundation.interchange.js");
465
779
 
466
780
 
467
781
  /***/ }),