UNPKG

@travlrcom/icons

Version:

TRAVLR Icons

805 lines (688 loc) 22.6 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define([], factory); else { var a = factory(); for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; } })(window, function() { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 0); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(1); __webpack_require__(2); module.exports = __webpack_require__(11); /***/ }), /* 1 */ /***/ (function(module, exports) { if (window.NodeList && !NodeList.prototype.forEach) { NodeList.prototype.forEach = Array.prototype.forEach; } /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__( 3 ); __webpack_require__( 4 ); __webpack_require__( 5 ); __webpack_require__( 6 ); __webpack_require__( 7 ); __webpack_require__( 8 ); __webpack_require__( 9 ); __webpack_require__( 10 ); /***/ }), /* 3 */ /***/ (function(module, exports) { (function () { if (typeof window.Element === "undefined" || "classList" in document.documentElement) return; var prototype = Array.prototype, push = prototype.push, splice = prototype.splice, join = prototype.join; function DOMTokenList(el) { this.el = el; // The className needs to be trimmed and split on whitespace // to retrieve a list of classes. var classes = el.className.replace(/^\s+|\s+$/g,'').split(/\s+/); for (var i = 0; i < classes.length; i++) { push.call(this, classes[i]); } }; DOMTokenList.prototype = { add: function(token) { if(this.contains(token)) return; push.call(this, token); this.el.className = this.toString(); }, contains: function(token) { return this.el.className.indexOf(token) != -1; }, item: function(index) { return this[index] || null; }, remove: function(token) { if (!this.contains(token)) return; for (var i = 0; i < this.length; i++) { if (this[i] == token) break; } splice.call(this, i, 1); this.el.className = this.toString(); }, toString: function() { return join.call(this, ' '); }, toggle: function(token) { if (!this.contains(token)) { this.add(token); } else { this.remove(token); } return this.contains(token); } }; window.DOMTokenList = DOMTokenList; function defineElementGetter (obj, prop, getter) { if (Object.defineProperty) { Object.defineProperty(obj, prop,{ get : getter }); } else { obj.__defineGetter__(prop, getter); } } defineElementGetter(Element.prototype, 'classList', function () { return new DOMTokenList(this); }); })(); /***/ }), /* 4 */ /***/ (function(module, exports) { (function () { var forEach = [].forEach, regex = /^data-(.+)/, dashChar = /\-([a-z])/ig, el = document.createElement('div'), mutationSupported = false, match ; function detectMutation() { mutationSupported = true; this.removeEventListener('DOMAttrModified', detectMutation, false); } function toCamelCase(s) { return s.replace(dashChar, function (m,l) { return l.toUpperCase(); }); } function updateDataset() { var dataset = {}; forEach.call(this.attributes, function(attr) { if (match = attr.name.match(regex)) dataset[toCamelCase(match[1])] = attr.value; }); return dataset; } // only add support if the browser doesn't support data-* natively if (el.dataset != undefined) return; el.addEventListener('DOMAttrModified', detectMutation, false); el.setAttribute('foo', 'bar'); function defineElementGetter (obj, prop, getter) { if (Object.defineProperty) { Object.defineProperty(obj, prop,{ get : getter }); } else { obj.__defineGetter__(prop, getter); } } defineElementGetter(Element.prototype, 'dataset', mutationSupported ? function () { if (!this._datasetCache) { this._datasetCache = updateDataset.call(this); } return this._datasetCache; } : updateDataset ); document.addEventListener('DOMAttrModified', function (event) { delete event.target._datasetCache; }, false); })(); /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { ;(function (global) { if ("EventSource" in global) return; var reTrim = /^(\s|\u00A0)+|(\s|\u00A0)+$/g; var EventSource = function (url) { var eventsource = this, interval = 500, // polling interval lastEventId = null, cache = ''; if (!url || typeof url != 'string') { throw new SyntaxError('Not enough arguments'); } this.URL = url; this.readyState = this.CONNECTING; this._pollTimer = null; this._xhr = null; function pollAgain(interval) { eventsource._pollTimer = setTimeout(function () { poll.call(eventsource); }, interval); } function poll() { try { // force hiding of the error message... insane? if (eventsource.readyState == eventsource.CLOSED) return; // NOTE: IE7 and upwards support var xhr = new XMLHttpRequest(); xhr.open('GET', eventsource.URL, true); xhr.setRequestHeader('Accept', 'text/event-stream'); xhr.setRequestHeader('Cache-Control', 'no-cache'); // we must make use of this on the server side if we're working with Android - because they don't trigger // readychange until the server connection is closed xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); if (lastEventId != null) xhr.setRequestHeader('Last-Event-ID', lastEventId); cache = ''; xhr.timeout = 50000; xhr.onreadystatechange = function () { if (this.readyState == 3 || (this.readyState == 4 && this.status == 200)) { // on success if (eventsource.readyState == eventsource.CONNECTING) { eventsource.readyState = eventsource.OPEN; eventsource.dispatchEvent('open', { type: 'open' }); } var responseText = ''; try { responseText = this.responseText || ''; } catch (e) {} // process this.responseText var parts = responseText.substr(cache.length).split("\n"), eventType = 'message', data = [], i = 0, line = ''; cache = responseText; // TODO handle 'event' (for buffer name), retry for (; i < parts.length; i++) { line = parts[i].replace(reTrim, ''); if (line.indexOf('event') == 0) { eventType = line.replace(/event:?\s*/, ''); } else if (line.indexOf('retry') == 0) { var retry = parseInt(line.replace(/retry:?\s*/, '')); if(!isNaN(retry)) { interval = retry; } } else if (line.indexOf('data') == 0) { data.push(line.replace(/data:?\s*/, '')); } else if (line.indexOf('id:') == 0) { lastEventId = line.replace(/id:?\s*/, ''); } else if (line.indexOf('id') == 0) { // this resets the id lastEventId = null; } else if (line == '') { if (data.length) { var event = new MessageEvent(data.join('\n'), eventsource.url, lastEventId); eventsource.dispatchEvent(eventType, event); data = []; eventType = 'message'; } } } if (this.readyState == 4) pollAgain(interval); // don't need to poll again, because we're long-loading } else if (eventsource.readyState !== eventsource.CLOSED) { if (this.readyState == 4) { // and some other status // dispatch error eventsource.readyState = eventsource.CONNECTING; eventsource.dispatchEvent('error', { type: 'error' }); pollAgain(interval); } else if (this.readyState == 0) { // likely aborted pollAgain(interval); } else { } } }; xhr.send(); setTimeout(function () { if (true) xhr.abort(); }, xhr.timeout); eventsource._xhr = xhr; } catch (e) { // in an attempt to silence the errors eventsource.dispatchEvent('error', { type: 'error', data: e.message }); // ??? } }; poll(); // init now }; EventSource.prototype = { close: function () { // closes the connection - disabling the polling this.readyState = this.CLOSED; clearInterval(this._pollTimer); this._xhr.abort(); }, CONNECTING: 0, OPEN: 1, CLOSED: 2, dispatchEvent: function (type, event) { var handlers = this['_' + type + 'Handlers']; if (handlers) { for (var i = 0; i < handlers.length; i++) { handlers[i].call(this, event); } } if (this['on' + type]) { this['on' + type].call(this, event); } }, addEventListener: function (type, handler) { if (!this['_' + type + 'Handlers']) { this['_' + type + 'Handlers'] = []; } this['_' + type + 'Handlers'].push(handler); }, removeEventListener: function (type, handler) { var handlers = this['_' + type + 'Handlers']; if (!handlers) { return; } for (var i = handlers.length - 1; i >= 0; --i) { if (handlers[i] === handler) { handlers.splice(i, 1); break; } } }, onerror: null, onmessage: null, onopen: null, readyState: 0, URL: '' }; var MessageEvent = function (data, origin, lastEventId) { this.data = data; this.origin = origin; this.lastEventId = lastEventId || ''; }; MessageEvent.prototype = { data: null, type: 'message', lastEventId: '', origin: '' }; if ('module' in global) module.exports = EventSource; global.EventSource = EventSource; })(this); /***/ }), /* 6 */ /***/ (function(module, exports) { (function () { // setup for detection var form = document.createElement('form'), input = document.createElement('input'), body = document.body, id = 'f' + +new Date, inputTargetSupported = false; // insert into DOM, work out if it's supported form.setAttribute('id', id); input.setAttribute('form', id); body.appendChild(form); body.appendChild(input); inputTargetSupported = input.form !== null; body.removeChild(form); body.removeChild(input); // if not, hook click handlers to all existing submit elements function click(event) { event = event || window.event; // http://www.quirksmode.org/js/events_properties.html#target var target = event.target || event.srcElement; if (target.nodeType === 3) target = target.parentNode; if (target.nodeName === 'INPUT' && target.type === 'submit' && target.form === null) { form = document.getElementById(target.getAttribute('form')); var clone = target.cloneNode(true); clone.style.display = 'none'; form.appendChild(clone); clone.click(); // doing this because form.submit won't fire handles the way I want form.removeChild(clone); } } if (!inputTargetSupported) { body.addEventListener ? body.addEventListener('click', click, false) : body.attachEvent('onclick', click); } })(); /***/ }), /* 7 */ /***/ (function(module, exports) { // Working demo: http://jsbin.com/ozusa6/2/ (function () { function triggerEvent(type) { var event = document.createEvent('HTMLEvents'); event.initEvent(type, true, true); event.eventName = type; (document.body || window).dispatchEvent(event); } function testConnection() { // make sync-ajax request var xhr = new XMLHttpRequest(); // phone home xhr.open('HEAD', '/', false); // async=false try { xhr.send(); onLine = true; } catch (e) { // throws NETWORK_ERR when disconnected onLine = false; } return onLine; } var onLine = true, lastOnLineStatus = true; // note: this doesn't allow us to define a getter in Safari navigator.__defineGetter__("onLine", testConnection); testConnection(); if (onLine === false) { lastOnLineStatus = false; // trigger offline event triggerEvent('offline'); } setInterval(function () { testConnection(); if (onLine !== lastOnLineStatus) { triggerEvent(onLine ? 'online' : 'offline'); lastOnLineStatus = onLine; } }, 5000); // 5 seconds, made up - can't find docs to suggest interval time })(); /***/ }), /* 8 */ /***/ (function(module, exports) { /** * This was from a proposal that James Edwards / Brothercake had during * 2011 Highland Fling - to use select elements as a starting point for * the range element - so it's a pretty darn good fit, I put this together * during his Q&A. In the end I needed to lift the detection code from * Modernizr - which credit really goes to @miketaylr. * My code starts from "if (bool) {" * * This code is looking for <select type="range"> and will progressively * enhance to a input[type=range] copying much of the attributes across. */ !function () { var rangeTest = document.createElement('input'), smile = ':)'; rangeTest.setAttribute('type', 'range'); var bool = rangeTest.type !== 'text'; if (bool) { rangeTest.style.cssText = 'position:absolute;visibility:hidden;'; rangeTest.value = smile; if (rangeTest.style.WebkitAppearance !== undefined ) { document.body.appendChild(rangeTest); defaultView = document.defaultView; // Safari 2-4 allows the smiley as a value, despite making a slider bool = defaultView.getComputedStyle && defaultView.getComputedStyle(rangeTest, null).WebkitAppearance !== 'textfield' && // Mobile android web browser has false positive, so must // check the height to see if the widget is actually there. (rangeTest.offsetHeight !== 0); document.body.removeChild(rangeTest); } } else { bool = rangeTest.value == smile; } // if the input[range] is natively supported, then upgrade the <select type="range"> // into a range element. if (bool) { function firstChild(el, nodeName) { nodeName = nodeName.toUpperCase(); if (el.firstChild.nodeName === nodeName) { return el.firstChild; } else { return el.firstChild.nextSibling; } } function lastChild(el, nodeName) { nodeName = nodeName.toUpperCase(); if (el.lastChild.nodeName === nodeName) { return el.lastChild; } else { return el.lastChild.previousSibling; } } var selects = document.getElementsByTagName('select'), i = 0; for (; i < selects.length; i++) { if (selects[i].getAttribute('data-type') == 'range') (function (select) { var range = document.createElement('input'), parent = select.parentNode; range.setAttribute('type', 'range'); // works with the select element removed from the DOM select = parent.replaceChild(range, select); range.autofocus = select.autofocus; range.disabled = select.disabled; range.autocomplete = select.autocomplete; // eh? how would this even work? range.className = select.className; range.id = select.id; range.style = select.style; range.tabindex = select.tabindex; range.title = select.title; range.min = firstChild(select, 'option').value; range.max = lastChild(select, 'option').value; range.value = select.value; range.name = select.name; // Add step support if ( select.getAttribute('data-type-range-step') ) { range.step = select.getAttribute('data-type-range-step'); } // yeah, this is filth, but it's because getElementsByTagName is // a live DOM collection, so when we removed the select element // the selects object reduced in length. Freaky, eh? i--; })(selects[i]); } } }(); /***/ }), /* 9 */ /***/ (function(module, exports) { if (!sessionStorage && JSON) { sessionStorage = (function () { var data = window.name ? JSON.parse(window.name) : {}; return { clear: function () { data = {}; window.name = ''; }, getItem: function (key) { return data[key] === undefined ? null : data[key]; }, removeItem: function (key) { delete data[key]; window.name = JSON.stringify(data); }, setItem: function (key, value) { data[key] = value; window.name = JSON.stringify(data); } }; })(); } /***/ }), /* 10 */ /***/ (function(module, exports) { if (typeof window.localStorage == 'undefined' || typeof window.sessionStorage == 'undefined') (function () { var Storage = function (type) { function createCookie(name, value, days) { var date, expires; if (days) { date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); expires = "; expires="+date.toGMTString(); } else { expires = ""; } document.cookie = name+"="+value+expires+"; path=/"; } function readCookie(name) { var nameEQ = name + "=", ca = document.cookie.split(';'), i, c; for (i=0; i < ca.length; i++) { c = ca[i]; while (c.charAt(0)==' ') { c = c.substring(1,c.length); } if (c.indexOf(nameEQ) == 0) { return c.substring(nameEQ.length,c.length); } } return null; } function setData(data) { data = JSON.stringify(data); if (type == 'session') { window.name = data; } else { createCookie('localStorage', data, 365); } } function clearData() { if (type == 'session') { window.name = ''; } else { createCookie('localStorage', '', 365); } } function getData() { var data = type == 'session' ? window.name : readCookie('localStorage'); return data ? JSON.parse(data) : {}; } // initialise if there's already data var data = getData(); return { length: 0, clear: function () { data = {}; this.length = 0; clearData(); }, getItem: function (key) { return data[key] === undefined ? null : data[key]; }, key: function (i) { // not perfect, but works var ctr = 0; for (var k in data) { if (ctr == i) return k; else ctr++; } return null; }, removeItem: function (key) { delete data[key]; this.length--; setData(data); }, setItem: function (key, value) { data[key] = value+''; // forces the value to a string this.length++; setData(data); } }; }; if (typeof window.localStorage == 'undefined') window.localStorage = new Storage('local'); if (typeof window.sessionStorage == 'undefined') window.sessionStorage = new Storage('session'); })(); /***/ }), /* 11 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(12); /***/ }), /* 12 */ /***/ (function(module, exports, __webpack_require__) { // extracted by mini-css-extract-plugin /***/ }) /******/ ]); }); //# sourceMappingURL=travlr-icons.js.map