{"version":3,"sources":["../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.core.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/foundation.core.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/foundation.core.plugin.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/foundation.core.utils.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.mediaQuery.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.util.mediaQuery.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.util.keyboard.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.keyboard.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.util.motion.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.motion.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.util.triggers.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.triggers.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.util.imageLoader.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.imageLoader.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.imageLoader\"],\"amd\":\"./foundation.util.imageLoader\",\"commonjs\":\"./foundation.util.imageLoader\",\"commonjs2\":\"./foundation.util.imageLoader\"}","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.equalizer.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/foundation.equalizer.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.interchange.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/foundation.interchange.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.accordion.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/foundation.accordion.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.tabs.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/foundation.tabs.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.responsiveAccordionTabs.js","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.tabs\"],\"amd\":\"./foundation.tabs\",\"commonjs\":\"./foundation.tabs\",\"commonjs2\":\"./foundation.tabs\"}","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"}","../../bower_components/foundation-sites/dist/js/plugins/webpack:/__FOUNDATION_EXTERNAL__.[name]/js/foundation.responsiveAccordionTabs.js"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","moduleId","installedModules","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","_foundation_core__WEBPACK_IMPORTED_MODULE_1__","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__","Foundation","addToJquery","$","Plugin","rtl","GetYoDigits","transitionend","RegExpEscape","onLoad","functionName","fn","Function","funcNameRegex","results","exec","toString","length","trim","constructor","parseValue","str","isNaN","parseFloat","hyphenate","replace","toLowerCase","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__","version","_plugins","_uuids","plugin","className","attrName","this","registerPlugin","pluginName","uuid","$element","attr","concat","data","trigger","push","unregisterPlugin","splice","indexOf","removeAttr","removeData","prop","reInit","plugins","isJQ","each","_init","type","_typeof","_this","plgs","forEach","foundation","string","undefined","keys","err","console","error","reflow","elem","find","addBack","$el","opts","warn","split","e","opt","map","el","er","getFnName","method","$noJS","removeClass","MediaQuery","TypeError","args","Array","slice","arguments","plugClass","ReferenceError","apply","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","oThis","aArgs","fToBind","fNOP","fBound","getPluginName","obj","element","options","_classCallCheck","_setup","_destroy","namespace","round","pow","random","$elem","end","transitions","transition","WebkitTransition","MozTransition","OTransition","document","createElement","style","triggerHandler","handler","didLoad","readyState","eventType","cb","one","ignoreMousedisappear","_ref","_ref$ignoreLeaveWindo","ignoreLeaveWindow","_ref$ignoreReappear","ignoreReappear","eLeave","_len","rest","_key","relatedTarget","hasFocus","eReenter","currentTarget","has","target","parseStyleToObject","styleObject","reduce","ret","param","parts","val","decodeURIComponent","isArray","matchMedia","styleMedia","media","script","getElementsByTagName","info","id","parentNode","insertBefore","head","appendChild","getComputedStyle","currentStyle","matchMedium","text","styleSheet","cssText","textContent","width","matches","queries","current","self","appendTo","namedQueries","extractedStyles","css","_getCurrentSize","_watcher","atLeast","size","query","is","matched","off","on","newSize","currentSize","__WEBPACK_EXTERNAL_MODULE__foundation_core__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__","landscape","iterator","./js/entries/plugins/foundation.util.keyboard.js","./js/foundation.util.keyboard.js","findFocusable","Keyboard","event","getKeyCodes","keyCodes","keyCode","String","fromCharCode","which","toUpperCase","parseKey","commands","13","27","32","35","37","38","39","40","command","handleKey","component","functions","commandList","Rtl","ltr","a","extend","returnValue","handled","unhandled","register","$firstFocusable","$focusable","cmds","$lastFocusable","trapFocus","eq","releaseFocus","focus","preventDefault","k","kcs","jquery","./js/entries/plugins/foundation.util.motion.js","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__","Motion","Move","./js/foundation.util.motion.js","anim","animate","animation","duration","move","finish","initClass","hide","initClasses","reset","isIn","activeClasses","transitionDuration","prog","ts","./foundation.util.motion","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","jquery__WEBPACK_IMPORTED_MODULE_1__","jquery__WEBPACK_IMPORTED_MODULE_1___default","_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_2__","MutationObserver","Triggers","$nodes","debounceGlobalListener","debounce","listener","triggers","prefixes","closeListener","toggleListener","Listeners","Global","closeableListener","Basic","toggleFocusListener","openListener","Initializers","addToggleFocusListener","resizeListener","addToggleListener","scrollListener","addCloseableListener","plugNames","closeMeListener","pluginId","not","listeners","join","$target","mutationRecordsList","attributeName","closest","elementObserver","listeningElementsMutation","childList","characterData","subtree","addSimpleListeners","$document","addMutationEventsListener","addResizeListener","addScrollListener","addOpenListener","addCloseListener","29","_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_1__","onImagesLoaded","./js/foundation.util.imageLoader.js","Image","images","unloaded","22","__WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","./foundation.util.imageLoader","./js/entries/plugins/foundation.equalizer.js","_possibleConstructorReturn","_assertThisInitialized","setPrototypeOf","__proto__","$watched","_getPrototypeOf","_createClass","Equalizer","defaults","isOn","eqId","_bindHandler","onPostEqualizedBound","hasNested","onResizeMeBound","isNested","_onResizeMe","_checkMQ","_events","resizeme.zf.trigger","tooSmall","_reflow","equalizeOn","getHeightsByRow","applyHeightByRow","heights","equalizeOnStack","len","equalizeByRow","group","getBoundingClientRect","top","groups","j","ln","offsetHeight","lastElTopOffset","groupsILength","lenJ","./foundation.util.mediaQuery","_foundation_interchange__WEBPACK_IMPORTED_MODULE_1__","Interchange","getPrototypeOf","_addBreakpoints","_inherits","_Plugin","currentPath","rule","match","data-resize","_generateRules","_this2","rules","path","nodeName","rulesList","SPECIAL_QUERIES","response","html","portrait","7","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","./foundation.util.keyboard","_foundation_accordion__WEBPACK_IMPORTED_MODULE_1__","instance","Constructor","_defineProperties","Accordion","props","descriptor","configurable","writable","subClass","superClass","_setPrototypeOf","$content","$initActive","_initialAnchor","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__","ENTER","anchor","ARROW_DOWN","ARROW_UP","isOwnAnchor","_isInitializing","parent","$tabs","_openSingleTab","children","idx","linkId","_closeAllTabs","aria-controls","aria-expanded","aria-selected","scrollTop","_checkDeepLink","$anchor","$link","hasClass","toggle","$tabContent","offset","next","$a","stopPropagation","prev","updateHistory","pushState","previous","multiExpand","deepLink","up","$othersItems","$targetItem","allowAllClosed","_closeTab","history","$activeContents","_openTab","targetContentId","_this3","_this4","deepLinkSmudge","deepLinkSmudgeDelay","1","protoProps","staticProps","Tabs","isActive","ARROW_RIGHT","onLoadListener","linkClass","linkActiveClass","hash","role","tabindex","aria-labelledby","autoFocus","$images","_setHeightMqHandler","matchHeight","_collapse","$tabTitles","$nextElement","$prevElement","_addClickHandler","_handleTabChange","$elements","$oldTab","last","$tabLink","first","$targetContent","open","historyHandled","addClass","activeCollapse","$target_anchor","_collapseTab","idStr","panelActiveClass","aria-hidden","$activeTab","panel","visibility","display","panelClass","18","__WEBPACK_EXTERNAL_MODULE__foundation_accordion__","__WEBPACK_EXTERNAL_MODULE__foundation_tabs__","./foundation.accordion","./foundation.tabs","_foundation_responsiveAccordionTabs__WEBPACK_IMPORTED_MODULE_1__","ResponsiveAccordionTabs","rulesTree","MenuPlugins","currentMq","tmpPlugin","_changedZfMediaQueryHandler","_getAllOptions","isEmptyObject","_checkMediaQueries","currentPlugin","dummyPlugin","keyKey","storezfData","allOptions","objObj","destroy","fromString","$liHeads","$panels","matchedMq","$liHeadsA","cssClass","$tabsContent","insertAfter","$placeholder","remove","_handleMarkup","tabsPanel","tabsTitle","toSet"],"mappings":"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","file":"foundation.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.accordion\"), require(\"./foundation.core\"), require(\"./foundation.tabs\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.accordion\", \"./foundation.core\", \"./foundation.tabs\", \"./foundation.util.mediaQuery\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.responsiveAccordionTabs\"] = factory(require(\"./foundation.accordion\"), require(\"./foundation.core\"), require(\"./foundation.tabs\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.responsiveAccordionTabs\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.accordion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.tabs\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_accordion__, __WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_tabs__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 11);\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.5.3';\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+']');\n\n // For each plugin found, initialize it\n $elem.each(function() {\n var $el = $(this),\n opts = {};\n // Don't double-dip on plugins\n if ($el.data('zfPlugin')) {\n console.warn(\"Tried to initialize \"+name+\" on an element that already has a Foundation plugin.\");\n return;\n }\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, namespace){\n length = length || 6;\n return Math.round((Math.pow(36, length + 1) - Math.random() * Math.pow(36, length))).toString(36).slice(1) + (namespace ? `-${namespace}` : '');\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\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(c) 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 var self = this;\n var $meta = $('meta.foundation-mq');\n if(!$meta.length){\n $('').appendTo(document.head);\n }\n\n var extractedStyles = $('.foundation-mq').css('font-family');\n var namedQueries;\n\n namedQueries = parseStyleToObject(extractedStyles);\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 * 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 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 size = size.trim().split(' ');\n if(size.length > 1 && size[1] === 'only') {\n if(size[0] === this._getCurrentSize()) return true;\n } else {\n return this.atLeast(size[0]);\n }\n return false;\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 * 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 if (typeof matched === 'object') {\n return matched.name;\n } else {\n return matched;\n }\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__;","import { Foundation } from './foundation.core';\nimport { MediaQuery } from '../../foundation.util.mediaQuery';\n\nFoundation.MediaQuery = MediaQuery;\nFoundation.MediaQuery._init();\n\nexport { Foundation, MediaQuery };\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","import { Foundation } from './foundation.core';\nimport { Keyboard } from '../../foundation.util.keyboard';\n\nFoundation.Keyboard = Keyboard;\n\nexport { Foundation, Keyboard };\n","/*******************************************\n * *\n * This util was created by Marius Olbertz *\n * Please thank Marius on GitHub /owlbertz *\n * or the web http://www.mariusolbertz.de/ *\n * *\n ******************************************/\n\n'use strict';\n\nimport $ from 'jquery';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst keyCodes = {\n 9: 'TAB',\n 13: 'ENTER',\n 27: 'ESCAPE',\n 32: 'SPACE',\n 35: 'END',\n 36: 'HOME',\n 37: 'ARROW_LEFT',\n 38: 'ARROW_UP',\n 39: 'ARROW_RIGHT',\n 40: 'ARROW_DOWN'\n}\n\nvar commands = {}\n\n// Functions pulled out to be referenceable from internals\nfunction findFocusable($element) {\n if(!$element) {return false; }\n return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function() {\n if (!$(this).is(':visible') || $(this).attr('tabindex') < 0) { return false; } //only have visible elements and those that have a tabindex greater or equal 0\n return true;\n });\n}\n\nfunction parseKey(event) {\n var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase();\n\n // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n key = key.replace(/\\W+/, '');\n\n if (event.shiftKey) key = `SHIFT_${key}`;\n if (event.ctrlKey) key = `CTRL_${key}`;\n if (event.altKey) key = `ALT_${key}`;\n\n // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n key = key.replace(/_$/, '');\n\n return key;\n}\n\nvar Keyboard = {\n keys: getKeyCodes(keyCodes),\n\n /**\n * Parses the (keyboard) event and returns a String that represents its key\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n * @param {Event} event - the event generated by the event handler\n * @return String key - String that represents the key pressed\n */\n parseKey: parseKey,\n\n /**\n * Handles the given (keyboard) event\n * @param {Event} event - the event generated by the event handler\n * @param {String} component - Foundation component's name, e.g. Slider or Reveal\n * @param {Objects} functions - collection of functions that are to be executed\n */\n handleKey(event, component, functions) {\n var commandList = commands[component],\n keyCode = this.parseKey(event),\n cmds,\n command,\n fn;\n\n if (!commandList) return console.warn('Component not defined!');\n\n if (typeof commandList.ltr === 'undefined') { // this component does not differentiate between ltr and rtl\n cmds = commandList; // use plain list\n } else { // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n if (Rtl()) cmds = $.extend({}, commandList.ltr, commandList.rtl);\n\n else cmds = $.extend({}, commandList.rtl, commandList.ltr);\n }\n command = cmds[keyCode];\n\n fn = functions[command];\n if (fn && typeof fn === 'function') { // execute function if exists\n var returnValue = fn.apply();\n if (functions.handled || typeof functions.handled === 'function') { // execute function when event was handled\n functions.handled(returnValue);\n }\n } else {\n if (functions.unhandled || typeof functions.unhandled === 'function') { // execute function when event was not handled\n functions.unhandled();\n }\n }\n },\n\n /**\n * Finds all focusable elements within the given `$element`\n * @param {jQuery} $element - jQuery object to search within\n * @return {jQuery} $focusable - all focusable elements within `$element`\n */\n\n findFocusable: findFocusable,\n\n /**\n * Returns the component name name\n * @param {Object} component - Foundation component, e.g. Slider or Reveal\n * @return String componentName\n */\n\n register(componentName, cmds) {\n commands[componentName] = cmds;\n },\n\n\n // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n //\n /**\n * Traps the focus in the given element.\n * @param {jQuery} $element jQuery object to trap the foucs into.\n */\n trapFocus($element) {\n var $focusable = findFocusable($element),\n $firstFocusable = $focusable.eq(0),\n $lastFocusable = $focusable.eq(-1);\n\n $element.on('keydown.zf.trapfocus', function(event) {\n if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n event.preventDefault();\n $firstFocusable.focus();\n }\n else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n event.preventDefault();\n $lastFocusable.focus();\n }\n });\n },\n /**\n * Releases the trapped focus from the given element.\n * @param {jQuery} $element jQuery object to release the focus for.\n */\n releaseFocus($element) {\n $element.off('keydown.zf.trapfocus');\n }\n}\n\n/*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\nfunction getKeyCodes(kcs) {\n var k = {};\n for (var kc in kcs) k[kcs[kc]] = kcs[kc];\n return k;\n}\n\nexport {Keyboard};\n","import { Foundation } from './foundation.core';\nimport { Motion, Move } from '../../foundation.util.motion';\n\nFoundation.Motion = Motion;\nFoundation.Move = Move;\n\nexport { Foundation, Motion, Move };\n","'use strict';\n\nimport $ from 'jquery';\nimport { transitionend } from './foundation.core.utils';\n\n/**\n * Motion module.\n * @module foundation.motion\n */\n\nconst initClasses = ['mui-enter', 'mui-leave'];\nconst activeClasses = ['mui-enter-active', 'mui-leave-active'];\n\nconst Motion = {\n animateIn: function(element, animation, cb) {\n animate(true, element, animation, cb);\n },\n\n animateOut: function(element, animation, cb) {\n animate(false, element, animation, cb);\n }\n}\n\nfunction Move(duration, elem, fn){\n var anim, prog, start = null;\n // console.log('called');\n\n if (duration === 0) {\n fn.apply(elem);\n elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n return;\n }\n\n function move(ts){\n if(!start) start = ts;\n // console.log(start, ts);\n prog = ts - start;\n fn.apply(elem);\n\n if(prog < duration){ anim = window.requestAnimationFrame(move, elem); }\n else{\n window.cancelAnimationFrame(anim);\n elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n }\n }\n anim = window.requestAnimationFrame(move);\n}\n\n/**\n * Animates an element in or out using a CSS transition class.\n * @function\n * @private\n * @param {Boolean} isIn - Defines if the animation is in or out.\n * @param {Object} element - jQuery or HTML object to animate.\n * @param {String} animation - CSS class to use.\n * @param {Function} cb - Callback to run when animation is finished.\n */\nfunction animate(isIn, element, animation, cb) {\n element = $(element).eq(0);\n\n if (!element.length) return;\n\n var initClass = isIn ? initClasses[0] : initClasses[1];\n var activeClass = isIn ? activeClasses[0] : activeClasses[1];\n\n // Set up the animation\n reset();\n\n element\n .addClass(animation)\n .css('transition', 'none');\n\n requestAnimationFrame(() => {\n element.addClass(initClass);\n if (isIn) element.show();\n });\n\n // Start the animation\n requestAnimationFrame(() => {\n element[0].offsetWidth;\n element\n .css('transition', '')\n .addClass(activeClass);\n });\n\n // Clean up the animation when it finishes\n element.one(transitionend(element), finish);\n\n // Hides the element (for out animations), resets the element, and runs a callback\n function finish() {\n if (!isIn) element.hide();\n reset();\n if (cb) cb.apply(element);\n }\n\n // Resets transitions and removes motion-specific classes\n function reset() {\n element[0].style.transitionDuration = 0;\n element.removeClass(`${initClass} ${activeClass} ${animation}`);\n }\n}\n\nexport { Move, Motion };\n\n","import { Foundation } from './foundation.core';\nimport $ from 'jquery';\n\nimport { Triggers } from '../../foundation.util.triggers';\nTriggers.init($, Foundation);\n\nexport { Foundation, Triggers };\n","'use strict';\n\nimport $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n for (var i=0; i < prefixes.length; i++) {\n if (`${prefixes[i]}MutationObserver` in window) {\n return window[`${prefixes[i]}MutationObserver`];\n }\n }\n return false;\n}());\n\nconst triggers = (el, type) => {\n el.data(type).split(' ').forEach(id => {\n $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n });\n};\n\nvar Triggers = {\n Listeners: {\n Basic: {},\n Global: {}\n },\n Initializers: {}\n}\n\nTriggers.Listeners.Basic = {\n openListener: function() {\n triggers($(this), 'open');\n },\n closeListener: function() {\n let id = $(this).data('close');\n if (id) {\n triggers($(this), 'close');\n }\n else {\n $(this).trigger('close.zf.trigger');\n }\n },\n toggleListener: function() {\n let id = $(this).data('toggle');\n if (id) {\n triggers($(this), 'toggle');\n } else {\n $(this).trigger('toggle.zf.trigger');\n }\n },\n closeableListener: function(e) {\n e.stopPropagation();\n let animation = $(this).data('closable');\n\n if(animation !== ''){\n Motion.animateOut($(this), animation, function() {\n $(this).trigger('closed.zf');\n });\n }else{\n $(this).fadeOut().trigger('closed.zf');\n }\n },\n toggleFocusListener: function() {\n let id = $(this).data('toggle-focus');\n $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global = {\n resizeListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('resizeme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a resize event\n $nodes.attr('data-events', \"resize\");\n },\n scrollListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('scrollme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a scroll event\n $nodes.attr('data-events', \"scroll\");\n },\n closeMeListener: function(e, pluginId){\n let plugin = e.namespace.split('.')[0];\n let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n plugins.each(function(){\n let _this = $(this);\n _this.triggerHandler('close.zf.trigger', [_this]);\n });\n }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n var yetiBoxes = $('[data-yeti-box]'),\n plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n if(pluginName){\n if(typeof pluginName === 'string'){\n plugNames.push(pluginName);\n }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n plugNames = plugNames.concat(pluginName);\n }else{\n console.error('Plugin names must be strings');\n }\n }\n if(yetiBoxes.length){\n let listeners = plugNames.map((name) => {\n return `closeme.zf.${name}`;\n }).join(' ');\n\n $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n let timer, args = Array.prototype.slice.call(arguments, 3);\n $(window).off(trigger).on(trigger, function(e) {\n if (timer) { clearTimeout(timer); }\n timer = setTimeout(function(){\n listener.apply(null, args);\n }, debounce || 10);//default time to emit scroll event\n });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n let $nodes = $('[data-resize]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n let $nodes = $('[data-scroll]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n if(!MutationObserver){ return false; }\n let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n //element callback\n var listeningElementsMutation = function (mutationRecordsList) {\n var $target = $(mutationRecordsList[0].target);\n\n //trigger the event handler for the element depending on type\n switch (mutationRecordsList[0].type) {\n case \"attributes\":\n if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n }\n if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('resizeme.zf.trigger', [$target]);\n }\n if (mutationRecordsList[0].attributeName === \"style\") {\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n }\n break;\n\n case \"childList\":\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n break;\n\n default:\n return false;\n //nothing\n }\n };\n\n if ($nodes.length) {\n //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n for (var i = 0; i <= $nodes.length - 1; i++) {\n var elementObserver = new MutationObserver(listeningElementsMutation);\n elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n }\n }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n let $document = $(document);\n\n Triggers.Initializers.addOpenListener($document);\n Triggers.Initializers.addCloseListener($document);\n Triggers.Initializers.addToggleListener($document);\n Triggers.Initializers.addCloseableListener($document);\n Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n let $document = $(document);\n Triggers.Initializers.addMutationEventsListener($document);\n Triggers.Initializers.addResizeListener();\n Triggers.Initializers.addScrollListener();\n Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function ($, Foundation) {\n onLoad($(window), function () {\n if ($.triggersInitialized !== true) {\n Triggers.Initializers.addSimpleListeners();\n Triggers.Initializers.addGlobalListeners();\n $.triggersInitialized = true;\n }\n });\n\n if(Foundation) {\n Foundation.Triggers = Triggers;\n // Legacy included to be backwards compatible for now.\n Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n }\n}\n\nexport {Triggers};\n","import { Foundation } from './foundation.core';\n\nimport { onImagesLoaded } from '../../foundation.util.imageLoader';\n\nFoundation.onImagesLoaded = onImagesLoaded;\n\nexport { Foundation, onImagesLoaded };\n","'use strict';\n\nimport $ from 'jquery';\n\n/**\n * Runs a callback function when images are fully loaded.\n * @param {Object} images - Image(s) to check if loaded.\n * @param {Func} callback - Function to execute when image is fully loaded.\n */\nfunction onImagesLoaded(images, callback){\n var self = this,\n unloaded = images.length;\n\n if (unloaded === 0) {\n callback();\n }\n\n images.each(function(){\n // Check if image is loaded\n if (this.complete && typeof this.naturalWidth !== 'undefined') {\n singleImageLoaded();\n }\n else {\n // If the above check failed, simulate loading on detached element.\n var image = new Image();\n // Still count image as loaded if it finalizes with an error.\n var events = \"load.zf.images error.zf.images\";\n $(image).one(events, function me(event){\n // Unbind the event listeners. We're using 'one' but only one of the two events will have fired.\n $(this).off(events, me);\n singleImageLoaded();\n });\n image.src = $(this).attr('src');\n }\n });\n\n function singleImageLoaded() {\n unloaded--;\n if (unloaded === 0) {\n callback();\n }\n }\n}\n\nexport { onImagesLoaded };\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__;","import { Foundation } from './foundation.core';\n\nimport { Equalizer } from '../../foundation.equalizer';\nFoundation.plugin(Equalizer, 'Equalizer');\n\nexport { Foundation, Equalizer };\n","'use strict';\n\nimport $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Equalizer module.\n * @module foundation.equalizer\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.imageLoader if equalizer contains images\n */\n\nclass Equalizer extends Plugin {\n /**\n * Creates a new instance of Equalizer.\n * @class\n * @name Equalizer\n * @fires Equalizer#init\n * @param {Object} element - jQuery object to add the trigger to.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options){\n this.$element = element;\n this.options = $.extend({}, Equalizer.defaults, this.$element.data(), options);\n this.className = 'Equalizer'; // ie9 back compat\n\n this._init();\n }\n\n /**\n * Initializes the Equalizer plugin and calls functions to get equalizer functioning on load.\n * @private\n */\n _init() {\n var eqId = this.$element.attr('data-equalizer') || '';\n var $watched = this.$element.find(`[data-equalizer-watch=\"${eqId}\"]`);\n\n MediaQuery._init();\n\n this.$watched = $watched.length ? $watched : this.$element.find('[data-equalizer-watch]');\n this.$element.attr('data-resize', (eqId || GetYoDigits(6, 'eq')));\n this.$element.attr('data-mutate', (eqId || GetYoDigits(6, 'eq')));\n\n this.hasNested = this.$element.find('[data-equalizer]').length > 0;\n this.isNested = this.$element.parentsUntil(document.body, '[data-equalizer]').length > 0;\n this.isOn = false;\n this._bindHandler = {\n onResizeMeBound: this._onResizeMe.bind(this),\n onPostEqualizedBound: this._onPostEqualized.bind(this)\n };\n\n var imgs = this.$element.find('img');\n var tooSmall;\n if(this.options.equalizeOn){\n tooSmall = this._checkMQ();\n $(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));\n }else{\n this._events();\n }\n if((typeof tooSmall !== 'undefined' && tooSmall === false) || typeof tooSmall === 'undefined'){\n if(imgs.length){\n onImagesLoaded(imgs, this._reflow.bind(this));\n }else{\n this._reflow();\n }\n }\n }\n\n /**\n * Removes event listeners if the breakpoint is too small.\n * @private\n */\n _pauseEvents() {\n this.isOn = false;\n this.$element.off({\n '.zf.equalizer': this._bindHandler.onPostEqualizedBound,\n 'resizeme.zf.trigger': this._bindHandler.onResizeMeBound,\n\t 'mutateme.zf.trigger': this._bindHandler.onResizeMeBound\n });\n }\n\n /**\n * function to handle $elements resizeme.zf.trigger, with bound this on _bindHandler.onResizeMeBound\n * @private\n */\n _onResizeMe(e) {\n this._reflow();\n }\n\n /**\n * function to handle $elements postequalized.zf.equalizer, with bound this on _bindHandler.onPostEqualizedBound\n * @private\n */\n _onPostEqualized(e) {\n if(e.target !== this.$element[0]){ this._reflow(); }\n }\n\n /**\n * Initializes events for Equalizer.\n * @private\n */\n _events() {\n var _this = this;\n this._pauseEvents();\n if(this.hasNested){\n this.$element.on('postequalized.zf.equalizer', this._bindHandler.onPostEqualizedBound);\n }else{\n this.$element.on('resizeme.zf.trigger', this._bindHandler.onResizeMeBound);\n\t this.$element.on('mutateme.zf.trigger', this._bindHandler.onResizeMeBound);\n }\n this.isOn = true;\n }\n\n /**\n * Checks the current breakpoint to the minimum required size.\n * @private\n */\n _checkMQ() {\n var tooSmall = !MediaQuery.is(this.options.equalizeOn);\n if(tooSmall){\n if(this.isOn){\n this._pauseEvents();\n this.$watched.css('height', 'auto');\n }\n }else{\n if(!this.isOn){\n this._events();\n }\n }\n return tooSmall;\n }\n\n /**\n * A noop version for the plugin\n * @private\n */\n _killswitch() {\n return;\n }\n\n /**\n * Calls necessary functions to update Equalizer upon DOM change\n * @private\n */\n _reflow() {\n if(!this.options.equalizeOnStack){\n if(this._isStacked()){\n this.$watched.css('height', 'auto');\n return false;\n }\n }\n if (this.options.equalizeByRow) {\n this.getHeightsByRow(this.applyHeightByRow.bind(this));\n }else{\n this.getHeights(this.applyHeight.bind(this));\n }\n }\n\n /**\n * Manually determines if the first 2 elements are *NOT* stacked.\n * @private\n */\n _isStacked() {\n if (!this.$watched[0] || !this.$watched[1]) {\n return true;\n }\n return this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top;\n }\n\n /**\n * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n * @param {Function} cb - A non-optional callback to return the heights array to.\n * @returns {Array} heights - An array of heights of children within Equalizer container\n */\n getHeights(cb) {\n var heights = [];\n for(var i = 0, len = this.$watched.length; i < len; i++){\n this.$watched[i].style.height = 'auto';\n heights.push(this.$watched[i].offsetHeight);\n }\n cb(heights);\n }\n\n /**\n * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n * @param {Function} cb - A non-optional callback to return the heights array to.\n * @returns {Array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n */\n getHeightsByRow(cb) {\n var lastElTopOffset = (this.$watched.length ? this.$watched.first().offset().top : 0),\n groups = [],\n group = 0;\n //group by Row\n groups[group] = [];\n for(var i = 0, len = this.$watched.length; i < len; i++){\n this.$watched[i].style.height = 'auto';\n //maybe could use this.$watched[i].offsetTop\n var elOffsetTop = $(this.$watched[i]).offset().top;\n if (elOffsetTop!=lastElTopOffset) {\n group++;\n groups[group] = [];\n lastElTopOffset=elOffsetTop;\n }\n groups[group].push([this.$watched[i],this.$watched[i].offsetHeight]);\n }\n\n for (var j = 0, ln = groups.length; j < ln; j++) {\n var heights = $(groups[j]).map(function(){ return this[1]; }).get();\n var max = Math.max.apply(null, heights);\n groups[j].push(max);\n }\n cb(groups);\n }\n\n /**\n * Changes the CSS height property of each child in an Equalizer parent to match the tallest\n * @param {array} heights - An array of heights of children within Equalizer container\n * @fires Equalizer#preequalized\n * @fires Equalizer#postequalized\n */\n applyHeight(heights) {\n var max = Math.max.apply(null, heights);\n /**\n * Fires before the heights are applied\n * @event Equalizer#preequalized\n */\n this.$element.trigger('preequalized.zf.equalizer');\n\n this.$watched.css('height', max);\n\n /**\n * Fires when the heights have been applied\n * @event Equalizer#postequalized\n */\n this.$element.trigger('postequalized.zf.equalizer');\n }\n\n /**\n * Changes the CSS height property of each child in an Equalizer parent to match the tallest by row\n * @param {array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n * @fires Equalizer#preequalized\n * @fires Equalizer#preequalizedrow\n * @fires Equalizer#postequalizedrow\n * @fires Equalizer#postequalized\n */\n applyHeightByRow(groups) {\n /**\n * Fires before the heights are applied\n */\n this.$element.trigger('preequalized.zf.equalizer');\n for (var i = 0, len = groups.length; i < len ; i++) {\n var groupsILength = groups[i].length,\n max = groups[i][groupsILength - 1];\n if (groupsILength<=2) {\n $(groups[i][0][0]).css({'height':'auto'});\n continue;\n }\n /**\n * Fires before the heights per row are applied\n * @event Equalizer#preequalizedrow\n */\n this.$element.trigger('preequalizedrow.zf.equalizer');\n for (var j = 0, lenJ = (groupsILength-1); j < lenJ ; j++) {\n $(groups[i][j][0]).css({'height':max});\n }\n /**\n * Fires when the heights per row have been applied\n * @event Equalizer#postequalizedrow\n */\n this.$element.trigger('postequalizedrow.zf.equalizer');\n }\n /**\n * Fires when the heights have been applied\n */\n this.$element.trigger('postequalized.zf.equalizer');\n }\n\n /**\n * Destroys an instance of Equalizer.\n * @function\n */\n _destroy() {\n this._pauseEvents();\n this.$watched.css('height', 'auto');\n }\n}\n\n/**\n * Default settings for plugin\n */\nEqualizer.defaults = {\n /**\n * Enable height equalization when stacked on smaller screens.\n * @option\n * @type {boolean}\n * @default false\n */\n equalizeOnStack: false,\n /**\n * Enable height equalization row by row.\n * @option\n * @type {boolean}\n * @default false\n */\n equalizeByRow: false,\n /**\n * String representing the minimum breakpoint size the plugin should equalize heights on.\n * @option\n * @type {string}\n * @default ''\n */\n equalizeOn: ''\n};\n\nexport {Equalizer};\n","import { Foundation } from './foundation.core';\n\nimport { Interchange } from '../../foundation.interchange';\nFoundation.plugin(Interchange, 'Interchange');\n\nexport { Foundation, Interchange };\n","'use strict';\n\nimport $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\n\n\n/**\n * Interchange module.\n * @module foundation.interchange\n * @requires foundation.util.mediaQuery\n */\n\nclass Interchange extends Plugin {\n /**\n * Creates a new instance of Interchange.\n * @class\n * @name Interchange\n * @fires Interchange#init\n * @param {Object} element - jQuery object to add the trigger to.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Interchange.defaults, options);\n this.rules = [];\n this.currentPath = '';\n this.className = 'Interchange'; // ie9 back compat\n\n this._init();\n this._events();\n }\n\n /**\n * Initializes the Interchange plugin and calls functions to get interchange functioning on load.\n * @function\n * @private\n */\n _init() {\n MediaQuery._init();\n\n var id = this.$element[0].id || GetYoDigits(6, 'interchange');\n this.$element.attr({\n 'data-resize': id,\n 'id': id\n });\n\n this._addBreakpoints();\n this._generateRules();\n this._reflow();\n }\n\n /**\n * Initializes events for Interchange.\n * @function\n * @private\n */\n _events() {\n this.$element.off('resizeme.zf.trigger').on('resizeme.zf.trigger', () => this._reflow());\n }\n\n /**\n * Calls necessary functions to update Interchange upon DOM change\n * @function\n * @private\n */\n _reflow() {\n var match;\n\n // Iterate through each rule, but only save the last match\n for (var i in this.rules) {\n if(this.rules.hasOwnProperty(i)) {\n var rule = this.rules[i];\n if (window.matchMedia(rule.query).matches) {\n match = rule;\n }\n }\n }\n\n if (match) {\n this.replace(match.path);\n }\n }\n\n /**\n * Gets the Foundation breakpoints and adds them to the Interchange.SPECIAL_QUERIES object.\n * @function\n * @private\n */\n _addBreakpoints() {\n for (var i in MediaQuery.queries) {\n if (MediaQuery.queries.hasOwnProperty(i)) {\n var query = MediaQuery.queries[i];\n Interchange.SPECIAL_QUERIES[query.name] = query.value;\n }\n }\n }\n\n /**\n * Checks the Interchange element for the provided media query + content pairings\n * @function\n * @private\n * @param {Object} element - jQuery object that is an Interchange instance\n * @returns {Array} scenarios - Array of objects that have 'mq' and 'path' keys with corresponding keys\n */\n _generateRules(element) {\n var rulesList = [];\n var rules;\n\n if (this.options.rules) {\n rules = this.options.rules;\n }\n else {\n rules = this.$element.data('interchange');\n }\n\n rules = typeof rules === 'string' ? rules.match(/\\[.*?, .*?\\]/g) : rules;\n\n for (var i in rules) {\n if(rules.hasOwnProperty(i)) {\n var rule = rules[i].slice(1, -1).split(', ');\n var path = rule.slice(0, -1).join('');\n var query = rule[rule.length - 1];\n\n if (Interchange.SPECIAL_QUERIES[query]) {\n query = Interchange.SPECIAL_QUERIES[query];\n }\n\n rulesList.push({\n path: path,\n query: query\n });\n }\n }\n\n this.rules = rulesList;\n }\n\n /**\n * Update the `src` property of an image, or change the HTML of a container, to the specified path.\n * @function\n * @param {String} path - Path to the image or HTML partial.\n * @fires Interchange#replaced\n */\n replace(path) {\n if (this.currentPath === path) return;\n\n var _this = this,\n trigger = 'replaced.zf.interchange';\n\n // Replacing images\n if (this.$element[0].nodeName === 'IMG') {\n this.$element.attr('src', path).on('load', function() {\n _this.currentPath = path;\n })\n .trigger(trigger);\n }\n // Replacing background images\n else if (path.match(/\\.(gif|jpg|jpeg|png|svg|tiff)([?#].*)?/i)) {\n path = path.replace(/\\(/g, '%28').replace(/\\)/g, '%29');\n this.$element.css({ 'background-image': 'url('+path+')' })\n .trigger(trigger);\n }\n // Replacing HTML\n else {\n $.get(path, function(response) {\n _this.$element.html(response)\n .trigger(trigger);\n $(response).foundation();\n _this.currentPath = path;\n });\n }\n\n /**\n * Fires when content in an Interchange element is done being loaded.\n * @event Interchange#replaced\n */\n // this.$element.trigger('replaced.zf.interchange');\n }\n\n /**\n * Destroys an instance of interchange.\n * @function\n */\n _destroy() {\n this.$element.off('resizeme.zf.trigger')\n }\n}\n\n/**\n * Default settings for plugin\n */\nInterchange.defaults = {\n /**\n * Rules to be applied to Interchange elements. Set with the `data-interchange` array notation.\n * @option\n * @type {?array}\n * @default null\n */\n rules: null\n};\n\nInterchange.SPECIAL_QUERIES = {\n 'landscape': 'screen and (orientation: landscape)',\n 'portrait': 'screen and (orientation: portrait)',\n 'retina': 'only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)'\n};\n\nexport {Interchange};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","import { Foundation } from './foundation.core';\n\nimport { Accordion } from '../../foundation.accordion';\nFoundation.plugin(Accordion, 'Accordion');\n\nexport { Foundation, Accordion };\n","'use strict';\n\nimport $ from 'jquery';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Accordion module.\n * @module foundation.accordion\n * @requires foundation.util.keyboard\n */\n\nclass Accordion extends Plugin {\n /**\n * Creates a new instance of an accordion.\n * @class\n * @name Accordion\n * @fires Accordion#init\n * @param {jQuery} element - jQuery object to make into an accordion.\n * @param {Object} options - a plain object with settings to override the default options.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Accordion.defaults, this.$element.data(), options);\n\n this.className = 'Accordion'; // ie9 back compat\n this._init();\n\n Keyboard.register('Accordion', {\n 'ENTER': 'toggle',\n 'SPACE': 'toggle',\n 'ARROW_DOWN': 'next',\n 'ARROW_UP': 'previous'\n });\n }\n\n /**\n * Initializes the accordion by animating the preset active pane(s).\n * @private\n */\n _init() {\n this._isInitializing = true;\n\n this.$element.attr('role', 'tablist');\n this.$tabs = this.$element.children('[data-accordion-item]');\n\n this.$tabs.each(function(idx, el) {\n var $el = $(el),\n $content = $el.children('[data-tab-content]'),\n id = $content[0].id || GetYoDigits(6, 'accordion'),\n linkId = (el.id) ? `${el.id}-label` : `${id}-label`;\n\n $el.find('a:first').attr({\n 'aria-controls': id,\n 'role': 'tab',\n 'id': linkId,\n 'aria-expanded': false,\n 'aria-selected': false\n });\n\n $content.attr({'role': 'tabpanel', 'aria-labelledby': linkId, 'aria-hidden': true, 'id': id});\n });\n\n var $initActive = this.$element.find('.is-active').children('[data-tab-content]');\n if ($initActive.length) {\n // Save up the initial hash to return to it later when going back in history\n this._initialAnchor = $initActive.prev('a').attr('href');\n this._openSingleTab($initActive);\n }\n\n this._checkDeepLink = () => {\n var anchor = window.location.hash;\n\n if (!anchor.length) {\n // If we are still initializing and there is no anchor, then there is nothing to do\n if (this._isInitializing) return;\n // Otherwise, move to the initial anchor\n if (this._initialAnchor) anchor = this._initialAnchor;\n }\n\n var $anchor = anchor && $(anchor);\n var $link = anchor && this.$element.find(`[href$=\"${anchor}\"]`);\n // Whether the anchor element that has been found is part of this element\n var isOwnAnchor = !!($anchor.length && $link.length);\n\n // If there is an anchor for the hash, open it (if not already active)\n if ($anchor && $link && $link.length) {\n if (!$link.parent('[data-accordion-item]').hasClass('is-active')) {\n this._openSingleTab($anchor);\n };\n }\n // Otherwise, close everything\n else {\n this._closeAllTabs();\n }\n\n if (isOwnAnchor) {\n // Roll up a little to show the titles\n if (this.options.deepLinkSmudge) {\n onLoad($(window), () => {\n var offset = this.$element.offset();\n $('html, body').animate({ scrollTop: offset.top }, this.options.deepLinkSmudgeDelay);\n });\n }\n\n /**\n * Fires when the plugin has deeplinked at pageload\n * @event Accordion#deeplink\n */\n this.$element.trigger('deeplink.zf.accordion', [$link, $anchor]);\n }\n }\n\n //use browser to open a tab, if it exists in this tabset\n if (this.options.deepLink) {\n this._checkDeepLink();\n }\n\n this._events();\n\n this._isInitializing = false;\n }\n\n /**\n * Adds event handlers for items within the accordion.\n * @private\n */\n _events() {\n var _this = this;\n\n this.$tabs.each(function() {\n var $elem = $(this);\n var $tabContent = $elem.children('[data-tab-content]');\n if ($tabContent.length) {\n $elem.children('a').off('click.zf.accordion keydown.zf.accordion')\n .on('click.zf.accordion', function(e) {\n e.preventDefault();\n _this.toggle($tabContent);\n }).on('keydown.zf.accordion', function(e){\n Keyboard.handleKey(e, 'Accordion', {\n toggle: function() {\n _this.toggle($tabContent);\n },\n next: function() {\n var $a = $elem.next().find('a').focus();\n if (!_this.options.multiExpand) {\n $a.trigger('click.zf.accordion')\n }\n },\n previous: function() {\n var $a = $elem.prev().find('a').focus();\n if (!_this.options.multiExpand) {\n $a.trigger('click.zf.accordion')\n }\n },\n handled: function() {\n e.preventDefault();\n e.stopPropagation();\n }\n });\n });\n }\n });\n if(this.options.deepLink) {\n $(window).on('hashchange', this._checkDeepLink);\n }\n }\n\n /**\n * Toggles the selected content pane's open/close state.\n * @param {jQuery} $target - jQuery object of the pane to toggle (`.accordion-content`).\n * @function\n */\n toggle($target) {\n if ($target.closest('[data-accordion]').is('[disabled]')) {\n console.info('Cannot toggle an accordion that is disabled.');\n return;\n }\n if($target.parent().hasClass('is-active')) {\n this.up($target);\n } else {\n this.down($target);\n }\n //either replace or update browser history\n if (this.options.deepLink) {\n var anchor = $target.prev('a').attr('href');\n\n if (this.options.updateHistory) {\n history.pushState({}, '', anchor);\n } else {\n history.replaceState({}, '', anchor);\n }\n }\n }\n\n /**\n * Opens the accordion tab defined by `$target`.\n * @param {jQuery} $target - Accordion pane to open (`.accordion-content`).\n * @fires Accordion#down\n * @function\n */\n down($target) {\n if ($target.closest('[data-accordion]').is('[disabled]')) {\n console.info('Cannot call down on an accordion that is disabled.');\n return;\n }\n\n if (this.options.multiExpand)\n this._openTab($target);\n else\n this._openSingleTab($target);\n }\n\n /**\n * Closes the tab defined by `$target`.\n * It may be ignored if the Accordion options don't allow it.\n *\n * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n * @fires Accordion#up\n * @function\n */\n up($target) {\n if (this.$element.is('[disabled]')) {\n console.info('Cannot call up on an accordion that is disabled.');\n return;\n }\n\n // Don't close the item if it is already closed\n const $targetItem = $target.parent();\n if (!$targetItem.hasClass('is-active')) return;\n\n // Don't close the item if there is no other active item (unless with `allowAllClosed`)\n const $othersItems = $targetItem.siblings();\n if (!this.options.allowAllClosed && !$othersItems.hasClass('is-active')) return;\n\n this._closeTab($target);\n }\n\n /**\n * Make the tab defined by `$target` the only opened tab, closing all others tabs.\n * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n * @function\n * @private\n */\n _openSingleTab($target) {\n // Close all the others active tabs.\n const $activeContents = this.$element.children('.is-active').children('[data-tab-content]');\n if ($activeContents.length) {\n this._closeTab($activeContents.not($target));\n }\n\n // Then open the target.\n this._openTab($target);\n }\n\n /**\n * Opens the tab defined by `$target`.\n * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n * @fires Accordion#down\n * @function\n * @private\n */\n _openTab($target) {\n const $targetItem = $target.parent();\n const targetContentId = $target.attr('aria-labelledby');\n\n $target.attr('aria-hidden', false);\n $targetItem.addClass('is-active');\n\n $(`#${targetContentId}`).attr({\n 'aria-expanded': true,\n 'aria-selected': true\n });\n\n $target.slideDown(this.options.slideSpeed, () => {\n /**\n * Fires when the tab is done opening.\n * @event Accordion#down\n */\n this.$element.trigger('down.zf.accordion', [$target]);\n });\n }\n\n /**\n * Closes the tab defined by `$target`.\n * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n * @fires Accordion#up\n * @function\n * @private\n */\n _closeTab($target) {\n const $targetItem = $target.parent();\n const targetContentId = $target.attr('aria-labelledby');\n\n $target.attr('aria-hidden', true)\n $targetItem.removeClass('is-active');\n\n $(`#${targetContentId}`).attr({\n 'aria-expanded': false,\n 'aria-selected': false\n });\n\n $target.slideUp(this.options.slideSpeed, () => {\n /**\n * Fires when the tab is done collapsing up.\n * @event Accordion#up\n */\n this.$element.trigger('up.zf.accordion', [$target]);\n });\n }\n\n /**\n * Closes all active tabs\n * @fires Accordion#up\n * @function\n * @private\n */\n _closeAllTabs() {\n var $activeTabs = this.$element.children('.is-active').children('[data-tab-content]');\n if ($activeTabs.length) {\n this._closeTab($activeTabs);\n }\n }\n\n /**\n * Destroys an instance of an accordion.\n * @fires Accordion#destroyed\n * @function\n */\n _destroy() {\n this.$element.find('[data-tab-content]').stop(true).slideUp(0).css('display', '');\n this.$element.find('a').off('.zf.accordion');\n if(this.options.deepLink) {\n $(window).off('hashchange', this._checkDeepLink);\n }\n\n }\n}\n\nAccordion.defaults = {\n /**\n * Amount of time to animate the opening of an accordion pane.\n * @option\n * @type {number}\n * @default 250\n */\n slideSpeed: 250,\n /**\n * Allow the accordion to have multiple open panes.\n * @option\n * @type {boolean}\n * @default false\n */\n multiExpand: false,\n /**\n * Allow the accordion to close all panes.\n * @option\n * @type {boolean}\n * @default false\n */\n allowAllClosed: false,\n /**\n * Link the location hash to the open pane.\n * Set the location hash when the opened pane changes, and open and scroll to the corresponding pane when the location changes.\n * @option\n * @type {boolean}\n * @default false\n */\n deepLink: false,\n /**\n * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the accordion panel is visible\n * @option\n * @type {boolean}\n * @default false\n */\n deepLinkSmudge: false,\n /**\n * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n * @option\n * @type {number}\n * @default 300\n */\n deepLinkSmudgeDelay: 300,\n /**\n * If `deepLink` is enabled, update the browser history with the open accordion\n * @option\n * @type {boolean}\n * @default false\n */\n updateHistory: false\n};\n\nexport {Accordion};\n","import { Foundation } from './foundation.core';\n\nimport { Tabs } from '../../foundation.tabs';\nFoundation.plugin(Tabs, 'Tabs');\n\nexport { Foundation, Tabs };\n","'use strict';\n\nimport $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { Plugin } from './foundation.core.plugin';\n/**\n * Tabs module.\n * @module foundation.tabs\n * @requires foundation.util.keyboard\n * @requires foundation.util.imageLoader if tabs contain images\n */\n\nclass Tabs extends Plugin {\n /**\n * Creates a new instance of tabs.\n * @class\n * @name Tabs\n * @fires Tabs#init\n * @param {jQuery} element - jQuery object to make into tabs.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Tabs.defaults, this.$element.data(), options);\n this.className = 'Tabs'; // ie9 back compat\n\n this._init();\n Keyboard.register('Tabs', {\n 'ENTER': 'open',\n 'SPACE': 'open',\n 'ARROW_RIGHT': 'next',\n 'ARROW_UP': 'previous',\n 'ARROW_DOWN': 'next',\n 'ARROW_LEFT': 'previous'\n // 'TAB': 'next',\n // 'SHIFT_TAB': 'previous'\n });\n }\n\n /**\n * Initializes the tabs by showing and focusing (if autoFocus=true) the preset active tab.\n * @private\n */\n _init() {\n var _this = this;\n this._isInitializing = true;\n\n this.$element.attr({'role': 'tablist'});\n this.$tabTitles = this.$element.find(`.${this.options.linkClass}`);\n this.$tabContent = $(`[data-tabs-content=\"${this.$element[0].id}\"]`);\n\n this.$tabTitles.each(function(){\n var $elem = $(this),\n $link = $elem.find('a'),\n isActive = $elem.hasClass(`${_this.options.linkActiveClass}`),\n hash = $link.attr('data-tabs-target') || $link[0].hash.slice(1),\n linkId = $link[0].id ? $link[0].id : `${hash}-label`,\n $tabContent = $(`#${hash}`);\n\n $elem.attr({'role': 'presentation'});\n\n $link.attr({\n 'role': 'tab',\n 'aria-controls': hash,\n 'aria-selected': isActive,\n 'id': linkId,\n 'tabindex': isActive ? '0' : '-1'\n });\n\n $tabContent.attr({\n 'role': 'tabpanel',\n 'aria-labelledby': linkId\n });\n\n // Save up the initial hash to return to it later when going back in history\n if (isActive) {\n _this._initialAnchor = `#${hash}`;\n }\n\n if(!isActive) {\n $tabContent.attr('aria-hidden', 'true');\n }\n\n if(isActive && _this.options.autoFocus){\n _this.onLoadListener = onLoad($(window), function() {\n $('html, body').animate({ scrollTop: $elem.offset().top }, _this.options.deepLinkSmudgeDelay, () => {\n $link.focus();\n });\n });\n }\n });\n\n if(this.options.matchHeight) {\n var $images = this.$tabContent.find('img');\n\n if ($images.length) {\n onImagesLoaded($images, this._setHeight.bind(this));\n } else {\n this._setHeight();\n }\n }\n\n // Current context-bound function to open tabs on page load or history hashchange\n this._checkDeepLink = () => {\n var anchor = window.location.hash;\n\n if (!anchor.length) {\n // If we are still initializing and there is no anchor, then there is nothing to do\n if (this._isInitializing) return;\n // Otherwise, move to the initial anchor\n if (this._initialAnchor) anchor = this._initialAnchor;\n }\n\n var $anchor = anchor && $(anchor);\n var $link = anchor && this.$element.find('[href$=\"'+anchor+'\"]');\n // Whether the anchor element that has been found is part of this element\n var isOwnAnchor = !!($anchor.length && $link.length);\n\n // If there is an anchor for the hash, select it\n if ($anchor && $anchor.length && $link && $link.length) {\n this.selectTab($anchor, true);\n }\n // Otherwise, collapse everything\n else {\n this._collapse();\n }\n\n if (isOwnAnchor) {\n // Roll up a little to show the titles\n if (this.options.deepLinkSmudge) {\n var offset = this.$element.offset();\n $('html, body').animate({ scrollTop: offset.top }, this.options.deepLinkSmudgeDelay);\n }\n\n /**\n * Fires when the plugin has deeplinked at pageload\n * @event Tabs#deeplink\n */\n this.$element.trigger('deeplink.zf.tabs', [$link, $anchor]);\n }\n }\n\n //use browser to open a tab, if it exists in this tabset\n if (this.options.deepLink) {\n this._checkDeepLink();\n }\n\n this._events();\n\n this._isInitializing = false;\n }\n\n /**\n * Adds event handlers for items within the tabs.\n * @private\n */\n _events() {\n this._addKeyHandler();\n this._addClickHandler();\n this._setHeightMqHandler = null;\n\n if (this.options.matchHeight) {\n this._setHeightMqHandler = this._setHeight.bind(this);\n\n $(window).on('changed.zf.mediaquery', this._setHeightMqHandler);\n }\n\n if(this.options.deepLink) {\n $(window).on('hashchange', this._checkDeepLink);\n }\n }\n\n /**\n * Adds click handlers for items within the tabs.\n * @private\n */\n _addClickHandler() {\n var _this = this;\n\n this.$element\n .off('click.zf.tabs')\n .on('click.zf.tabs', `.${this.options.linkClass}`, function(e){\n e.preventDefault();\n e.stopPropagation();\n _this._handleTabChange($(this));\n });\n }\n\n /**\n * Adds keyboard event handlers for items within the tabs.\n * @private\n */\n _addKeyHandler() {\n var _this = this;\n\n this.$tabTitles.off('keydown.zf.tabs').on('keydown.zf.tabs', function(e){\n if (e.which === 9) return;\n\n\n var $element = $(this),\n $elements = $element.parent('ul').children('li'),\n $prevElement,\n $nextElement;\n\n $elements.each(function(i) {\n if ($(this).is($element)) {\n if (_this.options.wrapOnKeys) {\n $prevElement = i === 0 ? $elements.last() : $elements.eq(i-1);\n $nextElement = i === $elements.length -1 ? $elements.first() : $elements.eq(i+1);\n } else {\n $prevElement = $elements.eq(Math.max(0, i-1));\n $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n }\n return;\n }\n });\n\n // handle keyboard event with keyboard util\n Keyboard.handleKey(e, 'Tabs', {\n open: function() {\n $element.find('[role=\"tab\"]').focus();\n _this._handleTabChange($element);\n },\n previous: function() {\n $prevElement.find('[role=\"tab\"]').focus();\n _this._handleTabChange($prevElement);\n },\n next: function() {\n $nextElement.find('[role=\"tab\"]').focus();\n _this._handleTabChange($nextElement);\n },\n handled: function() {\n e.stopPropagation();\n e.preventDefault();\n }\n });\n });\n }\n\n /**\n * Opens the tab `$targetContent` defined by `$target`. Collapses active tab.\n * @param {jQuery} $target - Tab to open.\n * @param {boolean} historyHandled - browser has already handled a history update\n * @fires Tabs#change\n * @function\n */\n _handleTabChange($target, historyHandled) {\n\n // With `activeCollapse`, if the target is the active Tab, collapse it.\n if ($target.hasClass(`${this.options.linkActiveClass}`)) {\n if(this.options.activeCollapse) {\n this._collapse();\n }\n return;\n }\n\n var $oldTab = this.$element.\n find(`.${this.options.linkClass}.${this.options.linkActiveClass}`),\n $tabLink = $target.find('[role=\"tab\"]'),\n target = $tabLink.attr('data-tabs-target'),\n anchor = target && target.length ? `#${target}` : $tabLink[0].hash,\n $targetContent = this.$tabContent.find(anchor);\n\n //close old tab\n this._collapseTab($oldTab);\n\n //open new tab\n this._openTab($target);\n\n //either replace or update browser history\n if (this.options.deepLink && !historyHandled) {\n if (this.options.updateHistory) {\n history.pushState({}, '', anchor);\n } else {\n history.replaceState({}, '', anchor);\n }\n }\n\n /**\n * Fires when the plugin has successfully changed tabs.\n * @event Tabs#change\n */\n this.$element.trigger('change.zf.tabs', [$target, $targetContent]);\n\n //fire to children a mutation event\n $targetContent.find(\"[data-mutate]\").trigger(\"mutateme.zf.trigger\");\n }\n\n /**\n * Opens the tab `$targetContent` defined by `$target`.\n * @param {jQuery} $target - Tab to open.\n * @function\n */\n _openTab($target) {\n var $tabLink = $target.find('[role=\"tab\"]'),\n hash = $tabLink.attr('data-tabs-target') || $tabLink[0].hash.slice(1),\n $targetContent = this.$tabContent.find(`#${hash}`);\n\n $target.addClass(`${this.options.linkActiveClass}`);\n\n $tabLink.attr({\n 'aria-selected': 'true',\n 'tabindex': '0'\n });\n\n $targetContent\n .addClass(`${this.options.panelActiveClass}`).removeAttr('aria-hidden');\n }\n\n /**\n * Collapses `$targetContent` defined by `$target`.\n * @param {jQuery} $target - Tab to collapse.\n * @function\n */\n _collapseTab($target) {\n var $target_anchor = $target\n .removeClass(`${this.options.linkActiveClass}`)\n .find('[role=\"tab\"]')\n .attr({\n 'aria-selected': 'false',\n 'tabindex': -1\n });\n\n $(`#${$target_anchor.attr('aria-controls')}`)\n .removeClass(`${this.options.panelActiveClass}`)\n .attr({ 'aria-hidden': 'true' })\n }\n\n /**\n * Collapses the active Tab.\n * @fires Tabs#collapse\n * @function\n */\n _collapse() {\n var $activeTab = this.$element.find(`.${this.options.linkClass}.${this.options.linkActiveClass}`);\n\n if ($activeTab.length) {\n this._collapseTab($activeTab);\n\n /**\n * Fires when the plugin has successfully collapsed tabs.\n * @event Tabs#collapse\n */\n this.$element.trigger('collapse.zf.tabs', [$activeTab]);\n }\n }\n\n /**\n * Public method for selecting a content pane to display.\n * @param {jQuery | String} elem - jQuery object or string of the id of the pane to display.\n * @param {boolean} historyHandled - browser has already handled a history update\n * @function\n */\n selectTab(elem, historyHandled) {\n var idStr;\n\n if (typeof elem === 'object') {\n idStr = elem[0].id;\n } else {\n idStr = elem;\n }\n\n if (idStr.indexOf('#') < 0) {\n idStr = `#${idStr}`;\n }\n\n var $target = this.$tabTitles.has(`[href$=\"${idStr}\"]`);\n\n this._handleTabChange($target, historyHandled);\n };\n\n /**\n * Sets the height of each panel to the height of the tallest panel.\n * If enabled in options, gets called on media query change.\n * If loading content via external source, can be called directly or with _reflow.\n * If enabled with `data-match-height=\"true\"`, tabs sets to equal height\n * @function\n * @private\n */\n _setHeight() {\n var max = 0,\n _this = this; // Lock down the `this` value for the root tabs object\n\n this.$tabContent\n .find(`.${this.options.panelClass}`)\n .css('height', '')\n .each(function() {\n\n var panel = $(this),\n isActive = panel.hasClass(`${_this.options.panelActiveClass}`); // get the options from the parent instead of trying to get them from the child\n\n if (!isActive) {\n panel.css({'visibility': 'hidden', 'display': 'block'});\n }\n\n var temp = this.getBoundingClientRect().height;\n\n if (!isActive) {\n panel.css({\n 'visibility': '',\n 'display': ''\n });\n }\n\n max = temp > max ? temp : max;\n })\n .css('height', `${max}px`);\n }\n\n /**\n * Destroys an instance of tabs.\n * @fires Tabs#destroyed\n */\n _destroy() {\n this.$element\n .find(`.${this.options.linkClass}`)\n .off('.zf.tabs').hide().end()\n .find(`.${this.options.panelClass}`)\n .hide();\n\n if (this.options.matchHeight) {\n if (this._setHeightMqHandler != null) {\n $(window).off('changed.zf.mediaquery', this._setHeightMqHandler);\n }\n }\n\n if (this.options.deepLink) {\n $(window).off('hashchange', this._checkDeepLink);\n }\n\n if (this.onLoadListener) {\n $(window).off(this.onLoadListener);\n }\n }\n}\n\nTabs.defaults = {\n /**\n * Link the location hash to the active pane.\n * Set the location hash when the active pane changes, and open the corresponding pane when the location changes.\n * @option\n * @type {boolean}\n * @default false\n */\n deepLink: false,\n\n /**\n * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the tab panel is visible\n * @option\n * @type {boolean}\n * @default false\n */\n deepLinkSmudge: false,\n\n /**\n * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n * @option\n * @type {number}\n * @default 300\n */\n deepLinkSmudgeDelay: 300,\n\n /**\n * If `deepLink` is enabled, update the browser history with the open tab\n * @option\n * @type {boolean}\n * @default false\n */\n updateHistory: false,\n\n /**\n * Allows the window to scroll to content of active pane on load.\n * Not recommended if more than one tab panel per page.\n * @option\n * @type {boolean}\n * @default false\n */\n autoFocus: false,\n\n /**\n * Allows keyboard input to 'wrap' around the tab links.\n * @option\n * @type {boolean}\n * @default true\n */\n wrapOnKeys: true,\n\n /**\n * Allows the tab content panes to match heights if set to true.\n * @option\n * @type {boolean}\n * @default false\n */\n matchHeight: false,\n\n /**\n * Allows active tabs to collapse when clicked.\n * @option\n * @type {boolean}\n * @default false\n */\n activeCollapse: false,\n\n /**\n * Class applied to `li`'s in tab link list.\n * @option\n * @type {string}\n * @default 'tabs-title'\n */\n linkClass: 'tabs-title',\n\n /**\n * Class applied to the active `li` in tab link list.\n * @option\n * @type {string}\n * @default 'is-active'\n */\n linkActiveClass: 'is-active',\n\n /**\n * Class applied to the content containers.\n * @option\n * @type {string}\n * @default 'tabs-panel'\n */\n panelClass: 'tabs-panel',\n\n /**\n * Class applied to the active content container.\n * @option\n * @type {string}\n * @default 'is-active'\n */\n panelActiveClass: 'is-active'\n};\n\nexport {Tabs};\n","import { Foundation } from './foundation.core';\n\nimport { ResponsiveAccordionTabs } from '../../foundation.responsiveAccordionTabs';\nFoundation.plugin(ResponsiveAccordionTabs, 'ResponsiveAccordionTabs');\n\nexport { Foundation, ResponsiveAccordionTabs };\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_tabs__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;","'use strict';\n\nimport $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin }from './foundation.core.plugin';\n\nimport { Accordion } from './foundation.accordion';\nimport { Tabs } from './foundation.tabs';\n\n// The plugin matches the plugin classes with these plugin instances.\nvar MenuPlugins = {\n tabs: {\n cssClass: 'tabs',\n plugin: Tabs\n },\n accordion: {\n cssClass: 'accordion',\n plugin: Accordion\n }\n};\n\n\n/**\n * ResponsiveAccordionTabs module.\n * @module foundation.responsiveAccordionTabs\n * @requires foundation.util.motion\n * @requires foundation.accordion\n * @requires foundation.tabs\n */\n\nclass ResponsiveAccordionTabs extends Plugin{\n /**\n * Creates a new instance of a responsive accordion tabs.\n * @class\n * @name ResponsiveAccordionTabs\n * @fires ResponsiveAccordionTabs#init\n * @param {jQuery} element - jQuery object to make into Responsive Accordion Tabs.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = $(element);\n this.options = $.extend({}, this.$element.data(), options);\n this.rules = this.$element.data('responsive-accordion-tabs');\n this.currentMq = null;\n this.currentPlugin = null;\n this.className = 'ResponsiveAccordionTabs'; // ie9 back compat\n if (!this.$element.attr('id')) {\n this.$element.attr('id',GetYoDigits(6, 'responsiveaccordiontabs'));\n };\n\n this._init();\n this._events();\n }\n\n /**\n * Initializes the Menu by parsing the classes from the 'data-responsive-accordion-tabs' attribute on the element.\n * @function\n * @private\n */\n _init() {\n MediaQuery._init();\n\n // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n if (typeof this.rules === 'string') {\n let rulesTree = {};\n\n // Parse rules from \"classes\" pulled from data attribute\n let rules = this.rules.split(' ');\n\n // Iterate through every rule found\n for (let i = 0; i < rules.length; i++) {\n let rule = rules[i].split('-');\n let ruleSize = rule.length > 1 ? rule[0] : 'small';\n let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n if (MenuPlugins[rulePlugin] !== null) {\n rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n }\n }\n\n this.rules = rulesTree;\n }\n\n this._getAllOptions();\n\n if (!$.isEmptyObject(this.rules)) {\n this._checkMediaQueries();\n }\n }\n\n _getAllOptions() {\n //get all defaults and options\n var _this = this;\n _this.allOptions = {};\n for (var key in MenuPlugins) {\n if (MenuPlugins.hasOwnProperty(key)) {\n var obj = MenuPlugins[key];\n try {\n var dummyPlugin = $('');\n var tmpPlugin = new obj.plugin(dummyPlugin,_this.options);\n for (var keyKey in tmpPlugin.options) {\n if (tmpPlugin.options.hasOwnProperty(keyKey) && keyKey !== 'zfPlugin') {\n var objObj = tmpPlugin.options[keyKey];\n _this.allOptions[keyKey] = objObj;\n }\n }\n tmpPlugin.destroy();\n }\n catch(e) {\n }\n }\n }\n }\n\n /**\n * Initializes events for the Menu.\n * @function\n * @private\n */\n _events() {\n this._changedZfMediaQueryHandler = this._checkMediaQueries.bind(this);\n $(window).on('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n }\n\n /**\n * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n * @function\n * @private\n */\n _checkMediaQueries() {\n var matchedMq, _this = this;\n // Iterate through each rule and find the last matching rule\n $.each(this.rules, function(key) {\n if (MediaQuery.atLeast(key)) {\n matchedMq = key;\n }\n });\n\n // No match? No dice\n if (!matchedMq) return;\n\n // Plugin already initialized? We good\n if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n // Remove existing plugin-specific CSS classes\n $.each(MenuPlugins, function(key, value) {\n _this.$element.removeClass(value.cssClass);\n });\n\n // Add the CSS class for the new plugin\n this.$element.addClass(this.rules[matchedMq].cssClass);\n\n // Create an instance of the new plugin\n if (this.currentPlugin) {\n //don't know why but on nested elements data zfPlugin get's lost\n if (!this.currentPlugin.$element.data('zfPlugin') && this.storezfData) this.currentPlugin.$element.data('zfPlugin',this.storezfData);\n this.currentPlugin.destroy();\n }\n this._handleMarkup(this.rules[matchedMq].cssClass);\n this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {});\n this.storezfData = this.currentPlugin.$element.data('zfPlugin');\n\n }\n\n _handleMarkup(toSet){\n var _this = this, fromString = 'accordion';\n var $panels = $('[data-tabs-content='+this.$element.attr('id')+']');\n if ($panels.length) fromString = 'tabs';\n if (fromString === toSet) {\n return;\n };\n\n var tabsTitle = _this.allOptions.linkClass?_this.allOptions.linkClass:'tabs-title';\n var tabsPanel = _this.allOptions.panelClass?_this.allOptions.panelClass:'tabs-panel';\n\n this.$element.removeAttr('role');\n var $liHeads = this.$element.children('.'+tabsTitle+',[data-accordion-item]').removeClass(tabsTitle).removeClass('accordion-item').removeAttr('data-accordion-item');\n var $liHeadsA = $liHeads.children('a').removeClass('accordion-title');\n\n if (fromString === 'tabs') {\n $panels = $panels.children('.'+tabsPanel).removeClass(tabsPanel).removeAttr('role').removeAttr('aria-hidden').removeAttr('aria-labelledby');\n $panels.children('a').removeAttr('role').removeAttr('aria-controls').removeAttr('aria-selected');\n }else{\n $panels = $liHeads.children('[data-tab-content]').removeClass('accordion-content');\n };\n\n $panels.css({display:'',visibility:''});\n $liHeads.css({display:'',visibility:''});\n if (toSet === 'accordion') {\n $panels.each(function(key,value){\n $(value).appendTo($liHeads.get(key)).addClass('accordion-content').attr('data-tab-content','').removeClass('is-active').css({height:''});\n $('[data-tabs-content='+_this.$element.attr('id')+']').after('
').detach();\n $liHeads.addClass('accordion-item').attr('data-accordion-item','');\n $liHeadsA.addClass('accordion-title');\n });\n }else if (toSet === 'tabs'){\n var $tabsContent = $('[data-tabs-content='+_this.$element.attr('id')+']');\n var $placeholder = $('#tabs-placeholder-'+_this.$element.attr('id'));\n if ($placeholder.length) {\n $tabsContent = $('
').insertAfter($placeholder).attr('data-tabs-content',_this.$element.attr('id'));\n $placeholder.remove();\n }else{\n $tabsContent = $('
').insertAfter(_this.$element).attr('data-tabs-content',_this.$element.attr('id'));\n };\n $panels.each(function(key,value){\n var tempValue = $(value).appendTo($tabsContent).addClass(tabsPanel);\n var hash = $liHeadsA.get(key).hash.slice(1);\n var id = $(value).attr('id') || GetYoDigits(6, 'accordion');\n if (hash !== id) {\n if (hash !== '') {\n $(value).attr('id',hash);\n }else{\n hash = id;\n $(value).attr('id',hash);\n $($liHeadsA.get(key)).attr('href',$($liHeadsA.get(key)).attr('href').replace('#','')+'#'+hash);\n };\n };\n var isActive = $($liHeads.get(key)).hasClass('is-active');\n if (isActive) {\n tempValue.addClass('is-active');\n };\n });\n $liHeads.addClass(tabsTitle);\n };\n }\n\n /**\n * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n * @function\n */\n _destroy() {\n if (this.currentPlugin) this.currentPlugin.destroy();\n $(window).off('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n }\n}\n\nResponsiveAccordionTabs.defaults = {};\n\nexport {ResponsiveAccordionTabs};\n"]}