| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333 | 
							- (function webpackUniversalModuleDefinition(root, factory) {
 
- 	if(typeof exports === 'object' && typeof module === 'object')
 
- 		module.exports = factory(require("./foundation.core"), require("./foundation.util.box"), require("./foundation.util.mediaQuery"), require("./foundation.util.motion"), require("jquery"));
 
- 	else if(typeof define === 'function' && define.amd)
 
- 		define(["./foundation.core", "./foundation.util.box", "./foundation.util.mediaQuery", "./foundation.util.motion", "jquery"], factory);
 
- 	else if(typeof exports === 'object')
 
- 		exports["foundation.tooltip"] = factory(require("./foundation.core"), require("./foundation.util.box"), require("./foundation.util.mediaQuery"), require("./foundation.util.motion"), require("jquery"));
 
- 	else
 
- 		root["__FOUNDATION_EXTERNAL__"] = root["__FOUNDATION_EXTERNAL__"] || {}, root["__FOUNDATION_EXTERNAL__"]["foundation.tooltip"] = factory(root["__FOUNDATION_EXTERNAL__"]["foundation.core"], root["__FOUNDATION_EXTERNAL__"]["foundation.util.box"], root["__FOUNDATION_EXTERNAL__"]["foundation.util.mediaQuery"], root["__FOUNDATION_EXTERNAL__"]["foundation.util.motion"], root["jQuery"]);
 
- })(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {
 
- return /******/ (function(modules) { // webpackBootstrap
 
- /******/ 	// The module cache
 
- /******/ 	var installedModules = {};
 
- /******/
 
- /******/ 	// The require function
 
- /******/ 	function __webpack_require__(moduleId) {
 
- /******/
 
- /******/ 		// Check if module is in cache
 
- /******/ 		if(installedModules[moduleId]) {
 
- /******/ 			return installedModules[moduleId].exports;
 
- /******/ 		}
 
- /******/ 		// Create a new module (and put it into the cache)
 
- /******/ 		var module = installedModules[moduleId] = {
 
- /******/ 			i: moduleId,
 
- /******/ 			l: false,
 
- /******/ 			exports: {}
 
- /******/ 		};
 
- /******/
 
- /******/ 		// Execute the module function
 
- /******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
 
- /******/
 
- /******/ 		// Flag the module as loaded
 
- /******/ 		module.l = true;
 
- /******/
 
- /******/ 		// Return the exports of the module
 
- /******/ 		return module.exports;
 
- /******/ 	}
 
- /******/
 
- /******/
 
- /******/ 	// expose the modules object (__webpack_modules__)
 
- /******/ 	__webpack_require__.m = modules;
 
- /******/
 
- /******/ 	// expose the module cache
 
- /******/ 	__webpack_require__.c = installedModules;
 
- /******/
 
- /******/ 	// define getter function for harmony exports
 
- /******/ 	__webpack_require__.d = function(exports, name, getter) {
 
- /******/ 		if(!__webpack_require__.o(exports, name)) {
 
- /******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
 
- /******/ 		}
 
- /******/ 	};
 
- /******/
 
- /******/ 	// define __esModule on exports
 
- /******/ 	__webpack_require__.r = function(exports) {
 
- /******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
 
- /******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
 
- /******/ 		}
 
- /******/ 		Object.defineProperty(exports, '__esModule', { value: true });
 
- /******/ 	};
 
- /******/
 
- /******/ 	// create a fake namespace object
 
- /******/ 	// mode & 1: value is a module id, require it
 
- /******/ 	// mode & 2: merge all properties of value into the ns
 
- /******/ 	// mode & 4: return value when already ns object
 
- /******/ 	// mode & 8|1: behave like require
 
- /******/ 	__webpack_require__.t = function(value, mode) {
 
- /******/ 		if(mode & 1) value = __webpack_require__(value);
 
- /******/ 		if(mode & 8) return value;
 
- /******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
 
- /******/ 		var ns = Object.create(null);
 
- /******/ 		__webpack_require__.r(ns);
 
- /******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
 
- /******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
 
- /******/ 		return ns;
 
- /******/ 	};
 
- /******/
 
- /******/ 	// getDefaultExport function for compatibility with non-harmony modules
 
- /******/ 	__webpack_require__.n = function(module) {
 
- /******/ 		var getter = module && module.__esModule ?
 
- /******/ 			function getDefault() { return module['default']; } :
 
- /******/ 			function getModuleExports() { return module; };
 
- /******/ 		__webpack_require__.d(getter, 'a', getter);
 
- /******/ 		return getter;
 
- /******/ 	};
 
- /******/
 
- /******/ 	// Object.prototype.hasOwnProperty.call
 
- /******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
 
- /******/
 
- /******/ 	// __webpack_public_path__
 
- /******/ 	__webpack_require__.p = "";
 
- /******/
 
- /******/
 
- /******/ 	// Load entry module and return exports
 
- /******/ 	return __webpack_require__(__webpack_require__.s = 20);
 
- /******/ })
 
- /************************************************************************/
 
- /******/ ({
 
- /***/ "./foundation.core":
 
- /*!****************************************************************************************************************************************************************!*\
 
-   !*** external {"root":["__FOUNDATION_EXTERNAL__","foundation.core"],"amd":"./foundation.core","commonjs":"./foundation.core","commonjs2":"./foundation.core"} ***!
 
-   \****************************************************************************************************************************************************************/
 
- /*! no static exports found */
 
- /***/ (function(module, exports) {
 
- module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;
 
- /***/ }),
 
- /***/ "./foundation.util.box":
 
- /*!********************************************************************************************************************************************************************************!*\
 
-   !*** external {"root":["__FOUNDATION_EXTERNAL__","foundation.util.box"],"amd":"./foundation.util.box","commonjs":"./foundation.util.box","commonjs2":"./foundation.util.box"} ***!
 
-   \********************************************************************************************************************************************************************************/
 
- /*! no static exports found */
 
- /***/ (function(module, exports) {
 
- module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;
 
- /***/ }),
 
- /***/ "./foundation.util.mediaQuery":
 
- /*!************************************************************************************************************************************************************************************************************!*\
 
-   !*** external {"root":["__FOUNDATION_EXTERNAL__","foundation.util.mediaQuery"],"amd":"./foundation.util.mediaQuery","commonjs":"./foundation.util.mediaQuery","commonjs2":"./foundation.util.mediaQuery"} ***!
 
-   \************************************************************************************************************************************************************************************************************/
 
- /*! no static exports found */
 
- /***/ (function(module, exports) {
 
- module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;
 
- /***/ }),
 
- /***/ "./foundation.util.motion":
 
- /*!********************************************************************************************************************************************************************************************!*\
 
-   !*** external {"root":["__FOUNDATION_EXTERNAL__","foundation.util.motion"],"amd":"./foundation.util.motion","commonjs":"./foundation.util.motion","commonjs2":"./foundation.util.motion"} ***!
 
-   \********************************************************************************************************************************************************************************************/
 
- /*! no static exports found */
 
- /***/ (function(module, exports) {
 
- module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;
 
- /***/ }),
 
- /***/ "./js/entries/plugins/foundation.tooltip.js":
 
- /*!**************************************************!*\
 
-   !*** ./js/entries/plugins/foundation.tooltip.js ***!
 
-   \**************************************************/
 
- /*! exports provided: Foundation, Tooltip */
 
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
- "use strict";
 
- __webpack_require__.r(__webpack_exports__);
 
- /* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ "./foundation.core");
 
- /* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);
 
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Foundation", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__["Foundation"]; });
 
- /* harmony import */ var _foundation_tooltip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.tooltip */ "./js/foundation.tooltip.js");
 
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return _foundation_tooltip__WEBPACK_IMPORTED_MODULE_1__["Tooltip"]; });
 
