Blame | Last modification | View Log | RSS feed
/*** breakpoints-js v1.0.6* https://github.com/amazingSurge/breakpoints-js** Copyright (c) amazingSurge* Released under the LGPL-3.0 license*/(function(global, factory) {if (typeof define === 'function' && define.amd) {define(['exports'], factory);} else if (typeof exports !== 'undefined') {factory(exports);} else {var mod = {exports: {}};factory(mod.exports);global.breakpointsEs = mod.exports;}})(this, function(exports) {'use strict';Object.defineProperty(exports, '__esModule', {value: true});function _possibleConstructorReturn(self, call) {if (!self) {throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call && (typeof call === 'object' || typeof call === 'function')? call: self;}function _inherits(subClass, superClass) {if (typeof superClass !== 'function' && superClass !== null) {throw new TypeError('Super expression must either be null or a function, not ' +typeof superClass);}subClass.prototype = Object.create(superClass && superClass.prototype, {constructor: {value: subClass,enumerable: false,writable: true,configurable: true}});if (superClass)Object.setPrototypeOf? Object.setPrototypeOf(subClass, superClass): (subClass.__proto__ = superClass);}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError('Cannot call a class as a function');}}var _createClass = (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);}}return function(Constructor, protoProps, staticProps) {if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;};})();var _typeof =typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol'? function(obj) {return typeof obj;}: function(obj) {return obj &&typeof Symbol === 'function' &&obj.constructor === Symbol &&obj !== Symbol.prototype? 'symbol': typeof obj;};/*** breakpoints-js v1.0.6* https://github.com/amazingSurge/breakpoints-js** Copyright (c) amazingSurge* Released under the LGPL-3.0 license*/var defaults = {// Extra small devices (phones)xs: {min: 0,max: 767},// Small devices (tablets)sm: {min: 768,max: 991},// Medium devices (desktops)md: {min: 992,max: 1199},// Large devices (large desktops)lg: {min: 1200,max: Infinity}};var util = {each: function each(obj, fn) {var continues = void 0;for (var i in obj) {if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !=='object' ||obj.hasOwnProperty(i)) {continues = fn(i, obj[i]);if (continues === false) {break; //allow early exit}}}},isFunction: function isFunction(obj) {return typeof obj === 'function' || false;},extend: function extend(obj, source) {for (var property in source) {obj[property] = source[property];}return obj;}};var Callbacks = (function() {function Callbacks() {_classCallCheck(this, Callbacks);this.length = 0;this.list = [];}_createClass(Callbacks, [{key: 'add',value: function add(fn, data) {var one =arguments.length > 2 && arguments[2] !== undefined? arguments[2]: false;this.list.push({fn: fn,data: data,one: one});this.length++;}},{key: 'remove',value: function remove(fn) {for (var i = 0; i < this.list.length; i++) {if (this.list[i].fn === fn) {this.list.splice(i, 1);this.length--;i--;}}}},{key: 'empty',value: function empty() {this.list = [];this.length = 0;}},{key: 'call',value: function call(caller, i) {var fn =arguments.length > 2 && arguments[2] !== undefined? arguments[2]: null;if (!i) {i = this.length - 1;}var callback = this.list[i];if (util.isFunction(fn)) {fn.call(this, caller, callback, i);} else if (util.isFunction(callback.fn)) {callback.fn.call(caller || window, callback.data);}if (callback.one) {delete this.list[i];this.length--;}}},{key: 'fire',value: function fire(caller) {var fn =arguments.length > 1 && arguments[1] !== undefined? arguments[1]: null;for (var i in this.list) {if (this.list.hasOwnProperty(i)) {this.call(caller, i, fn);}}}}]);return Callbacks;})();var ChangeEvent = {current: null,callbacks: new Callbacks(),trigger: function trigger(size) {var previous = this.current;this.current = size;this.callbacks.fire(size, function(caller, callback) {if (util.isFunction(callback.fn)) {callback.fn.call({current: size,previous: previous},callback.data);}});},one: function one(data, fn) {return this.on(data, fn, true);},on: function on(data, fn) {var one =arguments.length > 2 && arguments[2] !== undefined? arguments[2]: false;if (typeof fn === 'undefined' && util.isFunction(data)) {fn = data;data = undefined;}if (util.isFunction(fn)) {this.callbacks.add(fn, data, one);}},off: function off(fn) {if (typeof fn === 'undefined') {this.callbacks.empty();}}};var MediaQuery = (function() {function MediaQuery(name, media) {_classCallCheck(this, MediaQuery);this.name = name;this.media = media;this.initialize();}_createClass(MediaQuery, [{key: 'initialize',value: function initialize() {this.callbacks = {enter: new Callbacks(),leave: new Callbacks()};this.mql = (window.matchMedia && window.matchMedia(this.media)) || {matches: false,media: this.media,addListener: function addListener() {// do nothing},removeListener: function removeListener() {// do nothing}};var that = this;this.mqlListener = function(mql) {var type = (mql.matches && 'enter') || 'leave';that.callbacks[type].fire(that);};this.mql.addListener(this.mqlListener);}},{key: 'on',value: function on(types, data, fn) {var one =arguments.length > 3 && arguments[3] !== undefined? arguments[3]: false;if ((typeof types === 'undefined' ? 'undefined' : _typeof(types)) ==='object') {for (var type in types) {if (types.hasOwnProperty(type)) {this.on(type, data, types[type], one);}}return this;}if (typeof fn === 'undefined' && util.isFunction(data)) {fn = data;data = undefined;}if (!util.isFunction(fn)) {return this;}if (typeof this.callbacks[types] !== 'undefined') {this.callbacks[types].add(fn, data, one);if (types === 'enter' && this.isMatched()) {this.callbacks[types].call(this);}}return this;}},{key: 'one',value: function one(types, data, fn) {return this.on(types, data, fn, true);}},{key: 'off',value: function off(types, fn) {var type = void 0;if ((typeof types === 'undefined' ? 'undefined' : _typeof(types)) ==='object') {for (type in types) {if (types.hasOwnProperty(type)) {this.off(type, types[type]);}}return this;}if (typeof types === 'undefined') {this.callbacks.enter.empty();this.callbacks.leave.empty();} else if (types in this.callbacks) {if (fn) {this.callbacks[types].remove(fn);} else {this.callbacks[types].empty();}}return this;}},{key: 'isMatched',value: function isMatched() {return this.mql.matches;}},{key: 'destroy',value: function destroy() {this.off();}}]);return MediaQuery;})();var MediaBuilder = {min: function min(_min) {var unit =arguments.length > 1 && arguments[1] !== undefined? arguments[1]: 'px';return '(min-width: ' + _min + unit + ')';},max: function max(_max) {var unit =arguments.length > 1 && arguments[1] !== undefined? arguments[1]: 'px';return '(max-width: ' + _max + unit + ')';},between: function between(min, max) {var unit =arguments.length > 2 && arguments[2] !== undefined? arguments[2]: 'px';return ('(min-width: ' + min + unit + ') and (max-width: ' + max + unit + ')');},get: function get(min, max) {var unit =arguments.length > 2 && arguments[2] !== undefined? arguments[2]: 'px';if (min === 0) {return this.max(max, unit);}if (max === Infinity) {return this.min(min, unit);}return this.between(min, max, unit);}};var Size = (function(_MediaQuery) {_inherits(Size, _MediaQuery);function Size(name) {var min =arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;var max =arguments.length > 2 && arguments[2] !== undefined? arguments[2]: Infinity;var unit =arguments.length > 3 && arguments[3] !== undefined? arguments[3]: 'px';_classCallCheck(this, Size);var media = MediaBuilder.get(min, max, unit);var _this = _possibleConstructorReturn(this,(Size.__proto__ || Object.getPrototypeOf(Size)).call(this, name, media));_this.min = min;_this.max = max;_this.unit = unit;var that = _this;_this.changeListener = function() {if (that.isMatched()) {ChangeEvent.trigger(that);}};if (_this.isMatched()) {ChangeEvent.current = _this;}_this.mql.addListener(_this.changeListener);return _this;}_createClass(Size, [{key: 'destroy',value: function destroy() {this.off();this.mql.removeListener(this.changeListener);}}]);return Size;})(MediaQuery);var UnionSize = (function(_MediaQuery2) {_inherits(UnionSize, _MediaQuery2);function UnionSize(names) {_classCallCheck(this, UnionSize);var sizes = [];var media = [];util.each(names.split(' '), function(i, name) {var size = Breakpoints$1.get(name);if (size) {sizes.push(size);media.push(size.media);}});return _possibleConstructorReturn(this,(UnionSize.__proto__ || Object.getPrototypeOf(UnionSize)).call(this,names,media.join(',')));}return UnionSize;})(MediaQuery);var info = {version: '1.0.6'};var sizes = {};var unionSizes = {};var Breakpoints = (window.Breakpoints = function() {for (var _len = arguments.length, args = Array(_len), _key = 0;_key < _len;_key++) {args[_key] = arguments[_key];}Breakpoints.define.apply(Breakpoints, args);});Breakpoints.defaults = defaults;Breakpoints = util.extend(Breakpoints, {version: info.version,defined: false,define: function define(values) {var options =arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};if (this.defined) {this.destroy();}if (!values) {values = Breakpoints.defaults;}this.options = util.extend(options, {unit: 'px'});for (var size in values) {if (values.hasOwnProperty(size)) {this.set(size, values[size].min, values[size].max, this.options.unit);}}this.defined = true;},destroy: function destroy() {util.each(sizes, function(name, size) {size.destroy();});sizes = {};ChangeEvent.current = null;},is: function is(size) {var breakpoint = this.get(size);if (!breakpoint) {return null;}return breakpoint.isMatched();},all: function all() {var names = [];util.each(sizes, function(name) {names.push(name);});return names;},set: function set(name) {var min =arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;var max =arguments.length > 2 && arguments[2] !== undefined? arguments[2]: Infinity;var unit =arguments.length > 3 && arguments[3] !== undefined? arguments[3]: 'px';var size = this.get(name);if (size) {size.destroy();}sizes[name] = new Size(name, min, max, unit);return sizes[name];},get: function get(size) {if (sizes.hasOwnProperty(size)) {return sizes[size];}return null;},getUnion: function getUnion(sizes) {if (unionSizes.hasOwnProperty(sizes)) {return unionSizes[sizes];}unionSizes[sizes] = new UnionSize(sizes);return unionSizes[sizes];},getMin: function getMin(size) {var obj = this.get(size);if (obj) {return obj.min;}return null;},getMax: function getMax(size) {var obj = this.get(size);if (obj) {return obj.max;}return null;},current: function current() {return ChangeEvent.current;},getMedia: function getMedia(size) {var obj = this.get(size);if (obj) {return obj.media;}return null;},on: function on(sizes, types, data, fn) {var one =arguments.length > 4 && arguments[4] !== undefined? arguments[4]: false;sizes = sizes.trim();if (sizes === 'change') {fn = data;data = types;return ChangeEvent.on(data, fn, one);}if (sizes.includes(' ')) {var union = this.getUnion(sizes);if (union) {union.on(types, data, fn, one);}} else {var size = this.get(sizes);if (size) {size.on(types, data, fn, one);}}return this;},one: function one(sizes, types, data, fn) {return this.on(sizes, types, data, fn, true);},off: function off(sizes, types, fn) {sizes = sizes.trim();if (sizes === 'change') {return ChangeEvent.off(types);}if (sizes.includes(' ')) {var union = this.getUnion(sizes);if (union) {union.off(types, fn);}} else {var size = this.get(sizes);if (size) {size.off(types, fn);}}return this;}});var Breakpoints$1 = Breakpoints;exports.default = Breakpoints$1;});