UNPKG

ab-mediaquery

Version:

AB-mediaQuery is the JavaScript side of media queries. It proposes you some very useful methods for your scripts

271 lines (222 loc) 7.17 kB
// modules are defined as an array // [ module function, map of requires ] // // map of requires is short require name -> numeric require // // anything defined in a previous bundle is accessed via the // orig method which is the require for previous bundles parcelRequire = (function (modules, cache, entry, globalName) { // Save the require from previous bundle to this closure if any var previousRequire = typeof parcelRequire === 'function' && parcelRequire; var nodeRequire = typeof require === 'function' && require; function newRequire(name, jumped) { if (!cache[name]) { if (!modules[name]) { // if we cannot find the module within our internal map or // cache jump to the current global require ie. the last bundle // that was added to the page. var currentRequire = typeof parcelRequire === 'function' && parcelRequire; if (!jumped && currentRequire) { return currentRequire(name, true); } // If there are other bundles on this page the require from the // previous one is saved to 'previousRequire'. Repeat this as // many times as there are bundles until the module is found or // we exhaust the require chain. if (previousRequire) { return previousRequire(name, true); } // Try the node require function if it exists. if (nodeRequire && typeof name === 'string') { return nodeRequire(name); } var err = new Error('Cannot find module \'' + name + '\''); err.code = 'MODULE_NOT_FOUND'; throw err; } localRequire.resolve = resolve; localRequire.cache = {}; var module = cache[name] = new newRequire.Module(name); modules[name][0].call(module.exports, localRequire, module, module.exports, this); } return cache[name].exports; function localRequire(x){ return newRequire(localRequire.resolve(x)); } function resolve(x){ return modules[name][1][x] || x; } } function Module(moduleName) { this.id = moduleName; this.bundle = newRequire; this.exports = {}; } newRequire.isParcelRequire = true; newRequire.Module = Module; newRequire.modules = modules; newRequire.cache = cache; newRequire.parent = previousRequire; newRequire.register = function (id, exports) { modules[id] = [function (require, module) { module.exports = exports; }, {}]; }; var error; for (var i = 0; i < entry.length; i++) { try { newRequire(entry[i]); } catch (e) { // Save first error but execute all entries if (!error) { error = e; } } } if (entry.length) { // Expose entry point to Node, AMD or browser globals // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js var mainExports = newRequire(entry[entry.length - 1]); // CommonJS if (typeof exports === "object" && typeof module !== "undefined") { module.exports = mainExports; // RequireJS } else if (typeof define === "function" && define.amd) { define(function () { return mainExports; }); // <script> } else if (globalName) { this[globalName] = mainExports; } } // Override the current require with this new one parcelRequire = newRequire; if (error) { // throw error from earlier, _after updating parcelRequire_ throw error; } return newRequire; })({"cnAZ":[function(require,module,exports) { // polyfill customEvent pour IE ;(function() { if (typeof window.CustomEvent === "function") return false; function CustomEvent ( event, params ) { params = params || { bubbles: false, cancelable: false, detail: undefined }; var evt = document.createEvent('CustomEvent'); evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); return evt; } CustomEvent.prototype = window.Event.prototype; window.CustomEvent = CustomEvent; })(); // throttle events with requestAnimationFrame (function() { var throttle = function(type, name) { var running = false; var func = function() { if (running) return; running = true; window.requestAnimationFrame(function() { window.dispatchEvent(new CustomEvent(name)); running = false; }); }; window.addEventListener(type, func); }; /* init - you can init any event */ throttle("resize", "ab-resize"); throttle("scroll", "ab-scroll"); throttle("mousemove", "ab-mousemove"); throttle("touchmove", "ab-touchmove"); })(); window.AB = { // deep extend function extend: function() { var extended = {}, deep = false, i = 0, length = arguments.length; if (Object.prototype.toString.call(arguments[0]) === '[object Boolean]'){ deep = arguments[0]; i++; } var merge = function(obj) { for (var prop in obj) { if (Object.prototype.hasOwnProperty.call(obj, prop)) { if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') { extended[prop] = window.AB.extend(true, extended[prop], obj[prop]); } else { extended[prop] = obj[prop]; } } } }; for (; i < length; i++) { merge(arguments[i]); } return extended; }, // test if a string is a JSON isJson: function(str) { try { JSON.parse(str); } catch(e) { return false; } return true; }, runUpdaters: function(plugin) { if (window.AB.options[plugin]) { window.AB.plugins[plugin](window.AB.options[plugin]); } else { for(var options in AB.options){ if(window.AB.options.hasOwnProperty(options)) window.AB.plugins[options](window.AB.options[options]); } } }, plugins: {}, options: {} }; module.exports = window.AB; },{}],"Focm":[function(require,module,exports) { 'use strict'; window.AB = require('another-brick'); var mediaQuery = function mediaQuery(opt) { window.AB.mediaQuery = function () { var _settings = opt || { bp: {} }; function _getCurrent() { var sizes = []; for (var key in _settings.bp) { if (_settings.bp.hasOwnProperty(key) && window.matchMedia(_settings.bp[key]).matches) { sizes.push(key); } } return sizes; } function _updateSizes() { var newSize = _getCurrent(); // check if it's updated if (newSize.join('|') !== _currentStore.join('|')) { _currentStore = newSize; window.dispatchEvent(new CustomEvent('changed.ab-mediaquery')); } } function is(size) { return _settings.bp[size] ? window.matchMedia(_settings.bp[size]).matches : false; } // get current breakpoints var _currentStore = _getCurrent(); // change on resize window.addEventListener('ab-resize', _updateSizes); return { get current() { return _currentStore; }, is: is }; }(); }; window.AB.plugins.mediaQuery = mediaQuery; module.exports = window.AB; },{"another-brick":"cnAZ"}]},{},["Focm"], null)