- _foundation_core__WEBPACK_IMPORTED_MODULE_0__["Foundation"].plugin(_foundation_tooltip__WEBPACK_IMPORTED_MODULE_1__["Tooltip"], 'Tooltip');
 
- /***/ }),
 
- /***/ "./js/foundation.positionable.js":
 
- /*!***************************************!*\
 
-   !*** ./js/foundation.positionable.js ***!
 
-   \***************************************/
 
- /*! exports provided: Positionable */
 
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
- "use strict";
 
- __webpack_require__.r(__webpack_exports__);
 
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Positionable", function() { return Positionable; });
 
- /* harmony import */ var _foundation_util_box__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.util.box */ "./foundation.util.box");
 
- /* harmony import */ var _foundation_util_box__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__);
 
- /* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.plugin */ "./foundation.core");
 
- /* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__);
 
- function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
 
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
 
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
 
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
 
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
 
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
 
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
 
- function _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); }
 
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
 
- var POSITIONS = ['left', 'right', 'top', 'bottom'];
 
- var VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];
 
- var HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];
 
- var ALIGNMENTS = {
 
-   'left': VERTICAL_ALIGNMENTS,
 
-   'right': VERTICAL_ALIGNMENTS,
 
-   'top': HORIZONTAL_ALIGNMENTS,
 
-   'bottom': HORIZONTAL_ALIGNMENTS
 
- };
 
- function nextItem(item, array) {
 
-   var currentIdx = array.indexOf(item);
 
-   if (currentIdx === array.length - 1) {
 
-     return array[0];
 
-   } else {
 
-     return array[currentIdx + 1];
 
-   }
 
- }
 
- var Positionable =
 
- /*#__PURE__*/
 
- function (_Plugin) {
 
-   _inherits(Positionable, _Plugin);
 
-   function Positionable() {
 
-     _classCallCheck(this, Positionable);
 
-     return _possibleConstructorReturn(this, _getPrototypeOf(Positionable).apply(this, arguments));
 
-   }
 
-   _createClass(Positionable, [{
 
-     key: "_init",
 
-     /**
 
-      * Abstract class encapsulating the tether-like explicit positioning logic
 
-      * including repositioning based on overlap.
 
-      * Expects classes to define defaults for vOffset, hOffset, position,
 
-      * alignment, allowOverlap, and allowBottomOverlap. They can do this by
 
-      * extending the defaults, or (for now recommended due to the way docs are
 
-      * generated) by explicitly declaring them.
 
-      *
 
-      **/
 
-     value: function _init() {
 
-       this.triedPositions = {};
 
-       this.position = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;
 
-       this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;
 
-       this.originalPosition = this.position;
 
-       this.originalAlignment = this.alignment;
 
-     }
 
-   }, {
 
-     key: "_getDefaultPosition",
 
-     value: function _getDefaultPosition() {
 
-       return 'bottom';
 
-     }
 
-   }, {
 
-     key: "_getDefaultAlignment",
 
-     value: function _getDefaultAlignment() {
 
-       switch (this.position) {
 
-         case 'bottom':
 
-         case 'top':
 
-           return Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__["rtl"])() ? 'right' : 'left';
 
-         case 'left':
 
-         case 'right':
 
-           return 'bottom';
 
-       }
 
-     }
 
-     /**
 
-      * Adjusts the positionable possible positions by iterating through alignments
 
-      * and positions.
 
-      * @function
 
-      * @private
 
-      */
 
-   }, {
 
-     key: "_reposition",
 
-     value: function _reposition() {
 
-       if (this._alignmentsExhausted(this.position)) {
 
-         this.position = nextItem(this.position, POSITIONS);
 
-         this.alignment = ALIGNMENTS[this.position][0];
 
-       } else {
 
-         this._realign();
 
-       }
 
-     }
 
-     /**
 
-      * Adjusts the dropdown pane possible positions by iterating through alignments
 
-      * on the current position.
 
-      * @function
 
-      * @private
 
-      */
 
-   }, {
 
-     key: "_realign",
 
-     value: function _realign() {
 
-       this._addTriedPosition(this.position, this.alignment);
 
-       this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position]);
 
-     }
 
-   }, {
 
-     key: "_addTriedPosition",
 
-     value: function _addTriedPosition(position, alignment) {
 
-       this.triedPositions[position] = this.triedPositions[position] || [];
 
-       this.triedPositions[position].push(alignment);
 
-     }
 
-   }, {
 
-     key: "_positionsExhausted",
 
-     value: function _positionsExhausted() {
 
-       var isExhausted = true;
 
-       for (var i = 0; i < POSITIONS.length; i++) {
 
-         isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);
 
-       }
 
-       return isExhausted;
 
-     }
 
