{"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_EXTERNAL__\"] = 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})(self, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./js/foundation.util.mediaQuery.js\":\n/*!******************************************!*\\\n !*** ./js/foundation.util.mediaQuery.js ***!\n \\******************************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MediaQuery: function() { return /* binding */ MediaQuery; }\n/* harmony export */ });\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\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\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.\"); }\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); }\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; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\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\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright © 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = function () {\n \"use strict\";\n\n // For browsers that support matchMedium api such as IE 9 and webkit\n var styleMedia = window.styleMedia || window.media;\n\n // For those that don't support matchMedium\n if (!styleMedia) {\n var style = document.createElement('style'),\n script = document.getElementsByTagName('script')[0],\n info = null;\n style.type = 'text/css';\n style.id = 'matchmediajs-test';\n if (!script) {\n document.head.appendChild(style);\n } else {\n script.parentNode.insertBefore(style, script);\n }\n\n // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n info = 'getComputedStyle' in window && window.getComputedStyle(style, null) || style.currentStyle;\n styleMedia = {\n matchMedium: function matchMedium(media) {\n var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n if (style.styleSheet) {\n style.styleSheet.cssText = text;\n } else {\n style.textContent = text;\n }\n\n // Test if media query is true or false\n return info.width === '1px';\n }\n };\n }\n 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 * 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 var self = this;\n var $meta = jquery__WEBPACK_IMPORTED_MODULE_0___default()('meta.foundation-mq');\n if (!$meta.length) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('').appendTo(document.head);\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 this.current = this._getCurrentSize();\n this._watcher();\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 this._init();\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 if (query) {\n return window.matchMedia(query).matches;\n }\n return false;\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 * 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);\n\n // If the next breakpoint does not match, the screen is smaller than\n // the upper limit of this breakpoint.\n if (nextSize) {\n return !this.atLeast(nextSize);\n }\n\n // If there is no next breakpoint, the \"size\" breakpoint does not have\n // an upper limit and the screen will always be within it or smaller.\n return true;\n },\n /**\n * 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 var _parts = _slicedToArray(parts, 2),\n bpSize = _parts[0],\n _parts$ = _parts[1],\n bpModifier = _parts$ === void 0 ? '' : _parts$;\n\n // Only the breakpont\n if (bpModifier === 'only') {\n return this.only(bpSize);\n }\n // At least the breakpoint (included)\n if (!bpModifier || bpModifier === 'up') {\n return this.atLeast(bpSize);\n }\n // Up to the breakpoint (included)\n if (bpModifier === 'down') {\n return this.upTo(bpSize);\n }\n throw new Error(\"\\n Invalid breakpoint passed to MediaQuery.is().\\n Expected a breakpoint name formatted like \\\" \\\", got \\\"\".concat(size, \"\\\".\\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 return null;\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 var queryIndex = this.queries.findIndex(function (q) {\n return _this._getQueryName(q) === size;\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 var nextQuery = this.queries[queryIndex + 1];\n return nextQuery ? nextQuery.name : null;\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 * 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 for (var i = 0; i < this.queries.length; i++) {\n var query = this.queries[i];\n if (window.matchMedia(query.value).matches) {\n matched = query;\n }\n }\n return matched && this._getQueryName(matched);\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 jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('resize.zf.trigger', function () {\n var newSize = _this2._getCurrentSize(),\n currentSize = _this2.current;\n if (newSize !== currentSize) {\n // Change the current media query\n _this2.current = newSize;\n\n // Broadcast the media query change on the window\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n }\n });\n }\n};\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n var styleObject = {};\n if (typeof str !== 'string') {\n return styleObject;\n }\n str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n if (!str) {\n return styleObject;\n }\n styleObject = str.split('&').reduce(function (ret, param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = parts[0];\n var val = parts[1];\n key = decodeURIComponent(key);\n\n // missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n if (!ret.hasOwnProperty(key)) {\n ret[key] = val;\n } else if (Array.isArray(ret[key])) {\n ret[key].push(val);\n } else {\n ret[key] = [ret[key], val];\n }\n return ret;\n }, {});\n return styleObject;\n}\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/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t!function() {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = function(exports) {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n!function() {\n/*!**********************************************************!*\\\n !*** ./js/entries/plugins/foundation.util.mediaQuery.js ***!\n \\**********************************************************/\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Foundation: function() { return /* reexport safe */ _foundation_core__WEBPACK_IMPORTED_MODULE_0__.Foundation; },\n/* harmony export */ MediaQuery: function() { return /* reexport safe */ _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__.MediaQuery; }\n/* harmony export */ });\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 import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.util.mediaQuery */ \"./js/foundation.util.mediaQuery.js\");\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__.Foundation.MediaQuery = _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__.MediaQuery;\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__.Foundation.MediaQuery._init();\n\n}();\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=foundation.util.mediaQuery.js.map"],"names":["root","factory","exports","module","require","define","amd","self","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_modules__","./js/foundation.util.mediaQuery.js","__unused_webpack_module","__webpack_exports__","__webpack_require__","r","d","MediaQuery","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","_i","_s","_e","_x","_r","_arr","_n","_d","call","next","Object","done","push","value","length","err","return","o","minLen","_arrayLikeToArray","toString","slice","name","from","test","TypeError","len","arr2","window","matchMedia","media","document","createElement","script","getElementsByTagName","type","id","parentNode","insertBefore","head","appendChild","getComputedStyle","currentStyle","matchMedium","text","styleSheet","cssText","textContent","width","matches","queries","current","_init","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","./foundation.core","jquery","__webpack_module_cache__","moduleId","cachedModule","undefined","getter","__esModule","a","definition","defineProperty","enumerable","prop","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__","toStringTag","Foundation"],"mappings":"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"}