/* breakpoints.js v1.0 | @ajlkn | MIT licensed */ var breakpoints = (function () { 'use strict' function e(e) { t.init(e) } var t = { list: null, media: {}, events: [], init: function (e) { ;(t.list = e), window.addEventListener('resize', t.poll), window.addEventListener('orientationchange', t.poll), window.addEventListener('load', t.poll), window.addEventListener('fullscreenchange', t.poll) }, active: function (e) { var n, a, s, i, r, d, c if (!(e in t.media)) { if ( ('>=' == e.substr(0, 2) ? ((a = 'gte'), (n = e.substr(2))) : '<=' == e.substr(0, 2) ? ((a = 'lte'), (n = e.substr(2))) : '>' == e.substr(0, 1) ? ((a = 'gt'), (n = e.substr(1))) : '<' == e.substr(0, 1) ? ((a = 'lt'), (n = e.substr(1))) : '!' == e.substr(0, 1) ? ((a = 'not'), (n = e.substr(1))) : ((a = 'eq'), (n = e)), n && n in t.list) ) if (((i = t.list[n]), Array.isArray(i))) { if (((r = parseInt(i[0])), (d = parseInt(i[1])), isNaN(r))) { if (isNaN(d)) return c = i[1].substr(String(d).length) } else c = i[0].substr(String(r).length) if (isNaN(r)) switch (a) { case 'gte': s = 'screen' break case 'lte': s = 'screen and (max-width: ' + d + c + ')' break case 'gt': s = 'screen and (min-width: ' + (d + 1) + c + ')' break case 'lt': s = 'screen and (max-width: -1px)' break case 'not': s = 'screen and (min-width: ' + (d + 1) + c + ')' break default: s = 'screen and (max-width: ' + d + c + ')' } else if (isNaN(d)) switch (a) { case 'gte': s = 'screen and (min-width: ' + r + c + ')' break case 'lte': s = 'screen' break case 'gt': s = 'screen and (max-width: -1px)' break case 'lt': s = 'screen and (max-width: ' + (r - 1) + c + ')' break case 'not': s = 'screen and (max-width: ' + (r - 1) + c + ')' break default: s = 'screen and (min-width: ' + r + c + ')' } else switch (a) { case 'gte': s = 'screen and (min-width: ' + r + c + ')' break case 'lte': s = 'screen and (max-width: ' + d + c + ')' break case 'gt': s = 'screen and (min-width: ' + (d + 1) + c + ')' break case 'lt': s = 'screen and (max-width: ' + (r - 1) + c + ')' break case 'not': s = 'screen and (max-width: ' + (r - 1) + c + '), screen and (min-width: ' + (d + 1) + c + ')' break default: s = 'screen and (min-width: ' + r + c + ') and (max-width: ' + d + c + ')' } } else s = '(' == i.charAt(0) ? 'screen and ' + i : i t.media[e] = !!s && s } return t.media[e] !== !1 && window.matchMedia(t.media[e]).matches }, on: function (e, n) { t.events.push({ query: e, handler: n, state: !1 }), t.active(e) && n() }, poll: function () { var e, n for (e = 0; e < t.events.length; e++) (n = t.events[e]), t.active(n.query) ? n.state || ((n.state = !0), n.handler()) : n.state && (n.state = !1) }, } return ( (e._ = t), (e.on = function (e, n) { t.on(e, n) }), (e.active = function (e) { return t.active(e) }), e ) })() !(function (e, t) { 'function' == typeof define && define.amd ? define([], t) : 'object' == typeof exports ? (module.exports = t()) : (e.breakpoints = t()) })(this, function () { return breakpoints })