-   }, {
 
-     key: "_alignmentsExhausted",
 
-     value: function _alignmentsExhausted(position) {
 
-       return this.triedPositions[position] && this.triedPositions[position].length == ALIGNMENTS[position].length;
 
-     } // When we're trying to center, we don't want to apply offset that's going to
 
-     // take us just off center, so wrap around to return 0 for the appropriate
 
-     // offset in those alignments.  TODO: Figure out if we want to make this
 
-     // configurable behavior... it feels more intuitive, especially for tooltips, but
 
-     // it's possible someone might actually want to start from center and then nudge
 
-     // slightly off.
 
-   }, {
 
-     key: "_getVOffset",
 
-     value: function _getVOffset() {
 
-       return this.options.vOffset;
 
-     }
 
-   }, {
 
-     key: "_getHOffset",
 
-     value: function _getHOffset() {
 
-       return this.options.hOffset;
 
-     }
 
-   }, {
 
-     key: "_setPosition",
 
-     value: function _setPosition($anchor, $element, $parent) {
 
-       if ($anchor.attr('aria-expanded') === 'false') {
 
-         return false;
 
-       }
 
-       if (!this.options.allowOverlap) {
 
-         // restore original position & alignment before checking overlap
 
-         this.position = this.originalPosition;
 
-         this.alignment = this.originalAlignment;
 
-       }
 
-       $element.offset(_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__["Box"].GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));
 
-       if (!this.options.allowOverlap) {
 
-         var minOverlap = 100000000; // default coordinates to how we start, in case we can't figure out better
 
-         var minCoordinates = {
 
-           position: this.position,
 
-           alignment: this.alignment
 
-         };
 
-         while (!this._positionsExhausted()) {
 
-           var overlap = _foundation_util_box__WEBPACK_IMPORTED_MODULE_0__["Box"].OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);
 
-           if (overlap === 0) {
 
-             return;
 
-           }
 
-           if (overlap < minOverlap) {
 
-             minOverlap = overlap;
 
-             minCoordinates = {
 
-               position: this.position,
 
-               alignment: this.alignment
 
-             };
 
-           }
 
-           this._reposition();
 
-           $element.offset(_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__["Box"].GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));
 
-         } // If we get through the entire loop, there was no non-overlapping
 
-         // position available. Pick the version with least overlap.
 
-         this.position = minCoordinates.position;
 
-         this.alignment = minCoordinates.alignment;
 
-         $element.offset(_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__["Box"].GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));
 
-       }
 
-     }
 
-   }]);
 
-   return Positionable;
 
- }(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__["Plugin"]);
 
- Positionable.defaults = {
 
-   /**
 
-    * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.
 
-    * @option
 
-    * @type {string}
 
-    * @default 'auto'
 
-    */
 
-   position: 'auto',
 
-   /**
 
-    * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.
 
-    * @option
 
-    * @type {string}
 
-    * @default 'auto'
 
-    */
 
-   alignment: 'auto',
 
-   /**
 
-    * Allow overlap of container/window. If false, dropdown positionable first
 
-    * try to position as defined by data-position and data-alignment, but
 
-    * reposition if it would cause an overflow.
 
-    * @option
 
-    * @type {boolean}
 
-    * @default false
 
-    */
 
-   allowOverlap: false,
 
-   /**
 
-    * Allow overlap of only the bottom of the container. This is the most common
 
-    * behavior for dropdowns, allowing the dropdown to extend the bottom of the
 
-    * screen but not otherwise influence or break out of the container.
 
-    * @option
 
-    * @type {boolean}
 
-    * @default true
 
-    */
 
-   allowBottomOverlap: true,
 
-   /**
 
-    * Number of pixels the positionable should be separated vertically from anchor
 
-    * @option
 
-    * @type {number}
 
-    * @default 0
 
-    */
 
-   vOffset: 0,
 
-   /**
 
-    * Number of pixels the positionable should be separated horizontally from anchor
 
-    * @option
 
-    * @type {number}
 
-    * @default 0
 
-    */
 
-   hOffset: 0
 
- };
 
- /***/ }),
 
- /***/ "./js/foundation.tooltip.js":
 
- /*!**********************************!*\
 
-   !*** ./js/foundation.tooltip.js ***!
 
-   \**********************************/
 
- /*! exports provided: Tooltip */
 
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
- "use strict";
 
