1 |
- {"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/entries/plugins/foundation.util.mediaQuery.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.util.mediaQuery.js","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","MediaQuery","_init","defaultQueries","landscape","portrait","retina","window","matchMedia","styleMedia","media","style","document","createElement","script","getElementsByTagName","info","type","id","head","appendChild","parentNode","insertBefore","getComputedStyle","currentStyle","matchMedium","text","styleSheet","cssText","textContent","width","matches","queries","current","isInitialized","self","$meta","$","length","appendTo","extractedStyles","css","namedQueries","parseStyleToObject","key","hasOwnProperty","push","name","value","_getCurrentSize","_watcher","_reInit","atLeast","size","query","get","only","upTo","nextSize","next","is","parts","trim","split","filter","p","bpSize","bpModifier","Error","i","queryIndex","findIndex","q","_getQueryName","nextQuery","TypeError","matched","off","on","newSize","currentSize","trigger","str","styleObject","slice","reduce","ret","param","replace","val","decodeURIComponent","Array","isArray"],"mappings":"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","file":"foundation.util.mediaQuery.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 "," \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","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","import { Foundation } from './foundation.core';\nimport { MediaQuery } from '../../foundation.util.mediaQuery';\n\nFoundation.MediaQuery = MediaQuery;\nFoundation.MediaQuery._init();\n\nexport { Foundation, MediaQuery };\n","'use strict';\n\nimport $ from 'jquery';\n\n// Default set of media queries\nconst defaultQueries = {\n 'default' : 'only screen',\n landscape : 'only screen and (orientation: landscape)',\n portrait : 'only screen and (orientation: portrait)',\n retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n 'only screen and (min--moz-device-pixel-ratio: 2),' +\n 'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n 'only screen and (min-device-pixel-ratio: 2),' +\n 'only screen and (min-resolution: 192dpi),' +\n 'only screen and (min-resolution: 2dppx)'\n };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright © 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n \"use strict\";\n\n // For browsers that support matchMedium api such as IE 9 and webkit\n var styleMedia = (window.styleMedia || window.media);\n\n // For those that don't support matchMedium\n if (!styleMedia) {\n var style = document.createElement('style'),\n script = document.getElementsByTagName('script')[0],\n info = null;\n\n style.type = 'text/css';\n style.id = 'matchmediajs-test';\n\n if (!script) {\n document.head.appendChild(style);\n } else {\n script.parentNode.insertBefore(style, script);\n }\n\n // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n styleMedia = {\n matchMedium: function (media) {\n var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n if (style.styleSheet) {\n style.styleSheet.cssText = text;\n } else {\n style.textContent = text;\n }\n\n // Test if media query is true or false\n return info.width === '1px';\n }\n };\n }\n\n return function(media) {\n return {\n matches: styleMedia.matchMedium(media || 'all'),\n media: media || 'all'\n };\n };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n queries: [],\n\n current: '',\n\n /**\n * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n * @function\n * @private\n */\n _init() {\n\n // make sure the initialization is only done once when calling _init() several times\n if (this.isInitialized === true) {\n return;\n } else {\n this.isInitialized = true;\n }\n\n var self = this;\n var $meta = $('meta.foundation-mq');\n if(!$meta.length){\n $('<meta class=\"foundation-mq\">').appendTo(document.head);\n }\n\n var extractedStyles = $('.foundation-mq').css('font-family');\n var namedQueries;\n\n namedQueries = parseStyleToObject(extractedStyles);\n\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: ${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() {\n this.isInitialized = false;\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(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(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(size) {\n const 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 /**\n * Checks if the screen matches to a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n */\n is(size) {\n const parts = size.trim().split(' ').filter(p => !!p.length);\n const [bpSize, bpModifier = ''] = 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\n throw new Error(`\n Invalid breakpoint passed to MediaQuery.is().\n Expected a breakpoint name formatted like \"<size> <modifier>\", got \"${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(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(size) {\n const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n if (queryIndex === -1) {\n throw new Error(`\n Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n Ensure it is present in your Sass \"$breakpoints\" setting.\n `);\n }\n\n const 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(value) {\n if (typeof value === 'string')\n return value;\n if (typeof value === 'object')\n 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 \"${value}\" (${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() {\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() {\n $(window).off('resize.zf.mediaquery').on('resize.zf.mediaquery', () => {\n var newSize = this._getCurrentSize(), currentSize = this.current;\n\n if (newSize !== currentSize) {\n // Change the current media query\n this.current = newSize;\n\n // Broadcast the media query change on the window\n $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n }\n });\n }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n var styleObject = {};\n\n if (typeof str !== 'string') {\n return styleObject;\n }\n\n str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n if (!str) {\n return styleObject;\n }\n\n styleObject = str.split('&').reduce(function(ret, param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = parts[0];\n var val = parts[1];\n key = decodeURIComponent(key);\n\n // missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n if (!ret.hasOwnProperty(key)) {\n ret[key] = val;\n } else if (Array.isArray(ret[key])) {\n ret[key].push(val);\n } else {\n ret[key] = [ret[key], val];\n }\n return ret;\n }, {});\n\n return styleObject;\n}\n\nexport {MediaQuery};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}
|