text: !function(n,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e(require("jquery"));else if("function"==typeof define&&define.amd)define(["jquery"],e);else{var t="object"==typeof exports?e(require("jquery")):e(n.jQuery);for(var o in t)("object"==typeof exports?exports:n)[o]=t[o]}}(window,function(__WEBPACK_EXTERNAL_MODULE_jquery__){return function(t){var o={};function i(n){if(o[n])return o[n].exports;var e=o[n]={i:n,l:!1,exports:{}};return t[n].call(e.exports,e,e.exports,i),e.l=!0,e.exports}return i.m=t,i.c=o,i.d=function(n,e,t){i.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:t})},i.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},i.t=function(e,n){if(1&n&&(e=i(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)i.d(t,o,function(n){return e[n]}.bind(null,o));return t},i.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return i.d(e,"a",e),e},i.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},i.p="",i(i.s="../../../../../../tmp/tmp.6.5.1.921bbebfb17afeab14f1002972621946/js/vendor/foundation.js")}({"../../../../../../tmp/tmp.6.5.1.921bbebfb17afeab14f1002972621946/js/vendor/foundation.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./js/foundation.core */ "./js/foundation.core.js");\n/* harmony import */ var _home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./js/foundation.util.mediaQuery */ "./js/foundation.util.mediaQuery.js");\n/* harmony import */ var _home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./js/foundation.util.triggers */ "./js/foundation.util.triggers.js");\n/* harmony import */ var _home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_drilldown__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./js/foundation.drilldown */ "./js/foundation.drilldown.js");\n/* harmony import */ var _home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_accordionMenu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./js/foundation.accordionMenu */ "./js/foundation.accordionMenu.js");\n/* harmony import */ var _home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./js/foundation.dropdownMenu */ "./js/foundation.dropdownMenu.js");\n/* harmony import */ var _home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_magellan__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./js/foundation.magellan */ "./js/foundation.magellan.js");\n/* harmony import */ var _home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_responsiveMenu__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./js/foundation.responsiveMenu */ "./js/foundation.responsiveMenu.js");\n/* harmony import */ var _home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_accordion__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./js/foundation.accordion */ "./js/foundation.accordion.js");\n/* harmony import */ var _home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_dropdown__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./js/foundation.dropdown */ "./js/foundation.dropdown.js");\n/* harmony import */ var _home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_offcanvas__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./js/foundation.offcanvas */ "./js/foundation.offcanvas.js");\n/* harmony import */ var _home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_tabs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./js/foundation.tabs */ "./js/foundation.tabs.js");\n/* harmony import */ var _home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_reveal__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./js/foundation.reveal */ "./js/foundation.reveal.js");\n/* harmony import */ var _home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_responsiveAccordionTabs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./js/foundation.responsiveAccordionTabs */ "./js/foundation.responsiveAccordionTabs.js");\n/* harmony import */ var _home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_responsiveToggle__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./js/foundation.responsiveToggle */ "./js/foundation.responsiveToggle.js");\n/* harmony import */ var _home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_toggler__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./js/foundation.toggler */ "./js/foundation.toggler.js");\n/* harmony import */ var _home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_abide__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./js/foundation.abide */ "./js/foundation.abide.js");\n/* harmony import */ var _home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_equalizer__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./js/foundation.equalizer */ "./js/foundation.equalizer.js");\n\n\n_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"].addToJquery(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"].MediaQuery = _home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__["MediaQuery"];\n\n_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__["Triggers"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a, _home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"]);\n\n_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"].plugin(_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_drilldown__WEBPACK_IMPORTED_MODULE_4__["Drilldown"], \'Drilldown\');\n\n_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"].plugin(_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_accordionMenu__WEBPACK_IMPORTED_MODULE_5__["AccordionMenu"], \'AccordionMenu\');\n\n_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"].plugin(_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_6__["DropdownMenu"], \'DropdownMenu\');\n\n_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"].plugin(_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_magellan__WEBPACK_IMPORTED_MODULE_7__["Magellan"], \'Magellan\');\n\n_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"].plugin(_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_responsiveMenu__WEBPACK_IMPORTED_MODULE_8__["ResponsiveMenu"], \'ResponsiveMenu\');\n\n_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"].plugin(_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_accordion__WEBPACK_IMPORTED_MODULE_9__["Accordion"], \'Accordion\');\n\n_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"].plugin(_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_dropdown__WEBPACK_IMPORTED_MODULE_10__["Dropdown"], \'Dropdown\');\n\n_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"].plugin(_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_offcanvas__WEBPACK_IMPORTED_MODULE_11__["OffCanvas"], \'OffCanvas\');\n\n_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"].plugin(_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_tabs__WEBPACK_IMPORTED_MODULE_12__["Tabs"], \'Tabs\');\n\n_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"].plugin(_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_reveal__WEBPACK_IMPORTED_MODULE_13__["Reveal"], \'Reveal\');\n\n_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"].plugin(_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_responsiveAccordionTabs__WEBPACK_IMPORTED_MODULE_14__["ResponsiveAccordionTabs"], \'ResponsiveAccordionTabs\');\n\n_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"].plugin(_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_responsiveToggle__WEBPACK_IMPORTED_MODULE_15__["ResponsiveToggle"], \'ResponsiveToggle\');\n\n_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"].plugin(_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_toggler__WEBPACK_IMPORTED_MODULE_16__["Toggler"], \'Toggler\');\n\n_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"].plugin(_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_abide__WEBPACK_IMPORTED_MODULE_17__["Abide"], \'Abide\');\n\n_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_core__WEBPACK_IMPORTED_MODULE_1__["Foundation"].plugin(_home_deployer_sites_node_foundation_customizer_node_foundation_customizer_foundation_sites_js_foundation_equalizer__WEBPACK_IMPORTED_MODULE_18__["Equalizer"], \'Equalizer\');\n\n//# sourceURL=webpack:////tmp/tmp.6.5.1.921bbebfb17afeab14f1002972621946/js/vendor/foundation.js?')},"./js/foundation.abide.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Abide\", function() { return Abide; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./js/foundation.core.plugin.js\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n/**\n * Abide module.\n * @module foundation.abide\n */\n\nvar Abide =\n/*#__PURE__*/\nfunction (_Plugin) {\n  _inherits(Abide, _Plugin);\n\n  function Abide() {\n    _classCallCheck(this, Abide);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(Abide).apply(this, arguments));\n  }\n\n  _createClass(Abide, [{\n    key: \"_setup\",\n\n    /**\n     * Creates a new instance of Abide.\n     * @class\n     * @name Abide\n     * @fires Abide#init\n     * @param {Object} element - jQuery object to add the trigger to.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    value: function _setup(element) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend(true, {}, Abide.defaults, this.$element.data(), options);\n      this.className = 'Abide'; // ie9 back compat\n\n      this._init();\n    }\n    /**\n     * Initializes the Abide plugin and calls functions to get Abide functioning on load.\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      var _this2 = this;\n\n      this.$inputs = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.merge( // Consider as input to validate:\n      this.$element.find('input').not('[type=submit]'), // * all input fields expect submit\n      this.$element.find('textarea, select') // * all textareas and select fields\n      );\n      var $globalErrors = this.$element.find('[data-abide-error]'); // Add a11y attributes to all fields\n\n      if (this.options.a11yAttributes) {\n        this.$inputs.each(function (i, input) {\n          return _this2.addA11yAttributes(jquery__WEBPACK_IMPORTED_MODULE_0___default()(input));\n        });\n        $globalErrors.each(function (i, error) {\n          return _this2.addGlobalErrorA11yAttributes(jquery__WEBPACK_IMPORTED_MODULE_0___default()(error));\n        });\n      }\n\n      this._events();\n    }\n    /**\n     * Initializes events for Abide.\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      var _this3 = this;\n\n      this.$element.off('.abide').on('reset.zf.abide', function () {\n        _this3.resetForm();\n      }).on('submit.zf.abide', function () {\n        return _this3.validateForm();\n      });\n\n      if (this.options.validateOn === 'fieldChange') {\n        this.$inputs.off('change.zf.abide').on('change.zf.abide', function (e) {\n          _this3.validateInput(jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target));\n        });\n      }\n\n      if (this.options.liveValidate) {\n        this.$inputs.off('input.zf.abide').on('input.zf.abide', function (e) {\n          _this3.validateInput(jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target));\n        });\n      }\n\n      if (this.options.validateOnBlur) {\n        this.$inputs.off('blur.zf.abide').on('blur.zf.abide', function (e) {\n          _this3.validateInput(jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target));\n        });\n      }\n    }\n    /**\n     * Calls necessary functions to update Abide upon DOM change\n     * @private\n     */\n\n  }, {\n    key: \"_reflow\",\n    value: function _reflow() {\n      this._init();\n    }\n    /**\n     * Checks whether or not a form element has the required attribute and if it's checked or not\n     * @param {Object} element - jQuery object to check for required attribute\n     * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n     */\n\n  }, {\n    key: \"requiredCheck\",\n    value: function requiredCheck($el) {\n      if (!$el.attr('required')) return true;\n      var isGood = true;\n\n      switch ($el[0].type) {\n        case 'checkbox':\n          isGood = $el[0].checked;\n          break;\n\n        case 'select':\n        case 'select-one':\n        case 'select-multiple':\n          var opt = $el.find('option:selected');\n          if (!opt.length || !opt.val()) isGood = false;\n          break;\n\n        default:\n          if (!$el.val() || !$el.val().length) isGood = false;\n      }\n\n      return isGood;\n    }\n    /**\n     * Get:\n     * - Based on $el, the first element(s) corresponding to `formErrorSelector` in this order:\n     *   1. The element's direct sibling('s).\n     *   2. The element's parent's children.\n     * - Element(s) with the attribute `[data-form-error-for]` set with the element's id.\n     *\n     * This allows for multiple form errors per input, though if none are found, no form errors will be shown.\n     *\n     * @param {Object} $el - jQuery object to use as reference to find the form error selector.\n     * @returns {Object} jQuery object with the selector.\n     */\n\n  }, {\n    key: \"findFormError\",\n    value: function findFormError($el) {\n      var id = $el[0].id;\n      var $error = $el.siblings(this.options.formErrorSelector);\n\n      if (!$error.length) {\n        $error = $el.parent().find(this.options.formErrorSelector);\n      }\n\n      if (id) {\n        $error = $error.add(this.$element.find(\"[data-form-error-for=\\\"\".concat(id, \"\\\"]\")));\n      }\n\n      return $error;\n    }\n    /**\n     * Get the first element in this order:\n     * 2. The <label> with the attribute `[for=\"someInputId\"]`\n     * 3. The `.closest()` <label>\n     *\n     * @param {Object} $el - jQuery object to check for required attribute\n     * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n     */\n\n  }, {\n    key: \"findLabel\",\n    value: function findLabel($el) {\n      var id = $el[0].id;\n      var $label = this.$element.find(\"label[for=\\\"\".concat(id, \"\\\"]\"));\n\n      if (!$label.length) {\n        return $el.closest('label');\n      }\n\n      return $label;\n    }\n    /**\n     * Get the set of labels associated with a set of radio els in this order\n     * 2. The <label> with the attribute `[for=\"someInputId\"]`\n     * 3. The `.closest()` <label>\n     *\n     * @param {Object} $el - jQuery object to check for required attribute\n     * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n     */\n\n  }, {\n    key: \"findRadioLabels\",\n    value: function findRadioLabels($els) {\n      var _this4 = this;\n\n      var labels = $els.map(function (i, el) {\n        var id = el.id;\n\n        var $label = _this4.$element.find(\"label[for=\\\"\".concat(id, \"\\\"]\"));\n\n        if (!$label.length) {\n          $label = jquery__WEBPACK_IMPORTED_MODULE_0___default()(el).closest('label');\n        }\n\n        return $label[0];\n      });\n      return jquery__WEBPACK_IMPORTED_MODULE_0___default()(labels);\n    }\n    /**\n     * Adds the CSS error class as specified by the Abide settings to the label, input, and the form\n     * @param {Object} $el - jQuery object to add the class to\n     */\n\n  }, {\n    key: \"addErrorClasses\",\n    value: function addErrorClasses($el) {\n      var $label = this.findLabel($el);\n      var $formError = this.findFormError($el);\n\n      if ($label.length) {\n        $label.addClass(this.options.labelErrorClass);\n      }\n\n      if ($formError.length) {\n        $formError.addClass(this.options.formErrorClass);\n      }\n\n      $el.addClass(this.options.inputErrorClass).attr({\n        'data-invalid': '',\n        'aria-invalid': true\n      });\n    }\n    /**\n     * Adds [for] and [role=alert] attributes to all form error targetting $el,\n     * and [aria-describedby] attribute to $el toward the first form error.\n     * @param {Object} $el - jQuery object\n     */\n\n  }, {\n    key: \"addA11yAttributes\",\n    value: function addA11yAttributes($el) {\n      var $errors = this.findFormError($el);\n      var $labels = $errors.filter('label');\n      var $error = $errors.first();\n      if (!$errors.length) return; // Set [aria-describedby] on the input toward the first form error if it is not set\n\n      if (typeof $el.attr('aria-describedby') === 'undefined') {\n        // Get the first error ID or create one\n        var errorId = $error.attr('id');\n\n        if (typeof errorId === 'undefined') {\n          errorId = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"GetYoDigits\"])(6, 'abide-error');\n          $error.attr('id', errorId);\n        }\n\n        ;\n        $el.attr('aria-describedby', errorId);\n      }\n\n      if ($labels.filter('[for]').length < $labels.length) {\n        // Get the input ID or create one\n        var elemId = $el.attr('id');\n\n        if (typeof elemId === 'undefined') {\n          elemId = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"GetYoDigits\"])(6, 'abide-input');\n          $el.attr('id', elemId);\n        }\n\n        ; // For each label targeting $el, set [for] if it is not set.\n\n        $labels.each(function (i, label) {\n          var $label = jquery__WEBPACK_IMPORTED_MODULE_0___default()(label);\n          if (typeof $label.attr('for') === 'undefined') $label.attr('for', elemId);\n        });\n      } // For each error targeting $el, set [role=alert] if it is not set.\n\n\n      $errors.each(function (i, label) {\n        var $label = jquery__WEBPACK_IMPORTED_MODULE_0___default()(label);\n        if (typeof $label.attr('role') === 'undefined') $label.attr('role', 'alert');\n      }).end();\n    }\n    /**\n     * Adds [aria-live] attribute to the given global form error $el.\n     * @param {Object} $el - jQuery object to add the attribute to\n     */\n\n  }, {\n    key: \"addGlobalErrorA11yAttributes\",\n    value: function addGlobalErrorA11yAttributes($el) {\n      if (typeof $el.attr('aria-live') === 'undefined') $el.attr('aria-live', this.options.a11yErrorLevel);\n    }\n    /**\n     * Remove CSS error classes etc from an entire radio button group\n     * @param {String} groupName - A string that specifies the name of a radio button group\n     *\n     */\n\n  }, {\n    key: \"removeRadioErrorClasses\",\n    value: function removeRadioErrorClasses(groupName) {\n      var $els = this.$element.find(\":radio[name=\\\"\".concat(groupName, \"\\\"]\"));\n      var $labels = this.findRadioLabels($els);\n      var $formErrors = this.findFormError($els);\n\n      if ($labels.length) {\n        $labels.removeClass(this.options.labelErrorClass);\n      }\n\n      if ($formErrors.length) {\n        $formErrors.removeClass(this.options.formErrorClass);\n      }\n\n      $els.removeClass(this.options.inputErrorClass).attr({\n        'data-invalid': null,\n        'aria-invalid': null\n      });\n    }\n    /**\n     * Removes CSS error class as specified by the Abide settings from the label, input, and the form\n     * @param {Object} $el - jQuery object to remove the class from\n     */\n\n  }, {\n    key: \"removeErrorClasses\",\n    value: function removeErrorClasses($el) {\n      // radios need to clear all of the els\n      if ($el[0].type == 'radio') {\n        return this.removeRadioErrorClasses($el.attr('name'));\n      }\n\n      var $label = this.findLabel($el);\n      var $formError = this.findFormError($el);\n\n      if ($label.length) {\n        $label.removeClass(this.options.labelErrorClass);\n      }\n\n      if ($formError.length) {\n        $formError.removeClass(this.options.formErrorClass);\n      }\n\n      $el.removeClass(this.options.inputErrorClass).attr({\n        'data-invalid': null,\n        'aria-invalid': null\n      });\n    }\n    /**\n     * Goes through a form to find inputs and proceeds to validate them in ways specific to their type.\n     * Ignores inputs with data-abide-ignore, type=\"hidden\" or disabled attributes set\n     * @fires Abide#invalid\n     * @fires Abide#valid\n     * @param {Object} element - jQuery object to validate, should be an HTML input\n     * @returns {Boolean} goodToGo - If the input is valid or not.\n     */\n\n  }, {\n    key: \"validateInput\",\n    value: function validateInput($el) {\n      var clearRequire = this.requiredCheck($el),\n          validated = false,\n          customValidator = true,\n          validator = $el.attr('data-validator'),\n          equalTo = true; // don't validate ignored inputs or hidden inputs or disabled inputs\n\n      if ($el.is('[data-abide-ignore]') || $el.is('[type=\"hidden\"]') || $el.is('[disabled]')) {\n        return true;\n      }\n\n      switch ($el[0].type) {\n        case 'radio':\n          validated = this.validateRadio($el.attr('name'));\n          break;\n\n        case 'checkbox':\n          validated = clearRequire;\n          break;\n\n        case 'select':\n        case 'select-one':\n        case 'select-multiple':\n          validated = clearRequire;\n          break;\n\n        default:\n          validated = this.validateText($el);\n      }\n\n      if (validator) {\n        customValidator = this.matchValidation($el, validator, $el.attr('required'));\n      }\n\n      if ($el.attr('data-equalto')) {\n        equalTo = this.options.validators.equalTo($el);\n      }\n\n      var goodToGo = [clearRequire, validated, customValidator, equalTo].indexOf(false) === -1;\n      var message = (goodToGo ? 'valid' : 'invalid') + '.zf.abide';\n\n      if (goodToGo) {\n        // Re-validate inputs that depend on this one with equalto\n        var dependentElements = this.$element.find(\"[data-equalto=\\\"\".concat($el.attr('id'), \"\\\"]\"));\n\n        if (dependentElements.length) {\n          var _this = this;\n\n          dependentElements.each(function () {\n            if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).val()) {\n              _this.validateInput(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this));\n            }\n          });\n        }\n      }\n\n      this[goodToGo ? 'removeErrorClasses' : 'addErrorClasses']($el);\n      /**\n       * Fires when the input is done checking for validation. Event trigger is either `valid.zf.abide` or `invalid.zf.abide`\n       * Trigger includes the DOM element of the input.\n       * @event Abide#valid\n       * @event Abide#invalid\n       */\n\n      $el.trigger(message, [$el]);\n      return goodToGo;\n    }\n    /**\n     * Goes through a form and if there are any invalid inputs, it will display the form error element\n     * @returns {Boolean} noError - true if no errors were detected...\n     * @fires Abide#formvalid\n     * @fires Abide#forminvalid\n     */\n\n  }, {\n    key: \"validateForm\",\n    value: function validateForm() {\n      var _this5 = this;\n\n      var acc = [];\n\n      var _this = this;\n\n      this.$inputs.each(function () {\n        acc.push(_this.validateInput(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)));\n      });\n      var noError = acc.indexOf(false) === -1;\n      this.$element.find('[data-abide-error]').each(function (i, elem) {\n        var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(elem); // Ensure a11y attributes are set\n\n        if (_this5.options.a11yAttributes) _this5.addGlobalErrorA11yAttributes($elem); // Show or hide the error\n\n        $elem.css('display', noError ? 'none' : 'block');\n      });\n      /**\n       * Fires when the form is finished validating. Event trigger is either `formvalid.zf.abide` or `forminvalid.zf.abide`.\n       * Trigger includes the element of the form.\n       * @event Abide#formvalid\n       * @event Abide#forminvalid\n       */\n\n      this.$element.trigger((noError ? 'formvalid' : 'forminvalid') + '.zf.abide', [this.$element]);\n      return noError;\n    }\n    /**\n     * Determines whether or a not a text input is valid based on the pattern specified in the attribute. If no matching pattern is found, returns true.\n     * @param {Object} $el - jQuery object to validate, should be a text input HTML element\n     * @param {String} pattern - string value of one of the RegEx patterns in Abide.options.patterns\n     * @returns {Boolean} Boolean value depends on whether or not the input value matches the pattern specified\n     */\n\n  }, {\n    key: \"validateText\",\n    value: function validateText($el, pattern) {\n      // A pattern can be passed to this function, or it will be infered from the input's \"pattern\" attribute, or it's \"type\" attribute\n      pattern = pattern || $el.attr('pattern') || $el.attr('type');\n      var inputText = $el.val();\n      var valid = false;\n\n      if (inputText.length) {\n        // If the pattern attribute on the element is in Abide's list of patterns, then test that regexp\n        if (this.options.patterns.hasOwnProperty(pattern)) {\n          valid = this.options.patterns[pattern].test(inputText);\n        } // If the pattern name isn't also the type attribute of the field, then test it as a regexp\n        else if (pattern !== $el.attr('type')) {\n            valid = new RegExp(pattern).test(inputText);\n          } else {\n            valid = true;\n          }\n      } // An empty field is valid if it's not required\n      else if (!$el.prop('required')) {\n          valid = true;\n        }\n\n      return valid;\n    }\n    /**\n     * Determines whether or a not a radio input is valid based on whether or not it is required and selected. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all radio buttons in its group.\n     * @param {String} groupName - A string that specifies the name of a radio button group\n     * @returns {Boolean} Boolean value depends on whether or not at least one radio input has been selected (if it's required)\n     */\n\n  }, {\n    key: \"validateRadio\",\n    value: function validateRadio(groupName) {\n      // If at least one radio in the group has the `required` attribute, the group is considered required\n      // Per W3C spec, all radio buttons in a group should have `required`, but we're being nice\n      var $group = this.$element.find(\":radio[name=\\\"\".concat(groupName, \"\\\"]\"));\n      var valid = false,\n          required = false; // For the group to be required, at least one radio needs to be required\n\n      $group.each(function (i, e) {\n        if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(e).attr('required')) {\n          required = true;\n        }\n      });\n      if (!required) valid = true;\n\n      if (!valid) {\n        // For the group to be valid, at least one radio needs to be checked\n        $group.each(function (i, e) {\n          if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(e).prop('checked')) {\n            valid = true;\n          }\n        });\n      }\n\n      ;\n      return valid;\n    }\n    /**\n     * Determines if a selected input passes a custom validation function. Multiple validations can be used, if passed to the element with `data-validator=\"foo bar baz\"` in a space separated listed.\n     * @param {Object} $el - jQuery input element.\n     * @param {String} validators - a string of function names matching functions in the Abide.options.validators object.\n     * @param {Boolean} required - self explanatory?\n     * @returns {Boolean} - true if validations passed.\n     */\n\n  }, {\n    key: \"matchValidation\",\n    value: function matchValidation($el, validators, required) {\n      var _this6 = this;\n\n      required = required ? true : false;\n      var clear = validators.split(' ').map(function (v) {\n        return _this6.options.validators[v]($el, required, $el.parent());\n      });\n      return clear.indexOf(false) === -1;\n    }\n    /**\n     * Resets form inputs and styles\n     * @fires Abide#formreset\n     */\n\n  }, {\n    key: \"resetForm\",\n    value: function resetForm() {\n      var $form = this.$element,\n          opts = this.options;\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(\".\".concat(opts.labelErrorClass), $form).not('small').removeClass(opts.labelErrorClass);\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(\".\".concat(opts.inputErrorClass), $form).not('small').removeClass(opts.inputErrorClass);\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"\".concat(opts.formErrorSelector, \".\").concat(opts.formErrorClass)).removeClass(opts.formErrorClass);\n      $form.find('[data-abide-error]').css('display', 'none');\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(':input', $form).not(':button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]').val('').attr({\n        'data-invalid': null,\n        'aria-invalid': null\n      });\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(':input:radio', $form).not('[data-abide-ignore]').prop('checked', false).attr({\n        'data-invalid': null,\n        'aria-invalid': null\n      });\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(':input:checkbox', $form).not('[data-abide-ignore]').prop('checked', false).attr({\n        'data-invalid': null,\n        'aria-invalid': null\n      });\n      /**\n       * Fires when the form has been reset.\n       * @event Abide#formreset\n       */\n\n      $form.trigger('formreset.zf.abide', [$form]);\n    }\n    /**\n     * Destroys an instance of Abide.\n     * Removes error styles and classes from elements, without resetting their values.\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      var _this = this;\n\n      this.$element.off('.abide').find('[data-abide-error]').css('display', 'none');\n      this.$inputs.off('.abide').each(function () {\n        _this.removeErrorClasses(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this));\n      });\n    }\n  }]);\n\n  return Abide;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"Plugin\"]);\n/**\n * Default settings for plugin\n */\n\n\nAbide.defaults = {\n  /**\n   * The default event to validate inputs. Checkboxes and radios validate immediately.\n   * Remove or change this value for manual validation.\n   * @option\n   * @type {?string}\n   * @default 'fieldChange'\n   */\n  validateOn: 'fieldChange',\n\n  /**\n   * Class to be applied to input labels on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-label'\n   */\n  labelErrorClass: 'is-invalid-label',\n\n  /**\n   * Class to be applied to inputs on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-input'\n   */\n  inputErrorClass: 'is-invalid-input',\n\n  /**\n   * Class selector to use to target Form Errors for show/hide.\n   * @option\n   * @type {string}\n   * @default '.form-error'\n   */\n  formErrorSelector: '.form-error',\n\n  /**\n   * Class added to Form Errors on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-visible'\n   */\n  formErrorClass: 'is-visible',\n\n  /**\n   * If true, automatically insert when possible:\n   * - `[aria-describedby]` on fields\n   * - `[role=alert]` on form errors and `[for]` on form error labels\n   * - `[aria-live]` on global errors `[data-abide-error]` (see option `a11yErrorLevel`).\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  a11yAttributes: true,\n\n  /**\n   * [aria-live] attribute value to be applied on global errors `[data-abide-error]`.\n   * Options are: 'assertive', 'polite' and 'off'/null\n   * @option\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions\n   * @type {string}\n   * @default 'assertive'\n   */\n  a11yErrorLevel: 'assertive',\n\n  /**\n   * Set to true to validate text inputs on any value change.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  liveValidate: false,\n\n  /**\n   * Set to true to validate inputs on blur.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  validateOnBlur: false,\n  patterns: {\n    alpha: /^[a-zA-Z]+$/,\n    alpha_numeric: /^[a-zA-Z0-9]+$/,\n    integer: /^[-+]?\\d+$/,\n    number: /^[-+]?\\d*(?:[\\.\\,]\\d+)?$/,\n    // amex, visa, diners\n    card: /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/,\n    cvv: /^([0-9]){3,4}$/,\n    // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address\n    email: /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,\n    // From CommonRegexJS (@talyssonoc)\n    // https://github.com/talyssonoc/CommonRegexJS/blob/e2901b9f57222bc14069dc8f0598d5f412555411/lib/commonregex.js#L76\n    // For more restrictive URL Regexs, see https://mathiasbynens.be/demo/url-regex.\n    url: /^((?:(https?|ftps?|file|ssh|sftp):\\/\\/|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\))+(?:\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\\'\".,<>?\\xab\\xbb\\u201c\\u201d\\u2018\\u2019]))$/,\n    // abc.de\n    domain: /^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,8}$/,\n    datetime: /^([0-2][0-9]{3})\\-([0-1][0-9])\\-([0-3][0-9])T([0-5][0-9])\\:([0-5][0-9])\\:([0-5][0-9])(Z|([\\-\\+]([0-1][0-9])\\:00))$/,\n    // YYYY-MM-DD\n    date: /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,\n    // HH:MM:SS\n    time: /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,\n    dateISO: /^\\d{4}[\\/\\-]\\d{1,2}[\\/\\-]\\d{1,2}$/,\n    // MM/DD/YYYY\n    month_day_year: /^(0[1-9]|1[012])[- \\/.](0[1-9]|[12][0-9]|3[01])[- \\/.]\\d{4}$/,\n    // DD/MM/YYYY\n    day_month_year: /^(0[1-9]|[12][0-9]|3[01])[- \\/.](0[1-9]|1[012])[- \\/.]\\d{4}$/,\n    // #FFF or #FFFFFF\n    color: /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,\n    // Domain || URL\n    website: {\n      test: function test(text) {\n        return Abide.defaults.patterns['domain'].test(text) || Abide.defaults.patterns['url'].test(text);\n      }\n    }\n  },\n\n  /**\n   * Optional validation functions to be used. `equalTo` being the only default included function.\n   * Functions should return only a boolean if the input is valid or not. Functions are given the following arguments:\n   * el : The jQuery element to validate.\n   * required : Boolean value of the required attribute be present or not.\n   * parent : The direct parent of the input.\n   * @option\n   */\n  validators: {\n    equalTo: function equalTo(el, required, parent) {\n      return jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(el.attr('data-equalto'))).val() === el.val();\n    }\n  }\n};\n\n\n//# sourceURL=webpack:///./js/foundation.abide.js?")},"./js/foundation.accordion.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Accordion\", function() { return Accordion; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./js/foundation.util.keyboard.js\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./js/foundation.core.plugin.js\");\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n/**\n * Accordion module.\n * @module foundation.accordion\n * @requires foundation.util.keyboard\n */\n\nvar Accordion =\n/*#__PURE__*/\nfunction (_Plugin) {\n  _inherits(Accordion, _Plugin);\n\n  function Accordion() {\n    _classCallCheck(this, Accordion);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(Accordion).apply(this, arguments));\n  }\n\n  _createClass(Accordion, [{\n    key: \"_setup\",\n\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    value: function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Accordion.defaults, this.$element.data(), options);\n      this.className = 'Accordion'; // ie9 back compat\n\n      this._init();\n\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].register('Accordion', {\n        'ENTER': 'toggle',\n        'SPACE': 'toggle',\n        'ARROW_DOWN': 'next',\n        'ARROW_UP': 'previous'\n      });\n    }\n    /**\n     * Initializes the accordion by animating the preset active pane(s).\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      var _this2 = this;\n\n      this._isInitializing = true;\n      this.$element.attr('role', 'tablist');\n      this.$tabs = this.$element.children('[data-accordion-item]');\n      this.$tabs.each(function (idx, el) {\n        var $el = jquery__WEBPACK_IMPORTED_MODULE_0___default()(el),\n            $content = $el.children('[data-tab-content]'),\n            id = $content[0].id || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"GetYoDigits\"])(6, 'accordion'),\n            linkId = el.id ? \"\".concat(el.id, \"-label\") : \"\".concat(id, \"-label\");\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        $content.attr({\n          'role': 'tabpanel',\n          'aria-labelledby': linkId,\n          'aria-hidden': true,\n          'id': id\n        });\n      });\n      var $initActive = this.$element.find('.is-active').children('[data-tab-content]');\n\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\n        this._openSingleTab($initActive);\n      }\n\n      this._checkDeepLink = function () {\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 (_this2._isInitializing) return; // Otherwise, move to the initial anchor\n\n          if (_this2._initialAnchor) anchor = _this2._initialAnchor;\n        }\n\n        var $anchor = anchor && jquery__WEBPACK_IMPORTED_MODULE_0___default()(anchor);\n\n        var $link = anchor && _this2.$element.find(\"[href$=\\\"\".concat(anchor, \"\\\"]\")); // Whether the anchor element that has been found is part of this element\n\n\n        var isOwnAnchor = !!($anchor.length && $link.length); // If there is an anchor for the hash, open it (if not already active)\n\n        if ($anchor && $link && $link.length) {\n          if (!$link.parent('[data-accordion-item]').hasClass('is-active')) {\n            _this2._openSingleTab($anchor);\n          }\n\n          ;\n        } // Otherwise, close everything\n        else {\n            _this2._closeAllTabs();\n          }\n\n        if (isOwnAnchor) {\n          // Roll up a little to show the titles\n          if (_this2.options.deepLinkSmudge) {\n            Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n              var offset = _this2.$element.offset();\n\n              jquery__WEBPACK_IMPORTED_MODULE_0___default()('html, body').animate({\n                scrollTop: offset.top\n              }, _this2.options.deepLinkSmudgeDelay);\n            });\n          }\n          /**\n           * Fires when the plugin has deeplinked at pageload\n           * @event Accordion#deeplink\n           */\n\n\n          _this2.$element.trigger('deeplink.zf.accordion', [$link, $anchor]);\n        }\n      }; //use browser to open a tab, if it exists in this tabset\n\n\n      if (this.options.deepLink) {\n        this._checkDeepLink();\n      }\n\n      this._events();\n\n      this._isInitializing = false;\n    }\n    /**\n     * Adds event handlers for items within the accordion.\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      var _this = this;\n\n      this.$tabs.each(function () {\n        var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n        var $tabContent = $elem.children('[data-tab-content]');\n\n        if ($tabContent.length) {\n          $elem.children('a').off('click.zf.accordion keydown.zf.accordion').on('click.zf.accordion', function (e) {\n            e.preventDefault();\n\n            _this.toggle($tabContent);\n          }).on('keydown.zf.accordion', function (e) {\n            _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].handleKey(e, 'Accordion', {\n              toggle: function toggle() {\n                _this.toggle($tabContent);\n              },\n              next: function next() {\n                var $a = $elem.next().find('a').focus();\n\n                if (!_this.options.multiExpand) {\n                  $a.trigger('click.zf.accordion');\n                }\n              },\n              previous: function previous() {\n                var $a = $elem.prev().find('a').focus();\n\n                if (!_this.options.multiExpand) {\n                  $a.trigger('click.zf.accordion');\n                }\n              },\n              handled: function handled() {\n                e.preventDefault();\n                e.stopPropagation();\n              }\n            });\n          });\n        }\n      });\n\n      if (this.options.deepLink) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('hashchange', this._checkDeepLink);\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\n  }, {\n    key: \"toggle\",\n    value: function toggle($target) {\n      if ($target.closest('[data-accordion]').is('[disabled]')) {\n        console.info('Cannot toggle an accordion that is disabled.');\n        return;\n      }\n\n      if ($target.parent().hasClass('is-active')) {\n        this.up($target);\n      } else {\n        this.down($target);\n      } //either replace or update browser history\n\n\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     * 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\n  }, {\n    key: \"down\",\n    value: function 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) this._openTab($target);else this._openSingleTab($target);\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\n  }, {\n    key: \"up\",\n    value: function up($target) {\n      if (this.$element.is('[disabled]')) {\n        console.info('Cannot call up on an accordion that is disabled.');\n        return;\n      } // Don't close the item if it is already closed\n\n\n      var $targetItem = $target.parent();\n      if (!$targetItem.hasClass('is-active')) return; // Don't close the item if there is no other active item (unless with `allowAllClosed`)\n\n      var $othersItems = $targetItem.siblings();\n      if (!this.options.allowAllClosed && !$othersItems.hasClass('is-active')) return;\n\n      this._closeTab($target);\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\n  }, {\n    key: \"_openSingleTab\",\n    value: function _openSingleTab($target) {\n      // Close all the others active tabs.\n      var $activeContents = this.$element.children('.is-active').children('[data-tab-content]');\n\n      if ($activeContents.length) {\n        this._closeTab($activeContents.not($target));\n      } // Then open the target.\n\n\n      this._openTab($target);\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\n  }, {\n    key: \"_openTab\",\n    value: function _openTab($target) {\n      var _this3 = this;\n\n      var $targetItem = $target.parent();\n      var targetContentId = $target.attr('aria-labelledby');\n      $target.attr('aria-hidden', false);\n      $targetItem.addClass('is-active');\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(targetContentId)).attr({\n        'aria-expanded': true,\n        'aria-selected': true\n      });\n      $target.slideDown(this.options.slideSpeed, function () {\n        /**\n         * Fires when the tab is done opening.\n         * @event Accordion#down\n         */\n        _this3.$element.trigger('down.zf.accordion', [$target]);\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\n  }, {\n    key: \"_closeTab\",\n    value: function _closeTab($target) {\n      var _this4 = this;\n\n      var $targetItem = $target.parent();\n      var targetContentId = $target.attr('aria-labelledby');\n      $target.attr('aria-hidden', true);\n      $targetItem.removeClass('is-active');\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(targetContentId)).attr({\n        'aria-expanded': false,\n        'aria-selected': false\n      });\n      $target.slideUp(this.options.slideSpeed, function () {\n        /**\n         * Fires when the tab is done collapsing up.\n         * @event Accordion#up\n         */\n        _this4.$element.trigger('up.zf.accordion', [$target]);\n      });\n    }\n    /**\n     * Closes all active tabs\n     * @fires Accordion#up\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_closeAllTabs\",\n    value: function _closeAllTabs() {\n      var $activeTabs = this.$element.children('.is-active').children('[data-tab-content]');\n\n      if ($activeTabs.length) {\n        this._closeTab($activeTabs);\n      }\n    }\n    /**\n     * Destroys an instance of an accordion.\n     * @fires Accordion#destroyed\n     * @function\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.$element.find('[data-tab-content]').stop(true).slideUp(0).css('display', '');\n      this.$element.find('a').off('.zf.accordion');\n\n      if (this.options.deepLink) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('hashchange', this._checkDeepLink);\n      }\n    }\n  }]);\n\n  return Accordion;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_3__[\"Plugin\"]);\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  /**\n   * Allow the accordion to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multiExpand: false,\n\n  /**\n   * Allow the accordion to close all panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowAllClosed: false,\n\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  /**\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  /**\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 accordion\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false\n};\n\n\n//# sourceURL=webpack:///./js/foundation.accordion.js?")},"./js/foundation.accordionMenu.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AccordionMenu\", function() { return AccordionMenu; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./js/foundation.util.keyboard.js\");\n/* harmony import */ var _foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.nest */ \"./js/foundation.util.nest.js\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./js/foundation.core.plugin.js\");\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n/**\n * AccordionMenu module.\n * @module foundation.accordionMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n */\n\nvar AccordionMenu =\n/*#__PURE__*/\nfunction (_Plugin) {\n  _inherits(AccordionMenu, _Plugin);\n\n  function AccordionMenu() {\n    _classCallCheck(this, AccordionMenu);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(AccordionMenu).apply(this, arguments));\n  }\n\n  _createClass(AccordionMenu, [{\n    key: \"_setup\",\n\n    /**\n     * Creates a new instance of an accordion menu.\n     * @class\n     * @name AccordionMenu\n     * @fires AccordionMenu#init\n     * @param {jQuery} element - jQuery object to make into an accordion menu.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    value: function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, AccordionMenu.defaults, this.$element.data(), options);\n      this.className = 'AccordionMenu'; // ie9 back compat\n\n      this._init();\n\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].register('AccordionMenu', {\n        'ENTER': 'toggle',\n        'SPACE': 'toggle',\n        'ARROW_RIGHT': 'open',\n        'ARROW_UP': 'up',\n        'ARROW_DOWN': 'down',\n        'ARROW_LEFT': 'close',\n        'ESCAPE': 'closeAll'\n      });\n    }\n    /**\n     * Initializes the accordion menu by hiding all nested menus.\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      _foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__[\"Nest\"].Feather(this.$element, 'accordion');\n\n      var _this = this;\n\n      this.$element.find('[data-submenu]').not('.is-active').slideUp(0); //.find('a').css('padding-left', '1rem');\n\n      this.$element.attr({\n        'role': 'tree',\n        'aria-multiselectable': this.options.multiOpen\n      });\n      this.$menuLinks = this.$element.find('.is-accordion-submenu-parent');\n      this.$menuLinks.each(function () {\n        var linkId = this.id || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"])(6, 'acc-menu-link'),\n            $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n            $sub = $elem.children('[data-submenu]'),\n            subId = $sub[0].id || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"])(6, 'acc-menu'),\n            isActive = $sub.hasClass('is-active');\n\n        if (_this.options.parentLink) {\n          var $anchor = $elem.children('a');\n          $anchor.clone().prependTo($sub).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-accordion-submenu-item\"></li>');\n        }\n\n        if (_this.options.submenuToggle) {\n          $elem.addClass('has-submenu-toggle');\n          $elem.children('a').after('<button id=\"' + linkId + '\" class=\"submenu-toggle\" aria-controls=\"' + subId + '\" aria-expanded=\"' + isActive + '\" title=\"' + _this.options.submenuToggleText + '\"><span class=\"submenu-toggle-text\">' + _this.options.submenuToggleText + '</span></button>');\n        } else {\n          $elem.attr({\n            'aria-controls': subId,\n            'aria-expanded': isActive,\n            'id': linkId\n          });\n        }\n\n        $sub.attr({\n          'aria-labelledby': linkId,\n          'aria-hidden': !isActive,\n          'role': 'group',\n          'id': subId\n        });\n      });\n      this.$element.find('li').attr({\n        'role': 'treeitem'\n      });\n      var initPanes = this.$element.find('.is-active');\n\n      if (initPanes.length) {\n        var _this = this;\n\n        initPanes.each(function () {\n          _this.down(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this));\n        });\n      }\n\n      this._events();\n    }\n    /**\n     * Adds event handlers for items within the menu.\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      var _this = this;\n\n      this.$element.find('li').each(function () {\n        var $submenu = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).children('[data-submenu]');\n\n        if ($submenu.length) {\n          if (_this.options.submenuToggle) {\n            jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).children('.submenu-toggle').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function (e) {\n              _this.toggle($submenu);\n            });\n          } else {\n            jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).children('a').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function (e) {\n              e.preventDefault();\n\n              _this.toggle($submenu);\n            });\n          }\n        }\n      }).on('keydown.zf.accordionmenu', function (e) {\n        var $element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n            $elements = $element.parent('ul').children('li'),\n            $prevElement,\n            $nextElement,\n            $target = $element.children('[data-submenu]');\n        $elements.each(function (i) {\n          if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is($element)) {\n            $prevElement = $elements.eq(Math.max(0, i - 1)).find('a').first();\n            $nextElement = $elements.eq(Math.min(i + 1, $elements.length - 1)).find('a').first();\n\n            if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).children('[data-submenu]:visible').length) {\n              // has open sub menu\n              $nextElement = $element.find('li:first-child').find('a').first();\n            }\n\n            if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is(':first-child')) {\n              // is first element of sub menu\n              $prevElement = $element.parents('li').first().find('a').first();\n            } else if ($prevElement.parents('li').first().children('[data-submenu]:visible').length) {\n              // if previous element has open sub menu\n              $prevElement = $prevElement.parents('li').find('li:last-child').find('a').first();\n            }\n\n            if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is(':last-child')) {\n              // is last element of sub menu\n              $nextElement = $element.parents('li').first().next('li').find('a').first();\n            }\n\n            return;\n          }\n        });\n        _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].handleKey(e, 'AccordionMenu', {\n          open: function open() {\n            if ($target.is(':hidden')) {\n              _this.down($target);\n\n              $target.find('li').first().find('a').first().focus();\n            }\n          },\n          close: function close() {\n            if ($target.length && !$target.is(':hidden')) {\n              // close active sub of this item\n              _this.up($target);\n            } else if ($element.parent('[data-submenu]').length) {\n              // close currently open sub\n              _this.up($element.parent('[data-submenu]'));\n\n              $element.parents('li').first().find('a').first().focus();\n            }\n          },\n          up: function up() {\n            $prevElement.focus();\n            return true;\n          },\n          down: function down() {\n            $nextElement.focus();\n            return true;\n          },\n          toggle: function toggle() {\n            if (_this.options.submenuToggle) {\n              return false;\n            }\n\n            if ($element.children('[data-submenu]').length) {\n              _this.toggle($element.children('[data-submenu]'));\n\n              return true;\n            }\n          },\n          closeAll: function closeAll() {\n            _this.hideAll();\n          },\n          handled: function handled(preventDefault) {\n            if (preventDefault) {\n              e.preventDefault();\n            }\n\n            e.stopImmediatePropagation();\n          }\n        });\n      }); //.attr('tabindex', 0);\n    }\n    /**\n     * Closes all panes of the menu.\n     * @function\n     */\n\n  }, {\n    key: \"hideAll\",\n    value: function hideAll() {\n      this.up(this.$element.find('[data-submenu]'));\n    }\n    /**\n     * Opens all panes of the menu.\n     * @function\n     */\n\n  }, {\n    key: \"showAll\",\n    value: function showAll() {\n      this.down(this.$element.find('[data-submenu]'));\n    }\n    /**\n     * Toggles the open/close state of a submenu.\n     * @function\n     * @param {jQuery} $target - the submenu to toggle\n     */\n\n  }, {\n    key: \"toggle\",\n    value: function toggle($target) {\n      if (!$target.is(':animated')) {\n        if (!$target.is(':hidden')) {\n          this.up($target);\n        } else {\n          this.down($target);\n        }\n      }\n    }\n    /**\n     * Opens the sub-menu defined by `$target`.\n     * @param {jQuery} $target - Sub-menu to open.\n     * @fires AccordionMenu#down\n     */\n\n  }, {\n    key: \"down\",\n    value: function down($target) {\n      var _this2 = this;\n\n      if (!this.options.multiOpen) {\n        this.up(this.$element.find('.is-active').not($target.parentsUntil(this.$element).add($target)));\n      }\n\n      $target.addClass('is-active').attr({\n        'aria-hidden': false\n      });\n\n      if (this.options.submenuToggle) {\n        $target.prev('.submenu-toggle').attr({\n          'aria-expanded': true\n        });\n      } else {\n        $target.parent('.is-accordion-submenu-parent').attr({\n          'aria-expanded': true\n        });\n      }\n\n      $target.slideDown(this.options.slideSpeed, function () {\n        /**\n         * Fires when the menu is done opening.\n         * @event AccordionMenu#down\n         */\n        _this2.$element.trigger('down.zf.accordionMenu', [$target]);\n      });\n    }\n    /**\n     * Closes the sub-menu defined by `$target`. All sub-menus inside the target will be closed as well.\n     * @param {jQuery} $target - Sub-menu to close.\n     * @fires AccordionMenu#up\n     */\n\n  }, {\n    key: \"up\",\n    value: function up($target) {\n      var _this3 = this;\n\n      var $submenus = $target.find('[data-submenu]');\n      var $allmenus = $target.add($submenus);\n      $submenus.slideUp(0);\n      $allmenus.removeClass('is-active').attr('aria-hidden', true);\n\n      if (this.options.submenuToggle) {\n        $allmenus.prev('.submenu-toggle').attr('aria-expanded', false);\n      } else {\n        $allmenus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);\n      }\n\n      $target.slideUp(this.options.slideSpeed, function () {\n        /**\n         * Fires when the menu is done collapsing up.\n         * @event AccordionMenu#up\n         */\n        _this3.$element.trigger('up.zf.accordionMenu', [$target]);\n      });\n    }\n    /**\n     * Destroys an instance of accordion menu.\n     * @fires AccordionMenu#destroyed\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.$element.find('[data-submenu]').slideDown(0).css('display', '');\n      this.$element.find('a').off('click.zf.accordionMenu');\n      this.$element.find('[data-is-parent-link]').detach();\n\n      if (this.options.submenuToggle) {\n        this.$element.find('.has-submenu-toggle').removeClass('has-submenu-toggle');\n        this.$element.find('.submenu-toggle').remove();\n      }\n\n      _foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__[\"Nest\"].Burn(this.$element, 'accordion');\n    }\n  }]);\n\n  return AccordionMenu;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_4__[\"Plugin\"]);\n\nAccordionMenu.defaults = {\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n\n  /**\n   * Amount of time to animate the opening of a submenu in ms.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n\n  /**\n   * Adds a separate submenu toggle button. This allows the parent item to have a link.\n   * @option\n   * @example true\n   */\n  submenuToggle: false,\n\n  /**\n   * The text used for the submenu toggle if enabled. This is used for screen readers only.\n   * @option\n   * @example true\n   */\n  submenuToggleText: 'Toggle menu',\n\n  /**\n   * Allow the menu to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  multiOpen: true\n};\n\n\n//# sourceURL=webpack:///./js/foundation.accordionMenu.js?")},"./js/foundation.core.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return Foundation; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ \"./js/foundation.util.mediaQuery.js\");\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\nvar FOUNDATION_VERSION = '6.5.1'; // Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\n\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(_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); // 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\n    var attrName = hyphenate(className); // Add to the Foundation object and the plugins list (for reflowing)\n\n    this._plugins[attrName] = this[className] = _plugin;\n  },\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 registerPlugin(plugin, name) {\n    var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n    plugin.uuid = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"GetYoDigits\"])(6, pluginName);\n\n    if (!plugin.$element.attr(\"data-\".concat(pluginName))) {\n      plugin.$element.attr(\"data-\".concat(pluginName), plugin.uuid);\n    }\n\n    if (!plugin.$element.data('zfPlugin')) {\n      plugin.$element.data('zfPlugin', plugin);\n    }\n    /**\n     * Fires when the plugin has initialized.\n     * @event Plugin#init\n     */\n\n\n    plugin.$element.trigger(\"init.zf.\".concat(pluginName));\n\n    this._uuids.push(plugin.uuid);\n\n    return;\n  },\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 unregisterPlugin(plugin) {\n    var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n    this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n\n    plugin.$element.removeAttr(\"data-\".concat(pluginName)).removeData('zfPlugin')\n    /**\n     * Fires when the plugin has been destroyed.\n     * @event Plugin#destroyed\n     */\n    .trigger(\"destroyed.zf.\".concat(pluginName));\n\n    for (var prop in plugin) {\n      plugin[prop] = null; //clean up script to prep for garbage collection.\n    }\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 reInit(plugins) {\n    var isJQ = plugins instanceof jquery__WEBPACK_IMPORTED_MODULE_0___default.a;\n\n    try {\n      if (isJQ) {\n        plugins.each(function () {\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('zfPlugin')._init();\n        });\n      } else {\n        var type = _typeof(plugins),\n            _this = this,\n            fns = {\n          'object': function object(plgs) {\n            plgs.forEach(function (p) {\n              p = hyphenate(p);\n              jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-' + p + ']').foundation('_init');\n            });\n          },\n          'string': function string() {\n            plugins = hyphenate(plugins);\n            jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-' + plugins + ']').foundation('_init');\n          },\n          'undefined': function undefined() {\n            this['object'](Object.keys(_this._plugins));\n          }\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 reflow(elem, plugins) {\n    // If plugins is undefined, just grab everything\n    if (typeof plugins === 'undefined') {\n      plugins = Object.keys(this._plugins);\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; // Iterate through each plugin\n\n\n    jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(plugins, function (i, name) {\n      // Get the current plugin\n      var plugin = _this._plugins[name]; // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n\n      var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(elem).find('[data-' + name + ']').addBack('[data-' + name + ']'); // For each plugin found, initialize it\n\n      $elem.each(function () {\n        var $el = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n            opts = {}; // Don't double-dip on plugins\n\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) {\n              return el.trim();\n            });\n            if (opt[0]) opts[opt[0]] = parseValue(opt[1]);\n          });\n        }\n\n        try {\n          $el.data('zfPlugin', new plugin(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), opts));\n        } catch (er) {\n          console.error(er);\n        } finally {\n          return;\n        }\n      });\n    });\n  },\n  getFnName: functionName,\n  addToJquery: function addToJquery($) {\n    // TODO: consider not making this a jQuery function\n    // TODO: need way to reflow vs. re-initialize\n\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 foundation(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') {\n        //needs to initialize the Foundation object, or an individual plugin.\n        _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__[\"MediaQuery\"]._init();\n\n        Foundation.reflow(this);\n      } else if (type === 'string') {\n        //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\n        var plugClass = this.data('zfPlugin'); //determine the class of plugin\n\n        if (typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined') {\n          //make sure both the class and method exist\n          if (this.length === 1) {\n            //if there's only one, call it directly.\n            plugClass[method].apply(plugClass, args);\n          } else {\n            this.each(function (i, el) {\n              //otherwise loop through the jQuery collection and invoke the method on each\n              plugClass[method].apply($(el).data('zfPlugin'), args);\n            });\n          }\n        } else {\n          //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 {\n        //error for invalid argument type\n        throw new TypeError(\"We're sorry, \".concat(type, \" is not a valid parameter. You must use a string representing the method you wish to invoke.\"));\n      }\n\n      return this;\n    };\n\n    $.fn.foundation = foundation;\n    return $;\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 throttle(func, delay) {\n    var timer = null;\n    return function () {\n      var context = this,\n          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};\nwindow.Foundation = Foundation; // Polyfill for requestAnimationFrame\n\n(function () {\n  if (!Date.now || !window.Date.now) window.Date.now = Date.now = function () {\n    return new Date().getTime();\n  };\n  var vendors = ['webkit', 'moz'];\n\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'] || window[vp + 'CancelRequestAnimationFrame'];\n  }\n\n  if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent) || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n    var lastTime = 0;\n\n    window.requestAnimationFrame = function (callback) {\n      var now = Date.now();\n      var nextTime = Math.max(lastTime + 16, now);\n      return setTimeout(function () {\n        callback(lastTime = nextTime);\n      }, nextTime - now);\n    };\n\n    window.cancelAnimationFrame = clearTimeout;\n  }\n  /**\n   * Polyfill for performance.now, required by rAF\n   */\n\n\n  if (!window.performance || !window.performance.now) {\n    window.performance = {\n      start: Date.now(),\n      now: function now() {\n        return Date.now() - this.start;\n      }\n    };\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 fNOP() {},\n        fBound = function fBound() {\n      return fToBind.apply(this instanceof fNOP ? this : oThis, 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\n    fBound.prototype = new fNOP();\n    return fBound;\n  };\n} // Polyfill to get the name of a function in IE9\n\n\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  } else if (typeof fn.prototype === 'undefined') {\n    return fn.constructor.name;\n  } else {\n    return fn.prototype.constructor.name;\n  }\n}\n\nfunction parseValue(str) {\n  if ('true' === str) return true;else if ('false' === str) return false;else if (!isNaN(str * 1)) return parseFloat(str);\n  return str;\n} // Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\n\n\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\n\n\n//# sourceURL=webpack:///./js/foundation.core.js?")},"./js/foundation.core.plugin.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Plugin", function() { return Plugin; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ "./js/foundation.core.utils.js");\n\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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)\n\nvar Plugin =\n/*#__PURE__*/\nfunction () {\n  function Plugin(element, options) {\n    _classCallCheck(this, Plugin);\n\n    this._setup(element, options);\n\n    var pluginName = getPluginName(this);\n    this.uuid = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__["GetYoDigits"])(6, pluginName);\n\n    if (!this.$element.attr("data-".concat(pluginName))) {\n      this.$element.attr("data-".concat(pluginName), this.uuid);\n    }\n\n    if (!this.$element.data(\'zfPlugin\')) {\n      this.$element.data(\'zfPlugin\', this);\n    }\n    /**\n     * Fires when the plugin has initialized.\n     * @event Plugin#init\n     */\n\n\n    this.$element.trigger("init.zf.".concat(pluginName));\n  }\n\n  _createClass(Plugin, [{\n    key: "destroy",\n    value: function destroy() {\n      this._destroy();\n\n      var pluginName = getPluginName(this);\n      this.$element.removeAttr("data-".concat(pluginName)).removeData(\'zfPlugin\')\n      /**\n       * Fires when the plugin has been destroyed.\n       * @event Plugin#destroyed\n       */\n      .trigger("destroyed.zf.".concat(pluginName));\n\n      for (var prop in this) {\n        this[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n  }]);\n\n  return Plugin;\n}(); // Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\n\n\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\n\n\n//# sourceURL=webpack:///./js/foundation.core.plugin.js?')},"./js/foundation.core.utils.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rtl\", function() { return rtl; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GetYoDigits\", function() { return GetYoDigits; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RegExpEscape\", function() { return RegExpEscape; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transitionend\", function() { return transitionend; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onLoad\", function() { return onLoad; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ignoreMousedisappear\", function() { return ignoreMousedisappear; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n\n // Core Foundation Utilities, utilized in a number of places.\n\n/**\n * Returns a boolean for RTL support\n */\n\nfunction rtl() {\n  return jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').attr('dir') === 'rtl';\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 */\n\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 ? \"-\".concat(namespace) : '');\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 */\n\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\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 * 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 */\n\n\nfunction onLoad($elem, handler) {\n  var didLoad = document.readyState === 'complete';\n  var eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n\n  var cb = function cb() {\n    return $elem.triggerHandler(eventType);\n  };\n\n  if ($elem) {\n    if (handler) $elem.one(eventType, handler);\n    if (didLoad) setTimeout(cb);else jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).one('load', cb);\n  }\n\n  return eventType;\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 */\n\n\nfunction ignoreMousedisappear(handler) {\n  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n      _ref$ignoreLeaveWindo = _ref.ignoreLeaveWindow,\n      ignoreLeaveWindow = _ref$ignoreLeaveWindo === void 0 ? false : _ref$ignoreLeaveWindo,\n      _ref$ignoreReappear = _ref.ignoreReappear,\n      ignoreReappear = _ref$ignoreReappear === void 0 ? false : _ref$ignoreReappear;\n\n  return function leaveEventHandler(eLeave) {\n    for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      rest[_key - 1] = arguments[_key];\n    }\n\n    var callback = handler.bind.apply(handler, [this, eLeave].concat(rest)); // The mouse left: call the given callback if the mouse entered elsewhere\n\n    if (eLeave.relatedTarget !== null) {\n      return callback();\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\n\n    setTimeout(function leaveEventDebouncer() {\n      if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n        return callback();\n      } // Otherwise, wait for the mouse to reeapear outside of the element,\n\n\n      if (!ignoreReappear) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).one('mouseenter', function reenterEventHandler(eReenter) {\n          if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(eLeave.currentTarget).has(eReenter.target).length) {\n            // Fill where the mouse finally entered.\n            eLeave.relatedTarget = eReenter.target;\n            callback();\n          }\n        });\n      }\n    }, 0);\n  };\n}\n\n\n\n//# sourceURL=webpack:///./js/foundation.core.utils.js?")},"./js/foundation.drilldown.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Drilldown\", function() { return Drilldown; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./js/foundation.util.keyboard.js\");\n/* harmony import */ var _foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.nest */ \"./js/foundation.util.nest.js\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony import */ var _foundation_util_box__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.util.box */ \"./js/foundation.util.box.js\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./js/foundation.core.plugin.js\");\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n\n/**\n * Drilldown module.\n * @module foundation.drilldown\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n * @requires foundation.util.box\n */\n\nvar Drilldown =\n/*#__PURE__*/\nfunction (_Plugin) {\n  _inherits(Drilldown, _Plugin);\n\n  function Drilldown() {\n    _classCallCheck(this, Drilldown);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(Drilldown).apply(this, arguments));\n  }\n\n  _createClass(Drilldown, [{\n    key: \"_setup\",\n\n    /**\n     * Creates a new instance of a drilldown menu.\n     * @class\n     * @name Drilldown\n     * @param {jQuery} element - jQuery object to make into an accordion menu.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    value: function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Drilldown.defaults, this.$element.data(), options);\n      this.className = 'Drilldown'; // ie9 back compat\n\n      this._init();\n\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].register('Drilldown', {\n        'ENTER': 'open',\n        'SPACE': 'open',\n        'ARROW_RIGHT': 'next',\n        'ARROW_UP': 'up',\n        'ARROW_DOWN': 'down',\n        'ARROW_LEFT': 'previous',\n        'ESCAPE': 'close',\n        'TAB': 'down',\n        'SHIFT_TAB': 'up'\n      });\n    }\n    /**\n     * Initializes the drilldown by creating jQuery collections of elements\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      _foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__[\"Nest\"].Feather(this.$element, 'drilldown');\n\n      if (this.options.autoApplyClass) {\n        this.$element.addClass('drilldown');\n      }\n\n      this.$element.attr({\n        'role': 'tree',\n        'aria-multiselectable': false\n      });\n      this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');\n      this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');\n      this.$menuItems = this.$element.find('li').not('.js-drilldown-back').attr('role', 'treeitem').find('a'); // Set the main menu as current by default (unless a submenu is selected)\n      // Used to set the wrapper height when the drilldown is closed/reopened from any (sub)menu\n\n      this.$currentMenu = this.$element;\n      this.$element.attr('data-mutate', this.$element.attr('data-drilldown') || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"])(6, 'drilldown'));\n\n      this._prepareMenu();\n\n      this._registerEvents();\n\n      this._keyboardEvents();\n    }\n    /**\n     * prepares drilldown menu by setting attributes to links and elements\n     * sets a min height to prevent content jumping\n     * wraps the element if not already wrapped\n     * @private\n     * @function\n     */\n\n  }, {\n    key: \"_prepareMenu\",\n    value: function _prepareMenu() {\n      var _this = this; // if(!this.options.holdOpen){\n      //   this._menuLinkEvents();\n      // }\n\n\n      this.$submenuAnchors.each(function () {\n        var $link = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n        var $sub = $link.parent();\n\n        if (_this.options.parentLink) {\n          $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-drilldown-submenu-item\" role=\"menuitem\"></li>');\n        }\n\n        $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);\n        $link.children('[data-submenu]').attr({\n          'aria-hidden': true,\n          'tabindex': 0,\n          'role': 'group'\n        });\n\n        _this._events($link);\n      });\n      this.$submenus.each(function () {\n        var $menu = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n            $back = $menu.find('.js-drilldown-back');\n\n        if (!$back.length) {\n          switch (_this.options.backButtonPosition) {\n            case \"bottom\":\n              $menu.append(_this.options.backButton);\n              break;\n\n            case \"top\":\n              $menu.prepend(_this.options.backButton);\n              break;\n\n            default:\n              console.error(\"Unsupported backButtonPosition value '\" + _this.options.backButtonPosition + \"'\");\n          }\n        }\n\n        _this._back($menu);\n      });\n      this.$submenus.addClass('invisible');\n\n      if (!this.options.autoHeight) {\n        this.$submenus.addClass('drilldown-submenu-cover-previous');\n      } // create a wrapper on element if it doesn't exist.\n\n\n      if (!this.$element.parent().hasClass('is-drilldown')) {\n        this.$wrapper = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.options.wrapper).addClass('is-drilldown');\n        if (this.options.animateHeight) this.$wrapper.addClass('animate-height');\n        this.$element.wrap(this.$wrapper);\n      } // set wrapper\n\n\n      this.$wrapper = this.$element.parent();\n      this.$wrapper.css(this._getMaxDims());\n    }\n  }, {\n    key: \"_resize\",\n    value: function _resize() {\n      this.$wrapper.css({\n        'max-width': 'none',\n        'min-height': 'none'\n      }); // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths\n\n      this.$wrapper.css(this._getMaxDims());\n    }\n    /**\n     * Adds event handlers to elements in the menu.\n     * @function\n     * @private\n     * @param {jQuery} $elem - the current menu item to add handlers to.\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events($elem) {\n      var _this = this;\n\n      $elem.off('click.zf.drilldown').on('click.zf.drilldown', function (e) {\n        if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')) {\n          e.stopImmediatePropagation();\n          e.preventDefault();\n        } // if(e.target !== e.currentTarget.firstElementChild){\n        //   return false;\n        // }\n\n\n        _this._show($elem.parent('li'));\n\n        if (_this.options.closeOnClick) {\n          var $body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\n          $body.off('.zf.drilldown').on('click.zf.drilldown', function (e) {\n            if (e.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(_this.$element[0], e.target)) {\n              return;\n            }\n\n            e.preventDefault();\n\n            _this._hideAll();\n\n            $body.off('.zf.drilldown');\n          });\n        }\n      });\n    }\n    /**\n     * Adds event handlers to the menu element.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_registerEvents\",\n    value: function _registerEvents() {\n      if (this.options.scrollTop) {\n        this._bindHandler = this._scrollTop.bind(this);\n        this.$element.on('open.zf.drilldown hide.zf.drilldown closed.zf.drilldown', this._bindHandler);\n      }\n\n      this.$element.on('mutateme.zf.trigger', this._resize.bind(this));\n    }\n    /**\n     * Scroll to Top of Element or data-scroll-top-element\n     * @function\n     * @fires Drilldown#scrollme\n     */\n\n  }, {\n    key: \"_scrollTop\",\n    value: function _scrollTop() {\n      var _this = this;\n\n      var $scrollTopElement = _this.options.scrollTopElement != '' ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(_this.options.scrollTopElement) : _this.$element,\n          scrollPos = parseInt($scrollTopElement.offset().top + _this.options.scrollTopOffset, 10);\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()('html, body').stop(true).animate({\n        scrollTop: scrollPos\n      }, _this.options.animationDuration, _this.options.animationEasing, function () {\n        /**\n          * Fires after the menu has scrolled\n          * @event Drilldown#scrollme\n          */\n        if (this === jquery__WEBPACK_IMPORTED_MODULE_0___default()('html')[0]) _this.$element.trigger('scrollme.zf.drilldown');\n      });\n    }\n    /**\n     * Adds keydown event listener to `li`'s in the menu.\n     * @private\n     */\n\n  }, {\n    key: \"_keyboardEvents\",\n    value: function _keyboardEvents() {\n      var _this = this;\n\n      this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function (e) {\n        var $element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n            $elements = $element.parent('li').parent('ul').children('li').children('a'),\n            $prevElement,\n            $nextElement;\n        $elements.each(function (i) {\n          if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is($element)) {\n            $prevElement = $elements.eq(Math.max(0, i - 1));\n            $nextElement = $elements.eq(Math.min(i + 1, $elements.length - 1));\n            return;\n          }\n        });\n        _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].handleKey(e, 'Drilldown', {\n          next: function next() {\n            if ($element.is(_this.$submenuAnchors)) {\n              _this._show($element.parent('li'));\n\n              $element.parent('li').one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])($element), function () {\n                $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n              });\n              return true;\n            }\n          },\n          previous: function previous() {\n            _this._hide($element.parent('li').parent('ul'));\n\n            $element.parent('li').parent('ul').one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])($element), function () {\n              setTimeout(function () {\n                $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n              }, 1);\n            });\n            return true;\n          },\n          up: function up() {\n            $prevElement.focus(); // Don't tap focus on first element in root ul\n\n            return !$element.is(_this.$element.find('> li:first-child > a'));\n          },\n          down: function down() {\n            $nextElement.focus(); // Don't tap focus on last element in root ul\n\n            return !$element.is(_this.$element.find('> li:last-child > a'));\n          },\n          close: function close() {\n            // Don't close on element in root ul\n            if (!$element.is(_this.$element.find('> li > a'))) {\n              _this._hide($element.parent().parent());\n\n              $element.parent().parent().siblings('a').focus();\n            }\n          },\n          open: function open() {\n            if (_this.options.parentLink && $element.attr('href')) {\n              // Link with href\n              return false;\n            } else if (!$element.is(_this.$menuItems)) {\n              // not menu item means back button\n              _this._hide($element.parent('li').parent('ul'));\n\n              $element.parent('li').parent('ul').one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])($element), function () {\n                setTimeout(function () {\n                  $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n                }, 1);\n              });\n              return true;\n            } else if ($element.is(_this.$submenuAnchors)) {\n              // Sub menu item\n              _this._show($element.parent('li'));\n\n              $element.parent('li').one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])($element), function () {\n                $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n              });\n              return true;\n            }\n          },\n          handled: function handled(preventDefault) {\n            if (preventDefault) {\n              e.preventDefault();\n            }\n\n            e.stopImmediatePropagation();\n          }\n        });\n      }); // end keyboardAccess\n    }\n    /**\n     * Closes all open elements, and returns to root menu.\n     * @function\n     * @fires Drilldown#closed\n     */\n\n  }, {\n    key: \"_hideAll\",\n    value: function _hideAll() {\n      var $elem = this.$element.find('.is-drilldown-submenu.is-active').addClass('is-closing');\n      if (this.options.autoHeight) this.$wrapper.css({\n        height: $elem.parent().closest('ul').data('calcHeight')\n      });\n      $elem.one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])($elem), function (e) {\n        $elem.removeClass('is-active is-closing');\n      });\n      /**\n       * Fires when the menu is fully closed.\n       * @event Drilldown#closed\n       */\n\n      this.$element.trigger('closed.zf.drilldown');\n    }\n    /**\n     * Adds event listener for each `back` button, and closes open menus.\n     * @function\n     * @fires Drilldown#back\n     * @param {jQuery} $elem - the current sub-menu to add `back` event.\n     */\n\n  }, {\n    key: \"_back\",\n    value: function _back($elem) {\n      var _this = this;\n\n      $elem.off('click.zf.drilldown');\n      $elem.children('.js-drilldown-back').on('click.zf.drilldown', function (e) {\n        e.stopImmediatePropagation(); // console.log('mouseup on back');\n\n        _this._hide($elem); // If there is a parent submenu, call show\n\n\n        var parentSubMenu = $elem.parent('li').parent('ul').parent('li');\n\n        if (parentSubMenu.length) {\n          _this._show(parentSubMenu);\n        }\n      });\n    }\n    /**\n     * Adds event listener to menu items w/o submenus to close open menus on click.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_menuLinkEvents\",\n    value: function _menuLinkEvents() {\n      var _this = this;\n\n      this.$menuItems.not('.is-drilldown-submenu-parent').off('click.zf.drilldown').on('click.zf.drilldown', function (e) {\n        // e.stopImmediatePropagation();\n        setTimeout(function () {\n          _this._hideAll();\n        }, 0);\n      });\n    }\n    /**\n     * Sets the CSS classes for submenu to show it.\n     * @function\n     * @private\n     * @param {jQuery} $elem - the target submenu (`ul` tag)\n     * @param {boolean} trigger - trigger drilldown event\n     */\n\n  }, {\n    key: \"_setShowSubMenuClasses\",\n    value: function _setShowSubMenuClasses($elem, trigger) {\n      $elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n      $elem.parent('li').attr('aria-expanded', true);\n\n      if (trigger === true) {\n        this.$element.trigger('open.zf.drilldown', [$elem]);\n      }\n    }\n    /**\n     * Sets the CSS classes for submenu to hide it.\n     * @function\n     * @private\n     * @param {jQuery} $elem - the target submenu (`ul` tag)\n     * @param {boolean} trigger - trigger drilldown event\n     */\n\n  }, {\n    key: \"_setHideSubMenuClasses\",\n    value: function _setHideSubMenuClasses($elem, trigger) {\n      $elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);\n      $elem.parent('li').attr('aria-expanded', false);\n\n      if (trigger === true) {\n        $elem.trigger('hide.zf.drilldown', [$elem]);\n      }\n    }\n    /**\n     * Opens a specific drilldown (sub)menu no matter which (sub)menu in it is currently visible.\n     * Compared to _show() this lets you jump into any submenu without clicking through every submenu on the way to it.\n     * @function\n     * @fires Drilldown#open\n     * @param {jQuery} $elem - the target (sub)menu (`ul` tag)\n     * @param {boolean} autoFocus - if true the first link in the target (sub)menu gets auto focused\n     */\n\n  }, {\n    key: \"_showMenu\",\n    value: function _showMenu($elem, autoFocus) {\n      var _this = this; // Reset drilldown\n\n\n      var $expandedSubmenus = this.$element.find('li[aria-expanded=\"true\"] > ul[data-submenu]');\n      $expandedSubmenus.each(function (index) {\n        _this._setHideSubMenuClasses(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this));\n      }); // Save the menu as the currently displayed one.\n\n      this.$currentMenu = $elem; // If target menu is root, focus first link & exit\n\n      if ($elem.is('[data-drilldown]')) {\n        if (autoFocus === true) $elem.find('li[role=\"treeitem\"] > a').first().focus();\n        if (this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));\n        return;\n      } // Find all submenus on way to root incl. the element itself\n\n\n      var $submenus = $elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]'); // Open target menu and all submenus on its way to root\n\n      $submenus.each(function (index) {\n        // Update height of first child (target menu) if autoHeight option true\n        if (index === 0 && _this.options.autoHeight) {\n          _this.$wrapper.css('height', jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('calcHeight'));\n        }\n\n        var isLastChild = index == $submenus.length - 1; // Add transitionsend listener to last child (root due to reverse order) to open target menu's first link\n        // Last child makes sure the event gets always triggered even if going through several menus\n\n        if (isLastChild === true) {\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)), function () {\n            if (autoFocus === true) {\n              $elem.find('li[role=\"treeitem\"] > a').first().focus();\n            }\n          });\n        }\n\n        _this._setShowSubMenuClasses(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), isLastChild);\n      });\n    }\n    /**\n     * Opens a submenu.\n     * @function\n     * @fires Drilldown#open\n     * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.\n     */\n\n  }, {\n    key: \"_show\",\n    value: function _show($elem) {\n      var $submenu = $elem.children('[data-submenu]');\n      $elem.attr('aria-expanded', true);\n      this.$currentMenu = $submenu;\n      $submenu.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n\n      if (this.options.autoHeight) {\n        this.$wrapper.css({\n          height: $submenu.data('calcHeight')\n        });\n      }\n      /**\n       * Fires when the submenu has opened.\n       * @event Drilldown#open\n       */\n\n\n      this.$element.trigger('open.zf.drilldown', [$elem]);\n    }\n    /**\n     * Hides a submenu\n     * @function\n     * @fires Drilldown#hide\n     * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.\n     */\n\n  }, {\n    key: \"_hide\",\n    value: function _hide($elem) {\n      if (this.options.autoHeight) this.$wrapper.css({\n        height: $elem.parent().closest('ul').data('calcHeight')\n      });\n\n      var _this = this;\n\n      $elem.parent('li').attr('aria-expanded', false);\n      $elem.attr('aria-hidden', true);\n      $elem.addClass('is-closing').one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])($elem), function () {\n        $elem.removeClass('is-active is-closing');\n        $elem.blur().addClass('invisible');\n      });\n      /**\n       * Fires when the submenu has closed.\n       * @event Drilldown#hide\n       */\n\n      $elem.trigger('hide.zf.drilldown', [$elem]);\n    }\n    /**\n     * Iterates through the nested menus to calculate the min-height, and max-width for the menu.\n     * Prevents content jumping.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_getMaxDims\",\n    value: function _getMaxDims() {\n      var maxHeight = 0,\n          result = {},\n          _this = this; // Recalculate menu heights and total max height\n\n\n      this.$submenus.add(this.$element).each(function () {\n        var numOfElems = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).children('li').length;\n        var height = _foundation_util_box__WEBPACK_IMPORTED_MODULE_4__[\"Box\"].GetDimensions(this).height;\n        maxHeight = height > maxHeight ? height : maxHeight;\n\n        if (_this.options.autoHeight) {\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('calcHeight', height);\n        }\n      });\n      if (this.options.autoHeight) result['height'] = this.$currentMenu.data('calcHeight');else result['min-height'] = \"\".concat(maxHeight, \"px\");\n      result['max-width'] = \"\".concat(this.$element[0].getBoundingClientRect().width, \"px\");\n      return result;\n    }\n    /**\n     * Destroys the Drilldown Menu\n     * @function\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      if (this.options.scrollTop) this.$element.off('.zf.drilldown', this._bindHandler);\n\n      this._hideAll();\n\n      this.$element.off('mutateme.zf.trigger');\n      _foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__[\"Nest\"].Burn(this.$element, 'drilldown');\n      this.$element.unwrap().find('.js-drilldown-back, .is-submenu-parent-item').remove().end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu').end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');\n      this.$submenuAnchors.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).off('.zf.drilldown');\n      });\n      this.$element.find('[data-is-parent-link]').detach();\n      this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');\n      this.$element.find('a').each(function () {\n        var $link = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n        $link.removeAttr('tabindex');\n\n        if ($link.data('savedHref')) {\n          $link.attr('href', $link.data('savedHref')).removeData('savedHref');\n        } else {\n          return;\n        }\n      });\n    }\n  }]);\n\n  return Drilldown;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_5__[\"Plugin\"]);\n\nDrilldown.defaults = {\n  /**\n   * Drilldowns depend on styles in order to function properly; in the default build of Foundation these are\n   * on the `drilldown` class. This option auto-applies this class to the drilldown upon initialization.\n   * @option\n   * @type {boolian}\n   * @default true\n   */\n  autoApplyClass: true,\n\n  /**\n   * Markup used for JS generated back button. Prepended  or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>'\n   */\n  backButton: '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>',\n\n  /**\n   * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default top\n   */\n  backButtonPosition: 'top',\n\n  /**\n   * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<div></div>'\n   */\n  wrapper: '<div></div>',\n\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n\n  /**\n   * Allow the menu to return to root list on body click.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n\n  /**\n   * Allow the menu to auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoHeight: false,\n\n  /**\n   * Animate the auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animateHeight: false,\n\n  /**\n   * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  scrollTop: false,\n\n  /**\n   * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  scrollTopElement: '',\n\n  /**\n   * ScrollTop offset\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  scrollTopOffset: 0,\n\n  /**\n   * Scroll animation duration\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n\n  /**\n   * Scroll animation easing. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @see {@link https://api.jquery.com/animate|JQuery animate}\n   * @default 'swing'\n   */\n  animationEasing: 'swing' // holdOpen: false\n\n};\n\n\n//# sourceURL=webpack:///./js/foundation.drilldown.js?")},"./js/foundation.dropdown.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Dropdown\", function() { return Dropdown; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./js/foundation.util.keyboard.js\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony import */ var _foundation_positionable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.positionable */ \"./js/foundation.positionable.js\");\n/* harmony import */ var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.util.triggers */ \"./js/foundation.util.triggers.js\");\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n/**\n * Dropdown module.\n * @module foundation.dropdown\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.triggers\n */\n\nvar Dropdown =\n/*#__PURE__*/\nfunction (_Positionable) {\n  _inherits(Dropdown, _Positionable);\n\n  function Dropdown() {\n    _classCallCheck(this, Dropdown);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(Dropdown).apply(this, arguments));\n  }\n\n  _createClass(Dropdown, [{\n    key: \"_setup\",\n\n    /**\n     * Creates a new instance of a dropdown.\n     * @class\n     * @name Dropdown\n     * @param {jQuery} element - jQuery object to make into a dropdown.\n     *        Object should be of the dropdown panel, rather than its anchor.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    value: function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Dropdown.defaults, this.$element.data(), options);\n      this.className = 'Dropdown'; // ie9 back compat\n      // Triggers init is idempotent, just need to make sure it is initialized\n\n      _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_4__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n      this._init();\n\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].register('Dropdown', {\n        'ENTER': 'toggle',\n        'SPACE': 'toggle',\n        'ESCAPE': 'close'\n      });\n    }\n    /**\n     * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      var $id = this.$element.attr('id');\n      this.$anchors = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-toggle=\\\"\".concat($id, \"\\\"]\")).length ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-toggle=\\\"\".concat($id, \"\\\"]\")) : jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-open=\\\"\".concat($id, \"\\\"]\"));\n      this.$anchors.attr({\n        'aria-controls': $id,\n        'data-is-focus': false,\n        'data-yeti-box': $id,\n        'aria-haspopup': true,\n        'aria-expanded': false\n      });\n\n      this._setCurrentAnchor(this.$anchors.first());\n\n      if (this.options.parentClass) {\n        this.$parent = this.$element.parents('.' + this.options.parentClass);\n      } else {\n        this.$parent = null;\n      } // Set [aria-labelledby] on the Dropdown if it is not set\n\n\n      if (typeof this.$element.attr('aria-labelledby') === 'undefined') {\n        // Get the anchor ID or create one\n        if (typeof this.$currentAnchor.attr('id') === 'undefined') {\n          this.$currentAnchor.attr('id', Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"GetYoDigits\"])(6, 'dd-anchor'));\n        }\n\n        ;\n        this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));\n      }\n\n      this.$element.attr({\n        'aria-hidden': 'true',\n        'data-yeti-box': $id,\n        'data-resize': $id\n      });\n\n      _get(_getPrototypeOf(Dropdown.prototype), \"_init\", this).call(this);\n\n      this._events();\n    }\n  }, {\n    key: \"_getDefaultPosition\",\n    value: function _getDefaultPosition() {\n      // handle legacy classnames\n      var position = this.$element[0].className.match(/(top|left|right|bottom)/g);\n\n      if (position) {\n        return position[0];\n      } else {\n        return 'bottom';\n      }\n    }\n  }, {\n    key: \"_getDefaultAlignment\",\n    value: function _getDefaultAlignment() {\n      // handle legacy float approach\n      var horizontalPosition = /float-(\\S+)/.exec(this.$currentAnchor.attr('class'));\n\n      if (horizontalPosition) {\n        return horizontalPosition[1];\n      }\n\n      return _get(_getPrototypeOf(Dropdown.prototype), \"_getDefaultAlignment\", this).call(this);\n    }\n    /**\n     * Sets the position and orientation of the dropdown pane, checks for collisions if allow-overlap is not true.\n     * Recursively calls itself if a collision is detected, with a new position class.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_setPosition\",\n    value: function _setPosition() {\n      this.$element.removeClass(\"has-position-\".concat(this.position, \" has-alignment-\").concat(this.alignment));\n\n      _get(_getPrototypeOf(Dropdown.prototype), \"_setPosition\", this).call(this, this.$currentAnchor, this.$element, this.$parent);\n\n      this.$element.addClass(\"has-position-\".concat(this.position, \" has-alignment-\").concat(this.alignment));\n    }\n    /**\n     * Make it a current anchor.\n     * Current anchor as the reference for the position of Dropdown panes.\n     * @param {HTML} el - DOM element of the anchor.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_setCurrentAnchor\",\n    value: function _setCurrentAnchor(el) {\n      this.$currentAnchor = jquery__WEBPACK_IMPORTED_MODULE_0___default()(el);\n    }\n    /**\n     * Adds event listeners to the element utilizing the triggers utility library.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      var _this = this;\n\n      this.$element.on({\n        'open.zf.trigger': this.open.bind(this),\n        'close.zf.trigger': this.close.bind(this),\n        'toggle.zf.trigger': this.toggle.bind(this),\n        'resizeme.zf.trigger': this._setPosition.bind(this)\n      });\n      this.$anchors.off('click.zf.trigger').on('click.zf.trigger', function () {\n        _this._setCurrentAnchor(this);\n      });\n\n      if (this.options.hover) {\n        this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown').on('mouseenter.zf.dropdown', function () {\n          _this._setCurrentAnchor(this);\n\n          var bodyData = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').data();\n\n          if (typeof bodyData.whatinput === 'undefined' || bodyData.whatinput === 'mouse') {\n            clearTimeout(_this.timeout);\n            _this.timeout = setTimeout(function () {\n              _this.open();\n\n              _this.$anchors.data('hover', true);\n            }, _this.options.hoverDelay);\n          }\n        }).on('mouseleave.zf.dropdown', Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"ignoreMousedisappear\"])(function () {\n          clearTimeout(_this.timeout);\n          _this.timeout = setTimeout(function () {\n            _this.close();\n\n            _this.$anchors.data('hover', false);\n          }, _this.options.hoverDelay);\n        }));\n\n        if (this.options.hoverPane) {\n          this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown').on('mouseenter.zf.dropdown', function () {\n            clearTimeout(_this.timeout);\n          }).on('mouseleave.zf.dropdown', Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"ignoreMousedisappear\"])(function () {\n            clearTimeout(_this.timeout);\n            _this.timeout = setTimeout(function () {\n              _this.close();\n\n              _this.$anchors.data('hover', false);\n            }, _this.options.hoverDelay);\n          }));\n        }\n      }\n\n      this.$anchors.add(this.$element).on('keydown.zf.dropdown', function (e) {\n        var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n            visibleFocusableElements = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].findFocusable(_this.$element);\n        _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].handleKey(e, 'Dropdown', {\n          open: function open() {\n            if ($target.is(_this.$anchors) && !$target.is('input, textarea')) {\n              _this.open();\n\n              _this.$element.attr('tabindex', -1).focus();\n\n              e.preventDefault();\n            }\n          },\n          close: function close() {\n            _this.close();\n\n            _this.$anchors.focus();\n          }\n        });\n      });\n    }\n    /**\n     * Adds an event handler to the body to close any dropdowns on a click.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_addBodyHandler\",\n    value: function _addBodyHandler() {\n      var $body = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).not(this.$element),\n          _this = this;\n\n      $body.off('click.zf.dropdown').on('click.zf.dropdown', function (e) {\n        if (_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {\n          return;\n        }\n\n        if (_this.$element.is(e.target) || _this.$element.find(e.target).length) {\n          return;\n        }\n\n        _this.close();\n\n        $body.off('click.zf.dropdown');\n      });\n    }\n    /**\n     * Opens the dropdown pane, and fires a bubbling event to close other dropdowns.\n     * @function\n     * @fires Dropdown#closeme\n     * @fires Dropdown#show\n     */\n\n  }, {\n    key: \"open\",\n    value: function open() {\n      // var _this = this;\n\n      /**\n       * Fires to close other open dropdowns, typically when dropdown is opening\n       * @event Dropdown#closeme\n       */\n      this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));\n      this.$anchors.addClass('hover').attr({\n        'aria-expanded': true\n      }); // this.$element/*.show()*/;\n\n      this.$element.addClass('is-opening');\n\n      this._setPosition();\n\n      this.$element.removeClass('is-opening').addClass('is-open').attr({\n        'aria-hidden': false\n      });\n\n      if (this.options.autoFocus) {\n        var $focusable = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].findFocusable(this.$element);\n\n        if ($focusable.length) {\n          $focusable.eq(0).focus();\n        }\n      }\n\n      if (this.options.closeOnClick) {\n        this._addBodyHandler();\n      }\n\n      if (this.options.trapFocus) {\n        _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].trapFocus(this.$element);\n      }\n      /**\n       * Fires once the dropdown is visible.\n       * @event Dropdown#show\n       */\n\n\n      this.$element.trigger('show.zf.dropdown', [this.$element]);\n    }\n    /**\n     * Closes the open dropdown pane.\n     * @function\n     * @fires Dropdown#hide\n     */\n\n  }, {\n    key: \"close\",\n    value: function close() {\n      if (!this.$element.hasClass('is-open')) {\n        return false;\n      }\n\n      this.$element.removeClass('is-open').attr({\n        'aria-hidden': true\n      });\n      this.$anchors.removeClass('hover').attr('aria-expanded', false);\n      /**\n       * Fires once the dropdown is no longer visible.\n       * @event Dropdown#hide\n       */\n\n      this.$element.trigger('hide.zf.dropdown', [this.$element]);\n\n      if (this.options.trapFocus) {\n        _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].releaseFocus(this.$element);\n      }\n    }\n    /**\n     * Toggles the dropdown pane's visibility.\n     * @function\n     */\n\n  }, {\n    key: \"toggle\",\n    value: function toggle() {\n      if (this.$element.hasClass('is-open')) {\n        if (this.$anchors.data('hover')) return;\n        this.close();\n      } else {\n        this.open();\n      }\n    }\n    /**\n     * Destroys the dropdown.\n     * @function\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.$element.off('.zf.trigger').hide();\n      this.$anchors.off('.zf.dropdown');\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).off('click.zf.dropdown');\n    }\n  }]);\n\n  return Dropdown;\n}(_foundation_positionable__WEBPACK_IMPORTED_MODULE_3__[\"Positionable\"]);\n\nDropdown.defaults = {\n  /**\n   * Class that designates bounding container of Dropdown (default: window)\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  parentClass: null,\n\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  hoverDelay: 250,\n\n  /**\n   * Allow submenus to open on hover events\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hover: false,\n\n  /**\n   * Don't close dropdown when hovering over dropdown pane\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hoverPane: false,\n\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n\n  /**\n   * Position of dropdown. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n\n  /**\n   * Alignment of dropdown relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n\n  /**\n   * Allow overlap of container/window. If false, dropdown will first try to position as defined by data-position and data-alignment, but reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n\n  /**\n   * Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false,\n\n  /**\n   * Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n\n  /**\n   * Allows a click on the body to close the dropdown.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false\n};\n\n\n//# sourceURL=webpack:///./js/foundation.dropdown.js?")},"./js/foundation.dropdownMenu.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DropdownMenu\", function() { return DropdownMenu; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./js/foundation.core.plugin.js\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./js/foundation.util.keyboard.js\");\n/* harmony import */ var _foundation_util_nest__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.util.nest */ \"./js/foundation.util.nest.js\");\n/* harmony import */ var _foundation_util_box__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./foundation.util.box */ \"./js/foundation.util.box.js\");\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n\n/**\n * DropdownMenu module.\n * @module foundation.dropdown-menu\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.nest\n */\n\nvar DropdownMenu =\n/*#__PURE__*/\nfunction (_Plugin) {\n  _inherits(DropdownMenu, _Plugin);\n\n  function DropdownMenu() {\n    _classCallCheck(this, DropdownMenu);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(DropdownMenu).apply(this, arguments));\n  }\n\n  _createClass(DropdownMenu, [{\n    key: \"_setup\",\n\n    /**\n     * Creates a new instance of DropdownMenu.\n     * @class\n     * @name DropdownMenu\n     * @fires DropdownMenu#init\n     * @param {jQuery} element - jQuery object to make into a dropdown menu.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    value: function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, DropdownMenu.defaults, this.$element.data(), options);\n      this.className = 'DropdownMenu'; // ie9 back compat\n\n      this._init();\n\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_3__[\"Keyboard\"].register('DropdownMenu', {\n        'ENTER': 'open',\n        'SPACE': 'open',\n        'ARROW_RIGHT': 'next',\n        'ARROW_UP': 'up',\n        'ARROW_DOWN': 'down',\n        'ARROW_LEFT': 'previous',\n        'ESCAPE': 'close'\n      });\n    }\n    /**\n     * Initializes the plugin, and calls _prepareMenu\n     * @private\n     * @function\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      _foundation_util_nest__WEBPACK_IMPORTED_MODULE_4__[\"Nest\"].Feather(this.$element, 'dropdown');\n      var subs = this.$element.find('li.is-dropdown-submenu-parent');\n      this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');\n      this.$menuItems = this.$element.find('[role=\"menuitem\"]');\n      this.$tabs = this.$element.children('[role=\"menuitem\"]');\n      this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);\n\n      if (this.options.alignment === 'auto') {\n        if (this.$element.hasClass(this.options.rightClass) || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"rtl\"])() || this.$element.parents('.top-bar-right').is('*')) {\n          this.options.alignment = 'right';\n          subs.addClass('opens-left');\n        } else {\n          this.options.alignment = 'left';\n          subs.addClass('opens-right');\n        }\n      } else {\n        if (this.options.alignment === 'right') {\n          subs.addClass('opens-left');\n        } else {\n          subs.addClass('opens-right');\n        }\n      }\n\n      this.changed = false;\n\n      this._events();\n    }\n  }, {\n    key: \"_isVertical\",\n    value: function _isVertical() {\n      return this.$tabs.css('display') === 'block' || this.$element.css('flex-direction') === 'column';\n    }\n  }, {\n    key: \"_isRtl\",\n    value: function _isRtl() {\n      return this.$element.hasClass('align-right') || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"rtl\"])() && !this.$element.hasClass('align-left');\n    }\n    /**\n     * Adds event listeners to elements within the menu\n     * @private\n     * @function\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      var _this = this,\n          hasTouch = 'ontouchstart' in window || typeof window.ontouchstart !== 'undefined',\n          parClass = 'is-dropdown-submenu-parent'; // used for onClick and in the keyboard handlers\n\n\n      var handleClickFn = function handleClickFn(e) {\n        var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target).parentsUntil('ul', \".\".concat(parClass)),\n            hasSub = $elem.hasClass(parClass),\n            hasClicked = $elem.attr('data-is-click') === 'true',\n            $sub = $elem.children('.is-dropdown-submenu');\n\n        if (hasSub) {\n          if (hasClicked) {\n            if (!_this.options.closeOnClick || !_this.options.clickOpen && !hasTouch || _this.options.forceFollow && hasTouch) {\n              return;\n            } else {\n              e.stopImmediatePropagation();\n              e.preventDefault();\n\n              _this._hide($elem);\n            }\n          } else {\n            e.preventDefault();\n            e.stopImmediatePropagation();\n\n            _this._show($sub);\n\n            $elem.add($elem.parentsUntil(_this.$element, \".\".concat(parClass))).attr('data-is-click', true);\n          }\n        }\n      };\n\n      if (this.options.clickOpen || hasTouch) {\n        this.$menuItems.on('click.zf.dropdownmenu touchstart.zf.dropdownmenu', handleClickFn);\n      } // Handle Leaf element Clicks\n\n\n      if (_this.options.closeOnClickInside) {\n        this.$menuItems.on('click.zf.dropdownmenu', function (e) {\n          var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n              hasSub = $elem.hasClass(parClass);\n\n          if (!hasSub) {\n            _this._hide();\n          }\n        });\n      }\n\n      if (!this.options.disableHover) {\n        this.$menuItems.on('mouseenter.zf.dropdownmenu', function (e) {\n          var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n              hasSub = $elem.hasClass(parClass);\n\n          if (hasSub) {\n            clearTimeout($elem.data('_delay'));\n            $elem.data('_delay', setTimeout(function () {\n              _this._show($elem.children('.is-dropdown-submenu'));\n            }, _this.options.hoverDelay));\n          }\n        }).on('mouseleave.zf.dropdownMenu', Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"ignoreMousedisappear\"])(function (e) {\n          var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n              hasSub = $elem.hasClass(parClass);\n\n          if (hasSub && _this.options.autoclose) {\n            if ($elem.attr('data-is-click') === 'true' && _this.options.clickOpen) {\n              return false;\n            }\n\n            clearTimeout($elem.data('_delay'));\n            $elem.data('_delay', setTimeout(function () {\n              _this._hide($elem);\n            }, _this.options.closingTime));\n          }\n        }));\n      }\n\n      this.$menuItems.on('keydown.zf.dropdownmenu', function (e) {\n        var $element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target).parentsUntil('ul', '[role=\"menuitem\"]'),\n            isTab = _this.$tabs.index($element) > -1,\n            $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),\n            $prevElement,\n            $nextElement;\n        $elements.each(function (i) {\n          if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is($element)) {\n            $prevElement = $elements.eq(i - 1);\n            $nextElement = $elements.eq(i + 1);\n            return;\n          }\n        });\n\n        var nextSibling = function nextSibling() {\n          $nextElement.children('a:first').focus();\n          e.preventDefault();\n        },\n            prevSibling = function prevSibling() {\n          $prevElement.children('a:first').focus();\n          e.preventDefault();\n        },\n            openSub = function openSub() {\n          var $sub = $element.children('ul.is-dropdown-submenu');\n\n          if ($sub.length) {\n            _this._show($sub);\n\n            $element.find('li > a:first').focus();\n            e.preventDefault();\n          } else {\n            return;\n          }\n        },\n            closeSub = function closeSub() {\n          //if ($element.is(':first-child')) {\n          var close = $element.parent('ul').parent('li');\n          close.children('a:first').focus();\n\n          _this._hide(close);\n\n          e.preventDefault(); //}\n        };\n\n        var functions = {\n          open: openSub,\n          close: function close() {\n            _this._hide(_this.$element);\n\n            _this.$menuItems.eq(0).children('a').focus(); // focus to first element\n\n\n            e.preventDefault();\n          },\n          handled: function handled() {\n            e.stopImmediatePropagation();\n          }\n        };\n\n        if (isTab) {\n          if (_this._isVertical()) {\n            // vertical menu\n            if (_this._isRtl()) {\n              // right aligned\n              jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend(functions, {\n                down: nextSibling,\n                up: prevSibling,\n                next: closeSub,\n                previous: openSub\n              });\n            } else {\n              // left aligned\n              jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend(functions, {\n                down: nextSibling,\n                up: prevSibling,\n                next: openSub,\n                previous: closeSub\n              });\n            }\n          } else {\n            // horizontal menu\n            if (_this._isRtl()) {\n              // right aligned\n              jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend(functions, {\n                next: prevSibling,\n                previous: nextSibling,\n                down: openSub,\n                up: closeSub\n              });\n            } else {\n              // left aligned\n              jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend(functions, {\n                next: nextSibling,\n                previous: prevSibling,\n                down: openSub,\n                up: closeSub\n              });\n            }\n          }\n        } else {\n          // not tabs -> one sub\n          if (_this._isRtl()) {\n            // right aligned\n            jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend(functions, {\n              next: closeSub,\n              previous: openSub,\n              down: nextSibling,\n              up: prevSibling\n            });\n          } else {\n            // left aligned\n            jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend(functions, {\n              next: openSub,\n              previous: closeSub,\n              down: nextSibling,\n              up: prevSibling\n            });\n          }\n        }\n\n        _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_3__[\"Keyboard\"].handleKey(e, 'DropdownMenu', functions);\n      });\n    }\n    /**\n     * Adds an event handler to the body to close any dropdowns on a click.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_addBodyHandler\",\n    value: function _addBodyHandler() {\n      var $body = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body),\n          _this = this;\n\n      $body.off('mouseup.zf.dropdownmenu touchend.zf.dropdownmenu').on('mouseup.zf.dropdownmenu touchend.zf.dropdownmenu', function (e) {\n        var $link = _this.$element.find(e.target);\n\n        if ($link.length) {\n          return;\n        }\n\n        _this._hide();\n\n        $body.off('mouseup.zf.dropdownmenu touchend.zf.dropdownmenu');\n      });\n    }\n    /**\n     * Opens a dropdown pane, and checks for collisions first.\n     * @param {jQuery} $sub - ul element that is a submenu to show\n     * @function\n     * @private\n     * @fires Dropdownmenu#show\n     */\n\n  }, {\n    key: \"_show\",\n    value: function _show($sub) {\n      var idx = this.$tabs.index(this.$tabs.filter(function (i, el) {\n        return jquery__WEBPACK_IMPORTED_MODULE_0___default()(el).find($sub).length > 0;\n      }));\n      var $sibs = $sub.parent('li.is-dropdown-submenu-parent').siblings('li.is-dropdown-submenu-parent');\n\n      this._hide($sibs, idx);\n\n      $sub.css('visibility', 'hidden').addClass('js-dropdown-active').parent('li.is-dropdown-submenu-parent').addClass('is-active');\n      var clear = _foundation_util_box__WEBPACK_IMPORTED_MODULE_5__[\"Box\"].ImNotTouchingYou($sub, null, true);\n\n      if (!clear) {\n        var oldClass = this.options.alignment === 'left' ? '-right' : '-left',\n            $parentLi = $sub.parent('.is-dropdown-submenu-parent');\n        $parentLi.removeClass(\"opens\".concat(oldClass)).addClass(\"opens-\".concat(this.options.alignment));\n        clear = _foundation_util_box__WEBPACK_IMPORTED_MODULE_5__[\"Box\"].ImNotTouchingYou($sub, null, true);\n\n        if (!clear) {\n          $parentLi.removeClass(\"opens-\".concat(this.options.alignment)).addClass('opens-inner');\n        }\n\n        this.changed = true;\n      }\n\n      $sub.css('visibility', '');\n\n      if (this.options.closeOnClick) {\n        this._addBodyHandler();\n      }\n      /**\n       * Fires when the new dropdown pane is visible.\n       * @event Dropdownmenu#show\n       */\n\n\n      this.$element.trigger('show.zf.dropdownmenu', [$sub]);\n    }\n    /**\n     * Hides a single, currently open dropdown pane, if passed a parameter, otherwise, hides everything.\n     * @function\n     * @param {jQuery} $elem - element with a submenu to hide\n     * @param {Number} idx - index of the $tabs collection to hide\n     * @private\n     */\n\n  }, {\n    key: \"_hide\",\n    value: function _hide($elem, idx) {\n      var $toClose;\n\n      if ($elem && $elem.length) {\n        $toClose = $elem;\n      } else if (typeof idx !== 'undefined') {\n        $toClose = this.$tabs.not(function (i, el) {\n          return i === idx;\n        });\n      } else {\n        $toClose = this.$element;\n      }\n\n      var somethingToClose = $toClose.hasClass('is-active') || $toClose.find('.is-active').length > 0;\n\n      if (somethingToClose) {\n        $toClose.find('li.is-active').add($toClose).attr({\n          'data-is-click': false\n        }).removeClass('is-active');\n        $toClose.find('ul.js-dropdown-active').removeClass('js-dropdown-active');\n\n        if (this.changed || $toClose.find('opens-inner').length) {\n          var oldClass = this.options.alignment === 'left' ? 'right' : 'left';\n          $toClose.find('li.is-dropdown-submenu-parent').add($toClose).removeClass(\"opens-inner opens-\".concat(this.options.alignment)).addClass(\"opens-\".concat(oldClass));\n          this.changed = false;\n        }\n        /**\n         * Fires when the open menus are closed.\n         * @event Dropdownmenu#hide\n         */\n\n\n        this.$element.trigger('hide.zf.dropdownmenu', [$toClose]);\n      }\n    }\n    /**\n     * Destroys the plugin.\n     * @function\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.$menuItems.off('.zf.dropdownmenu').removeAttr('data-is-click').removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).off('.zf.dropdownmenu');\n      _foundation_util_nest__WEBPACK_IMPORTED_MODULE_4__[\"Nest\"].Burn(this.$element, 'dropdown');\n    }\n  }]);\n\n  return DropdownMenu;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"Plugin\"]);\n/**\n * Default settings for plugin\n */\n\n\nDropdownMenu.defaults = {\n  /**\n   * Disallows hover events from opening submenus\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n\n  /**\n   * Allow a submenu to automatically close on a mouseleave event, if not clicked open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoclose: true,\n\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  hoverDelay: 50,\n\n  /**\n   * Allow a submenu to open/remain open on parent click event. Allows cursor to move away from menu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  clickOpen: false,\n\n  /**\n   * Amount of time to delay closing a submenu on a mouseleave event.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  closingTime: 500,\n\n  /**\n   * Position of the menu relative to what direction the submenus should open. Handled by JS. Can be `'auto'`, `'left'` or `'right'`.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n\n  /**\n   * Allow clicks on the body to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n\n  /**\n   * Allow clicks on leaf anchor links to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClickInside: true,\n\n  /**\n   * Class applied to vertical oriented menus, Foundation default is `vertical`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'vertical'\n   */\n  verticalClass: 'vertical',\n\n  /**\n   * Class applied to right-side oriented menus, Foundation default is `align-right`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'align-right'\n   */\n  rightClass: 'align-right',\n\n  /**\n   * Boolean to force overide the clicking of links to perform default action, on second touch event for mobile.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\n\n//# sourceURL=webpack:///./js/foundation.dropdownMenu.js?")},"./js/foundation.equalizer.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Equalizer\", function() { return Equalizer; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ \"./js/foundation.util.mediaQuery.js\");\n/* harmony import */ var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.imageLoader */ \"./js/foundation.util.imageLoader.js\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./js/foundation.core.plugin.js\");\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\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\nvar Equalizer =\n/*#__PURE__*/\nfunction (_Plugin) {\n  _inherits(Equalizer, _Plugin);\n\n  function Equalizer() {\n    _classCallCheck(this, Equalizer);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(Equalizer).apply(this, arguments));\n  }\n\n  _createClass(Equalizer, [{\n    key: \"_setup\",\n\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    value: function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Equalizer.defaults, this.$element.data(), options);\n      this.className = 'Equalizer'; // ie9 back compat\n\n      this._init();\n    }\n    /**\n     * Initializes the Equalizer plugin and calls functions to get equalizer functioning on load.\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      var eqId = this.$element.attr('data-equalizer') || '';\n      var $watched = this.$element.find(\"[data-equalizer-watch=\\\"\".concat(eqId, \"\\\"]\"));\n\n      _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"]._init();\n\n      this.$watched = $watched.length ? $watched : this.$element.find('[data-equalizer-watch]');\n      this.$element.attr('data-resize', eqId || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"])(6, 'eq'));\n      this.$element.attr('data-mutate', eqId || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"])(6, 'eq'));\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      var imgs = this.$element.find('img');\n      var tooSmall;\n\n      if (this.options.equalizeOn) {\n        tooSmall = this._checkMQ();\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));\n      } else {\n        this._events();\n      }\n\n      if (typeof tooSmall !== 'undefined' && tooSmall === false || typeof tooSmall === 'undefined') {\n        if (imgs.length) {\n          Object(_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2__[\"onImagesLoaded\"])(imgs, this._reflow.bind(this));\n        } else {\n          this._reflow();\n        }\n      }\n    }\n    /**\n     * Removes event listeners if the breakpoint is too small.\n     * @private\n     */\n\n  }, {\n    key: \"_pauseEvents\",\n    value: function _pauseEvents() {\n      this.isOn = false;\n      this.$element.off({\n        '.zf.equalizer': this._bindHandler.onPostEqualizedBound,\n        'resizeme.zf.trigger': this._bindHandler.onResizeMeBound,\n        'mutateme.zf.trigger': this._bindHandler.onResizeMeBound\n      });\n    }\n    /**\n     * function to handle $elements resizeme.zf.trigger, with bound this on _bindHandler.onResizeMeBound\n     * @private\n     */\n\n  }, {\n    key: \"_onResizeMe\",\n    value: function _onResizeMe(e) {\n      this._reflow();\n    }\n    /**\n     * function to handle $elements postequalized.zf.equalizer, with bound this on _bindHandler.onPostEqualizedBound\n     * @private\n     */\n\n  }, {\n    key: \"_onPostEqualized\",\n    value: function _onPostEqualized(e) {\n      if (e.target !== this.$element[0]) {\n        this._reflow();\n      }\n    }\n    /**\n     * Initializes events for Equalizer.\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      var _this = this;\n\n      this._pauseEvents();\n\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        this.$element.on('mutateme.zf.trigger', this._bindHandler.onResizeMeBound);\n      }\n\n      this.isOn = true;\n    }\n    /**\n     * Checks the current breakpoint to the minimum required size.\n     * @private\n     */\n\n  }, {\n    key: \"_checkMQ\",\n    value: function _checkMQ() {\n      var tooSmall = !_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"].is(this.options.equalizeOn);\n\n      if (tooSmall) {\n        if (this.isOn) {\n          this._pauseEvents();\n\n          this.$watched.css('height', 'auto');\n        }\n      } else {\n        if (!this.isOn) {\n          this._events();\n        }\n      }\n\n      return tooSmall;\n    }\n    /**\n     * A noop version for the plugin\n     * @private\n     */\n\n  }, {\n    key: \"_killswitch\",\n    value: function _killswitch() {\n      return;\n    }\n    /**\n     * Calls necessary functions to update Equalizer upon DOM change\n     * @private\n     */\n\n  }, {\n    key: \"_reflow\",\n    value: function _reflow() {\n      if (!this.options.equalizeOnStack) {\n        if (this._isStacked()) {\n          this.$watched.css('height', 'auto');\n          return false;\n        }\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     * Manually determines if the first 2 elements are *NOT* stacked.\n     * @private\n     */\n\n  }, {\n    key: \"_isStacked\",\n    value: function _isStacked() {\n      if (!this.$watched[0] || !this.$watched[1]) {\n        return true;\n      }\n\n      return this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top;\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\n  }, {\n    key: \"getHeights\",\n    value: function getHeights(cb) {\n      var heights = [];\n\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\n      cb(heights);\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\n  }, {\n    key: \"getHeightsByRow\",\n    value: function getHeightsByRow(cb) {\n      var lastElTopOffset = this.$watched.length ? this.$watched.first().offset().top : 0,\n          groups = [],\n          group = 0; //group by Row\n\n      groups[group] = [];\n\n      for (var i = 0, len = this.$watched.length; i < len; i++) {\n        this.$watched[i].style.height = 'auto'; //maybe could use this.$watched[i].offsetTop\n\n        var elOffsetTop = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.$watched[i]).offset().top;\n\n        if (elOffsetTop != lastElTopOffset) {\n          group++;\n          groups[group] = [];\n          lastElTopOffset = elOffsetTop;\n        }\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 = jquery__WEBPACK_IMPORTED_MODULE_0___default()(groups[j]).map(function () {\n          return this[1];\n        }).get();\n        var max = Math.max.apply(null, heights);\n        groups[j].push(max);\n      }\n\n      cb(groups);\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\n  }, {\n    key: \"applyHeight\",\n    value: function applyHeight(heights) {\n      var max = Math.max.apply(null, heights);\n      /**\n       * Fires before the heights are applied\n       * @event Equalizer#preequalized\n       */\n\n      this.$element.trigger('preequalized.zf.equalizer');\n      this.$watched.css('height', max);\n      /**\n       * Fires when the heights have been applied\n       * @event Equalizer#postequalized\n       */\n\n      this.$element.trigger('postequalized.zf.equalizer');\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\n  }, {\n    key: \"applyHeightByRow\",\n    value: function applyHeightByRow(groups) {\n      /**\n       * Fires before the heights are applied\n       */\n      this.$element.trigger('preequalized.zf.equalizer');\n\n      for (var i = 0, len = groups.length; i < len; i++) {\n        var groupsILength = groups[i].length,\n            max = groups[i][groupsILength - 1];\n\n        if (groupsILength <= 2) {\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()(groups[i][0][0]).css({\n            'height': 'auto'\n          });\n          continue;\n        }\n        /**\n          * Fires before the heights per row are applied\n          * @event Equalizer#preequalizedrow\n          */\n\n\n        this.$element.trigger('preequalizedrow.zf.equalizer');\n\n        for (var j = 0, lenJ = groupsILength - 1; j < lenJ; j++) {\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()(groups[i][j][0]).css({\n            'height': max\n          });\n        }\n        /**\n          * Fires when the heights per row have been applied\n          * @event Equalizer#postequalizedrow\n          */\n\n\n        this.$element.trigger('postequalizedrow.zf.equalizer');\n      }\n      /**\n       * Fires when the heights have been applied\n       */\n\n\n      this.$element.trigger('postequalized.zf.equalizer');\n    }\n    /**\n     * Destroys an instance of Equalizer.\n     * @function\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this._pauseEvents();\n\n      this.$watched.css('height', 'auto');\n    }\n  }]);\n\n  return Equalizer;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_4__[\"Plugin\"]);\n/**\n * Default settings for plugin\n */\n\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  /**\n   * Enable height equalization row by row.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeByRow: false,\n\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\n\n//# sourceURL=webpack:///./js/foundation.equalizer.js?")},"./js/foundation.magellan.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Magellan\", function() { return Magellan; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./js/foundation.core.plugin.js\");\n/* harmony import */ var _foundation_smoothScroll__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.smoothScroll */ \"./js/foundation.smoothScroll.js\");\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n/**\n * Magellan module.\n * @module foundation.magellan\n * @requires foundation.smoothScroll\n */\n\nvar Magellan =\n/*#__PURE__*/\nfunction (_Plugin) {\n  _inherits(Magellan, _Plugin);\n\n  function Magellan() {\n    _classCallCheck(this, Magellan);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(Magellan).apply(this, arguments));\n  }\n\n  _createClass(Magellan, [{\n    key: \"_setup\",\n\n    /**\n     * Creates a new instance of Magellan.\n     * @class\n     * @name Magellan\n     * @fires Magellan#init\n     * @param {Object} element - jQuery object to add the trigger to.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    value: function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Magellan.defaults, this.$element.data(), options);\n      this.className = 'Magellan'; // ie9 back compat\n\n      this._init();\n\n      this.calcPoints();\n    }\n    /**\n     * Initializes the Magellan plugin and calls functions to get equalizer functioning on load.\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      var id = this.$element[0].id || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"GetYoDigits\"])(6, 'magellan');\n\n      var _this = this;\n\n      this.$targets = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-magellan-target]');\n      this.$links = this.$element.find('a');\n      this.$element.attr({\n        'data-resize': id,\n        'data-scroll': id,\n        'id': id\n      });\n      this.$active = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n      this.scrollPos = parseInt(window.pageYOffset, 10);\n\n      this._events();\n    }\n    /**\n     * Calculates an array of pixel values that are the demarcation lines between locations on the page.\n     * Can be invoked if new elements are added or the size of a location changes.\n     * @function\n     */\n\n  }, {\n    key: \"calcPoints\",\n    value: function calcPoints() {\n      var _this = this,\n          body = document.body,\n          html = document.documentElement;\n\n      this.points = [];\n      this.winHeight = Math.round(Math.max(window.innerHeight, html.clientHeight));\n      this.docHeight = Math.round(Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight));\n      this.$targets.each(function () {\n        var $tar = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n            pt = Math.round($tar.offset().top - _this.options.threshold);\n        $tar.targetPoint = pt;\n\n        _this.points.push(pt);\n      });\n    }\n    /**\n     * Initializes events for Magellan.\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      var _this = this,\n          $body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('html, body'),\n          opts = {\n        duration: _this.options.animationDuration,\n        easing: _this.options.animationEasing\n      };\n\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).one('load', function () {\n        if (_this.options.deepLinking) {\n          if (location.hash) {\n            _this.scrollToLoc(location.hash);\n          }\n        }\n\n        _this.calcPoints();\n\n        _this._updateActive();\n      });\n      _this.onLoadListener = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n        _this.$element.on({\n          'resizeme.zf.trigger': _this.reflow.bind(_this),\n          'scrollme.zf.trigger': _this._updateActive.bind(_this)\n        }).on('click.zf.magellan', 'a[href^=\"#\"]', function (e) {\n          e.preventDefault();\n          var arrival = this.getAttribute('href');\n\n          _this.scrollToLoc(arrival);\n        });\n      });\n\n      this._deepLinkScroll = function (e) {\n        if (_this.options.deepLinking) {\n          _this.scrollToLoc(window.location.hash);\n        }\n      };\n\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('hashchange', this._deepLinkScroll);\n    }\n    /**\n     * Function to scroll to a given location on the page.\n     * @param {String} loc - a properly formatted jQuery id selector. Example: '#foo'\n     * @function\n     */\n\n  }, {\n    key: \"scrollToLoc\",\n    value: function scrollToLoc(loc) {\n      this._inTransition = true;\n\n      var _this = this;\n\n      var options = {\n        animationEasing: this.options.animationEasing,\n        animationDuration: this.options.animationDuration,\n        threshold: this.options.threshold,\n        offset: this.options.offset\n      };\n      _foundation_smoothScroll__WEBPACK_IMPORTED_MODULE_3__[\"SmoothScroll\"].scrollToLoc(loc, options, function () {\n        _this._inTransition = false;\n      });\n    }\n    /**\n     * Calls necessary functions to update Magellan upon DOM change\n     * @function\n     */\n\n  }, {\n    key: \"reflow\",\n    value: function reflow() {\n      this.calcPoints();\n\n      this._updateActive();\n    }\n    /**\n     * Updates the visibility of an active location link, and updates the url hash for the page, if deepLinking enabled.\n     * @private\n     * @function\n     * @fires Magellan#update\n     */\n\n  }, {\n    key: \"_updateActive\",\n    value: function _updateActive()\n    /*evt, elem, scrollPos*/\n    {\n      var _this2 = this;\n\n      if (this._inTransition) return;\n      var newScrollPos = parseInt(window.pageYOffset, 10);\n      var isScrollingUp = this.scrollPos > newScrollPos;\n      this.scrollPos = newScrollPos;\n      var activeIdx; // Before the first point: no link\n\n      if (newScrollPos < this.points[0]) {}\n      /* do nothing */\n      // At the bottom of the page: last link\n      else if (newScrollPos + this.winHeight === this.docHeight) {\n          activeIdx = this.points.length - 1;\n        } // Otherwhise, use the last visible link\n        else {\n            var visibleLinks = this.points.filter(function (p, i) {\n              return p - _this2.options.offset - (isScrollingUp ? _this2.options.threshold : 0) <= newScrollPos;\n            });\n            activeIdx = visibleLinks.length ? visibleLinks.length - 1 : 0;\n          } // Get the new active link\n\n\n      var $oldActive = this.$active;\n      var activeHash = '';\n\n      if (typeof activeIdx !== 'undefined') {\n        this.$active = this.$links.filter('[href=\"#' + this.$targets.eq(activeIdx).data('magellan-target') + '\"]');\n        if (this.$active.length) activeHash = this.$active[0].getAttribute('href');\n      } else {\n        this.$active = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n      }\n\n      var isNewActive = !(!this.$active.length && !$oldActive.length) && !this.$active.is($oldActive);\n      var isNewHash = activeHash !== window.location.hash; // Update the active link element\n\n      if (isNewActive) {\n        $oldActive.removeClass(this.options.activeClass);\n        this.$active.addClass(this.options.activeClass);\n      } // Update the hash (it may have changed with the same active link)\n\n\n      if (this.options.deepLinking && isNewHash) {\n        if (window.history.pushState) {\n          // Set or remove the hash (see: https://stackoverflow.com/a/5298684/4317384\n          var url = activeHash ? activeHash : window.location.pathname + window.location.search;\n          window.history.pushState(null, null, url);\n        } else {\n          window.location.hash = activeHash;\n        }\n      }\n\n      if (isNewActive) {\n        /**\n         * Fires when magellan is finished updating to the new active element.\n         * @event Magellan#update\n         */\n        this.$element.trigger('update.zf.magellan', [this.$active]);\n      }\n    }\n    /**\n     * Destroys an instance of Magellan and resets the url of the window.\n     * @function\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.$element.off('.zf.trigger .zf.magellan').find(\".\".concat(this.options.activeClass)).removeClass(this.options.activeClass);\n\n      if (this.options.deepLinking) {\n        var hash = this.$active[0].getAttribute('href');\n        window.location.hash.replace(hash, '');\n      }\n\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('hashchange', this._deepLinkScroll);\n      if (this.onLoadListener) jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(this.onLoadListener);\n    }\n  }]);\n\n  return Magellan;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__[\"Plugin\"]);\n/**\n * Default settings for plugin\n */\n\n\nMagellan.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n\n  /**\n   * Class applied to the active locations link on the magellan container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  activeClass: 'is-active',\n\n  /**\n   * Allows the script to manipulate the url of the current page, and if supported, alter the history.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinking: false,\n\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n};\n\n\n//# sourceURL=webpack:///./js/foundation.magellan.js?")},"./js/foundation.offcanvas.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OffCanvas\", function() { return OffCanvas; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./js/foundation.util.keyboard.js\");\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ \"./js/foundation.util.mediaQuery.js\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./js/foundation.core.plugin.js\");\n/* harmony import */ var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./foundation.util.triggers */ \"./js/foundation.util.triggers.js\");\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n\n/**\n * OffCanvas module.\n * @module foundation.offcanvas\n * @requires foundation.util.keyboard\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nvar OffCanvas =\n/*#__PURE__*/\nfunction (_Plugin) {\n  _inherits(OffCanvas, _Plugin);\n\n  function OffCanvas() {\n    _classCallCheck(this, OffCanvas);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(OffCanvas).apply(this, arguments));\n  }\n\n  _createClass(OffCanvas, [{\n    key: \"_setup\",\n\n    /**\n     * Creates a new instance of an off-canvas wrapper.\n     * @class\n     * @name OffCanvas\n     * @fires OffCanvas#init\n     * @param {Object} element - jQuery object to initialize.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    value: function _setup(element, options) {\n      var _this2 = this;\n\n      this.className = 'OffCanvas'; // ie9 back compat\n\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, OffCanvas.defaults, this.$element.data(), options);\n      this.contentClasses = {\n        base: [],\n        reveal: []\n      };\n      this.$lastTrigger = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n      this.$triggers = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n      this.position = 'left';\n      this.$content = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n      this.nested = !!this.options.nested; // Defines the CSS transition/position classes of the off-canvas content container.\n\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(['push', 'overlap']).each(function (index, val) {\n        _this2.contentClasses.base.push('has-transition-' + val);\n      });\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(['left', 'right', 'top', 'bottom']).each(function (index, val) {\n        _this2.contentClasses.base.push('has-position-' + val);\n\n        _this2.contentClasses.reveal.push('has-reveal-' + val);\n      }); // Triggers init is idempotent, just need to make sure it is initialized\n\n      _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_5__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n      _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__[\"MediaQuery\"]._init();\n\n      this._init();\n\n      this._events();\n\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].register('OffCanvas', {\n        'ESCAPE': 'close'\n      });\n    }\n    /**\n     * Initializes the off-canvas wrapper by adding the exit overlay (if needed).\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      var id = this.$element.attr('id');\n      this.$element.attr('aria-hidden', 'true'); // Find off-canvas content, either by ID (if specified), by siblings or by closest selector (fallback)\n\n      if (this.options.contentId) {\n        this.$content = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#' + this.options.contentId);\n      } else if (this.$element.siblings('[data-off-canvas-content]').length) {\n        this.$content = this.$element.siblings('[data-off-canvas-content]').first();\n      } else {\n        this.$content = this.$element.closest('[data-off-canvas-content]').first();\n      }\n\n      if (!this.options.contentId) {\n        // Assume that the off-canvas element is nested if it isn't a sibling of the content\n        this.nested = this.$element.siblings('[data-off-canvas-content]').length === 0;\n      } else if (this.options.contentId && this.options.nested === null) {\n        // Warning if using content ID without setting the nested option\n        // Once the element is nested it is required to work properly in this case\n        console.warn('Remember to use the nested option if using the content ID option!');\n      }\n\n      if (this.nested === true) {\n        // Force transition overlap if nested\n        this.options.transition = 'overlap'; // Remove appropriate classes if already assigned in markup\n\n        this.$element.removeClass('is-transition-push');\n      }\n\n      this.$element.addClass(\"is-transition-\".concat(this.options.transition, \" is-closed\")); // Find triggers that affect this element and add aria-expanded to them\n\n      this.$triggers = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).find('[data-open=\"' + id + '\"], [data-close=\"' + id + '\"], [data-toggle=\"' + id + '\"]').attr('aria-expanded', 'false').attr('aria-controls', id); // Get position by checking for related CSS class\n\n      this.position = this.$element.is('.position-left, .position-top, .position-right, .position-bottom') ? this.$element.attr('class').match(/position\\-(left|top|right|bottom)/)[1] : this.position; // Add an overlay over the content if necessary\n\n      if (this.options.contentOverlay === true) {\n        var overlay = document.createElement('div');\n        var overlayPosition = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.$element).css(\"position\") === 'fixed' ? 'is-overlay-fixed' : 'is-overlay-absolute';\n        overlay.setAttribute('class', 'js-off-canvas-overlay ' + overlayPosition);\n        this.$overlay = jquery__WEBPACK_IMPORTED_MODULE_0___default()(overlay);\n\n        if (overlayPosition === 'is-overlay-fixed') {\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.$overlay).insertAfter(this.$element);\n        } else {\n          this.$content.append(this.$overlay);\n        }\n      } // Get the revealOn option from the class.\n\n\n      var revealOnRegExp = new RegExp(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"RegExpEscape\"])(this.options.revealClass) + '([^\\\\s]+)', 'g');\n      var revealOnClass = revealOnRegExp.exec(this.$element[0].className);\n\n      if (revealOnClass) {\n        this.options.isRevealed = true;\n        this.options.revealOn = this.options.revealOn || revealOnClass[1];\n      } // Ensure the `reveal-on-*` class is set.\n\n\n      if (this.options.isRevealed === true && this.options.revealOn) {\n        this.$element.first().addClass(\"\".concat(this.options.revealClass).concat(this.options.revealOn));\n\n        this._setMQChecker();\n      }\n\n      if (this.options.transitionTime) {\n        this.$element.css('transition-duration', this.options.transitionTime);\n      } // Initally remove all transition/position CSS classes from off-canvas content container.\n\n\n      this._removeContentClasses();\n    }\n    /**\n     * Adds event handlers to the off-canvas wrapper and the exit overlay.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      this.$element.off('.zf.trigger .zf.offcanvas').on({\n        'open.zf.trigger': this.open.bind(this),\n        'close.zf.trigger': this.close.bind(this),\n        'toggle.zf.trigger': this.toggle.bind(this),\n        'keydown.zf.offcanvas': this._handleKeyboard.bind(this)\n      });\n\n      if (this.options.closeOnClick === true) {\n        var $target = this.options.contentOverlay ? this.$overlay : this.$content;\n        $target.on({\n          'click.zf.offcanvas': this.close.bind(this)\n        });\n      }\n    }\n    /**\n     * Applies event listener for elements that will reveal at certain breakpoints.\n     * @private\n     */\n\n  }, {\n    key: \"_setMQChecker\",\n    value: function _setMQChecker() {\n      var _this = this;\n\n      this.onLoadListener = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n        if (_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__[\"MediaQuery\"].atLeast(_this.options.revealOn)) {\n          _this.reveal(true);\n        }\n      });\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('changed.zf.mediaquery', function () {\n        if (_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__[\"MediaQuery\"].atLeast(_this.options.revealOn)) {\n          _this.reveal(true);\n        } else {\n          _this.reveal(false);\n        }\n      });\n    }\n    /**\n     * Removes the CSS transition/position classes of the off-canvas content container.\n     * Removing the classes is important when another off-canvas gets opened that uses the same content container.\n     * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n     * @private\n     */\n\n  }, {\n    key: \"_removeContentClasses\",\n    value: function _removeContentClasses(hasReveal) {\n      if (typeof hasReveal !== 'boolean') {\n        this.$content.removeClass(this.contentClasses.base.join(' '));\n      } else if (hasReveal === false) {\n        this.$content.removeClass(\"has-reveal-\".concat(this.position));\n      }\n    }\n    /**\n     * Adds the CSS transition/position classes of the off-canvas content container, based on the opening off-canvas element.\n     * Beforehand any transition/position class gets removed.\n     * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n     * @private\n     */\n\n  }, {\n    key: \"_addContentClasses\",\n    value: function _addContentClasses(hasReveal) {\n      this._removeContentClasses(hasReveal);\n\n      if (typeof hasReveal !== 'boolean') {\n        this.$content.addClass(\"has-transition-\".concat(this.options.transition, \" has-position-\").concat(this.position));\n      } else if (hasReveal === true) {\n        this.$content.addClass(\"has-reveal-\".concat(this.position));\n      }\n    }\n    /**\n     * Handles the revealing/hiding the off-canvas at breakpoints, not the same as open.\n     * @param {Boolean} isRevealed - true if element should be revealed.\n     * @function\n     */\n\n  }, {\n    key: \"reveal\",\n    value: function reveal(isRevealed) {\n      if (isRevealed) {\n        this.close();\n        this.isRevealed = true;\n        this.$element.attr('aria-hidden', 'false');\n        this.$element.off('open.zf.trigger toggle.zf.trigger');\n        this.$element.removeClass('is-closed');\n      } else {\n        this.isRevealed = false;\n        this.$element.attr('aria-hidden', 'true');\n        this.$element.off('open.zf.trigger toggle.zf.trigger').on({\n          'open.zf.trigger': this.open.bind(this),\n          'toggle.zf.trigger': this.toggle.bind(this)\n        });\n        this.$element.addClass('is-closed');\n      }\n\n      this._addContentClasses(isRevealed);\n    }\n    /**\n     * Stops scrolling of the body when offcanvas is open on mobile Safari and other troublesome browsers.\n     * @private\n     */\n\n  }, {\n    key: \"_stopScrolling\",\n    value: function _stopScrolling(event) {\n      return false;\n    } // Taken and adapted from http://stackoverflow.com/questions/16889447/prevent-full-page-scrolling-ios\n    // Only really works for y, not sure how to extend to x or if we need to.\n\n  }, {\n    key: \"_recordScrollable\",\n    value: function _recordScrollable(event) {\n      var elem = this; // called from event handler context with this as elem\n      // If the element is scrollable (content overflows), then...\n\n      if (elem.scrollHeight !== elem.clientHeight) {\n        // If we're at the top, scroll down one pixel to allow scrolling up\n        if (elem.scrollTop === 0) {\n          elem.scrollTop = 1;\n        } // If we're at the bottom, scroll up one pixel to allow scrolling down\n\n\n        if (elem.scrollTop === elem.scrollHeight - elem.clientHeight) {\n          elem.scrollTop = elem.scrollHeight - elem.clientHeight - 1;\n        }\n      }\n\n      elem.allowUp = elem.scrollTop > 0;\n      elem.allowDown = elem.scrollTop < elem.scrollHeight - elem.clientHeight;\n      elem.lastY = event.originalEvent.pageY;\n    }\n  }, {\n    key: \"_stopScrollPropagation\",\n    value: function _stopScrollPropagation(event) {\n      var elem = this; // called from event handler context with this as elem\n\n      var up = event.pageY < elem.lastY;\n      var down = !up;\n      elem.lastY = event.pageY;\n\n      if (up && elem.allowUp || down && elem.allowDown) {\n        event.stopPropagation();\n      } else {\n        event.preventDefault();\n      }\n    }\n    /**\n     * Opens the off-canvas menu.\n     * @function\n     * @param {Object} event - Event object passed from listener.\n     * @param {jQuery} trigger - element that triggered the off-canvas to open.\n     * @fires Offcanvas#opened\n     * @todo also trigger 'open' event?\n     */\n\n  }, {\n    key: \"open\",\n    value: function open(event, trigger) {\n      if (this.$element.hasClass('is-open') || this.isRevealed) {\n        return;\n      }\n\n      var _this = this;\n\n      if (trigger) {\n        this.$lastTrigger = trigger;\n      }\n\n      if (this.options.forceTo === 'top') {\n        window.scrollTo(0, 0);\n      } else if (this.options.forceTo === 'bottom') {\n        window.scrollTo(0, document.body.scrollHeight);\n      }\n\n      if (this.options.transitionTime && this.options.transition !== 'overlap') {\n        this.$element.siblings('[data-off-canvas-content]').css('transition-duration', this.options.transitionTime);\n      } else {\n        this.$element.siblings('[data-off-canvas-content]').css('transition-duration', '');\n      }\n\n      this.$element.addClass('is-open').removeClass('is-closed');\n      this.$triggers.attr('aria-expanded', 'true');\n      this.$element.attr('aria-hidden', 'false');\n      this.$content.addClass('is-open-' + this.position); // If `contentScroll` is set to false, add class and disable scrolling on touch devices.\n\n      if (this.options.contentScroll === false) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').addClass('is-off-canvas-open').on('touchmove', this._stopScrolling);\n        this.$element.on('touchstart', this._recordScrollable);\n        this.$element.on('touchmove', this._stopScrollPropagation);\n      }\n\n      if (this.options.contentOverlay === true) {\n        this.$overlay.addClass('is-visible');\n      }\n\n      if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n        this.$overlay.addClass('is-closable');\n      }\n\n      if (this.options.autoFocus === true) {\n        this.$element.one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"transitionend\"])(this.$element), function () {\n          if (!_this.$element.hasClass('is-open')) {\n            return; // exit if prematurely closed\n          }\n\n          var canvasFocus = _this.$element.find('[data-autofocus]');\n\n          if (canvasFocus.length) {\n            canvasFocus.eq(0).focus();\n          } else {\n            _this.$element.find('a, button').eq(0).focus();\n          }\n        });\n      }\n\n      if (this.options.trapFocus === true) {\n        this.$content.attr('tabindex', '-1');\n        _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].trapFocus(this.$element);\n      }\n\n      this._addContentClasses();\n      /**\n       * Fires when the off-canvas menu opens.\n       * @event Offcanvas#opened\n       */\n\n\n      this.$element.trigger('opened.zf.offcanvas');\n    }\n    /**\n     * Closes the off-canvas menu.\n     * @function\n     * @param {Function} cb - optional cb to fire after closure.\n     * @fires Offcanvas#closed\n     */\n\n  }, {\n    key: \"close\",\n    value: function close(cb) {\n      if (!this.$element.hasClass('is-open') || this.isRevealed) {\n        return;\n      }\n\n      var _this = this;\n\n      this.$element.removeClass('is-open');\n      this.$element.attr('aria-hidden', 'true')\n      /**\n       * Fires when the off-canvas menu opens.\n       * @event Offcanvas#closed\n       */\n      .trigger('closed.zf.offcanvas');\n      this.$content.removeClass('is-open-left is-open-top is-open-right is-open-bottom'); // If `contentScroll` is set to false, remove class and re-enable scrolling on touch devices.\n\n      if (this.options.contentScroll === false) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').removeClass('is-off-canvas-open').off('touchmove', this._stopScrolling);\n        this.$element.off('touchstart', this._recordScrollable);\n        this.$element.off('touchmove', this._stopScrollPropagation);\n      }\n\n      if (this.options.contentOverlay === true) {\n        this.$overlay.removeClass('is-visible');\n      }\n\n      if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n        this.$overlay.removeClass('is-closable');\n      }\n\n      this.$triggers.attr('aria-expanded', 'false');\n\n      if (this.options.trapFocus === true) {\n        this.$content.removeAttr('tabindex');\n        _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].releaseFocus(this.$element);\n      } // Listen to transitionEnd and add class when done.\n\n\n      this.$element.one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"transitionend\"])(this.$element), function (e) {\n        _this.$element.addClass('is-closed');\n\n        _this._removeContentClasses();\n      });\n    }\n    /**\n     * Toggles the off-canvas menu open or closed.\n     * @function\n     * @param {Object} event - Event object passed from listener.\n     * @param {jQuery} trigger - element that triggered the off-canvas to open.\n     */\n\n  }, {\n    key: \"toggle\",\n    value: function toggle(event, trigger) {\n      if (this.$element.hasClass('is-open')) {\n        this.close(event, trigger);\n      } else {\n        this.open(event, trigger);\n      }\n    }\n    /**\n     * Handles keyboard input when detected. When the escape key is pressed, the off-canvas menu closes, and focus is restored to the element that opened the menu.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_handleKeyboard\",\n    value: function _handleKeyboard(e) {\n      var _this3 = this;\n\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].handleKey(e, 'OffCanvas', {\n        close: function close() {\n          _this3.close();\n\n          _this3.$lastTrigger.focus();\n\n          return true;\n        },\n        handled: function handled() {\n          e.stopPropagation();\n          e.preventDefault();\n        }\n      });\n    }\n    /**\n     * Destroys the offcanvas plugin.\n     * @function\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.close();\n      this.$element.off('.zf.trigger .zf.offcanvas');\n      this.$overlay.off('.zf.offcanvas');\n      if (this.onLoadListener) jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(this.onLoadListener);\n    }\n  }]);\n\n  return OffCanvas;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_4__[\"Plugin\"]);\n\nOffCanvas.defaults = {\n  /**\n   * Allow the user to click outside of the menu to close it.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n\n  /**\n   * Adds an overlay on top of `[data-off-canvas-content]`.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentOverlay: true,\n\n  /**\n   * Target an off-canvas content container by ID that may be placed anywhere. If null the closest content container will be taken.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  contentId: null,\n\n  /**\n   * Define the off-canvas element is nested in an off-canvas content. This is required when using the contentId option for a nested element.\n   * @option\n   * @type {boolean}\n   * @default null\n   */\n  nested: null,\n\n  /**\n   * Enable/disable scrolling of the main content when an off canvas panel is open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentScroll: true,\n\n  /**\n   * Amount of time in ms the open and close transition requires. If none selected, pulls from body style.\n   * @option\n   * @type {number}\n   * @default null\n   */\n  transitionTime: null,\n\n  /**\n   * Type of transition for the offcanvas menu. Options are 'push', 'detached' or 'slide'.\n   * @option\n   * @type {string}\n   * @default push\n   */\n  transition: 'push',\n\n  /**\n   * Force the page to scroll to top or bottom on open.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  forceTo: null,\n\n  /**\n   * Allow the offcanvas to remain open for certain breakpoints.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  isRevealed: false,\n\n  /**\n   * Breakpoint at which to reveal. JS will use a RegExp to target standard classes, if changing classnames, pass your class with the `revealClass` option.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  revealOn: null,\n\n  /**\n   * Force focus to the offcanvas on open. If true, will focus the opening trigger on close.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoFocus: true,\n\n  /**\n   * Class used to force an offcanvas to remain open. Foundation defaults for this are `reveal-for-large` & `reveal-for-medium`.\n   * @option\n   * @type {string}\n   * @default reveal-for-\n   * @todo improve the regex testing for this.\n   */\n  revealClass: 'reveal-for-',\n\n  /**\n   * Triggers optional focus trapping when opening an offcanvas. Sets tabindex of [data-off-canvas-content] to -1 for accessibility purposes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false\n};\n\n\n//# sourceURL=webpack:///./js/foundation.offcanvas.js?")},"./js/foundation.positionable.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Positionable", function() { return Positionable; });\n/* harmony import */ var _foundation_util_box__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.util.box */ "./js/foundation.util.box.js");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.plugin */ "./js/foundation.core.plugin.js");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.core.utils */ "./js/foundation.core.utils.js");\n\n\nfunction _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\nvar POSITIONS = [\'left\', \'right\', \'top\', \'bottom\'];\nvar VERTICAL_ALIGNMENTS = [\'top\', \'bottom\', \'center\'];\nvar HORIZONTAL_ALIGNMENTS = [\'left\', \'right\', \'center\'];\nvar ALIGNMENTS = {\n  \'left\': VERTICAL_ALIGNMENTS,\n  \'right\': VERTICAL_ALIGNMENTS,\n  \'top\': HORIZONTAL_ALIGNMENTS,\n  \'bottom\': HORIZONTAL_ALIGNMENTS\n};\n\nfunction nextItem(item, array) {\n  var currentIdx = array.indexOf(item);\n\n  if (currentIdx === array.length - 1) {\n    return array[0];\n  } else {\n    return array[currentIdx + 1];\n  }\n}\n\nvar Positionable =\n/*#__PURE__*/\nfunction (_Plugin) {\n  _inherits(Positionable, _Plugin);\n\n  function Positionable() {\n    _classCallCheck(this, Positionable);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(Positionable).apply(this, arguments));\n  }\n\n  _createClass(Positionable, [{\n    key: "_init",\n\n    /**\n     * Abstract class encapsulating the tether-like explicit positioning logic\n     * including repositioning based on overlap.\n     * Expects classes to define defaults for vOffset, hOffset, position,\n     * alignment, allowOverlap, and allowBottomOverlap. They can do this by\n     * extending the defaults, or (for now recommended due to the way docs are\n     * generated) by explicitly declaring them.\n     *\n     **/\n    value: function _init() {\n      this.triedPositions = {};\n      this.position = this.options.position === \'auto\' ? this._getDefaultPosition() : this.options.position;\n      this.alignment = this.options.alignment === \'auto\' ? this._getDefaultAlignment() : this.options.alignment;\n      this.originalPosition = this.position;\n      this.originalAlignment = this.alignment;\n    }\n  }, {\n    key: "_getDefaultPosition",\n    value: function _getDefaultPosition() {\n      return \'bottom\';\n    }\n  }, {\n    key: "_getDefaultAlignment",\n    value: function _getDefaultAlignment() {\n      switch (this.position) {\n        case \'bottom\':\n        case \'top\':\n          return Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__["rtl"])() ? \'right\' : \'left\';\n\n        case \'left\':\n        case \'right\':\n          return \'bottom\';\n      }\n    }\n    /**\n     * Adjusts the positionable possible positions by iterating through alignments\n     * and positions.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: "_reposition",\n    value: function _reposition() {\n      if (this._alignmentsExhausted(this.position)) {\n        this.position = nextItem(this.position, POSITIONS);\n        this.alignment = ALIGNMENTS[this.position][0];\n      } else {\n        this._realign();\n      }\n    }\n    /**\n     * Adjusts the dropdown pane possible positions by iterating through alignments\n     * on the current position.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: "_realign",\n    value: function _realign() {\n      this._addTriedPosition(this.position, this.alignment);\n\n      this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position]);\n    }\n  }, {\n    key: "_addTriedPosition",\n    value: function _addTriedPosition(position, alignment) {\n      this.triedPositions[position] = this.triedPositions[position] || [];\n      this.triedPositions[position].push(alignment);\n    }\n  }, {\n    key: "_positionsExhausted",\n    value: function _positionsExhausted() {\n      var isExhausted = true;\n\n      for (var i = 0; i < POSITIONS.length; i++) {\n        isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);\n      }\n\n      return isExhausted;\n    }\n  }, {\n    key: "_alignmentsExhausted",\n    value: function _alignmentsExhausted(position) {\n      return this.triedPositions[position] && this.triedPositions[position].length == ALIGNMENTS[position].length;\n    } // When we\'re trying to center, we don\'t want to apply offset that\'s going to\n    // take us just off center, so wrap around to return 0 for the appropriate\n    // offset in those alignments.  TODO: Figure out if we want to make this\n    // configurable behavior... it feels more intuitive, especially for tooltips, but\n    // it\'s possible someone might actually want to start from center and then nudge\n    // slightly off.\n\n  }, {\n    key: "_getVOffset",\n    value: function _getVOffset() {\n      return this.options.vOffset;\n    }\n  }, {\n    key: "_getHOffset",\n    value: function _getHOffset() {\n      return this.options.hOffset;\n    }\n  }, {\n    key: "_setPosition",\n    value: function _setPosition($anchor, $element, $parent) {\n      if ($anchor.attr(\'aria-expanded\') === \'false\') {\n        return false;\n      }\n\n      var $eleDims = _foundation_util_box__WEBPACK_IMPORTED_MODULE_0__["Box"].GetDimensions($element),\n          $anchorDims = _foundation_util_box__WEBPACK_IMPORTED_MODULE_0__["Box"].GetDimensions($anchor);\n\n      if (!this.options.allowOverlap) {\n        // restore original position & alignment before checking overlap\n        this.position = this.originalPosition;\n        this.alignment = this.originalAlignment;\n      }\n\n      $element.offset(_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__["Box"].GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n\n      if (!this.options.allowOverlap) {\n        var overlaps = {};\n        var minOverlap = 100000000; // default coordinates to how we start, in case we can\'t figure out better\n\n        var minCoordinates = {\n          position: this.position,\n          alignment: this.alignment\n        };\n\n        while (!this._positionsExhausted()) {\n          var overlap = _foundation_util_box__WEBPACK_IMPORTED_MODULE_0__["Box"].OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);\n\n          if (overlap === 0) {\n            return;\n          }\n\n          if (overlap < minOverlap) {\n            minOverlap = overlap;\n            minCoordinates = {\n              position: this.position,\n              alignment: this.alignment\n            };\n          }\n\n          this._reposition();\n\n          $element.offset(_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__["Box"].GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n        } // If we get through the entire loop, there was no non-overlapping\n        // position available. Pick the version with least overlap.\n\n\n        this.position = minCoordinates.position;\n        this.alignment = minCoordinates.alignment;\n        $element.offset(_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__["Box"].GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n      }\n    }\n  }]);\n\n  return Positionable;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__["Plugin"]);\n\nPositionable.defaults = {\n  /**\n   * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default \'auto\'\n   */\n  position: \'auto\',\n\n  /**\n   * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default \'auto\'\n   */\n  alignment: \'auto\',\n\n  /**\n   * Allow overlap of container/window. If false, dropdown positionable first\n   * try to position as defined by data-position and data-alignment, but\n   * reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n\n  /**\n   * Number of pixels the positionable should be separated vertically from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n\n  /**\n   * Number of pixels the positionable should be separated horizontally from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0\n};\n\n\n//# sourceURL=webpack:///./js/foundation.positionable.js?')},"./js/foundation.responsiveAccordionTabs.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ResponsiveAccordionTabs\", function() { return ResponsiveAccordionTabs; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ \"./js/foundation.util.mediaQuery.js\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./js/foundation.core.plugin.js\");\n/* harmony import */ var _foundation_accordion__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.accordion */ \"./js/foundation.accordion.js\");\n/* harmony import */ var _foundation_tabs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./foundation.tabs */ \"./js/foundation.tabs.js\");\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n // The plugin matches the plugin classes with these plugin instances.\n\nvar MenuPlugins = {\n  tabs: {\n    cssClass: 'tabs',\n    plugin: _foundation_tabs__WEBPACK_IMPORTED_MODULE_5__[\"Tabs\"]\n  },\n  accordion: {\n    cssClass: 'accordion',\n    plugin: _foundation_accordion__WEBPACK_IMPORTED_MODULE_4__[\"Accordion\"]\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\nvar ResponsiveAccordionTabs =\n/*#__PURE__*/\nfunction (_Plugin) {\n  _inherits(ResponsiveAccordionTabs, _Plugin);\n\n  function ResponsiveAccordionTabs() {\n    _classCallCheck(this, ResponsiveAccordionTabs);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(ResponsiveAccordionTabs).apply(this, arguments));\n  }\n\n  _createClass(ResponsiveAccordionTabs, [{\n    key: \"_setup\",\n\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    value: function _setup(element, options) {\n      this.$element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.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\n      if (!this.$element.attr('id')) {\n        this.$element.attr('id', Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"GetYoDigits\"])(6, 'responsiveaccordiontabs'));\n      }\n\n      ;\n\n      this._init();\n\n      this._events();\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\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"]._init(); // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n\n\n      if (typeof this.rules === 'string') {\n        var rulesTree = {}; // Parse rules from \"classes\" pulled from data attribute\n\n        var rules = this.rules.split(' '); // Iterate through every rule found\n\n        for (var i = 0; i < rules.length; i++) {\n          var rule = rules[i].split('-');\n          var ruleSize = rule.length > 1 ? rule[0] : 'small';\n          var 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 (!jquery__WEBPACK_IMPORTED_MODULE_0___default.a.isEmptyObject(this.rules)) {\n        this._checkMediaQueries();\n      }\n    }\n  }, {\n    key: \"_getAllOptions\",\n    value: function _getAllOptions() {\n      //get all defaults and options\n      var _this = this;\n\n      _this.allOptions = {};\n\n      for (var key in MenuPlugins) {\n        if (MenuPlugins.hasOwnProperty(key)) {\n          var obj = MenuPlugins[key];\n\n          try {\n            var dummyPlugin = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<ul></ul>');\n            var tmpPlugin = new obj.plugin(dummyPlugin, _this.options);\n\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\n            tmpPlugin.destroy();\n          } catch (e) {}\n        }\n      }\n    }\n    /**\n     * Initializes events for the Menu.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      this._changedZfMediaQueryHandler = this._checkMediaQueries.bind(this);\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\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\n  }, {\n    key: \"_checkMediaQueries\",\n    value: function _checkMediaQueries() {\n      var matchedMq,\n          _this = this; // Iterate through each rule and find the last matching rule\n\n\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(this.rules, function (key) {\n        if (_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"].atLeast(key)) {\n          matchedMq = key;\n        }\n      }); // No match? No dice\n\n      if (!matchedMq) return; // Plugin already initialized? We good\n\n      if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return; // Remove existing plugin-specific CSS classes\n\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(MenuPlugins, function (key, value) {\n        _this.$element.removeClass(value.cssClass);\n      }); // Add the CSS class for the new plugin\n\n      this.$element.addClass(this.rules[matchedMq].cssClass); // Create an instance of the new plugin\n\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\n      this._handleMarkup(this.rules[matchedMq].cssClass);\n\n      this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {});\n      this.storezfData = this.currentPlugin.$element.data('zfPlugin');\n    }\n  }, {\n    key: \"_handleMarkup\",\n    value: function _handleMarkup(toSet) {\n      var _this = this,\n          fromString = 'accordion';\n\n      var $panels = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-tabs-content=' + this.$element.attr('id') + ']');\n      if ($panels.length) fromString = 'tabs';\n\n      if (fromString === toSet) {\n        return;\n      }\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      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      ;\n      $panels.css({\n        display: '',\n        visibility: ''\n      });\n      $liHeads.css({\n        display: '',\n        visibility: ''\n      });\n\n      if (toSet === 'accordion') {\n        $panels.each(function (key, value) {\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()(value).appendTo($liHeads.get(key)).addClass('accordion-content').attr('data-tab-content', '').removeClass('is-active').css({\n            height: ''\n          });\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-tabs-content=' + _this.$element.attr('id') + ']').after('<div id=\"tabs-placeholder-' + _this.$element.attr('id') + '\"></div>').detach();\n          $liHeads.addClass('accordion-item').attr('data-accordion-item', '');\n          $liHeadsA.addClass('accordion-title');\n        });\n      } else if (toSet === 'tabs') {\n        var $tabsContent = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-tabs-content=' + _this.$element.attr('id') + ']');\n        var $placeholder = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#tabs-placeholder-' + _this.$element.attr('id'));\n\n        if ($placeholder.length) {\n          $tabsContent = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"tabs-content\"></div>').insertAfter($placeholder).attr('data-tabs-content', _this.$element.attr('id'));\n          $placeholder.remove();\n        } else {\n          $tabsContent = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"tabs-content\"></div>').insertAfter(_this.$element).attr('data-tabs-content', _this.$element.attr('id'));\n        }\n\n        ;\n        $panels.each(function (key, value) {\n          var tempValue = jquery__WEBPACK_IMPORTED_MODULE_0___default()(value).appendTo($tabsContent).addClass(tabsPanel);\n          var hash = $liHeadsA.get(key).hash.slice(1);\n          var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(value).attr('id') || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"GetYoDigits\"])(6, 'accordion');\n\n          if (hash !== id) {\n            if (hash !== '') {\n              jquery__WEBPACK_IMPORTED_MODULE_0___default()(value).attr('id', hash);\n            } else {\n              hash = id;\n              jquery__WEBPACK_IMPORTED_MODULE_0___default()(value).attr('id', hash);\n              jquery__WEBPACK_IMPORTED_MODULE_0___default()($liHeadsA.get(key)).attr('href', jquery__WEBPACK_IMPORTED_MODULE_0___default()($liHeadsA.get(key)).attr('href').replace('#', '') + '#' + hash);\n            }\n\n            ;\n          }\n\n          ;\n          var isActive = jquery__WEBPACK_IMPORTED_MODULE_0___default()($liHeads.get(key)).hasClass('is-active');\n\n          if (isActive) {\n            tempValue.addClass('is-active');\n          }\n\n          ;\n        });\n        $liHeads.addClass(tabsTitle);\n      }\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\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      if (this.currentPlugin) this.currentPlugin.destroy();\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n    }\n  }]);\n\n  return ResponsiveAccordionTabs;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_3__[\"Plugin\"]);\n\nResponsiveAccordionTabs.defaults = {};\n\n\n//# sourceURL=webpack:///./js/foundation.responsiveAccordionTabs.js?")},"./js/foundation.responsiveMenu.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResponsiveMenu", function() { return ResponsiveMenu; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ "./js/foundation.util.mediaQuery.js");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.core.utils */ "./js/foundation.core.utils.js");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.core.plugin */ "./js/foundation.core.plugin.js");\n/* harmony import */ var _foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.dropdownMenu */ "./js/foundation.dropdownMenu.js");\n/* harmony import */ var _foundation_drilldown__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./foundation.drilldown */ "./js/foundation.drilldown.js");\n/* harmony import */ var _foundation_accordionMenu__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./foundation.accordionMenu */ "./js/foundation.accordionMenu.js");\n\n\nfunction _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n\n\nvar MenuPlugins = {\n  dropdown: {\n    cssClass: \'dropdown\',\n    plugin: _foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_4__["DropdownMenu"]\n  },\n  drilldown: {\n    cssClass: \'drilldown\',\n    plugin: _foundation_drilldown__WEBPACK_IMPORTED_MODULE_5__["Drilldown"]\n  },\n  accordion: {\n    cssClass: \'accordion-menu\',\n    plugin: _foundation_accordionMenu__WEBPACK_IMPORTED_MODULE_6__["AccordionMenu"]\n  }\n}; // import "foundation.util.triggers.js";\n\n/**\n * ResponsiveMenu module.\n * @module foundation.responsiveMenu\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nvar ResponsiveMenu =\n/*#__PURE__*/\nfunction (_Plugin) {\n  _inherits(ResponsiveMenu, _Plugin);\n\n  function ResponsiveMenu() {\n    _classCallCheck(this, ResponsiveMenu);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(ResponsiveMenu).apply(this, arguments));\n  }\n\n  _createClass(ResponsiveMenu, [{\n    key: "_setup",\n\n    /**\n     * Creates a new instance of a responsive menu.\n     * @class\n     * @name ResponsiveMenu\n     * @fires ResponsiveMenu#init\n     * @param {jQuery} element - jQuery object to make into a dropdown menu.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    value: function _setup(element, options) {\n      this.$element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n      this.rules = this.$element.data(\'responsive-menu\');\n      this.currentMq = null;\n      this.currentPlugin = null;\n      this.className = \'ResponsiveMenu\'; // ie9 back compat\n\n      this._init();\n\n      this._events();\n    }\n    /**\n     * Initializes the Menu by parsing the classes from the \'data-ResponsiveMenu\' attribute on the element.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: "_init",\n    value: function _init() {\n      _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__["MediaQuery"]._init(); // The first time an Interchange plugin is initialized, this.rules is converted from a string of "classes" to an object of rules\n\n\n      if (typeof this.rules === \'string\') {\n        var rulesTree = {}; // Parse rules from "classes" pulled from data attribute\n\n        var rules = this.rules.split(\' \'); // Iterate through every rule found\n\n        for (var i = 0; i < rules.length; i++) {\n          var rule = rules[i].split(\'-\');\n          var ruleSize = rule.length > 1 ? rule[0] : \'small\';\n          var 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      if (!jquery__WEBPACK_IMPORTED_MODULE_0___default.a.isEmptyObject(this.rules)) {\n        this._checkMediaQueries();\n      } // Add data-mutate since children may need it.\n\n\n      this.$element.attr(\'data-mutate\', this.$element.attr(\'data-mutate\') || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__["GetYoDigits"])(6, \'responsive-menu\'));\n    }\n    /**\n     * Initializes events for the Menu.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: "_events",\n    value: function _events() {\n      var _this = this;\n\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(\'changed.zf.mediaquery\', function () {\n        _this._checkMediaQueries();\n      }); // $(window).on(\'resize.zf.ResponsiveMenu\', function() {\n      //   _this._checkMediaQueries();\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\n  }, {\n    key: "_checkMediaQueries",\n    value: function _checkMediaQueries() {\n      var matchedMq,\n          _this = this; // Iterate through each rule and find the last matching rule\n\n\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(this.rules, function (key) {\n        if (_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__["MediaQuery"].atLeast(key)) {\n          matchedMq = key;\n        }\n      }); // No match? No dice\n\n      if (!matchedMq) return; // Plugin already initialized? We good\n\n      if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return; // Remove existing plugin-specific CSS classes\n\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(MenuPlugins, function (key, value) {\n        _this.$element.removeClass(value.cssClass);\n      }); // Add the CSS class for the new plugin\n\n      this.$element.addClass(this.rules[matchedMq].cssClass); // Create an instance of the new plugin\n\n      if (this.currentPlugin) this.currentPlugin.destroy();\n      this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {});\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\n  }, {\n    key: "_destroy",\n    value: function _destroy() {\n      this.currentPlugin.destroy();\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(\'.zf.ResponsiveMenu\');\n    }\n  }]);\n\n  return ResponsiveMenu;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_3__["Plugin"]);\n\nResponsiveMenu.defaults = {};\n\n\n//# sourceURL=webpack:///./js/foundation.responsiveMenu.js?')},"./js/foundation.responsiveToggle.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResponsiveToggle", function() { return ResponsiveToggle; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ "./js/foundation.util.mediaQuery.js");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.motion */ "./js/foundation.util.motion.js");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.core.plugin */ "./js/foundation.core.plugin.js");\n\n\nfunction _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n/**\n * ResponsiveToggle module.\n * @module foundation.responsiveToggle\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion\n */\n\nvar ResponsiveToggle =\n/*#__PURE__*/\nfunction (_Plugin) {\n  _inherits(ResponsiveToggle, _Plugin);\n\n  function ResponsiveToggle() {\n    _classCallCheck(this, ResponsiveToggle);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(ResponsiveToggle).apply(this, arguments));\n  }\n\n  _createClass(ResponsiveToggle, [{\n    key: "_setup",\n\n    /**\n     * Creates a new instance of Tab Bar.\n     * @class\n     * @name ResponsiveToggle\n     * @fires ResponsiveToggle#init\n     * @param {jQuery} element - jQuery object to attach tab bar functionality to.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    value: function _setup(element, options) {\n      this.$element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, ResponsiveToggle.defaults, this.$element.data(), options);\n      this.className = \'ResponsiveToggle\'; // ie9 back compat\n\n      this._init();\n\n      this._events();\n    }\n    /**\n     * Initializes the tab bar by finding the target element, toggling element, and running update().\n     * @function\n     * @private\n     */\n\n  }, {\n    key: "_init",\n    value: function _init() {\n      _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__["MediaQuery"]._init();\n\n      var targetID = this.$element.data(\'responsive-toggle\');\n\n      if (!targetID) {\n        console.error(\'Your tab bar needs an ID of a Menu as the value of data-tab-bar.\');\n      }\n\n      this.$targetMenu = jquery__WEBPACK_IMPORTED_MODULE_0___default()("#".concat(targetID));\n      this.$toggler = this.$element.find(\'[data-toggle]\').filter(function () {\n        var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data(\'toggle\');\n        return target === targetID || target === "";\n      });\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, this.options, this.$targetMenu.data()); // If they were set, parse the animation classes\n\n      if (this.options.animate) {\n        var input = this.options.animate.split(\' \');\n        this.animationIn = input[0];\n        this.animationOut = input[1] || null;\n      }\n\n      this._update();\n    }\n    /**\n     * Adds necessary event handlers for the tab bar to work.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: "_events",\n    value: function _events() {\n      var _this = this;\n\n      this._updateMqHandler = this._update.bind(this);\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(\'changed.zf.mediaquery\', this._updateMqHandler);\n      this.$toggler.on(\'click.zf.responsiveToggle\', this.toggleMenu.bind(this));\n    }\n    /**\n     * Checks the current media query to determine if the tab bar should be visible or hidden.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: "_update",\n    value: function _update() {\n      // Mobile\n      if (!_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__["MediaQuery"].atLeast(this.options.hideFor)) {\n        this.$element.show();\n        this.$targetMenu.hide();\n      } // Desktop\n      else {\n          this.$element.hide();\n          this.$targetMenu.show();\n        }\n    }\n    /**\n     * Toggles the element attached to the tab bar. The toggle only happens if the screen is small enough to allow it.\n     * @function\n     * @fires ResponsiveToggle#toggled\n     */\n\n  }, {\n    key: "toggleMenu",\n    value: function toggleMenu() {\n      var _this2 = this;\n\n      if (!_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__["MediaQuery"].atLeast(this.options.hideFor)) {\n        /**\n         * Fires when the element attached to the tab bar toggles.\n         * @event ResponsiveToggle#toggled\n         */\n        if (this.options.animate) {\n          if (this.$targetMenu.is(\':hidden\')) {\n            _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__["Motion"].animateIn(this.$targetMenu, this.animationIn, function () {\n              _this2.$element.trigger(\'toggled.zf.responsiveToggle\');\n\n              _this2.$targetMenu.find(\'[data-mutate]\').triggerHandler(\'mutateme.zf.trigger\');\n            });\n          } else {\n            _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__["Motion"].animateOut(this.$targetMenu, this.animationOut, function () {\n              _this2.$element.trigger(\'toggled.zf.responsiveToggle\');\n            });\n          }\n        } else {\n          this.$targetMenu.toggle(0);\n          this.$targetMenu.find(\'[data-mutate]\').trigger(\'mutateme.zf.trigger\');\n          this.$element.trigger(\'toggled.zf.responsiveToggle\');\n        }\n      }\n    }\n  }, {\n    key: "_destroy",\n    value: function _destroy() {\n      this.$element.off(\'.zf.responsiveToggle\');\n      this.$toggler.off(\'.zf.responsiveToggle\');\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(\'changed.zf.mediaquery\', this._updateMqHandler);\n    }\n  }]);\n\n  return ResponsiveToggle;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_3__["Plugin"]);\n\nResponsiveToggle.defaults = {\n  /**\n   * The breakpoint after which the menu is always shown, and the tab bar is hidden.\n   * @option\n   * @type {string}\n   * @default \'medium\'\n   */\n  hideFor: \'medium\',\n\n  /**\n   * To decide if the toggle should be animated or not.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\n\n//# sourceURL=webpack:///./js/foundation.responsiveToggle.js?')},"./js/foundation.reveal.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reveal\", function() { return Reveal; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./js/foundation.util.keyboard.js\");\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ \"./js/foundation.util.mediaQuery.js\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.util.motion */ \"./js/foundation.util.motion.js\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./js/foundation.core.plugin.js\");\n/* harmony import */ var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./foundation.util.triggers */ \"./js/foundation.util.triggers.js\");\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n\n\n/**\n * Reveal module.\n * @module foundation.reveal\n * @requires foundation.util.keyboard\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion if using animations\n */\n\nvar Reveal =\n/*#__PURE__*/\nfunction (_Plugin) {\n  _inherits(Reveal, _Plugin);\n\n  function Reveal() {\n    _classCallCheck(this, Reveal);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(Reveal).apply(this, arguments));\n  }\n\n  _createClass(Reveal, [{\n    key: \"_setup\",\n\n    /**\n     * Creates a new instance of Reveal.\n     * @class\n     * @name Reveal\n     * @param {jQuery} element - jQuery object to use for the modal.\n     * @param {Object} options - optional parameters.\n     */\n    value: function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Reveal.defaults, this.$element.data(), options);\n      this.className = 'Reveal'; // ie9 back compat\n\n      this._init(); // Triggers init is idempotent, just need to make sure it is initialized\n\n\n      _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_6__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].register('Reveal', {\n        'ESCAPE': 'close'\n      });\n    }\n    /**\n     * Initializes the modal by adding the overlay and close buttons, (if selected).\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      var _this2 = this;\n\n      _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__[\"MediaQuery\"]._init();\n\n      this.id = this.$element.attr('id');\n      this.isActive = false;\n      this.cached = {\n        mq: _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__[\"MediaQuery\"].current\n      };\n      this.$anchor = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-open=\\\"\".concat(this.id, \"\\\"]\")).length ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-open=\\\"\".concat(this.id, \"\\\"]\")) : jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-toggle=\\\"\".concat(this.id, \"\\\"]\"));\n      this.$anchor.attr({\n        'aria-controls': this.id,\n        'aria-haspopup': true,\n        'tabindex': 0\n      });\n\n      if (this.options.fullScreen || this.$element.hasClass('full')) {\n        this.options.fullScreen = true;\n        this.options.overlay = false;\n      }\n\n      if (this.options.overlay && !this.$overlay) {\n        this.$overlay = this._makeOverlay(this.id);\n      }\n\n      this.$element.attr({\n        'role': 'dialog',\n        'aria-hidden': true,\n        'data-yeti-box': this.id,\n        'data-resize': this.id\n      });\n\n      if (this.$overlay) {\n        this.$element.detach().appendTo(this.$overlay);\n      } else {\n        this.$element.detach().appendTo(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.options.appendTo));\n        this.$element.addClass('without-overlay');\n      }\n\n      this._events();\n\n      if (this.options.deepLink && window.location.hash === \"#\".concat(this.id)) {\n        this.onLoadListener = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n          return _this2.open();\n        });\n      }\n    }\n    /**\n     * Creates an overlay div to display behind the modal.\n     * @private\n     */\n\n  }, {\n    key: \"_makeOverlay\",\n    value: function _makeOverlay() {\n      var additionalOverlayClasses = '';\n\n      if (this.options.additionalOverlayClasses) {\n        additionalOverlayClasses = ' ' + this.options.additionalOverlayClasses;\n      }\n\n      return jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div></div>').addClass('reveal-overlay' + additionalOverlayClasses).appendTo(this.options.appendTo);\n    }\n    /**\n     * Updates position of modal\n     * TODO:  Figure out if we actually need to cache these values or if it doesn't matter\n     * @private\n     */\n\n  }, {\n    key: \"_updatePosition\",\n    value: function _updatePosition() {\n      var width = this.$element.outerWidth();\n      var outerWidth = jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).width();\n      var height = this.$element.outerHeight();\n      var outerHeight = jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height();\n      var left,\n          top = null;\n\n      if (this.options.hOffset === 'auto') {\n        left = parseInt((outerWidth - width) / 2, 10);\n      } else {\n        left = parseInt(this.options.hOffset, 10);\n      }\n\n      if (this.options.vOffset === 'auto') {\n        if (height > outerHeight) {\n          top = parseInt(Math.min(100, outerHeight / 10), 10);\n        } else {\n          top = parseInt((outerHeight - height) / 4, 10);\n        }\n      } else if (this.options.vOffset !== null) {\n        top = parseInt(this.options.vOffset, 10);\n      }\n\n      if (top !== null) {\n        this.$element.css({\n          top: top + 'px'\n        });\n      } // only worry about left if we don't have an overlay or we have a horizontal offset,\n      // otherwise we're perfectly in the middle\n\n\n      if (!this.$overlay || this.options.hOffset !== 'auto') {\n        this.$element.css({\n          left: left + 'px'\n        });\n        this.$element.css({\n          margin: '0px'\n        });\n      }\n    }\n    /**\n     * Adds event handlers for the modal.\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      var _this3 = this;\n\n      var _this = this;\n\n      this.$element.on({\n        'open.zf.trigger': this.open.bind(this),\n        'close.zf.trigger': function closeZfTrigger(event, $element) {\n          if (event.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parents('[data-closable]')[0] === $element) {\n            // only close reveal when it's explicitly called\n            return _this3.close.apply(_this3);\n          }\n        },\n        'toggle.zf.trigger': this.toggle.bind(this),\n        'resizeme.zf.trigger': function resizemeZfTrigger() {\n          _this._updatePosition();\n        }\n      });\n\n      if (this.options.closeOnClick && this.options.overlay) {\n        this.$overlay.off('.zf.reveal').on('click.zf.reveal', function (e) {\n          if (e.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(_this.$element[0], e.target) || !jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(document, e.target)) {\n            return;\n          }\n\n          _this.close();\n        });\n      }\n\n      if (this.options.deepLink) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(\"hashchange.zf.reveal:\".concat(this.id), this._handleState.bind(this));\n      }\n    }\n    /**\n     * Handles modal methods on back/forward button clicks or any other event that triggers hashchange.\n     * @private\n     */\n\n  }, {\n    key: \"_handleState\",\n    value: function _handleState(e) {\n      if (window.location.hash === '#' + this.id && !this.isActive) {\n        this.open();\n      } else {\n        this.close();\n      }\n    }\n    /**\n    * Disables the scroll when Reveal is shown to prevent the background from shifting\n    * @param {number} scrollTop - Scroll to visually apply, window current scroll by default\n    */\n\n  }, {\n    key: \"_disableScroll\",\n    value: function _disableScroll(scrollTop) {\n      scrollTop = scrollTop || jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).scrollTop();\n\n      if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).height() > jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height()) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\", -scrollTop);\n      }\n    }\n    /**\n    * Reenables the scroll when Reveal closes\n    * @param {number} scrollTop - Scroll to restore, html \"top\" property by default (as set by `_disableScroll`)\n    */\n\n  }, {\n    key: \"_enableScroll\",\n    value: function _enableScroll(scrollTop) {\n      scrollTop = scrollTop || parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\"));\n\n      if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).height() > jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height()) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\", \"\");\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).scrollTop(-scrollTop);\n      }\n    }\n    /**\n     * Opens the modal controlled by `this.$anchor`, and closes all others by default.\n     * @function\n     * @fires Reveal#closeme\n     * @fires Reveal#open\n     */\n\n  }, {\n    key: \"open\",\n    value: function open() {\n      var _this4 = this;\n\n      // either update or replace browser history\n      var hash = \"#\".concat(this.id);\n\n      if (this.options.deepLink && window.location.hash !== hash) {\n        if (window.history.pushState) {\n          if (this.options.updateHistory) {\n            window.history.pushState({}, '', hash);\n          } else {\n            window.history.replaceState({}, '', hash);\n          }\n        } else {\n          window.location.hash = hash;\n        }\n      } // Remember anchor that opened it to set focus back later, have general anchors as fallback\n\n\n      this.$activeAnchor = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.activeElement).is(this.$anchor) ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.activeElement) : this.$anchor;\n      this.isActive = true; // Make elements invisible, but remove display: none so we can get size and positioning\n\n      this.$element.css({\n        'visibility': 'hidden'\n      }).show().scrollTop(0);\n\n      if (this.options.overlay) {\n        this.$overlay.css({\n          'visibility': 'hidden'\n        }).show();\n      }\n\n      this._updatePosition();\n\n      this.$element.hide().css({\n        'visibility': ''\n      });\n\n      if (this.$overlay) {\n        this.$overlay.css({\n          'visibility': ''\n        }).hide();\n\n        if (this.$element.hasClass('fast')) {\n          this.$overlay.addClass('fast');\n        } else if (this.$element.hasClass('slow')) {\n          this.$overlay.addClass('slow');\n        }\n      }\n\n      if (!this.options.multipleOpened) {\n        /**\n         * Fires immediately before the modal opens.\n         * Closes any other modals that are currently open\n         * @event Reveal#closeme\n         */\n        this.$element.trigger('closeme.zf.reveal', this.id);\n      }\n\n      this._disableScroll();\n\n      var _this = this; // Motion UI method of reveal\n\n\n      if (this.options.animationIn) {\n        var afterAnimation = function afterAnimation() {\n          _this.$element.attr({\n            'aria-hidden': false,\n            'tabindex': -1\n          }).focus();\n\n          _this._addGlobalClasses();\n\n          _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].trapFocus(_this.$element);\n        };\n\n        if (this.options.overlay) {\n          _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateIn(this.$overlay, 'fade-in');\n        }\n\n        _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateIn(this.$element, this.options.animationIn, function () {\n          if (_this4.$element) {\n            // protect against object having been removed\n            _this4.focusableElements = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].findFocusable(_this4.$element);\n            afterAnimation();\n          }\n        });\n      } // jQuery method of reveal\n      else {\n          if (this.options.overlay) {\n            this.$overlay.show(0);\n          }\n\n          this.$element.show(this.options.showDelay);\n        } // handle accessibility\n\n\n      this.$element.attr({\n        'aria-hidden': false,\n        'tabindex': -1\n      }).focus();\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].trapFocus(this.$element);\n\n      this._addGlobalClasses();\n\n      this._addGlobalListeners();\n      /**\n       * Fires when the modal has successfully opened.\n       * @event Reveal#open\n       */\n\n\n      this.$element.trigger('open.zf.reveal');\n    }\n    /**\n     * Adds classes and listeners on document required by open modals.\n     *\n     * The following classes are added and updated:\n     * - `.is-reveal-open` - Prevents the scroll on document\n     * - `.zf-has-scroll`  - Displays a disabled scrollbar on document if required like if the\n     *                       scroll was not disabled. This prevent a \"shift\" of the page content due\n     *                       the scrollbar disappearing when the modal opens.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_addGlobalClasses\",\n    value: function _addGlobalClasses() {\n      var updateScrollbarClass = function updateScrollbarClass() {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').toggleClass('zf-has-scroll', !!(jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).height() > jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height()));\n      };\n\n      this.$element.on('resizeme.zf.trigger.revealScrollbarListener', function () {\n        return updateScrollbarClass();\n      });\n      updateScrollbarClass();\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').addClass('is-reveal-open');\n    }\n    /**\n     * Removes classes and listeners on document that were required by open modals.\n     * @private\n     */\n\n  }, {\n    key: \"_removeGlobalClasses\",\n    value: function _removeGlobalClasses() {\n      this.$element.off('resizeme.zf.trigger.revealScrollbarListener');\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').removeClass('is-reveal-open');\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').removeClass('zf-has-scroll');\n    }\n    /**\n     * Adds extra event handlers for the body and window if necessary.\n     * @private\n     */\n\n  }, {\n    key: \"_addGlobalListeners\",\n    value: function _addGlobalListeners() {\n      var _this = this;\n\n      if (!this.$element) {\n        return;\n      } // If we're in the middle of cleanup, don't freak out\n\n\n      this.focusableElements = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].findFocusable(this.$element);\n\n      if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('click.zf.reveal', function (e) {\n          if (e.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(_this.$element[0], e.target) || !jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(document, e.target)) {\n            return;\n          }\n\n          _this.close();\n        });\n      }\n\n      if (this.options.closeOnEsc) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('keydown.zf.reveal', function (e) {\n          _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].handleKey(e, 'Reveal', {\n            close: function close() {\n              if (_this.options.closeOnEsc) {\n                _this.close();\n              }\n            }\n          });\n        });\n      }\n    }\n    /**\n     * Closes the modal.\n     * @function\n     * @fires Reveal#closed\n     */\n\n  }, {\n    key: \"close\",\n    value: function close() {\n      if (!this.isActive || !this.$element.is(':visible')) {\n        return false;\n      }\n\n      var _this = this; // Motion UI method of hiding\n\n\n      if (this.options.animationOut) {\n        if (this.options.overlay) {\n          _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateOut(this.$overlay, 'fade-out');\n        }\n\n        _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateOut(this.$element, this.options.animationOut, finishUp);\n      } // jQuery method of hiding\n      else {\n          this.$element.hide(this.options.hideDelay);\n\n          if (this.options.overlay) {\n            this.$overlay.hide(0, finishUp);\n          } else {\n            finishUp();\n          }\n        } // Conditionals to remove extra event listeners added on open\n\n\n      if (this.options.closeOnEsc) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('keydown.zf.reveal');\n      }\n\n      if (!this.options.overlay && this.options.closeOnClick) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').off('click.zf.reveal');\n      }\n\n      this.$element.off('keydown.zf.reveal');\n\n      function finishUp() {\n        // Get the current top before the modal is closed and restore the scroll after.\n        // TODO: use component properties instead of HTML properties\n        // See https://github.com/zurb/foundation-sites/pull/10786\n        var scrollTop = parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\"));\n\n        if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reveal:visible').length === 0) {\n          _this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n\n        }\n\n        _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].releaseFocus(_this.$element);\n\n        _this.$element.attr('aria-hidden', true);\n\n        _this._enableScroll(scrollTop);\n        /**\n        * Fires when the modal is done closing.\n        * @event Reveal#closed\n        */\n\n\n        _this.$element.trigger('closed.zf.reveal');\n      }\n      /**\n      * Resets the modal content\n      * This prevents a running video to keep going in the background\n      */\n\n\n      if (this.options.resetOnClose) {\n        this.$element.html(this.$element.html());\n      }\n\n      this.isActive = false; // If deepLink and we did not switched to an other modal...\n\n      if (_this.options.deepLink && window.location.hash === \"#\".concat(this.id)) {\n        // Remove the history hash\n        if (window.history.replaceState) {\n          var urlWithoutHash = window.location.pathname + window.location.search;\n\n          if (this.options.updateHistory) {\n            window.history.pushState({}, '', urlWithoutHash); // remove the hash\n          } else {\n            window.history.replaceState('', document.title, urlWithoutHash);\n          }\n        } else {\n          window.location.hash = '';\n        }\n      }\n\n      this.$activeAnchor.focus();\n    }\n    /**\n     * Toggles the open/closed state of a modal.\n     * @function\n     */\n\n  }, {\n    key: \"toggle\",\n    value: function toggle() {\n      if (this.isActive) {\n        this.close();\n      } else {\n        this.open();\n      }\n    }\n  }, {\n    key: \"_destroy\",\n\n    /**\n     * Destroys an instance of a modal.\n     * @function\n     */\n    value: function _destroy() {\n      if (this.options.overlay) {\n        this.$element.appendTo(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.options.appendTo)); // move $element outside of $overlay to prevent error unregisterPlugin()\n\n        this.$overlay.hide().off().remove();\n      }\n\n      this.$element.hide().off();\n      this.$anchor.off('.zf');\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(\".zf.reveal:\".concat(this.id));\n      if (this.onLoadListener) jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(this.onLoadListener);\n\n      if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reveal:visible').length === 0) {\n        this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n\n      }\n    }\n  }]);\n\n  return Reveal;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_5__[\"Plugin\"]);\n\nReveal.defaults = {\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationIn: '',\n\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationOut: '',\n\n  /**\n   * Time, in ms, to delay the opening of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  showDelay: 0,\n\n  /**\n   * Time, in ms, to delay the closing of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hideDelay: 0,\n\n  /**\n   * Allows a click on the body/overlay to close the modal.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n\n  /**\n   * Allows the modal to close if the user presses the `ESCAPE` key.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnEsc: true,\n\n  /**\n   * If true, allows multiple modals to be displayed at once.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multipleOpened: false,\n\n  /**\n   * Distance, in pixels, the modal should push down from the top of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  vOffset: 'auto',\n\n  /**\n   * Distance, in pixels, the modal should push in from the side of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  hOffset: 'auto',\n\n  /**\n   * Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  fullScreen: false,\n\n  /**\n   * Allows the modal to generate an overlay div, which will cover the view when modal opens.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  overlay: true,\n\n  /**\n   * Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api, otherwise, videos will continue to play in the background.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  resetOnClose: false,\n\n  /**\n   * Link the location hash to the modal.\n   * Set the location hash when the modal is opened/closed, and open/close the modal when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n\n  /**\n   * If `deepLink` is enabled, update the browser history with the open modal\n   * @option\n   * @default false\n   */\n  updateHistory: false,\n\n  /**\n  * Allows the modal to append to custom div.\n  * @option\n  * @type {string}\n  * @default \"body\"\n  */\n  appendTo: \"body\",\n\n  /**\n   * Allows adding additional class names to the reveal overlay.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  additionalOverlayClasses: ''\n};\n\n\n//# sourceURL=webpack:///./js/foundation.reveal.js?")},"./js/foundation.smoothScroll.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SmoothScroll", function() { return SmoothScroll; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ "./js/foundation.core.utils.js");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.core.plugin */ "./js/foundation.core.plugin.js");\nfunction _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n/**\n * SmoothScroll module.\n * @module foundation.smooth-scroll\n */\n\nvar SmoothScroll =\n/*#__PURE__*/\nfunction (_Plugin) {\n  _inherits(SmoothScroll, _Plugin);\n\n  function SmoothScroll() {\n    _classCallCheck(this, SmoothScroll);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(SmoothScroll).apply(this, arguments));\n  }\n\n  _createClass(SmoothScroll, [{\n    key: "_setup",\n\n    /**\n     * Creates a new instance of SmoothScroll.\n     * @class\n     * @name SmoothScroll\n     * @fires SmoothScroll#init\n     * @param {Object} element - jQuery object to add the trigger to.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    value: function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, SmoothScroll.defaults, this.$element.data(), options);\n      this.className = \'SmoothScroll\'; // ie9 back compat\n\n      this._init();\n    }\n    /**\n     * Initialize the SmoothScroll plugin\n     * @private\n     */\n\n  }, {\n    key: "_init",\n    value: function _init() {\n      var id = this.$element[0].id || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__["GetYoDigits"])(6, \'smooth-scroll\');\n      this.$element.attr({\n        id: id\n      });\n\n      this._events();\n    }\n    /**\n     * Initializes events for SmoothScroll.\n     * @private\n     */\n\n  }, {\n    key: "_events",\n    value: function _events() {\n      this.$element.on(\'click.zf.smoothScroll\', this._handleLinkClick);\n      this.$element.on(\'click.zf.smoothScroll\', \'a[href^="#"]\', this._handleLinkClick);\n    }\n    /**\n     * Handle the given event to smoothly scroll to the anchor pointed by the event target.\n     * @param {*} e - event\n     * @function\n     * @private\n     */\n\n  }, {\n    key: "_handleLinkClick",\n    value: function _handleLinkClick(e) {\n      var _this = this;\n\n      // Follow the link if it does not point to an anchor.\n      if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.currentTarget).is(\'a[href^="#"]\')) return;\n      var arrival = e.currentTarget.getAttribute(\'href\');\n      this._inTransition = true;\n      SmoothScroll.scrollToLoc(arrival, this.options, function () {\n        _this._inTransition = false;\n      });\n      e.preventDefault();\n    }\n  }, {\n    key: "_destroy",\n\n    /**\n     * Destroys the SmoothScroll instance.\n     * @function\n     */\n    value: function _destroy() {\n      this.$element.off(\'click.zf.smoothScroll\', this._handleLinkClick);\n      this.$element.off(\'click.zf.smoothScroll\', \'a[href^="#"]\', this._handleLinkClick);\n    }\n  }], [{\n    key: "scrollToLoc",\n\n    /**\n     * Function to scroll to a given location on the page.\n     * @param {String} loc - A properly formatted jQuery id selector. Example: \'#foo\'\n     * @param {Object} options - The options to use.\n     * @param {Function} callback - The callback function.\n     * @static\n     * @function\n     */\n    value: function scrollToLoc(loc) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : SmoothScroll.defaults;\n      var callback = arguments.length > 2 ? arguments[2] : undefined;\n      var $loc = jquery__WEBPACK_IMPORTED_MODULE_0___default()(loc); // Do nothing if target does not exist to prevent errors\n\n      if (!$loc.length) return false;\n      var scrollPos = Math.round($loc.offset().top - options.threshold / 2 - options.offset);\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(\'html, body\').stop(true).animate({\n        scrollTop: scrollPos\n      }, options.animationDuration, options.animationEasing, function () {\n        if (typeof callback === \'function\') {\n          callback();\n        }\n      });\n    }\n  }]);\n\n  return SmoothScroll;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__["Plugin"]);\n/**\n * Default settings for plugin.\n */\n\n\nSmoothScroll.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n\n  /**\n   * Animation style to use when scrolling between locations. Can be `\'swing\'` or `\'linear\'`.\n   * @option\n   * @type {string}\n   * @default \'linear\'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: \'linear\',\n\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n};\n\n\n//# sourceURL=webpack:///./js/foundation.smoothScroll.js?')},"./js/foundation.tabs.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Tabs\", function() { return Tabs; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./js/foundation.util.keyboard.js\");\n/* harmony import */ var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.util.imageLoader */ \"./js/foundation.util.imageLoader.js\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./js/foundation.core.plugin.js\");\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n/**\n * Tabs module.\n * @module foundation.tabs\n * @requires foundation.util.keyboard\n * @requires foundation.util.imageLoader if tabs contain images\n */\n\nvar Tabs =\n/*#__PURE__*/\nfunction (_Plugin) {\n  _inherits(Tabs, _Plugin);\n\n  function Tabs() {\n    _classCallCheck(this, Tabs);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(Tabs).apply(this, arguments));\n  }\n\n  _createClass(Tabs, [{\n    key: \"_setup\",\n\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    value: function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Tabs.defaults, this.$element.data(), options);\n      this.className = 'Tabs'; // ie9 back compat\n\n      this._init();\n\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"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' // '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\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      var _this2 = this;\n\n      var _this = this;\n\n      this._isInitializing = true;\n      this.$element.attr({\n        'role': 'tablist'\n      });\n      this.$tabTitles = this.$element.find(\".\".concat(this.options.linkClass));\n      this.$tabContent = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-tabs-content=\\\"\".concat(this.$element[0].id, \"\\\"]\"));\n      this.$tabTitles.each(function () {\n        var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n            $link = $elem.find('a'),\n            isActive = $elem.hasClass(\"\".concat(_this.options.linkActiveClass)),\n            hash = $link.attr('data-tabs-target') || $link[0].hash.slice(1),\n            linkId = $link[0].id ? $link[0].id : \"\".concat(hash, \"-label\"),\n            $tabContent = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(hash));\n        $elem.attr({\n          '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        $tabContent.attr({\n          'role': 'tabpanel',\n          'aria-labelledby': linkId\n        }); // Save up the initial hash to return to it later when going back in history\n\n        if (isActive) {\n          _this._initialAnchor = \"#\".concat(hash);\n        }\n\n        if (!isActive) {\n          $tabContent.attr('aria-hidden', 'true');\n        }\n\n        if (isActive && _this.options.autoFocus) {\n          _this.onLoadListener = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n            jquery__WEBPACK_IMPORTED_MODULE_0___default()('html, body').animate({\n              scrollTop: $elem.offset().top\n            }, _this.options.deepLinkSmudgeDelay, function () {\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          Object(_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_3__[\"onImagesLoaded\"])($images, this._setHeight.bind(this));\n        } else {\n          this._setHeight();\n        }\n      } // Current context-bound function to open tabs on page load or history hashchange\n\n\n      this._checkDeepLink = function () {\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 (_this2._isInitializing) return; // Otherwise, move to the initial anchor\n\n          if (_this2._initialAnchor) anchor = _this2._initialAnchor;\n        }\n\n        var $anchor = anchor && jquery__WEBPACK_IMPORTED_MODULE_0___default()(anchor);\n\n        var $link = anchor && _this2.$element.find('[href$=\"' + anchor + '\"]'); // Whether the anchor element that has been found is part of this element\n\n\n        var isOwnAnchor = !!($anchor.length && $link.length); // If there is an anchor for the hash, select it\n\n        if ($anchor && $anchor.length && $link && $link.length) {\n          _this2.selectTab($anchor, true);\n        } // Otherwise, collapse everything\n        else {\n            _this2._collapse();\n          }\n\n        if (isOwnAnchor) {\n          // Roll up a little to show the titles\n          if (_this2.options.deepLinkSmudge) {\n            var offset = _this2.$element.offset();\n\n            jquery__WEBPACK_IMPORTED_MODULE_0___default()('html, body').animate({\n              scrollTop: offset.top\n            }, _this2.options.deepLinkSmudgeDelay);\n          }\n          /**\n           * Fires when the plugin has deeplinked at pageload\n           * @event Tabs#deeplink\n           */\n\n\n          _this2.$element.trigger('deeplink.zf.tabs', [$link, $anchor]);\n        }\n      }; //use browser to open a tab, if it exists in this tabset\n\n\n      if (this.options.deepLink) {\n        this._checkDeepLink();\n      }\n\n      this._events();\n\n      this._isInitializing = false;\n    }\n    /**\n     * Adds event handlers for items within the tabs.\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      this._addKeyHandler();\n\n      this._addClickHandler();\n\n      this._setHeightMqHandler = null;\n\n      if (this.options.matchHeight) {\n        this._setHeightMqHandler = this._setHeight.bind(this);\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('changed.zf.mediaquery', this._setHeightMqHandler);\n      }\n\n      if (this.options.deepLink) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('hashchange', this._checkDeepLink);\n      }\n    }\n    /**\n     * Adds click handlers for items within the tabs.\n     * @private\n     */\n\n  }, {\n    key: \"_addClickHandler\",\n    value: function _addClickHandler() {\n      var _this = this;\n\n      this.$element.off('click.zf.tabs').on('click.zf.tabs', \".\".concat(this.options.linkClass), function (e) {\n        e.preventDefault();\n        e.stopPropagation();\n\n        _this._handleTabChange(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this));\n      });\n    }\n    /**\n     * Adds keyboard event handlers for items within the tabs.\n     * @private\n     */\n\n  }, {\n    key: \"_addKeyHandler\",\n    value: function _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        var $element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n            $elements = $element.parent('ul').children('li'),\n            $prevElement,\n            $nextElement;\n        $elements.each(function (i) {\n          if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(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\n            return;\n          }\n        }); // handle keyboard event with keyboard util\n\n        _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].handleKey(e, 'Tabs', {\n          open: function open() {\n            $element.find('[role=\"tab\"]').focus();\n\n            _this._handleTabChange($element);\n          },\n          previous: function previous() {\n            $prevElement.find('[role=\"tab\"]').focus();\n\n            _this._handleTabChange($prevElement);\n          },\n          next: function next() {\n            $nextElement.find('[role=\"tab\"]').focus();\n\n            _this._handleTabChange($nextElement);\n          },\n          handled: function handled() {\n            e.stopPropagation();\n            e.preventDefault();\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\n  }, {\n    key: \"_handleTabChange\",\n    value: function _handleTabChange($target, historyHandled) {\n      // With `activeCollapse`, if the target is the active Tab, collapse it.\n      if ($target.hasClass(\"\".concat(this.options.linkActiveClass))) {\n        if (this.options.activeCollapse) {\n          this._collapse();\n        }\n\n        return;\n      }\n\n      var $oldTab = this.$element.find(\".\".concat(this.options.linkClass, \".\").concat(this.options.linkActiveClass)),\n          $tabLink = $target.find('[role=\"tab\"]'),\n          target = $tabLink.attr('data-tabs-target'),\n          anchor = target && target.length ? \"#\".concat(target) : $tabLink[0].hash,\n          $targetContent = this.$tabContent.find(anchor); //close old tab\n\n      this._collapseTab($oldTab); //open new tab\n\n\n      this._openTab($target); //either replace or update browser history\n\n\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       * Fires when the plugin has successfully changed tabs.\n       * @event Tabs#change\n       */\n\n\n      this.$element.trigger('change.zf.tabs', [$target, $targetContent]); //fire to children a mutation event\n\n      $targetContent.find(\"[data-mutate]\").trigger(\"mutateme.zf.trigger\");\n    }\n    /**\n     * Opens the tab `$targetContent` defined by `$target`.\n     * @param {jQuery} $target - Tab to open.\n     * @function\n     */\n\n  }, {\n    key: \"_openTab\",\n    value: function _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(\"#\".concat(hash));\n      $target.addClass(\"\".concat(this.options.linkActiveClass));\n      $tabLink.attr({\n        'aria-selected': 'true',\n        'tabindex': '0'\n      });\n      $targetContent.addClass(\"\".concat(this.options.panelActiveClass)).removeAttr('aria-hidden');\n    }\n    /**\n     * Collapses `$targetContent` defined by `$target`.\n     * @param {jQuery} $target - Tab to collapse.\n     * @function\n     */\n\n  }, {\n    key: \"_collapseTab\",\n    value: function _collapseTab($target) {\n      var $target_anchor = $target.removeClass(\"\".concat(this.options.linkActiveClass)).find('[role=\"tab\"]').attr({\n        'aria-selected': 'false',\n        'tabindex': -1\n      });\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat($target_anchor.attr('aria-controls'))).removeClass(\"\".concat(this.options.panelActiveClass)).attr({\n        'aria-hidden': 'true'\n      });\n    }\n    /**\n     * Collapses the active Tab.\n     * @fires Tabs#collapse\n     * @function\n     */\n\n  }, {\n    key: \"_collapse\",\n    value: function _collapse() {\n      var $activeTab = this.$element.find(\".\".concat(this.options.linkClass, \".\").concat(this.options.linkActiveClass));\n\n      if ($activeTab.length) {\n        this._collapseTab($activeTab);\n        /**\n        * Fires when the plugin has successfully collapsed tabs.\n        * @event Tabs#collapse\n        */\n\n\n        this.$element.trigger('collapse.zf.tabs', [$activeTab]);\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\n  }, {\n    key: \"selectTab\",\n    value: function 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 = \"#\".concat(idStr);\n      }\n\n      var $target = this.$tabTitles.has(\"[href$=\\\"\".concat(idStr, \"\\\"]\"));\n\n      this._handleTabChange($target, historyHandled);\n    }\n  }, {\n    key: \"_setHeight\",\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    value: function _setHeight() {\n      var max = 0,\n          _this = this; // Lock down the `this` value for the root tabs object\n\n\n      this.$tabContent.find(\".\".concat(this.options.panelClass)).css('height', '').each(function () {\n        var panel = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n            isActive = panel.hasClass(\"\".concat(_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({\n            'visibility': 'hidden',\n            'display': 'block'\n          });\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      }).css('height', \"\".concat(max, \"px\"));\n    }\n    /**\n     * Destroys an instance of tabs.\n     * @fires Tabs#destroyed\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.$element.find(\".\".concat(this.options.linkClass)).off('.zf.tabs').hide().end().find(\".\".concat(this.options.panelClass)).hide();\n\n      if (this.options.matchHeight) {\n        if (this._setHeightMqHandler != null) {\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('changed.zf.mediaquery', this._setHeightMqHandler);\n        }\n      }\n\n      if (this.options.deepLink) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('hashchange', this._checkDeepLink);\n      }\n\n      if (this.onLoadListener) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(this.onLoadListener);\n      }\n    }\n  }]);\n\n  return Tabs;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_4__[\"Plugin\"]);\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\n\n//# sourceURL=webpack:///./js/foundation.tabs.js?")},"./js/foundation.toggler.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Toggler", function() { return Toggler; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.motion */ "./js/foundation.util.motion.js");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.core.plugin */ "./js/foundation.core.plugin.js");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.core.utils */ "./js/foundation.core.utils.js");\n/* harmony import */ var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.util.triggers */ "./js/foundation.util.triggers.js");\n\n\nfunction _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n/**\n * Toggler module.\n * @module foundation.toggler\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n */\n\nvar Toggler =\n/*#__PURE__*/\nfunction (_Plugin) {\n  _inherits(Toggler, _Plugin);\n\n  function Toggler() {\n    _classCallCheck(this, Toggler);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(Toggler).apply(this, arguments));\n  }\n\n  _createClass(Toggler, [{\n    key: "_setup",\n\n    /**\n     * Creates a new instance of Toggler.\n     * @class\n     * @name Toggler\n     * @fires Toggler#init\n     * @param {Object} element - jQuery object to add the trigger to.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    value: function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Toggler.defaults, element.data(), options);\n      this.className = \'\';\n      this.className = \'Toggler\'; // ie9 back compat\n      // Triggers init is idempotent, just need to make sure it is initialized\n\n      _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_4__["Triggers"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n      this._init();\n\n      this._events();\n    }\n    /**\n     * Initializes the Toggler plugin by parsing the toggle class from data-toggler, or animation classes from data-animate.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: "_init",\n    value: function _init() {\n      var input; // Parse animation classes if they were set\n\n      if (this.options.animate) {\n        input = this.options.animate.split(\' \');\n        this.animationIn = input[0];\n        this.animationOut = input[1] || null;\n      } // Otherwise, parse toggle class\n      else {\n          input = this.$element.data(\'toggler\'); // Allow for a . at the beginning of the string\n\n          this.className = input[0] === \'.\' ? input.slice(1) : input;\n        } // Add ARIA attributes to triggers:\n\n\n      var id = this.$element[0].id,\n          $triggers = jquery__WEBPACK_IMPORTED_MODULE_0___default()("[data-open~=\\"".concat(id, "\\"], [data-close~=\\"").concat(id, "\\"], [data-toggle~=\\"").concat(id, "\\"]")); // - aria-expanded: according to the element visibility.\n\n      $triggers.attr(\'aria-expanded\', !this.$element.is(\':hidden\')); // - aria-controls: adding the element id to it if not already in it.\n\n      $triggers.each(function (index, trigger) {\n        var $trigger = jquery__WEBPACK_IMPORTED_MODULE_0___default()(trigger);\n        var controls = $trigger.attr(\'aria-controls\') || \'\';\n        var containsId = new RegExp("\\\\b".concat(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__["RegExpEscape"])(id), "\\\\b")).test(controls);\n        if (!containsId) $trigger.attr(\'aria-controls\', controls ? "".concat(controls, " ").concat(id) : id);\n      });\n    }\n    /**\n     * Initializes events for the toggle trigger.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: "_events",\n    value: function _events() {\n      this.$element.off(\'toggle.zf.trigger\').on(\'toggle.zf.trigger\', this.toggle.bind(this));\n    }\n    /**\n     * Toggles the target class on the target element. An event is fired from the original trigger depending on if the resultant state was "on" or "off".\n     * @function\n     * @fires Toggler#on\n     * @fires Toggler#off\n     */\n\n  }, {\n    key: "toggle",\n    value: function toggle() {\n      this[this.options.animate ? \'_toggleAnimate\' : \'_toggleClass\']();\n    }\n  }, {\n    key: "_toggleClass",\n    value: function _toggleClass() {\n      this.$element.toggleClass(this.className);\n      var isOn = this.$element.hasClass(this.className);\n\n      if (isOn) {\n        /**\n         * Fires if the target element has the class after a toggle.\n         * @event Toggler#on\n         */\n        this.$element.trigger(\'on.zf.toggler\');\n      } else {\n        /**\n         * Fires if the target element does not have the class after a toggle.\n         * @event Toggler#off\n         */\n        this.$element.trigger(\'off.zf.toggler\');\n      }\n\n      this._updateARIA(isOn);\n\n      this.$element.find(\'[data-mutate]\').trigger(\'mutateme.zf.trigger\');\n    }\n  }, {\n    key: "_toggleAnimate",\n    value: function _toggleAnimate() {\n      var _this = this;\n\n      if (this.$element.is(\':hidden\')) {\n        _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__["Motion"].animateIn(this.$element, this.animationIn, function () {\n          _this._updateARIA(true);\n\n          this.trigger(\'on.zf.toggler\');\n          this.find(\'[data-mutate]\').trigger(\'mutateme.zf.trigger\');\n        });\n      } else {\n        _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__["Motion"].animateOut(this.$element, this.animationOut, function () {\n          _this._updateARIA(false);\n\n          this.trigger(\'off.zf.toggler\');\n          this.find(\'[data-mutate]\').trigger(\'mutateme.zf.trigger\');\n        });\n      }\n    }\n  }, {\n    key: "_updateARIA",\n    value: function _updateARIA(isOn) {\n      var id = this.$element[0].id;\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()("[data-open=\\"".concat(id, "\\"], [data-close=\\"").concat(id, "\\"], [data-toggle=\\"").concat(id, "\\"]")).attr({\n        \'aria-expanded\': isOn ? true : false\n      });\n    }\n    /**\n     * Destroys the instance of Toggler on the element.\n     * @function\n     */\n\n  }, {\n    key: "_destroy",\n    value: function _destroy() {\n      this.$element.off(\'.zf.toggler\');\n    }\n  }]);\n\n  return Toggler;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__["Plugin"]);\n\nToggler.defaults = {\n  /**\n   * Tells the plugin if the element should animated when toggled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\n\n//# sourceURL=webpack:///./js/foundation.toggler.js?')},"./js/foundation.util.box.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Box\", function() { return Box; });\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n\n\n\nvar Box = {\n  ImNotTouchingYou: ImNotTouchingYou,\n  OverlapArea: OverlapArea,\n  GetDimensions: GetDimensions,\n  GetOffsets: GetOffsets,\n  GetExplicitOffsets: GetExplicitOffsets\n  /**\n   * Compares the dimensions of an element to a container and determines collision events with container.\n   * @function\n   * @param {jQuery} element - jQuery object to test for collisions.\n   * @param {jQuery} parent - jQuery object to use as bounding container.\n   * @param {Boolean} lrOnly - set to true to check left and right values only.\n   * @param {Boolean} tbOnly - set to true to check top and bottom values only.\n   * @default if no parent object passed, detects collisions with `window`.\n   * @returns {Boolean} - true if collision free, false if a collision in any direction.\n   */\n\n};\n\nfunction ImNotTouchingYou(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  return OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) === 0;\n}\n\n;\n\nfunction OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  var eleDims = GetDimensions(element),\n      topOver,\n      bottomOver,\n      leftOver,\n      rightOver;\n\n  if (parent) {\n    var parDims = GetDimensions(parent);\n    bottomOver = parDims.height + parDims.offset.top - (eleDims.offset.top + eleDims.height);\n    topOver = eleDims.offset.top - parDims.offset.top;\n    leftOver = eleDims.offset.left - parDims.offset.left;\n    rightOver = parDims.width + parDims.offset.left - (eleDims.offset.left + eleDims.width);\n  } else {\n    bottomOver = eleDims.windowDims.height + eleDims.windowDims.offset.top - (eleDims.offset.top + eleDims.height);\n    topOver = eleDims.offset.top - eleDims.windowDims.offset.top;\n    leftOver = eleDims.offset.left - eleDims.windowDims.offset.left;\n    rightOver = eleDims.windowDims.width - (eleDims.offset.left + eleDims.width);\n  }\n\n  bottomOver = ignoreBottom ? 0 : Math.min(bottomOver, 0);\n  topOver = Math.min(topOver, 0);\n  leftOver = Math.min(leftOver, 0);\n  rightOver = Math.min(rightOver, 0);\n\n  if (lrOnly) {\n    return leftOver + rightOver;\n  }\n\n  if (tbOnly) {\n    return topOver + bottomOver;\n  } // use sum of squares b/c we care about overlap area.\n\n\n  return Math.sqrt(topOver * topOver + bottomOver * bottomOver + leftOver * leftOver + rightOver * rightOver);\n}\n/**\n * Uses native methods to return an object of dimension values.\n * @function\n * @param {jQuery || HTML} element - jQuery object or DOM element for which to get the dimensions. Can be any element other that document or window.\n * @returns {Object} - nested object of integer pixel values\n * TODO - if element is window, return only those values.\n */\n\n\nfunction GetDimensions(elem) {\n  elem = elem.length ? elem[0] : elem;\n\n  if (elem === window || elem === document) {\n    throw new Error(\"I'm sorry, Dave. I'm afraid I can't do that.\");\n  }\n\n  var rect = elem.getBoundingClientRect(),\n      parRect = elem.parentNode.getBoundingClientRect(),\n      winRect = document.body.getBoundingClientRect(),\n      winY = window.pageYOffset,\n      winX = window.pageXOffset;\n  return {\n    width: rect.width,\n    height: rect.height,\n    offset: {\n      top: rect.top + winY,\n      left: rect.left + winX\n    },\n    parentDims: {\n      width: parRect.width,\n      height: parRect.height,\n      offset: {\n        top: parRect.top + winY,\n        left: parRect.left + winX\n      }\n    },\n    windowDims: {\n      width: winRect.width,\n      height: winRect.height,\n      offset: {\n        top: winY,\n        left: winX\n      }\n    }\n  };\n}\n/**\n * Returns an object of top and left integer pixel values for dynamically rendered elements,\n * such as: Tooltip, Reveal, and Dropdown. Maintained for backwards compatibility, and where\n * you don't know alignment, but generally from\n * 6.4 forward you should use GetExplicitOffsets, as GetOffsets conflates position and alignment.\n * @function\n * @param {jQuery} element - jQuery object for the element being positioned.\n * @param {jQuery} anchor - jQuery object for the element's anchor point.\n * @param {String} position - a string relating to the desired position of the element, relative to it's anchor\n * @param {Number} vOffset - integer pixel value of desired vertical separation between anchor and element.\n * @param {Number} hOffset - integer pixel value of desired horizontal separation between anchor and element.\n * @param {Boolean} isOverflow - if a collision event is detected, sets to true to default the element to full width - any desired offset.\n * TODO alter/rewrite to work with `em` values as well/instead of pixels\n */\n\n\nfunction GetOffsets(element, anchor, position, vOffset, hOffset, isOverflow) {\n  console.log(\"NOTE: GetOffsets is deprecated in favor of GetExplicitOffsets and will be removed in 6.5\");\n\n  switch (position) {\n    case 'top':\n      return Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_0__[\"rtl\"])() ? GetExplicitOffsets(element, anchor, 'top', 'left', vOffset, hOffset, isOverflow) : GetExplicitOffsets(element, anchor, 'top', 'right', vOffset, hOffset, isOverflow);\n\n    case 'bottom':\n      return Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_0__[\"rtl\"])() ? GetExplicitOffsets(element, anchor, 'bottom', 'left', vOffset, hOffset, isOverflow) : GetExplicitOffsets(element, anchor, 'bottom', 'right', vOffset, hOffset, isOverflow);\n\n    case 'center top':\n      return GetExplicitOffsets(element, anchor, 'top', 'center', vOffset, hOffset, isOverflow);\n\n    case 'center bottom':\n      return GetExplicitOffsets(element, anchor, 'bottom', 'center', vOffset, hOffset, isOverflow);\n\n    case 'center left':\n      return GetExplicitOffsets(element, anchor, 'left', 'center', vOffset, hOffset, isOverflow);\n\n    case 'center right':\n      return GetExplicitOffsets(element, anchor, 'right', 'center', vOffset, hOffset, isOverflow);\n\n    case 'left bottom':\n      return GetExplicitOffsets(element, anchor, 'bottom', 'left', vOffset, hOffset, isOverflow);\n\n    case 'right bottom':\n      return GetExplicitOffsets(element, anchor, 'bottom', 'right', vOffset, hOffset, isOverflow);\n    // Backwards compatibility... this along with the reveal and reveal full\n    // classes are the only ones that didn't reference anchor\n\n    case 'center':\n      return {\n        left: $eleDims.windowDims.offset.left + $eleDims.windowDims.width / 2 - $eleDims.width / 2 + hOffset,\n        top: $eleDims.windowDims.offset.top + $eleDims.windowDims.height / 2 - ($eleDims.height / 2 + vOffset)\n      };\n\n    case 'reveal':\n      return {\n        left: ($eleDims.windowDims.width - $eleDims.width) / 2 + hOffset,\n        top: $eleDims.windowDims.offset.top + vOffset\n      };\n\n    case 'reveal full':\n      return {\n        left: $eleDims.windowDims.offset.left,\n        top: $eleDims.windowDims.offset.top\n      };\n      break;\n\n    default:\n      return {\n        left: Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_0__[\"rtl\"])() ? $anchorDims.offset.left - $eleDims.width + $anchorDims.width - hOffset : $anchorDims.offset.left + hOffset,\n        top: $anchorDims.offset.top + $anchorDims.height + vOffset\n      };\n  }\n}\n\nfunction GetExplicitOffsets(element, anchor, position, alignment, vOffset, hOffset, isOverflow) {\n  var $eleDims = GetDimensions(element),\n      $anchorDims = anchor ? GetDimensions(anchor) : null;\n  var topVal, leftVal; // set position related attribute\n\n  switch (position) {\n    case 'top':\n      topVal = $anchorDims.offset.top - ($eleDims.height + vOffset);\n      break;\n\n    case 'bottom':\n      topVal = $anchorDims.offset.top + $anchorDims.height + vOffset;\n      break;\n\n    case 'left':\n      leftVal = $anchorDims.offset.left - ($eleDims.width + hOffset);\n      break;\n\n    case 'right':\n      leftVal = $anchorDims.offset.left + $anchorDims.width + hOffset;\n      break;\n  } // set alignment related attribute\n\n\n  switch (position) {\n    case 'top':\n    case 'bottom':\n      switch (alignment) {\n        case 'left':\n          leftVal = $anchorDims.offset.left + hOffset;\n          break;\n\n        case 'right':\n          leftVal = $anchorDims.offset.left - $eleDims.width + $anchorDims.width - hOffset;\n          break;\n\n        case 'center':\n          leftVal = isOverflow ? hOffset : $anchorDims.offset.left + $anchorDims.width / 2 - $eleDims.width / 2 + hOffset;\n          break;\n      }\n\n      break;\n\n    case 'right':\n    case 'left':\n      switch (alignment) {\n        case 'bottom':\n          topVal = $anchorDims.offset.top - vOffset + $anchorDims.height - $eleDims.height;\n          break;\n\n        case 'top':\n          topVal = $anchorDims.offset.top + vOffset;\n          break;\n\n        case 'center':\n          topVal = $anchorDims.offset.top + vOffset + $anchorDims.height / 2 - $eleDims.height / 2;\n          break;\n      }\n\n      break;\n  }\n\n  return {\n    top: topVal,\n    left: leftVal\n  };\n}\n\n\n\n//# sourceURL=webpack:///./js/foundation.util.box.js?")},"./js/foundation.util.imageLoader.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onImagesLoaded\", function() { return onImagesLoaded; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n\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 */\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    } else {\n      // If the above check failed, simulate loading on detached element.\n      var image = new Image(); // Still count image as loaded if it finalizes with an error.\n\n      var events = \"load.zf.images error.zf.images\";\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(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        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).off(events, me);\n        singleImageLoaded();\n      });\n      image.src = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('src');\n    }\n  });\n\n  function singleImageLoaded() {\n    unloaded--;\n\n    if (unloaded === 0) {\n      callback();\n    }\n  }\n}\n\n\n\n//# sourceURL=webpack:///./js/foundation.util.imageLoader.js?")},"./js/foundation.util.keyboard.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Keyboard\", function() { return Keyboard; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\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\n\n\nvar 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};\nvar commands = {}; // Functions pulled out to be referenceable from internals\n\nfunction findFocusable($element) {\n  if (!$element) {\n    return false;\n  }\n\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 (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is(':visible') || jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('tabindex') < 0) {\n      return false;\n    } //only have visible elements and those that have a tabindex greater or equal 0\n\n\n    return true;\n  });\n}\n\nfunction parseKey(event) {\n  var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase(); // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n\n  key = key.replace(/\\W+/, '');\n  if (event.shiftKey) key = \"SHIFT_\".concat(key);\n  if (event.ctrlKey) key = \"CTRL_\".concat(key);\n  if (event.altKey) key = \"ALT_\".concat(key); // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n\n  key = key.replace(/_$/, '');\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: function handleKey(event, component, functions) {\n    var commandList = commands[component],\n        keyCode = this.parseKey(event),\n        cmds,\n        command,\n        fn;\n    if (!commandList) return console.warn('Component not defined!');\n\n    if (typeof commandList.ltr === 'undefined') {\n      // this component does not differentiate between ltr and rtl\n      cmds = commandList; // use plain list\n    } else {\n      // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n      if (Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"rtl\"])()) cmds = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, commandList.ltr, commandList.rtl);else cmds = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, commandList.rtl, commandList.ltr);\n    }\n\n    command = cmds[keyCode];\n    fn = functions[command];\n\n    if (fn && typeof fn === 'function') {\n      // execute function  if exists\n      var returnValue = fn.apply();\n\n      if (functions.handled || typeof functions.handled === 'function') {\n        // execute function when event was handled\n        functions.handled(returnValue);\n      }\n    } else {\n      if (functions.unhandled || typeof functions.unhandled === 'function') {\n        // 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  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  register: function register(componentName, cmds) {\n    commands[componentName] = cmds;\n  },\n  // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n  //\n\n  /**\n   * Traps the focus in the given element.\n   * @param  {jQuery} $element  jQuery object to trap the foucs into.\n   */\n  trapFocus: function trapFocus($element) {\n    var $focusable = findFocusable($element),\n        $firstFocusable = $focusable.eq(0),\n        $lastFocusable = $focusable.eq(-1);\n    $element.on('keydown.zf.trapfocus', function (event) {\n      if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n        event.preventDefault();\n        $firstFocusable.focus();\n      } else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n        event.preventDefault();\n        $lastFocusable.focus();\n      }\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: function releaseFocus($element) {\n    $element.off('keydown.zf.trapfocus');\n  }\n};\n/*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\n\nfunction getKeyCodes(kcs) {\n  var k = {};\n\n  for (var kc in kcs) {\n    k[kcs[kc]] = kcs[kc];\n  }\n\n  return k;\n}\n\n\n\n//# sourceURL=webpack:///./js/foundation.util.keyboard.js?")},"./js/foundation.util.mediaQuery.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MediaQuery\", function() { return MediaQuery; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n // Default set of media queries\n\nvar 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),' + '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}; // 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\n/* eslint-disable */\n\nwindow.matchMedia || (window.matchMedia = function () {\n  \"use strict\"; // For browsers that support matchMedium api such as IE 9 and webkit\n\n  var styleMedia = window.styleMedia || window.media; // For those that don't support matchMedium\n\n  if (!styleMedia) {\n    var style = document.createElement('style'),\n        script = document.getElementsByTagName('script')[0],\n        info = null;\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    } // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n\n\n    info = 'getComputedStyle' in window && window.getComputedStyle(style, null) || style.currentStyle;\n    styleMedia = {\n      matchMedium: function matchMedium(media) {\n        var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }'; // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n\n        if (style.styleSheet) {\n          style.styleSheet.cssText = text;\n        } else {\n          style.textContent = text;\n        } // Test if media query is true or false\n\n\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  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: function _init() {\n    var self = this;\n    var $meta = jquery__WEBPACK_IMPORTED_MODULE_0___default()('meta.foundation-mq');\n\n    if (!$meta.length) {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()('<meta class=\"foundation-mq\">').appendTo(document.head);\n    }\n\n    var extractedStyles = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.foundation-mq').css('font-family');\n    var namedQueries;\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: \".concat(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: function 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: function is(size) {\n    size = size.trim().split(' ');\n\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\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: function 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: function _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: function _watcher() {\n    var _this = this;\n\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('resize.zf.mediaquery').on('resize.zf.mediaquery', function () {\n      var newSize = _this._getCurrentSize(),\n          currentSize = _this.current;\n\n      if (newSize !== currentSize) {\n        // Change the current media query\n        _this.current = newSize; // Broadcast the media query change on the window\n\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n      }\n    });\n  }\n}; // Thank you: https://github.com/sindresorhus/query-string\n\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); // missing `=` should be `null`:\n    // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\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\n    return ret;\n  }, {});\n  return styleObject;\n}\n\n\n\n//# sourceURL=webpack:///./js/foundation.util.mediaQuery.js?")},"./js/foundation.util.motion.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Move\", function() { return Move; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Motion\", function() { return Motion; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n\n\n\n\n/**\n * Motion module.\n * @module foundation.motion\n */\n\nvar initClasses = ['mui-enter', 'mui-leave'];\nvar activeClasses = ['mui-enter-active', 'mui-leave-active'];\nvar Motion = {\n  animateIn: function animateIn(element, animation, cb) {\n    animate(true, element, animation, cb);\n  },\n  animateOut: function animateOut(element, animation, cb) {\n    animate(false, element, animation, cb);\n  }\n};\n\nfunction Move(duration, elem, fn) {\n  var anim,\n      prog,\n      start = null; // 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; // console.log(start, ts);\n\n    prog = ts - start;\n    fn.apply(elem);\n\n    if (prog < duration) {\n      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\n  anim = window.requestAnimationFrame(move);\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 */\n\n\nfunction animate(isIn, element, animation, cb) {\n  element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).eq(0);\n  if (!element.length) return;\n  var initClass = isIn ? initClasses[0] : initClasses[1];\n  var activeClass = isIn ? activeClasses[0] : activeClasses[1]; // Set up the animation\n\n  reset();\n  element.addClass(animation).css('transition', 'none');\n  requestAnimationFrame(function () {\n    element.addClass(initClass);\n    if (isIn) element.show();\n  }); // Start the animation\n\n  requestAnimationFrame(function () {\n    element[0].offsetWidth;\n    element.css('transition', '').addClass(activeClass);\n  }); // Clean up the animation when it finishes\n\n  element.one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"transitionend\"])(element), finish); // Hides the element (for out animations), resets the element, and runs a callback\n\n  function finish() {\n    if (!isIn) element.hide();\n    reset();\n    if (cb) cb.apply(element);\n  } // Resets transitions and removes motion-specific classes\n\n\n  function reset() {\n    element[0].style.transitionDuration = 0;\n    element.removeClass(\"\".concat(initClass, \" \").concat(activeClass, \" \").concat(animation));\n  }\n}\n\n\n\n//# sourceURL=webpack:///./js/foundation.util.motion.js?")},"./js/foundation.util.nest.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Nest\", function() { return Nest; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n\n\nvar Nest = {\n  Feather: function Feather(menu) {\n    var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'zf';\n    menu.attr('role', 'menubar');\n    var items = menu.find('li').attr({\n      'role': 'menuitem'\n    }),\n        subMenuClass = \"is-\".concat(type, \"-submenu\"),\n        subItemClass = \"\".concat(subMenuClass, \"-item\"),\n        hasSubClass = \"is-\".concat(type, \"-submenu-parent\"),\n        applyAria = type !== 'accordion'; // Accordions handle their own ARIA attriutes.\n\n    items.each(function () {\n      var $item = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n          $sub = $item.children('ul');\n\n      if ($sub.length) {\n        $item.addClass(hasSubClass);\n        $sub.addClass(\"submenu \".concat(subMenuClass)).attr({\n          'data-submenu': ''\n        });\n\n        if (applyAria) {\n          $item.attr({\n            'aria-haspopup': true,\n            'aria-label': $item.children('a:first').text()\n          }); // Note:  Drilldowns behave differently in how they hide, and so need\n          // additional attributes.  We should look if this possibly over-generalized\n          // utility (Nest) is appropriate when we rework menus in 6.4\n\n          if (type === 'drilldown') {\n            $item.attr({\n              'aria-expanded': false\n            });\n          }\n        }\n\n        $sub.addClass(\"submenu \".concat(subMenuClass)).attr({\n          'data-submenu': '',\n          'role': 'menubar'\n        });\n\n        if (type === 'drilldown') {\n          $sub.attr({\n            'aria-hidden': true\n          });\n        }\n      }\n\n      if ($item.parent('[data-submenu]').length) {\n        $item.addClass(\"is-submenu-item \".concat(subItemClass));\n      }\n    });\n    return;\n  },\n  Burn: function Burn(menu, type) {\n    var //items = menu.find('li'),\n    subMenuClass = \"is-\".concat(type, \"-submenu\"),\n        subItemClass = \"\".concat(subMenuClass, \"-item\"),\n        hasSubClass = \"is-\".concat(type, \"-submenu-parent\");\n    menu.find('>li, > li > ul, .menu, .menu > li, [data-submenu] > li').removeClass(\"\".concat(subMenuClass, \" \").concat(subItemClass, \" \").concat(hasSubClass, \" is-submenu-item submenu is-active\")).removeAttr('data-submenu').css('display', '');\n  }\n};\n\n\n//# sourceURL=webpack:///./js/foundation.util.nest.js?")},"./js/foundation.util.triggers.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Triggers\", function() { return Triggers; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.motion */ \"./js/foundation.util.motion.js\");\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\n\nvar MutationObserver = function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n\n  for (var i = 0; i < prefixes.length; i++) {\n    if (\"\".concat(prefixes[i], \"MutationObserver\") in window) {\n      return window[\"\".concat(prefixes[i], \"MutationObserver\")];\n    }\n  }\n\n  return false;\n}();\n\nvar triggers = function triggers(el, type) {\n  el.data(type).split(' ').forEach(function (id) {\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id))[type === 'close' ? 'trigger' : 'triggerHandler'](\"\".concat(type, \".zf.trigger\"), [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n};\nTriggers.Listeners.Basic = {\n  openListener: function openListener() {\n    triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'open');\n  },\n  closeListener: function closeListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('close');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'close');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function toggleListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function closeableListener(e) {\n    e.stopPropagation();\n    var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable');\n\n    if (animation !== '') {\n      _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('closed.zf');\n      });\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function toggleFocusListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle-focus');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id)).triggerHandler('toggle.zf.trigger', [jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)]);\n  }\n}; // Elements with [data-open] will reveal a plugin that supports it when clicked.\n\nTriggers.Initializers.addOpenListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\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.\n\n\nTriggers.Initializers.addCloseListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}; // Elements with [data-toggle] will toggle a plugin that supports it when clicked.\n\n\nTriggers.Initializers.addToggleListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}; // Elements with [data-closable] will respond to close.zf.trigger events.\n\n\nTriggers.Initializers.addCloseableListener = function ($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}; // Elements with [data-toggle-focus] will respond to coming in and out of focus\n\n\nTriggers.Initializers.addToggleFocusListener = function ($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}; // More Global/complex listeners and triggers\n\n\nTriggers.Listeners.Global = {\n  resizeListener: function resizeListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('resizeme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a resize event\n\n\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function scrollListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('scrollme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a scroll event\n\n\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function closeMeListener(e, pluginId) {\n    var plugin = e.namespace.split('.')[0];\n    var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-\".concat(plugin, \"]\")).not(\"[data-yeti-box=\\\"\".concat(pluginId, \"\\\"]\"));\n    plugins.each(function () {\n      var _this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  } // Global, parses whole document.\n\n};\n\nTriggers.Initializers.addClosemeListener = function (pluginName) {\n  var yetiBoxes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[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.concat(pluginName);\n    } else {\n      console.error('Plugin names must be strings');\n    }\n  }\n\n  if (yetiBoxes.length) {\n    var listeners = plugNames.map(function (name) {\n      return \"closeme.zf.\".concat(name);\n    }).join(' ');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n};\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  var timer,\n      args = Array.prototype.slice.call(arguments, 3);\n  jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(trigger).on(trigger, function (e) {\n    if (timer) {\n      clearTimeout(timer);\n    }\n\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  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-resize]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addScrollListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-scroll]');\n\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) {\n    return false;\n  }\n\n  var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]'); //element callback\n\n  var listeningElementsMutation = function listeningElementsMutation(mutationRecordsList) {\n    var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(mutationRecordsList[0].target); //trigger the event handler for the element depending on type\n\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\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n        }\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\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], {\n        attributes: true,\n        childList: true,\n        characterData: false,\n        subtree: true,\n        attributeFilter: [\"data-events\", \"style\"]\n      });\n    }\n  }\n};\n\nTriggers.Initializers.addSimpleListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\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\nTriggers.Initializers.addGlobalListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener();\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n};\n\nTriggers.init = function ($, Foundation) {\n  Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"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; // Legacy included to be backwards compatible for now.\n\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;\n  }\n};\n\n\n\n//# sourceURL=webpack:///./js/foundation.util.triggers.js?")},jquery:function(module,exports){eval("module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n//# sourceURL=webpack:///external_%7B%22root%22:%5B%22jQuery%22%5D,%22amd%22:%22jquery%22,%22commonjs%22:%22jquery%22,%22commonjs2%22:%22jquery%22%7D?")}})});