- __webpack_require__.r(__webpack_exports__);
 
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return Tooltip; });
 
- /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");
 
- /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);
 
- /* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ "./foundation.core");
 
- /* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);
 
- /* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ "./foundation.util.mediaQuery");
 
- /* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__);
 
- /* harmony import */ var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.util.triggers */ "./js/foundation.util.triggers.js");
 
- /* harmony import */ var _foundation_positionable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.positionable */ "./js/foundation.positionable.js");
 
- function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
 
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
 
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
 
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
 
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
 
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
 
- function _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); }
 
- function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
 
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
 
- function _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); }
 
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
 
- /**
 
-  * Tooltip module.
 
-  * @module foundation.tooltip
 
-  * @requires foundation.util.box
 
-  * @requires foundation.util.mediaQuery
 
-  * @requires foundation.util.triggers
 
-  */
 
- var Tooltip =
 
- /*#__PURE__*/
 
- function (_Positionable) {
 
-   _inherits(Tooltip, _Positionable);
 
-   function Tooltip() {
 
-     _classCallCheck(this, Tooltip);
 
-     return _possibleConstructorReturn(this, _getPrototypeOf(Tooltip).apply(this, arguments));
 
-   }
 
-   _createClass(Tooltip, [{
 
-     key: "_setup",
 
-     /**
 
-      * Creates a new instance of a Tooltip.
 
-      * @class
 
-      * @name Tooltip
 
-      * @fires Tooltip#init
 
-      * @param {jQuery} element - jQuery object to attach a tooltip to.
 
-      * @param {Object} options - object to extend the default configuration.
 
-      */
 
-     value: function _setup(element, options) {
 
-       this.$element = element;
 
-       this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Tooltip.defaults, this.$element.data(), options);
 
-       this.className = 'Tooltip'; // ie9 back compat
 
-       this.isActive = false;
 
-       this.isClick = false; // Triggers init is idempotent, just need to make sure it is initialized
 
-       _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__["Triggers"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);
 
-       this._init();
 
-     }
 
-     /**
 
-      * Initializes the tooltip by setting the creating the tip element, adding it's text, setting private variables and setting attributes on the anchor.
 
-      * @private
 
-      */
 
-   }, {
 
-     key: "_init",
 
-     value: function _init() {
 
-       _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__["MediaQuery"]._init();
 
-       var elemId = this.$element.attr('aria-describedby') || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__["GetYoDigits"])(6, 'tooltip');
 
-       this.options.tipText = this.options.tipText || this.$element.attr('title');
 
-       this.template = this.options.template ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.options.template) : this._buildTemplate(elemId);
 
-       if (this.options.allowHtml) {
 
-         this.template.appendTo(document.body).html(this.options.tipText).hide();
 
-       } else {
 
-         this.template.appendTo(document.body).text(this.options.tipText).hide();
 
-       }
 
-       this.$element.attr({
 
-         'title': '',
 
-         'aria-describedby': elemId,
 
-         'data-yeti-box': elemId,
 
-         'data-toggle': elemId,
 
-         'data-resize': elemId
 
-       }).addClass(this.options.triggerClass);
 
-       _get(_getPrototypeOf(Tooltip.prototype), "_init", this).call(this);
 
-       this._events();
 
-     }
 
-   }, {
 
-     key: "_getDefaultPosition",
 
-     value: function _getDefaultPosition() {
 
-       // handle legacy classnames
 
-       var elementClassName = this.$element[0].className;
 
-       if (this.$element[0] instanceof SVGElement) {
 
-         elementClassName = elementClassName.baseVal;
 
-       }
 
-       var position = elementClassName.match(/\b(top|left|right|bottom)\b/g);
 
-       return position ? position[0] : 'top';
 
-     }
 
-   }, {
 
-     key: "_getDefaultAlignment",
 
-     value: function _getDefaultAlignment() {
 
-       return 'center';
 
-     }
 
-   }, {
 
-     key: "_getHOffset",
 
-     value: function _getHOffset() {
 
-       if (this.position === 'left' || this.position === 'right') {
 
-         return this.options.hOffset + this.options.tooltipWidth;
 
-       } else {
 
-         return this.options.hOffset;
 
-       }
 
-     }
 
-   }, {
 
-     key: "_getVOffset",
 
-     value: function _getVOffset() {
 
-       if (this.position === 'top' || this.position === 'bottom') {
 
-         return this.options.vOffset + this.options.tooltipHeight;
 
-       } else {
 
-         return this.options.vOffset;
 
-       }
 
-     }
 
-     /**
 
-      * builds the tooltip element, adds attributes, and returns the template.
 
-      * @private
 
-      */
 
-   }, {
 
-     key: "_buildTemplate",
 
-     value: function _buildTemplate(id) {
 
-       var templateClasses = "".concat(this.options.tooltipClass, " ").concat(this.options.templateClasses).trim();
 
-       var $template = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div></div>').addClass(templateClasses).attr({
 
-         'role': 'tooltip',
 
-         'aria-hidden': true,
 
-         'data-is-active': false,
 
-         'data-is-focus': false,
 
-         'id': id
 
-       });
 
-       return $template;
 
-     }
 
-     /**
 
-      * sets the position class of an element and recursively calls itself until there are no more possible positions to attempt, or the tooltip element is no longer colliding.
 
-      * if the tooltip is larger than the screen width, default to full width - any user selected margin
 
-      * @private
 
-      */
 
