{"version":3,"file":"foundation.util.mediaQuery.min.js","sources":["foundation.util.mediaQuery.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.mediaQuery\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 24);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.util.mediaQuery.js\":\n/*!**********************************************************!*\\\n !*** ./js/entries/plugins/foundation.util.mediaQuery.js ***!\n \\**********************************************************/\n/*! exports provided: Foundation, MediaQuery */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.util.mediaQuery */ \"./js/foundation.util.mediaQuery.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MediaQuery\", function() { return _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].MediaQuery = _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"];\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].MediaQuery._init();\n\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.mediaQuery.js\":\n/*!******************************************!*\\\n !*** ./js/foundation.util.mediaQuery.js ***!\n \\******************************************/\n/*! exports provided: MediaQuery */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__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__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n // Default set of media queries\n// const defaultQueries = {\n// 'default' : 'only screen',\n// landscape : 'only screen and (orientation: landscape)',\n// portrait : 'only screen and (orientation: portrait)',\n// retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n// 'only screen and (min--moz-device-pixel-ratio: 2),' +\n// 'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n// 'only screen and (min-device-pixel-ratio: 2),' +\n// 'only screen and (min-resolution: 192dpi),' +\n// 'only screen and (min-resolution: 2dppx)'\n// };\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright © 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n\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 // make sure the initialization is only done once when calling _init() several times\n if (this.isInitialized === true) {\n return this;\n } else {\n this.isInitialized = true;\n }\n\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()('').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 self.queries = []; // reset\n\n for (var key in namedQueries) {\n if (namedQueries.hasOwnProperty(key)) {\n self.queries.push({\n name: key,\n value: \"only screen and (min-width: \".concat(namedQueries[key], \")\")\n });\n }\n }\n\n this.current = this._getCurrentSize();\n\n this._watcher();\n },\n\n /**\n * Reinitializes the media query helper.\n * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n * @function\n * @private\n */\n _reInit: function _reInit() {\n this.isInitialized = false;\n\n this._init();\n },\n\n /**\n * Checks if the screen is at least as wide as a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n */\n atLeast: 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 is within the given breakpoint.\n * If smaller than the breakpoint of larger than its upper limit it returns false.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n */\n only: function only(size) {\n return size === this._getCurrentSize();\n },\n\n /**\n * Checks if the screen is within a breakpoint or smaller.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n */\n upTo: function upTo(size) {\n var nextSize = this.next(size); // If the next breakpoint does not match, the screen is smaller than\n // the upper limit of this breakpoint.\n\n if (nextSize) {\n return !this.atLeast(nextSize);\n } // If there is no next breakpoint, the \"size\" breakpoint does not have\n // an upper limit and the screen will always be within it or smaller.\n\n\n return true;\n },\n\n /**\n * Checks if the screen matches to a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n */\n is: function is(size) {\n var parts = size.trim().split(' ').filter(function (p) {\n return !!p.length;\n });\n\n var _parts = _slicedToArray(parts, 2),\n bpSize = _parts[0],\n _parts$ = _parts[1],\n bpModifier = _parts$ === void 0 ? '' : _parts$; // Only the breakpont\n\n\n if (bpModifier === 'only') {\n return this.only(bpSize);\n } // At least the breakpoint (included)\n\n\n if (!bpModifier || bpModifier === 'up') {\n return this.atLeast(bpSize);\n } // Up to the breakpoint (included)\n\n\n if (bpModifier === 'down') {\n return this.upTo(bpSize);\n }\n\n throw new Error(\"\\n Invalid breakpoint passed to MediaQuery.is().\\n Expected a breakpoint name formatted like \\\" \\\", got \\\"\".concat(size, \"\\\".\\n \"));\n },\n\n /**\n * Gets the media query of a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to get.\n * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n */\n get: 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 * Get the breakpoint following the given breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint.\n * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n */\n next: function next(size) {\n var _this = this;\n\n var queryIndex = this.queries.findIndex(function (q) {\n return _this._getQueryName(q) === size;\n });\n\n if (queryIndex === -1) {\n throw new Error(\"\\n Unknown breakpoint \\\"\".concat(size, \"\\\" passed to MediaQuery.next().\\n Ensure it is present in your Sass \\\"$breakpoints\\\" setting.\\n \"));\n }\n\n var nextQuery = this.queries[queryIndex + 1];\n return nextQuery ? nextQuery.name : null;\n },\n\n /**\n * Returns the name of the breakpoint related to the given value.\n * @function\n * @private\n * @param {String|Object} value - Breakpoint name or query object.\n * @returns {String} Name of the breakpoint.\n */\n _getQueryName: function _getQueryName(value) {\n if (typeof value === 'string') return value;\n if (_typeof(value) === 'object') return value.name;\n throw new TypeError(\"\\n Invalid value passed to MediaQuery._getQueryName().\\n Expected a breakpoint name (String) or a breakpoint query (Object), got \\\"\".concat(value, \"\\\" (\").concat(_typeof(value), \")\\n \"));\n },\n\n /**\n * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n * @function\n * @private\n * @returns {String} Name of the current breakpoint.\n */\n _getCurrentSize: 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 return matched && this._getQueryName(matched);\n },\n\n /**\n * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n * @function\n * @private\n */\n _watcher: function _watcher() {\n var _this2 = this;\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('resize.zf.trigger', function () {\n var newSize = _this2._getCurrentSize(),\n currentSize = _this2.current;\n\n if (newSize !== currentSize) {\n // Change the current media query\n _this2.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/***/ }),\n\n/***/ 24:\n/*!****************************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.util.mediaQuery.js ***!\n \\****************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.mediaQuery.js */\"./js/entries/plugins/foundation.util.mediaQuery.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.util.mediaQuery.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./js/entries/plugins/foundation.util.mediaQuery.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__","MediaQuery","_init","./js/foundation.util.mediaQuery.js","style","info","styleMedia","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_typeof","obj","Symbol","iterator","constructor","prototype","_slicedToArray","arr","i","Array","isArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","call","next","done","push","value","length","err","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","Object","toString","slice","name","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","matchMedia","media","document","createElement","script","getElementsByTagName","type","id","parentNode","insertBefore","head","appendChild","getComputedStyle","currentStyle","matchMedium","text","styleSheet","cssText","textContent","width","matches","queries","current","this","isInitialized","appendTo","namedQueries","styleObject","key","extractedStyles","css","str","trim","split","reduce","ret","param","parts","replace","val","decodeURIComponent","hasOwnProperty","concat","_getCurrentSize","_watcher","_reInit","atLeast","size","query","get","only","upTo","nextSize","is","_parts","filter","p","bpSize","_parts$","bpModifier","Error","_this","queryIndex","findIndex","q","_getQueryName","nextQuery","matched","_this2","on","newSize","currentSize","trigger","24","jquery","installedModules","m","c","getter","defineProperty","enumerable","toStringTag","t","mode","__esModule","ns","create","bind","object","property","s","moduleId","l"],"mappings":"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"}