-   }, {
 
-     key: "_setPosition",
 
-     value: function _setPosition() {
 
-       _get(_getPrototypeOf(Tooltip.prototype), "_setPosition", this).call(this, this.$element, this.template);
 
-     }
 
-     /**
 
-      * reveals the tooltip, and fires an event to close any other open tooltips on the page
 
-      * @fires Tooltip#closeme
 
-      * @fires Tooltip#show
 
-      * @function
 
-      */
 
-   }, {
 
-     key: "show",
 
-     value: function show() {
 
-       if (this.options.showOn !== 'all' && !_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__["MediaQuery"].is(this.options.showOn)) {
 
-         // console.error('The screen is too small to display this tooltip');
 
-         return false;
 
-       }
 
-       var _this = this;
 
-       this.template.css('visibility', 'hidden').show();
 
-       this._setPosition();
 
-       this.template.removeClass('top bottom left right').addClass(this.position);
 
-       this.template.removeClass('align-top align-bottom align-left align-right align-center').addClass('align-' + this.alignment);
 
-       /**
 
-        * Fires to close all other open tooltips on the page
 
-        * @event Closeme#tooltip
 
-        */
 
-       this.$element.trigger('closeme.zf.tooltip', this.template.attr('id'));
 
-       this.template.attr({
 
-         'data-is-active': true,
 
-         'aria-hidden': false
 
-       });
 
-       _this.isActive = true; // console.log(this.template);
 
-       this.template.stop().hide().css('visibility', '').fadeIn(this.options.fadeInDuration, function () {//maybe do stuff?
 
-       });
 
-       /**
 
-        * Fires when the tooltip is shown
 
-        * @event Tooltip#show
 
-        */
 
-       this.$element.trigger('show.zf.tooltip');
 
-     }
 
-     /**
 
-      * Hides the current tooltip, and resets the positioning class if it was changed due to collision
 
-      * @fires Tooltip#hide
 
-      * @function
 
-      */
 
-   }, {
 
-     key: "hide",
 
-     value: function hide() {
 
-       // console.log('hiding', this.$element.data('yeti-box'));
 
-       var _this = this;
 
-       this.template.stop().attr({
 
-         'aria-hidden': true,
 
-         'data-is-active': false
 
-       }).fadeOut(this.options.fadeOutDuration, function () {
 
-         _this.isActive = false;
 
-         _this.isClick = false;
 
-       });
 
-       /**
 
-        * fires when the tooltip is hidden
 
-        * @event Tooltip#hide
 
-        */
 
-       this.$element.trigger('hide.zf.tooltip');
 
-     }
 
-     /**
 
-      * adds event listeners for the tooltip and its anchor
 
-      * TODO combine some of the listeners like focus and mouseenter, etc.
 
-      * @private
 
-      */
 
-   }, {
 
-     key: "_events",
 
-     value: function _events() {
 
-       var _this = this;
 
-       var hasTouch = 'ontouchstart' in window || typeof window.ontouchstart !== 'undefined';
 
-       var $template = this.template;
 
-       var isFocus = false; // `disableForTouch: Fully disable the tooltip on touch devices
 
-       if (hasTouch && this.options.disableForTouch) return;
 
-       if (!this.options.disableHover) {
 
-         this.$element.on('mouseenter.zf.tooltip', function (e) {
 
-           if (!_this.isActive) {
 
-             _this.timeout = setTimeout(function () {
 
-               _this.show();
 
-             }, _this.options.hoverDelay);
 
-           }
 
-         }).on('mouseleave.zf.tooltip', Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__["ignoreMousedisappear"])(function (e) {
 
-           clearTimeout(_this.timeout);
 
-           if (!isFocus || _this.isClick && !_this.options.clickOpen) {
 
-             _this.hide();
 
-           }
 
-         }));
 
-       }
 
-       if (hasTouch) {
 
-         this.$element.on('tap.zf.tooltip touchend.zf.tooltip', function (e) {
 
-           _this.isActive ? _this.hide() : _this.show();
 
-         });
 
-       }
 
-       if (this.options.clickOpen) {
 
-         this.$element.on('mousedown.zf.tooltip', function (e) {
 
-           if (_this.isClick) {//_this.hide();
 
-             // _this.isClick = false;
 
-           } else {
 
-             _this.isClick = true;
 
-             if ((_this.options.disableHover || !_this.$element.attr('tabindex')) && !_this.isActive) {
 
-               _this.show();
 
-             }
 
-           }
 
-         });
 
-       } else {
 
-         this.$element.on('mousedown.zf.tooltip', function (e) {
 
-           _this.isClick = true;
 
-         });
 
-       }
 
-       this.$element.on({
 
-         // 'toggle.zf.trigger': this.toggle.bind(this),
 
-         // 'close.zf.trigger': this.hide.bind(this)
 
-         'close.zf.trigger': this.hide.bind(this)
 
-       });
 
-       this.$element.on('focus.zf.tooltip', function (e) {
 
-         isFocus = true;
 
-         if (_this.isClick) {
 
-           // If we're not showing open on clicks, we need to pretend a click-launched focus isn't
 
-           // a real focus, otherwise on hover and come back we get bad behavior
 
-           if (!_this.options.clickOpen) {
 
-             isFocus = false;
 
-           }
 
-           return false;
 
-         } else {
 
-           _this.show();
 
-         }
 
-       }).on('focusout.zf.tooltip', function (e) {
 
-         isFocus = false;
 
-         _this.isClick = false;
 
-         _this.hide();
 
-       }).on('resizeme.zf.trigger', function () {
 
-         if (_this.isActive) {
 
-           _this._setPosition();
 
-         }
 
-       });
 
-     }
 
-     /**
 
-      * adds a toggle method, in addition to the static show() & hide() functions
 
-      * @function
 
-      */
 
-   }, {
 
-     key: "toggle",
 
-     value: function toggle() {
 
-       if (this.isActive) {
 
-         this.hide();
 
-       } else {
 
-         this.show();
 
-       }
 
-     }
 
-     /**
 
-      * Destroys an instance of tooltip, removes template element from the view.
 
-      * @function
 
-      */
 
-   }, {
 
-     key: "_destroy",
 
-     value: function _destroy() {
 
-       this.$element.attr('title', this.template.text()).off('.zf.trigger .zf.tooltip').removeClass(this.options.triggerClass).removeClass('top right left bottom').removeAttr('aria-describedby data-disable-hover data-resize data-toggle data-tooltip data-yeti-box');
 
-       this.template.remove();
 
-     }
 
-   }]);
 
-   return Tooltip;
 
- }(_foundation_positionable__WEBPACK_IMPORTED_MODULE_4__["Positionable"]);
 
- Tooltip.defaults = {
 
-   /**
 
-    * Time, in ms, before a tooltip should open on hover.
 
-    * @option
 
-    * @type {number}
 
-    * @default 200
 
-    */
 
-   hoverDelay: 200,
 
-   /**
 
-    * Time, in ms, a tooltip should take to fade into view.
 
-    * @option
 
-    * @type {number}
 
-    * @default 150
 
-    */
 
-   fadeInDuration: 150,
 
-   /**
 
-    * Time, in ms, a tooltip should take to fade out of view.
 
-    * @option
 
-    * @type {number}
 
-    * @default 150
 
-    */
 
-   fadeOutDuration: 150,
 
-   /**
 
-    * Disables hover events from opening the tooltip if set to true
 
-    * @option
 
-    * @type {boolean}
 
-    * @default false
 
-    */
 
-   disableHover: false,
 
-   /**
 
-    * Disable the tooltip for touch devices.
 
-    * This can be useful to make elements with a tooltip on it trigger their
 
-    * action on the first tap instead of displaying the tooltip.
 
-    * @option
 
-    * @type {booelan}
 
-    * @default false
 
-    */
 
-   disableForTouch: false,
 
-   /**
 
-    * Optional addtional classes to apply to the tooltip template on init.
 
-    * @option
 
-    * @type {string}
 
-    * @default ''
 
-    */
 
-   templateClasses: '',
 
-   /**
 
-    * Non-optional class added to tooltip templates. Foundation default is 'tooltip'.
 
-    * @option
 
-    * @type {string}
 
-    * @default 'tooltip'
 
-    */
 
-   tooltipClass: 'tooltip',
 
-   /**
 
-    * Class applied to the tooltip anchor element.
 
-    * @option
 
-    * @type {string}
 
-    * @default 'has-tip'
 
-    */
 
-   triggerClass: 'has-tip',
 
-   /**
 
-    * Minimum breakpoint size at which to open the tooltip.
 
-    * @option
 
-    * @type {string}
 
-    * @default 'small'
 
-    */
 
-   showOn: 'small',
 
-   /**
 
-    * Custom template to be used to generate markup for tooltip.
 
-    * @option
 
-    * @type {string}
 
-    * @default ''
 
-    */
 
-   template: '',
 
-   /**
 
-    * Text displayed in the tooltip template on open.
 
-    * @option
 
-    * @type {string}
 
-    * @default ''
 
-    */
 
-   tipText: '',
 
-   touchCloseText: 'Tap to close.',
 
-   /**
 
-    * Allows the tooltip to remain open if triggered with a click or touch event.
 
-    * @option
 
-    * @type {boolean}
 
-    * @default true
 
-    */
 
-   clickOpen: true,
 
-   /**
 
-    * Position of tooltip. Can be left, right, bottom, top, or auto.
 
-    * @option
 
-    * @type {string}
 
-    * @default 'auto'
 
-    */
 
-   position: 'auto',
 
-   /**
 
-    * Alignment of tooltip relative to anchor. Can be left, right, bottom, top, center, or auto.
 
-    * @option
 
-    * @type {string}
 
-    * @default 'auto'
 
-    */
 
-   alignment: 'auto',
 
-   /**
 
-    * Allow overlap of container/window. If false, tooltip will first try to
 
-    * position as defined by data-position and data-alignment, but reposition if
 
-    * it would cause an overflow.  @option
 
-    * @type {boolean}
 
-    * @default false
 
-    */
 
-   allowOverlap: false,
 
-   /**
 
-    * Allow overlap of only the bottom of the container. This is the most common
 
-    * behavior for dropdowns, allowing the dropdown to extend the bottom of the
 
-    * screen but not otherwise influence or break out of the container.
 
-    * Less common for tooltips.
 
-    * @option
 
-    * @type {boolean}
 
-    * @default false
 
-    */
 
-   allowBottomOverlap: false,
 
-   /**
 
-    * Distance, in pixels, the template should push away from the anchor on the Y axis.
 
-    * @option
 
-    * @type {number}
 
-    * @default 0
 
-    */
 
-   vOffset: 0,
 
-   /**
 
-    * Distance, in pixels, the template should push away from the anchor on the X axis
 
-    * @option
 
-    * @type {number}
 
-    * @default 0
 
-    */
 
-   hOffset: 0,
 
-   /**
 
-    * Distance, in pixels, the template spacing auto-adjust for a vertical tooltip
 
-    * @option
 
-    * @type {number}
 
-    * @default 14
 
-    */
 
-   tooltipHeight: 14,
 
-   /**
 
-    * Distance, in pixels, the template spacing auto-adjust for a horizontal tooltip
 
-    * @option
 
-    * @type {number}
 
-    * @default 12
 
-    */
 
-   tooltipWidth: 12,
 
-   /**
 
-   * Allow HTML in tooltip. Warning: If you are loading user-generated content into tooltips,
 
-   * allowing HTML may open yourself up to XSS attacks.
 
-   * @option
 
-   * @type {boolean}
 
-   * @default false
 
-   */
 
-   allowHtml: false
 
- };
 
- /**
 
-  * TODO utilize resize event trigger
 
-  */
 
- /***/ }),
 
- /***/ "./js/foundation.util.triggers.js":
 
- /*!****************************************!*\
 
-   !*** ./js/foundation.util.triggers.js ***!
 
-   \****************************************/
 
- /*! exports provided: Triggers */
 
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
- "use strict";
 
- __webpack_require__.r(__webpack_exports__);
 
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Triggers", function() { return Triggers; });
 
- /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");
 
- /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);
 
- /* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ "./foundation.core");
 
- /* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);
 
- /* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.motion */ "./foundation.util.motion");
 
- /* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__);
 
- function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
 
- var MutationObserver = function () {
 
-   var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];
 
-   for (var i = 0; i < prefixes.length; i++) {
 
-     if ("".concat(prefixes[i], "MutationObserver") in window) {
 
-       return window["".concat(prefixes[i], "MutationObserver")];
 
-     }
 
-   }
 
-   return false;
 
- }();
 
- var triggers = function triggers(el, type) {
 
-   el.data(type).split(' ').forEach(function (id) {
 
-     jquery__WEBPACK_IMPORTED_MODULE_0___default()("#".concat(id))[type === 'close' ? 'trigger' : 'triggerHandler']("".concat(type, ".zf.trigger"), [el]);
 
-   });
 
- };
 
- var Triggers = {
 
-   Listeners: {
 
-     Basic: {},
 
-     Global: {}
 
-   },
 
-   Initializers: {}
 
- };
 
- Triggers.Listeners.Basic = {
 
-   openListener: function openListener() {
 
-     triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'open');
 
-   },
 
-   closeListener: function closeListener() {
 
-     var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('close');
 
-     if (id) {
 
-       triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'close');
 
-     } else {
 
-       jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('close.zf.trigger');
 
-     }
 
-   },
 
-   toggleListener: function toggleListener() {
 
-     var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');
 
-     if (id) {
 
-       triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle');
 
-     } else {
 
-       jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('toggle.zf.trigger');
 
-     }
 
-   },
 
-   closeableListener: function closeableListener(e) {
 
-     var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable'); // Only close the first closable element. See https://git.io/zf-7833
 
-     e.stopPropagation();
 
-     if (animation !== '') {
 
-       _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__["Motion"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {
 
-         jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('closed.zf');
 
-       });
 
-     } else {
 
-       jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).fadeOut().trigger('closed.zf');
 
-     }
 
-   },
 
-   toggleFocusListener: function toggleFocusListener() {
 
-     var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle-focus');
 
-     jquery__WEBPACK_IMPORTED_MODULE_0___default()("#".concat(id)).triggerHandler('toggle.zf.trigger', [jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)]);
 
-   }
 
- }; // Elements with [data-open] will reveal a plugin that supports it when clicked.
 
- Triggers.Initializers.addOpenListener = function ($elem) {
 
-   $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);
 
-   $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);
 
- }; // Elements with [data-close] will close a plugin that supports it when clicked.
 
- // If used without a value on [data-close], the event will bubble, allowing it to close a parent component.
 
- Triggers.Initializers.addCloseListener = function ($elem) {
 
-   $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);
 
-   $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);
 
- }; // Elements with [data-toggle] will toggle a plugin that supports it when clicked.
 
- Triggers.Initializers.addToggleListener = function ($elem) {
 
-   $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);
 
-   $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);
 
- }; // Elements with [data-closable] will respond to close.zf.trigger events.
 
- Triggers.Initializers.addCloseableListener = function ($elem) {
 
-   $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);
 
-   $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);
 
- }; // Elements with [data-toggle-focus] will respond to coming in and out of focus
 
- Triggers.Initializers.addToggleFocusListener = function ($elem) {
 
-   $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);
 
-   $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);
 
- }; // More Global/complex listeners and triggers
 
- Triggers.Listeners.Global = {
 
-   resizeListener: function resizeListener($nodes) {
 
-     if (!MutationObserver) {
 
-       //fallback for IE 9
 
-       $nodes.each(function () {
 
-         jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('resizeme.zf.trigger');
 
-       });
 
-     } //trigger all listening elements and signal a resize event
 
-     $nodes.attr('data-events', "resize");
 
-   },
 
-   scrollListener: function scrollListener($nodes) {
 
-     if (!MutationObserver) {
 
-       //fallback for IE 9
 
-       $nodes.each(function () {
 
-         jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('scrollme.zf.trigger');
 
-       });
 
-     } //trigger all listening elements and signal a scroll event
 
-     $nodes.attr('data-events', "scroll");
 
-   },
 
-   closeMeListener: function closeMeListener(e, pluginId) {
 
-     var plugin = e.namespace.split('.')[0];
 
-     var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default()("[data-".concat(plugin, "]")).not("[data-yeti-box=\"".concat(pluginId, "\"]"));
 
-     plugins.each(function () {
 
-       var _this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);
 
-       _this.triggerHandler('close.zf.trigger', [_this]);
 
-     });
 
-   } // Global, parses whole document.
 
- };
 
- Triggers.Initializers.addClosemeListener = function (pluginName) {
 
-   var yetiBoxes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-yeti-box]'),
 
-       plugNames = ['dropdown', 'tooltip', 'reveal'];
 
-   if (pluginName) {
 
-     if (typeof pluginName === 'string') {
 
-       plugNames.push(pluginName);
 
-     } else if (_typeof(pluginName) === 'object' && typeof pluginName[0] === 'string') {
 
-       plugNames = plugNames.concat(pluginName);
 
-     } else {
 
-       console.error('Plugin names must be strings');
 
-     }
 
-   }
 
-   if (yetiBoxes.length) {
 
-     var listeners = plugNames.map(function (name) {
 
-       return "closeme.zf.".concat(name);
 
-     }).join(' ');
 
-     jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);
 
-   }
 
- };
 
- function debounceGlobalListener(debounce, trigger, listener) {
 
-   var timer,
 
-       args = Array.prototype.slice.call(arguments, 3);
 
-   jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(trigger).on(trigger, function (e) {
 
-     if (timer) {
 
-       clearTimeout(timer);
 
-     }
 
-     timer = setTimeout(function () {
 
-       listener.apply(null, args);
 
-     }, debounce || 10); //default time to emit scroll event
 
-   });
 
- }
 
- Triggers.Initializers.addResizeListener = function (debounce) {
 
-   var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-resize]');
 
-   if ($nodes.length) {
 
-     debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);
 
-   }
 
- };
 
- Triggers.Initializers.addScrollListener = function (debounce) {
 
-   var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-scroll]');
 
-   if ($nodes.length) {
 
-     debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);
 
-   }
 
- };
 
- Triggers.Initializers.addMutationEventsListener = function ($elem) {
 
-   if (!MutationObserver) {
 
-     return false;
 
-   }
 
-   var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]'); //element callback
 
-   var listeningElementsMutation = function listeningElementsMutation(mutationRecordsList) {
 
-     var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(mutationRecordsList[0].target); //trigger the event handler for the element depending on type
 
-     switch (mutationRecordsList[0].type) {
 
-       case "attributes":
 
-         if ($target.attr("data-events") === "scroll" && mutationRecordsList[0].attributeName === "data-events") {
 
-           $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);
 
-         }
 
-         if ($target.attr("data-events") === "resize" && mutationRecordsList[0].attributeName === "data-events") {
 
-           $target.triggerHandler('resizeme.zf.trigger', [$target]);
 
-         }
 
-         if (mutationRecordsList[0].attributeName === "style") {
 
-           $target.closest("[data-mutate]").attr("data-events", "mutate");
 
-           $target.closest("[data-mutate]").triggerHandler('mutateme.zf.trigger', [$target.closest("[data-mutate]")]);
 
-         }
 
-         break;
 
-       case "childList":
 
-         $target.closest("[data-mutate]").attr("data-events", "mutate");
 
-         $target.closest("[data-mutate]").triggerHandler('mutateme.zf.trigger', [$target.closest("[data-mutate]")]);
 
-         break;
 
-       default:
 
-         return false;
 
-       //nothing
 
-     }
 
-   };
 
-   if ($nodes.length) {
 
-     //for each element that needs to listen for resizing, scrolling, or mutation add a single observer
 
-     for (var i = 0; i <= $nodes.length - 1; i++) {
 
-       var elementObserver = new MutationObserver(listeningElementsMutation);
 
-       elementObserver.observe($nodes[i], {
 
-         attributes: true,
 
-         childList: true,
 
-         characterData: false,
 
-         subtree: true,
 
-         attributeFilter: ["data-events", "style"]
 
-       });
 
-     }
 
-   }
 
- };
 
- Triggers.Initializers.addSimpleListeners = function () {
 
-   var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);
 
-   Triggers.Initializers.addOpenListener($document);
 
-   Triggers.Initializers.addCloseListener($document);
 
-   Triggers.Initializers.addToggleListener($document);
 
-   Triggers.Initializers.addCloseableListener($document);
 
-   Triggers.Initializers.addToggleFocusListener($document);
 
- };
 
- Triggers.Initializers.addGlobalListeners = function () {
 
-   var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);
 
-   Triggers.Initializers.addMutationEventsListener($document);
 
-   Triggers.Initializers.addResizeListener();
 
-   Triggers.Initializers.addScrollListener();
 
-   Triggers.Initializers.addClosemeListener();
 
- };
 
- Triggers.init = function ($, Foundation) {
 
-   Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__["onLoad"])($(window), function () {
 
-     if ($.triggersInitialized !== true) {
 
-       Triggers.Initializers.addSimpleListeners();
 
-       Triggers.Initializers.addGlobalListeners();
 
-       $.triggersInitialized = true;
 
-     }
 
-   });
 
-   if (Foundation) {
 
-     Foundation.Triggers = Triggers; // Legacy included to be backwards compatible for now.
 
-     Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;
 
-   }
 
- };
 
- /***/ }),
 
- /***/ 20:
 
- /*!********************************************************!*\
 
-   !*** multi ./js/entries/plugins/foundation.tooltip.js ***!
 
-   \********************************************************/
 
- /*! no static exports found */
 
- /***/ (function(module, exports, __webpack_require__) {
 
- module.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.tooltip.js */"./js/entries/plugins/foundation.tooltip.js");
 
- /***/ }),
 
- /***/ "jquery":
 
- /*!********************************************************************************************!*\
 
-   !*** external {"root":["jQuery"],"amd":"jquery","commonjs":"jquery","commonjs2":"jquery"} ***!
 
-   \********************************************************************************************/
 
- /*! no static exports found */
 
- /***/ (function(module, exports) {
 
- module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;
 
- /***/ })
 
- /******/ });
 
- });
 
- //# sourceMappingURL=foundation.tooltip.js.map
 
 
  |