From f7017aef1a785f199204f382ae8d03a05078814e Mon Sep 17 00:00:00 2001 From: rawls238 Date: Tue, 25 Aug 2015 21:41:12 -0400 Subject: [PATCH 01/49] honor requests option --- coffee/requests.coffee | 3 ++ js/offline.js | 66 +++++++++++------------ js/reconnect.js | 8 +-- js/requests.js | 33 +++++++----- js/simulate.js | 12 ++--- js/snake.js | 4 +- js/ui.js | 6 +-- offline.js | 117 +++++++++++++++++++++-------------------- offline.min.js | 2 + 9 files changed, 135 insertions(+), 116 deletions(-) create mode 100644 offline.min.js diff --git a/coffee/requests.coffee b/coffee/requests.coffee index 649ab24..12b1192 100644 --- a/coffee/requests.coffee +++ b/coffee/requests.coffee @@ -5,6 +5,7 @@ held = [] waitingOnConfirm = false holdRequest = (req) -> + return if Offline.getOption('requests') is false Offline.trigger 'requests:capture' if Offline.state isnt 'down' @@ -13,6 +14,7 @@ holdRequest = (req) -> held.push req makeRequest = ({xhr, url, type, user, password, body}) -> + return if Offline.getOption('requests') is false xhr.abort() xhr.open(type, url, true, user, password) xhr.setRequestHeader(name, val) for name, val of xhr.headers @@ -26,6 +28,7 @@ clear = -> held = [] flush = -> + return if Offline.getOption('requests') is false Offline.trigger 'requests:flush' requests = {} diff --git a/js/offline.js b/js/offline.js index fa72cae..d82d9d5 100644 --- a/js/offline.js +++ b/js/offline.js @@ -2,21 +2,21 @@ var Offline, checkXHR, defaultOptions, extendNative, grab, handlers, init; extendNative = function(to, from) { - var e, key, val, _results; - _results = []; + var e, key, results, val; + results = []; for (key in from.prototype) { try { val = from.prototype[key]; if ((to[key] == null) && typeof val !== 'function') { - _results.push(to[key] = val); + results.push(to[key] = val); } else { - _results.push(void 0); + results.push(void 0); } } catch (_error) { e = _error; } } - return _results; + return results; }; Offline = {}; @@ -48,10 +48,10 @@ }; grab = function(obj, key) { - var cur, i, part, parts, _i, _len; + var cur, i, j, len, part, parts; cur = obj; parts = key.split('.'); - for (i = _i = 0, _len = parts.length; _i < _len; i = ++_i) { + for (i = j = 0, len = parts.length; j < len; i = ++j) { part = parts[i]; cur = cur[part]; if (typeof cur !== 'object') { @@ -66,8 +66,8 @@ }; Offline.getOption = function(key) { - var val, _ref; - val = (_ref = grab(Offline.options, key)) != null ? _ref : grab(defaultOptions, key); + var ref, val; + val = (ref = grab(Offline.options, key)) != null ? ref : grab(defaultOptions, key); if (typeof val === 'function') { return val(); } else { @@ -110,15 +110,15 @@ handlers = {}; Offline.on = function(event, handler, ctx) { - var e, events, _i, _len, _results; + var e, events, j, len, results; events = event.split(' '); if (events.length > 1) { - _results = []; - for (_i = 0, _len = events.length; _i < _len; _i++) { - e = events[_i]; - _results.push(Offline.on(e, handler, ctx)); + results = []; + for (j = 0, len = events.length; j < len; j++) { + e = events[j]; + results.push(Offline.on(e, handler, ctx)); } - return _results; + return results; } else { if (handlers[event] == null) { handlers[event] = []; @@ -128,7 +128,7 @@ }; Offline.off = function(event, handler) { - var ctx, i, _handler, _ref, _results; + var _handler, ctx, i, ref, results; if (handlers[event] == null) { return; } @@ -136,34 +136,34 @@ return handlers[event] = []; } else { i = 0; - _results = []; + results = []; while (i < handlers[event].length) { - _ref = handlers[event][i], ctx = _ref[0], _handler = _ref[1]; + ref = handlers[event][i], ctx = ref[0], _handler = ref[1]; if (_handler === handler) { - _results.push(handlers[event].splice(i, 1)); + results.push(handlers[event].splice(i, 1)); } else { - _results.push(i++); + results.push(i++); } } - return _results; + return results; } }; Offline.trigger = function(event) { - var ctx, handler, _i, _len, _ref, _ref1, _results; + var ctx, handler, j, len, ref, ref1, results; if (handlers[event] != null) { - _ref = handlers[event]; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - _ref1 = _ref[_i], ctx = _ref1[0], handler = _ref1[1]; - _results.push(handler.call(ctx)); + ref = handlers[event]; + results = []; + for (j = 0, len = ref.length; j < len; j++) { + ref1 = ref[j], ctx = ref1[0], handler = ref1[1]; + results.push(handler.call(ctx)); } - return _results; + return results; } }; checkXHR = function(xhr, onUp, onDown) { - var checkStatus, _onerror, _onload, _onreadystatechange, _ontimeout; + var _onerror, _onload, _onreadystatechange, _ontimeout, checkStatus; checkStatus = function() { if (xhr.status && xhr.status < 12000) { return onUp(); @@ -241,7 +241,7 @@ Offline.confirmUp = Offline.confirmDown = Offline.check; Offline.onXHR = function(cb) { - var monitorXHR, _XDomainRequest, _XMLHttpRequest; + var _XDomainRequest, _XMLHttpRequest, monitorXHR; monitorXHR = function(req, flags) { var _open; _open = req.open; @@ -260,7 +260,7 @@ }; _XMLHttpRequest = window.XMLHttpRequest; window.XMLHttpRequest = function(flags) { - var req, _overrideMimeType, _setRequestHeader; + var _overrideMimeType, _setRequestHeader, req; req = new _XMLHttpRequest(flags); monitorXHR(req, flags); _setRequestHeader = req.setRequestHeader; @@ -291,9 +291,9 @@ init = function() { if (Offline.getOption('interceptRequests')) { - Offline.onXHR(function(_arg) { + Offline.onXHR(function(arg) { var xhr; - xhr = _arg.xhr; + xhr = arg.xhr; if (xhr.offline !== false) { return checkXHR(xhr, Offline.markUp, Offline.confirmDown); } diff --git a/js/reconnect.js b/js/reconnect.js index 7390ba1..69fd4f7 100644 --- a/js/reconnect.js +++ b/js/reconnect.js @@ -10,17 +10,17 @@ retryIntv = null; reset = function() { - var _ref; + var ref; if ((rc.state != null) && rc.state !== 'inactive') { Offline.trigger('reconnect:stopped'); } rc.state = 'inactive'; - return rc.remaining = rc.delay = (_ref = Offline.getOption('reconnect.initialDelay')) != null ? _ref : 3; + return rc.remaining = rc.delay = (ref = Offline.getOption('reconnect.initialDelay')) != null ? ref : 3; }; next = function() { - var delay, _ref; - delay = (_ref = Offline.getOption('reconnect.delay')) != null ? _ref : Math.min(Math.ceil(rc.delay * 1.5), 3600); + var delay, ref; + delay = (ref = Offline.getOption('reconnect.delay')) != null ? ref : Math.min(Math.ceil(rc.delay * 1.5), 3600); return rc.remaining = rc.delay = delay; }; diff --git a/js/requests.js b/js/requests.js index 6513c0a..22ddac6 100644 --- a/js/requests.js +++ b/js/requests.js @@ -10,6 +10,9 @@ waitingOnConfirm = false; holdRequest = function(req) { + if (Offline.getOption('requests') === false) { + return; + } Offline.trigger('requests:capture'); if (Offline.state !== 'down') { waitingOnConfirm = true; @@ -17,14 +20,17 @@ return held.push(req); }; - makeRequest = function(_arg) { - var body, name, password, type, url, user, val, xhr, _ref; - xhr = _arg.xhr, url = _arg.url, type = _arg.type, user = _arg.user, password = _arg.password, body = _arg.body; + makeRequest = function(arg) { + var body, name, password, ref, type, url, user, val, xhr; + xhr = arg.xhr, url = arg.url, type = arg.type, user = arg.user, password = arg.password, body = arg.body; + if (Offline.getOption('requests') === false) { + return; + } xhr.abort(); xhr.open(type, url, true, user, password); - _ref = xhr.headers; - for (name in _ref) { - val = _ref[name]; + ref = xhr.headers; + for (name in ref) { + val = ref[name]; xhr.setRequestHeader(name, val); } if (xhr.mimeType) { @@ -38,11 +44,14 @@ }; flush = function() { - var body, key, request, requests, url, _i, _len; + var body, i, key, len, request, requests, url; + if (Offline.getOption('requests') === false) { + return; + } Offline.trigger('requests:flush'); requests = {}; - for (_i = 0, _len = held.length; _i < _len; _i++) { - request = held[_i]; + for (i = 0, len = held.length; i < len; i++) { + request = held[i]; url = request.url.replace(/(\?|&)_=[0-9]+/, function(match, char) { if (char === '?') { return char; @@ -57,9 +66,9 @@ } else { body = body.toString(); } - requests["" + (request.type.toUpperCase()) + " - " + url + " - " + body] = request; + requests[(request.type.toUpperCase()) + " - " + url + " - " + body] = request; } else { - requests["" + (request.type.toUpperCase()) + " - " + url] = request; + requests[(request.type.toUpperCase()) + " - " + url] = request; } } for (key in requests) { @@ -82,7 +91,7 @@ return waitingOnConfirm = false; }); Offline.onXHR(function(request) { - var async, hold, xhr, _onreadystatechange, _send; + var _onreadystatechange, _send, async, hold, xhr; xhr = request.xhr, async = request.async; if (xhr.offline === false) { return; diff --git a/js/simulate.js b/js/simulate.js index 1123563..3875267 100644 --- a/js/simulate.js +++ b/js/simulate.js @@ -1,19 +1,19 @@ (function() { - var state, _base, _i, _len, _ref; + var base, i, len, ref, state; if (!Offline) { throw new Error("Offline simulate brought in without offline.js"); } - _ref = ['up', 'down']; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - state = _ref[_i]; + ref = ['up', 'down']; + for (i = 0, len = ref.length; i < len; i++) { + state = ref[i]; if (document.querySelector("script[data-simulate='" + state + "']") || (typeof localStorage !== "undefined" && localStorage !== null ? localStorage.OFFLINE_SIMULATE : void 0) === state) { if (Offline.options == null) { Offline.options = {}; } - if ((_base = Offline.options).checks == null) { - _base.checks = {}; + if ((base = Offline.options).checks == null) { + base.checks = {}; } Offline.options.checks.active = state; } diff --git a/js/snake.js b/js/snake.js index ffc7c5c..adc434d 100644 --- a/js/snake.js +++ b/js/snake.js @@ -64,8 +64,8 @@ }; keyHandler = function(e) { - var _ref; - if ((37 <= (_ref = e.keyCode) && _ref <= 40)) { + var ref; + if ((37 <= (ref = e.keyCode) && ref <= 40)) { snake.direction = Math.PI / 2 * ((e.keyCode - 35) % 4); return false; } diff --git a/js/ui.js b/js/ui.js index 527b8a1..3634fe4 100644 --- a/js/ui.js +++ b/js/ui.js @@ -1,5 +1,5 @@ (function() { - var RETRY_TEMPLATE, TEMPLATE, addClass, content, createFromHTML, el, flashClass, flashTimeouts, init, removeClass, render, roundTime, _onreadystatechange; + var RETRY_TEMPLATE, TEMPLATE, _onreadystatechange, addClass, content, createFromHTML, el, flashClass, flashTimeouts, init, removeClass, render, roundTime; if (!window.Offline) { throw new Error("Offline UI brought in without offline.js"); @@ -98,10 +98,10 @@ return removeClass('offline-ui-waiting'); }); Offline.on('reconnect:tick', function() { - var time, unit, _ref; + var ref, time, unit; addClass('offline-ui-waiting'); removeClass('offline-ui-connecting'); - _ref = roundTime(Offline.reconnect.remaining), time = _ref[0], unit = _ref[1]; + ref = roundTime(Offline.reconnect.remaining), time = ref[0], unit = ref[1]; content.setAttribute('data-retry-in-value', time); return content.setAttribute('data-retry-in-unit', unit); }); diff --git a/offline.js b/offline.js index 2bc5d02..876c76f 100644 --- a/offline.js +++ b/offline.js @@ -2,41 +2,42 @@ (function() { var Offline, checkXHR, defaultOptions, extendNative, grab, handlers, init; extendNative = function(to, from) { - var e, key, val, _results; - _results = []; + var e, key, results, val; + results = []; for (key in from.prototype) try { - val = from.prototype[key], null == to[key] && "function" != typeof val ? _results.push(to[key] = val) :_results.push(void 0); + val = from.prototype[key], null == to[key] && "function" != typeof val ? results.push(to[key] = val) :results.push(void 0); } catch (_error) { e = _error; } - return _results; + return results; }, Offline = {}, null == Offline.options && (Offline.options = {}), defaultOptions = { checks:{ xhr:{ url:function() { - return "/favicon.ico?_=" + Math.floor(1e9 * Math.random()); + return "/favicon.ico?_=" + new Date().getTime(); }, timeout:5e3, type:"HEAD" }, image:{ url:function() { - return "/favicon.ico?_=" + Math.floor(1e9 * Math.random()); + return "/favicon.ico?_=" + new Date().getTime(); } }, active:"xhr" }, checkOnLoad:!1, interceptRequests:!0, - reconnect:!0 + reconnect:!0, + deDupBody:!1 }, grab = function(obj, key) { - var cur, i, part, parts, _i, _len; - for (cur = obj, parts = key.split("."), i = _i = 0, _len = parts.length; _len > _i && (part = parts[i], - cur = cur[part], "object" == typeof cur); i = ++_i) ; + var cur, i, j, len, part, parts; + for (cur = obj, parts = key.split("."), i = j = 0, len = parts.length; len > j && (part = parts[i], + cur = cur[part], "object" == typeof cur); i = ++j) ; return i === parts.length - 1 ? cur :void 0; }, Offline.getOption = function(key) { - var val, _ref; - return val = null != (_ref = grab(Offline.options, key)) ? _ref :grab(defaultOptions, key), + var ref, val; + return val = null != (ref = grab(Offline.options, key)) ? ref :grab(defaultOptions, key), "function" == typeof val ? val() :val; }, "function" == typeof window.addEventListener && window.addEventListener("online", function() { return setTimeout(Offline.confirmUp, 100); @@ -49,32 +50,31 @@ return Offline.trigger("confirmed-down"), "down" !== Offline.state ? (Offline.state = "down", Offline.trigger("down")) :void 0; }, handlers = {}, Offline.on = function(event, handler, ctx) { - var e, events, _i, _len, _results; + var e, events, j, len, results; if (events = event.split(" "), events.length > 1) { - for (_results = [], _i = 0, _len = events.length; _len > _i; _i++) e = events[_i], - _results.push(Offline.on(e, handler, ctx)); - return _results; + for (results = [], j = 0, len = events.length; len > j; j++) e = events[j], results.push(Offline.on(e, handler, ctx)); + return results; } return null == handlers[event] && (handlers[event] = []), handlers[event].push([ ctx, handler ]); }, Offline.off = function(event, handler) { - var ctx, i, _handler, _ref, _results; + var _handler, ctx, i, ref, results; if (null != handlers[event]) { if (handler) { - for (i = 0, _results = []; i < handlers[event].length; ) _ref = handlers[event][i], - ctx = _ref[0], _handler = _ref[1], _handler === handler ? _results.push(handlers[event].splice(i, 1)) :_results.push(i++); - return _results; + for (i = 0, results = []; i < handlers[event].length; ) ref = handlers[event][i], + ctx = ref[0], _handler = ref[1], _handler === handler ? results.push(handlers[event].splice(i, 1)) :results.push(i++); + return results; } return handlers[event] = []; } }, Offline.trigger = function(event) { - var ctx, handler, _i, _len, _ref, _ref1, _results; + var ctx, handler, j, len, ref, ref1, results; if (null != handlers[event]) { - for (_ref = handlers[event], _results = [], _i = 0, _len = _ref.length; _len > _i; _i++) _ref1 = _ref[_i], - ctx = _ref1[0], handler = _ref1[1], _results.push(handler.call(ctx)); - return _results; + for (ref = handlers[event], results = [], j = 0, len = ref.length; len > j; j++) ref1 = ref[j], + ctx = ref1[0], handler = ref1[1], results.push(handler.call(ctx)); + return results; } }, checkXHR = function(xhr, onUp, onDown) { - var checkStatus, _onerror, _onload, _onreadystatechange, _ontimeout; + var _onerror, _onload, _onreadystatechange, _ontimeout, checkStatus; return checkStatus = function() { return xhr.status && xhr.status < 12e3 ? onUp() :onDown(); }, null === xhr.onprogress ? (_onerror = xhr.onerror, xhr.onerror = function() { @@ -104,7 +104,7 @@ }, Offline.checks.down = Offline.markDown, Offline.checks.up = Offline.markUp, Offline.check = function() { return Offline.trigger("checking"), Offline.checks[Offline.getOption("checks.active")](); }, Offline.confirmUp = Offline.confirmDown = Offline.check, Offline.onXHR = function(cb) { - var monitorXHR, _XDomainRequest, _XMLHttpRequest; + var _XDomainRequest, _XMLHttpRequest, monitorXHR; return monitorXHR = function(req, flags) { var _open; return _open = req.open, req.open = function(type, url, async, user, password) { @@ -119,7 +119,7 @@ }), _open.apply(req, arguments); }; }, _XMLHttpRequest = window.XMLHttpRequest, window.XMLHttpRequest = function(flags) { - var req, _overrideMimeType, _setRequestHeader; + var _overrideMimeType, _setRequestHeader, req; return req = new _XMLHttpRequest(flags), monitorXHR(req, flags), _setRequestHeader = req.setRequestHeader, req.headers = {}, req.setRequestHeader = function(name, value) { return req.headers[name] = value, _setRequestHeader.call(req, name, value); @@ -132,21 +132,21 @@ return req = new _XDomainRequest(), monitorXHR(req), req; }, extendNative(window.XDomainRequest, _XDomainRequest)) :void 0; }, init = function() { - return Offline.getOption("interceptRequests") && Offline.onXHR(function(_arg) { + return Offline.getOption("interceptRequests") && Offline.onXHR(function(arg) { var xhr; - return xhr = _arg.xhr, xhr.offline !== !1 ? checkXHR(xhr, Offline.markUp, Offline.confirmDown) :void 0; + return xhr = arg.xhr, xhr.offline !== !1 ? checkXHR(xhr, Offline.markUp, Offline.confirmDown) :void 0; }), Offline.getOption("checkOnLoad") ? Offline.check() :void 0; }, setTimeout(init, 0), window.Offline = Offline; }).call(this), function() { var down, next, nope, rc, reset, retryIntv, tick, tryNow, up; if (!window.Offline) throw new Error("Offline Reconnect brought in without offline.js"); rc = Offline.reconnect = {}, retryIntv = null, reset = function() { - var _ref; + var ref; return null != rc.state && "inactive" !== rc.state && Offline.trigger("reconnect:stopped"), - rc.state = "inactive", rc.remaining = rc.delay = null != (_ref = Offline.getOption("reconnect.initialDelay")) ? _ref :3; + rc.state = "inactive", rc.remaining = rc.delay = null != (ref = Offline.getOption("reconnect.initialDelay")) ? ref :3; }, next = function() { - var delay, _ref; - return delay = null != (_ref = Offline.getOption("reconnect.delay")) ? _ref :Math.min(Math.ceil(1.5 * rc.delay), 3600), + var delay, ref; + return delay = null != (ref = Offline.getOption("reconnect.delay")) ? ref :Math.min(Math.ceil(1.5 * rc.delay), 3600), rc.remaining = rc.delay = delay; }, tick = function() { return "connecting" !== rc.state ? (rc.remaining -= 1, Offline.trigger("reconnect:tick"), @@ -168,31 +168,36 @@ var clear, flush, held, holdRequest, makeRequest, waitingOnConfirm; if (!window.Offline) throw new Error("Requests module brought in without offline.js"); held = [], waitingOnConfirm = !1, holdRequest = function(req) { - return Offline.trigger("requests:capture"), "down" !== Offline.state && (waitingOnConfirm = !0), - held.push(req); - }, makeRequest = function(_arg) { - var body, name, password, type, url, user, val, xhr, _ref; - xhr = _arg.xhr, url = _arg.url, type = _arg.type, user = _arg.user, password = _arg.password, - body = _arg.body, xhr.abort(), xhr.open(type, url, !0, user, password), _ref = xhr.headers; - for (name in _ref) val = _ref[name], xhr.setRequestHeader(name, val); - return xhr.mimeType && xhr.overrideMimeType(xhr.mimeType), xhr.send(body); + return Offline.getOption("requests") !== !1 ? (Offline.trigger("requests:capture"), + "down" !== Offline.state && (waitingOnConfirm = !0), held.push(req)) :void 0; + }, makeRequest = function(arg) { + var body, name, password, ref, type, url, user, val, xhr; + if (xhr = arg.xhr, url = arg.url, type = arg.type, user = arg.user, password = arg.password, + body = arg.body, Offline.getOption("requests") !== !1) { + xhr.abort(), xhr.open(type, url, !0, user, password), ref = xhr.headers; + for (name in ref) val = ref[name], xhr.setRequestHeader(name, val); + return xhr.mimeType && xhr.overrideMimeType(xhr.mimeType), xhr.send(body); + } }, clear = function() { return held = []; }, flush = function() { - var key, request, requests, url, _i, _len; - for (Offline.trigger("requests:flush"), requests = {}, _i = 0, _len = held.length; _len > _i; _i++) request = held[_i], - url = request.url.replace(/(\?|&)_=[0-9]+/, function(match, char) { - return "?" === char ? char :""; - }), requests["" + request.type.toUpperCase() + " - " + url] = request; - for (key in requests) request = requests[key], makeRequest(request); - return clear(); + var body, i, key, len, request, requests, url; + if (Offline.getOption("requests") !== !1) { + for (Offline.trigger("requests:flush"), requests = {}, i = 0, len = held.length; len > i; i++) request = held[i], + url = request.url.replace(/(\?|&)_=[0-9]+/, function(match, char) { + return "?" === char ? char :""; + }), Offline.getOption("deDupBody") ? (body = request.body, body = "[object Object]" === body.toString() ? JSON.stringify(body) :body.toString(), + requests[request.type.toUpperCase() + " - " + url + " - " + body] = request) :requests[request.type.toUpperCase() + " - " + url] = request; + for (key in requests) request = requests[key], makeRequest(request); + return clear(); + } }, setTimeout(function() { return Offline.getOption("requests") !== !1 ? (Offline.on("confirmed-up", function() { return waitingOnConfirm ? (waitingOnConfirm = !1, clear()) :void 0; }), Offline.on("up", flush), Offline.on("down", function() { return waitingOnConfirm = !1; }), Offline.onXHR(function(request) { - var async, hold, xhr, _onreadystatechange, _send; + var _onreadystatechange, _send, async, hold, xhr; return xhr = request.xhr, async = request.async, xhr.offline !== !1 && (hold = function() { return holdRequest(request); }, _send = xhr.send, xhr.send = function(body) { @@ -209,13 +214,13 @@ }) :void 0; }, 0); }.call(this), function() { - var state, _base, _i, _len, _ref; + var base, i, len, ref, state; if (!Offline) throw new Error("Offline simulate brought in without offline.js"); - for (_ref = [ "up", "down" ], _i = 0, _len = _ref.length; _len > _i; _i++) state = _ref[_i], + for (ref = [ "up", "down" ], i = 0, len = ref.length; len > i; i++) state = ref[i], (document.querySelector("script[data-simulate='" + state + "']") || ("undefined" != typeof localStorage && null !== localStorage ? localStorage.OFFLINE_SIMULATE :void 0) === state) && (null == Offline.options && (Offline.options = {}), - null == (_base = Offline.options).checks && (_base.checks = {}), Offline.options.checks.active = state); + null == (base = Offline.options).checks && (base.checks = {}), Offline.options.checks.active = state); }.call(this), function() { - var RETRY_TEMPLATE, TEMPLATE, addClass, content, createFromHTML, el, flashClass, flashTimeouts, init, removeClass, render, roundTime, _onreadystatechange; + var RETRY_TEMPLATE, TEMPLATE, _onreadystatechange, addClass, content, createFromHTML, el, flashClass, flashTimeouts, init, removeClass, render, roundTime; if (!window.Offline) throw new Error("Offline UI brought in without offline.js"); TEMPLATE = '
', RETRY_TEMPLATE = '', createFromHTML = function(html) { @@ -258,9 +263,9 @@ }), Offline.on("reconnect:connecting", function() { return addClass("offline-ui-connecting"), removeClass("offline-ui-waiting"); }), Offline.on("reconnect:tick", function() { - var time, unit, _ref; - return addClass("offline-ui-waiting"), removeClass("offline-ui-connecting"), _ref = roundTime(Offline.reconnect.remaining), - time = _ref[0], unit = _ref[1], content.setAttribute("data-retry-in-value", time), + var ref, time, unit; + return addClass("offline-ui-waiting"), removeClass("offline-ui-connecting"), ref = roundTime(Offline.reconnect.remaining), + time = ref[0], unit = ref[1], content.setAttribute("data-retry-in-value", time), content.setAttribute("data-retry-in-unit", unit); }), Offline.on("reconnect:stopped", function() { return removeClass("offline-ui-connecting offline-ui-waiting"), content.setAttribute("data-retry-in-value", null), diff --git a/offline.min.js b/offline.min.js new file mode 100644 index 0000000..52c48c6 --- /dev/null +++ b/offline.min.js @@ -0,0 +1,2 @@ +/*! offline-js 0.7.13 */ +(function(){var a,b,c,d,e,f,g;d=function(a,b){var c,d,e,f;e=[];for(d in b.prototype)try{f=b.prototype[d],null==a[d]&&"function"!=typeof f?e.push(a[d]=f):e.push(void 0)}catch(g){c=g}return e},a={},null==a.options&&(a.options={}),c={checks:{xhr:{url:function(){return"/favicon.ico?_="+(new Date).getTime()},timeout:5e3,type:"HEAD"},image:{url:function(){return"/favicon.ico?_="+(new Date).getTime()}},active:"xhr"},checkOnLoad:!1,interceptRequests:!0,reconnect:!0,deDupBody:!1},e=function(a,b){var c,d,e,f,g,h;for(c=a,h=b.split("."),d=e=0,f=h.length;f>e&&(g=h[d],c=c[g],"object"==typeof c);d=++e);return d===h.length-1?c:void 0},a.getOption=function(b){var d,f;return f=null!=(d=e(a.options,b))?d:e(c,b),"function"==typeof f?f():f},"function"==typeof window.addEventListener&&window.addEventListener("online",function(){return setTimeout(a.confirmUp,100)},!1),"function"==typeof window.addEventListener&&window.addEventListener("offline",function(){return a.confirmDown()},!1),a.state="up",a.markUp=function(){return a.trigger("confirmed-up"),"up"!==a.state?(a.state="up",a.trigger("up")):void 0},a.markDown=function(){return a.trigger("confirmed-down"),"down"!==a.state?(a.state="down",a.trigger("down")):void 0},f={},a.on=function(b,c,d){var e,g,h,i,j;if(g=b.split(" "),g.length>1){for(j=[],h=0,i=g.length;i>h;h++)e=g[h],j.push(a.on(e,c,d));return j}return null==f[b]&&(f[b]=[]),f[b].push([d,c])},a.off=function(a,b){var c,d,e,g,h;if(null!=f[a]){if(b){for(e=0,h=[];ed;d++)h=g[d],b=h[0],c=h[1],i.push(c.call(b));return i}},b=function(a,b,c){var d,e,f,g,h;return h=function(){return a.status&&a.status<12e3?b():c()},null===a.onprogress?(d=a.onerror,a.onerror=function(){return c(),"function"==typeof d?d.apply(null,arguments):void 0},g=a.ontimeout,a.ontimeout=function(){return c(),"function"==typeof g?g.apply(null,arguments):void 0},e=a.onload,a.onload=function(){return h(),"function"==typeof e?e.apply(null,arguments):void 0}):(f=a.onreadystatechange,a.onreadystatechange=function(){return 4===a.readyState?h():0===a.readyState&&c(),"function"==typeof f?f.apply(null,arguments):void 0})},a.checks={},a.checks.xhr=function(){var c,d;d=new XMLHttpRequest,d.offline=!1,d.open(a.getOption("checks.xhr.type"),a.getOption("checks.xhr.url"),!0),null!=d.timeout&&(d.timeout=a.getOption("checks.xhr.timeout")),b(d,a.markUp,a.markDown);try{d.send()}catch(e){c=e,a.markDown()}return d},a.checks.image=function(){var b;return b=document.createElement("img"),b.onerror=a.markDown,b.onload=a.markUp,void(b.src=a.getOption("checks.image.url"))},a.checks.down=a.markDown,a.checks.up=a.markUp,a.check=function(){return a.trigger("checking"),a.checks[a.getOption("checks.active")]()},a.confirmUp=a.confirmDown=a.check,a.onXHR=function(a){var b,c,e;return e=function(b,c){var d;return d=b.open,b.open=function(e,f,g,h,i){return a({type:e,url:f,async:g,flags:c,user:h,password:i,xhr:b}),d.apply(b,arguments)}},c=window.XMLHttpRequest,window.XMLHttpRequest=function(a){var b,d,f;return f=new c(a),e(f,a),d=f.setRequestHeader,f.headers={},f.setRequestHeader=function(a,b){return f.headers[a]=b,d.call(f,a,b)},b=f.overrideMimeType,f.overrideMimeType=function(a){return f.mimeType=a,b.call(f,a)},f},d(window.XMLHttpRequest,c),null!=window.XDomainRequest?(b=window.XDomainRequest,window.XDomainRequest=function(){var a;return a=new b,e(a),a},d(window.XDomainRequest,b)):void 0},g=function(){return a.getOption("interceptRequests")&&a.onXHR(function(c){var d;return d=c.xhr,d.offline!==!1?b(d,a.markUp,a.confirmDown):void 0}),a.getOption("checkOnLoad")?a.check():void 0},setTimeout(g,0),window.Offline=a}).call(this),function(){var a,b,c,d,e,f,g,h,i;if(!window.Offline)throw new Error("Offline Reconnect brought in without offline.js");d=Offline.reconnect={},f=null,e=function(){var a;return null!=d.state&&"inactive"!==d.state&&Offline.trigger("reconnect:stopped"),d.state="inactive",d.remaining=d.delay=null!=(a=Offline.getOption("reconnect.initialDelay"))?a:3},b=function(){var a,b;return a=null!=(b=Offline.getOption("reconnect.delay"))?b:Math.min(Math.ceil(1.5*d.delay),3600),d.remaining=d.delay=a},g=function(){return"connecting"!==d.state?(d.remaining-=1,Offline.trigger("reconnect:tick"),0===d.remaining?h():void 0):void 0},h=function(){return"waiting"===d.state?(Offline.trigger("reconnect:connecting"),d.state="connecting",Offline.check()):void 0},a=function(){return Offline.getOption("reconnect")?(e(),d.state="waiting",Offline.trigger("reconnect:started"),f=setInterval(g,1e3)):void 0},i=function(){return null!=f&&clearInterval(f),e()},c=function(){return Offline.getOption("reconnect")&&"connecting"===d.state?(Offline.trigger("reconnect:failure"),d.state="waiting",b()):void 0},d.tryNow=h,e(),Offline.on("down",a),Offline.on("confirmed-down",c),Offline.on("up",i)}.call(this),function(){var a,b,c,d,e,f;if(!window.Offline)throw new Error("Requests module brought in without offline.js");c=[],f=!1,d=function(a){return Offline.getOption("requests")!==!1?(Offline.trigger("requests:capture"),"down"!==Offline.state&&(f=!0),c.push(a)):void 0},e=function(a){var b,c,d,e,f,g,h,i,j;if(j=a.xhr,g=a.url,f=a.type,h=a.user,d=a.password,b=a.body,Offline.getOption("requests")!==!1){j.abort(),j.open(f,g,!0,h,d),e=j.headers;for(c in e)i=e[c],j.setRequestHeader(c,i);return j.mimeType&&j.overrideMimeType(j.mimeType),j.send(b)}},a=function(){return c=[]},b=function(){var b,d,f,g,h,i,j;if(Offline.getOption("requests")!==!1){for(Offline.trigger("requests:flush"),i={},d=0,g=c.length;g>d;d++)h=c[d],j=h.url.replace(/(\?|&)_=[0-9]+/,function(a,b){return"?"===b?b:""}),Offline.getOption("deDupBody")?(b=h.body,b="[object Object]"===b.toString()?JSON.stringify(b):b.toString(),i[h.type.toUpperCase()+" - "+j+" - "+b]=h):i[h.type.toUpperCase()+" - "+j]=h;for(f in i)h=i[f],e(h);return a()}},setTimeout(function(){return Offline.getOption("requests")!==!1?(Offline.on("confirmed-up",function(){return f?(f=!1,a()):void 0}),Offline.on("up",b),Offline.on("down",function(){return f=!1}),Offline.onXHR(function(a){var b,c,e,f,g;return g=a.xhr,e=a.async,g.offline!==!1&&(f=function(){return d(a)},c=g.send,g.send=function(b){return a.body=b,c.apply(g,arguments)},e)?null===g.onprogress?(g.addEventListener("error",f,!1),g.addEventListener("timeout",f,!1)):(b=g.onreadystatechange,g.onreadystatechange=function(){return 0===g.readyState?f():4===g.readyState&&(0===g.status||g.status>=12e3)&&f(),"function"==typeof b?b.apply(null,arguments):void 0}):void 0}),Offline.requests={flush:b,clear:a}):void 0},0)}.call(this),function(){var a,b,c,d,e;if(!Offline)throw new Error("Offline simulate brought in without offline.js");for(d=["up","down"],b=0,c=d.length;c>b;b++)e=d[b],(document.querySelector("script[data-simulate='"+e+"']")||("undefined"!=typeof localStorage&&null!==localStorage?localStorage.OFFLINE_SIMULATE:void 0)===e)&&(null==Offline.options&&(Offline.options={}),null==(a=Offline.options).checks&&(a.checks={}),Offline.options.checks.active=e)}.call(this),function(){var a,b,c,d,e,f,g,h,i,j,k,l,m;if(!window.Offline)throw new Error("Offline UI brought in without offline.js");b='
',a='',f=function(a){var b;return b=document.createElement("div"),b.innerHTML=a,b.children[0]},g=e=null,d=function(a){return k(a),g.className+=" "+a},k=function(a){return g.className=g.className.replace(new RegExp("(^| )"+a.split(" ").join("|")+"( |$)","gi")," ")},i={},h=function(a,b){return d(a),null!=i[a]&&clearTimeout(i[a]),i[a]=setTimeout(function(){return k(a),delete i[a]},1e3*b)},m=function(a){var b,c,d,e;d={day:86400,hour:3600,minute:60,second:1};for(c in d)if(b=d[c],a>=b)return e=Math.floor(a/b),[e,c];return["now",""]},l=function(){var c,h;return g=f(b),document.body.appendChild(g),null!=Offline.reconnect&&Offline.getOption("reconnect")&&(g.appendChild(f(a)),c=g.querySelector(".offline-ui-retry"),h=function(a){return a.preventDefault(),Offline.reconnect.tryNow()},null!=c.addEventListener?c.addEventListener("click",h,!1):c.attachEvent("click",h)),d("offline-ui-"+Offline.state),e=g.querySelector(".offline-ui-content")},j=function(){return l(),Offline.on("up",function(){return k("offline-ui-down"),d("offline-ui-up"),h("offline-ui-up-2s",2),h("offline-ui-up-5s",5)}),Offline.on("down",function(){return k("offline-ui-up"),d("offline-ui-down"),h("offline-ui-down-2s",2),h("offline-ui-down-5s",5)}),Offline.on("reconnect:connecting",function(){return d("offline-ui-connecting"),k("offline-ui-waiting")}),Offline.on("reconnect:tick",function(){var a,b,c;return d("offline-ui-waiting"),k("offline-ui-connecting"),a=m(Offline.reconnect.remaining),b=a[0],c=a[1],e.setAttribute("data-retry-in-value",b),e.setAttribute("data-retry-in-unit",c)}),Offline.on("reconnect:stopped",function(){return k("offline-ui-connecting offline-ui-waiting"),e.setAttribute("data-retry-in-value",null),e.setAttribute("data-retry-in-unit",null)}),Offline.on("reconnect:failure",function(){return h("offline-ui-reconnect-failed-2s",2),h("offline-ui-reconnect-failed-5s",5)}),Offline.on("reconnect:success",function(){return h("offline-ui-reconnect-succeeded-2s",2),h("offline-ui-reconnect-succeeded-5s",5)})},"complete"===document.readyState?j():null!=document.addEventListener?document.addEventListener("DOMContentLoaded",j,!1):(c=document.onreadystatechange,document.onreadystatechange=function(){return"complete"===document.readyState&&j(),"function"==typeof c?c.apply(null,arguments):void 0})}.call(this); \ No newline at end of file From 3eaff38bdcf150a1024ebb937fd5078f88f86457 Mon Sep 17 00:00:00 2001 From: rawls238 Date: Tue, 25 Aug 2015 21:48:00 -0400 Subject: [PATCH 02/49] bump version --- README.md | 2 +- bower.json | 2 +- docs/welcome/index.html | 2 +- offline.js | 2 +- offline.min.js | 2 +- package.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 6a2428e..44526ba 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Click Install to see a live preview of Offline on your website. Manual Installation ------------------- -Include [the javascript](https://raw.github.com/HubSpot/offline/v0.7.13/offline.min.js), one of [the themes](http://github.hubspot.com/offline/docs/welcome/), and one of [the +Include [the javascript](https://raw.github.com/HubSpot/offline/v0.7.14/offline.min.js), one of [the themes](http://github.hubspot.com/offline/docs/welcome/), and one of [the languages](https://github.com/HubSpot/offline/tree/master/themes) on your site. You're done! To use only the JavaScript API without a UI indicator, simply leave out the CSS file. diff --git a/bower.json b/bower.json index cb139a3..fa65a6d 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "offline", - "version": "0.7.13", + "version": "0.7.14", "homepage": "http://github.hubspot.com/offline/docs/welcome", "authors": [ "Zack Bloom ", diff --git a/docs/welcome/index.html b/docs/welcome/index.html index c7eb9f9..34f560a 100644 --- a/docs/welcome/index.html +++ b/docs/welcome/index.html @@ -355,7 +355,7 @@

Install



Download

-

Offline.js

+

Offline.js


Pick a Theme

diff --git a/offline.js b/offline.js index 876c76f..84f4381 100644 --- a/offline.js +++ b/offline.js @@ -1,4 +1,4 @@ -/*! offline-js 0.7.13 */ +/*! offline-js 0.7.14 */ (function() { var Offline, checkXHR, defaultOptions, extendNative, grab, handlers, init; extendNative = function(to, from) { diff --git a/offline.min.js b/offline.min.js index 52c48c6..2278db3 100644 --- a/offline.min.js +++ b/offline.min.js @@ -1,2 +1,2 @@ -/*! offline-js 0.7.13 */ +/*! offline-js 0.7.14 */ (function(){var a,b,c,d,e,f,g;d=function(a,b){var c,d,e,f;e=[];for(d in b.prototype)try{f=b.prototype[d],null==a[d]&&"function"!=typeof f?e.push(a[d]=f):e.push(void 0)}catch(g){c=g}return e},a={},null==a.options&&(a.options={}),c={checks:{xhr:{url:function(){return"/favicon.ico?_="+(new Date).getTime()},timeout:5e3,type:"HEAD"},image:{url:function(){return"/favicon.ico?_="+(new Date).getTime()}},active:"xhr"},checkOnLoad:!1,interceptRequests:!0,reconnect:!0,deDupBody:!1},e=function(a,b){var c,d,e,f,g,h;for(c=a,h=b.split("."),d=e=0,f=h.length;f>e&&(g=h[d],c=c[g],"object"==typeof c);d=++e);return d===h.length-1?c:void 0},a.getOption=function(b){var d,f;return f=null!=(d=e(a.options,b))?d:e(c,b),"function"==typeof f?f():f},"function"==typeof window.addEventListener&&window.addEventListener("online",function(){return setTimeout(a.confirmUp,100)},!1),"function"==typeof window.addEventListener&&window.addEventListener("offline",function(){return a.confirmDown()},!1),a.state="up",a.markUp=function(){return a.trigger("confirmed-up"),"up"!==a.state?(a.state="up",a.trigger("up")):void 0},a.markDown=function(){return a.trigger("confirmed-down"),"down"!==a.state?(a.state="down",a.trigger("down")):void 0},f={},a.on=function(b,c,d){var e,g,h,i,j;if(g=b.split(" "),g.length>1){for(j=[],h=0,i=g.length;i>h;h++)e=g[h],j.push(a.on(e,c,d));return j}return null==f[b]&&(f[b]=[]),f[b].push([d,c])},a.off=function(a,b){var c,d,e,g,h;if(null!=f[a]){if(b){for(e=0,h=[];ed;d++)h=g[d],b=h[0],c=h[1],i.push(c.call(b));return i}},b=function(a,b,c){var d,e,f,g,h;return h=function(){return a.status&&a.status<12e3?b():c()},null===a.onprogress?(d=a.onerror,a.onerror=function(){return c(),"function"==typeof d?d.apply(null,arguments):void 0},g=a.ontimeout,a.ontimeout=function(){return c(),"function"==typeof g?g.apply(null,arguments):void 0},e=a.onload,a.onload=function(){return h(),"function"==typeof e?e.apply(null,arguments):void 0}):(f=a.onreadystatechange,a.onreadystatechange=function(){return 4===a.readyState?h():0===a.readyState&&c(),"function"==typeof f?f.apply(null,arguments):void 0})},a.checks={},a.checks.xhr=function(){var c,d;d=new XMLHttpRequest,d.offline=!1,d.open(a.getOption("checks.xhr.type"),a.getOption("checks.xhr.url"),!0),null!=d.timeout&&(d.timeout=a.getOption("checks.xhr.timeout")),b(d,a.markUp,a.markDown);try{d.send()}catch(e){c=e,a.markDown()}return d},a.checks.image=function(){var b;return b=document.createElement("img"),b.onerror=a.markDown,b.onload=a.markUp,void(b.src=a.getOption("checks.image.url"))},a.checks.down=a.markDown,a.checks.up=a.markUp,a.check=function(){return a.trigger("checking"),a.checks[a.getOption("checks.active")]()},a.confirmUp=a.confirmDown=a.check,a.onXHR=function(a){var b,c,e;return e=function(b,c){var d;return d=b.open,b.open=function(e,f,g,h,i){return a({type:e,url:f,async:g,flags:c,user:h,password:i,xhr:b}),d.apply(b,arguments)}},c=window.XMLHttpRequest,window.XMLHttpRequest=function(a){var b,d,f;return f=new c(a),e(f,a),d=f.setRequestHeader,f.headers={},f.setRequestHeader=function(a,b){return f.headers[a]=b,d.call(f,a,b)},b=f.overrideMimeType,f.overrideMimeType=function(a){return f.mimeType=a,b.call(f,a)},f},d(window.XMLHttpRequest,c),null!=window.XDomainRequest?(b=window.XDomainRequest,window.XDomainRequest=function(){var a;return a=new b,e(a),a},d(window.XDomainRequest,b)):void 0},g=function(){return a.getOption("interceptRequests")&&a.onXHR(function(c){var d;return d=c.xhr,d.offline!==!1?b(d,a.markUp,a.confirmDown):void 0}),a.getOption("checkOnLoad")?a.check():void 0},setTimeout(g,0),window.Offline=a}).call(this),function(){var a,b,c,d,e,f,g,h,i;if(!window.Offline)throw new Error("Offline Reconnect brought in without offline.js");d=Offline.reconnect={},f=null,e=function(){var a;return null!=d.state&&"inactive"!==d.state&&Offline.trigger("reconnect:stopped"),d.state="inactive",d.remaining=d.delay=null!=(a=Offline.getOption("reconnect.initialDelay"))?a:3},b=function(){var a,b;return a=null!=(b=Offline.getOption("reconnect.delay"))?b:Math.min(Math.ceil(1.5*d.delay),3600),d.remaining=d.delay=a},g=function(){return"connecting"!==d.state?(d.remaining-=1,Offline.trigger("reconnect:tick"),0===d.remaining?h():void 0):void 0},h=function(){return"waiting"===d.state?(Offline.trigger("reconnect:connecting"),d.state="connecting",Offline.check()):void 0},a=function(){return Offline.getOption("reconnect")?(e(),d.state="waiting",Offline.trigger("reconnect:started"),f=setInterval(g,1e3)):void 0},i=function(){return null!=f&&clearInterval(f),e()},c=function(){return Offline.getOption("reconnect")&&"connecting"===d.state?(Offline.trigger("reconnect:failure"),d.state="waiting",b()):void 0},d.tryNow=h,e(),Offline.on("down",a),Offline.on("confirmed-down",c),Offline.on("up",i)}.call(this),function(){var a,b,c,d,e,f;if(!window.Offline)throw new Error("Requests module brought in without offline.js");c=[],f=!1,d=function(a){return Offline.getOption("requests")!==!1?(Offline.trigger("requests:capture"),"down"!==Offline.state&&(f=!0),c.push(a)):void 0},e=function(a){var b,c,d,e,f,g,h,i,j;if(j=a.xhr,g=a.url,f=a.type,h=a.user,d=a.password,b=a.body,Offline.getOption("requests")!==!1){j.abort(),j.open(f,g,!0,h,d),e=j.headers;for(c in e)i=e[c],j.setRequestHeader(c,i);return j.mimeType&&j.overrideMimeType(j.mimeType),j.send(b)}},a=function(){return c=[]},b=function(){var b,d,f,g,h,i,j;if(Offline.getOption("requests")!==!1){for(Offline.trigger("requests:flush"),i={},d=0,g=c.length;g>d;d++)h=c[d],j=h.url.replace(/(\?|&)_=[0-9]+/,function(a,b){return"?"===b?b:""}),Offline.getOption("deDupBody")?(b=h.body,b="[object Object]"===b.toString()?JSON.stringify(b):b.toString(),i[h.type.toUpperCase()+" - "+j+" - "+b]=h):i[h.type.toUpperCase()+" - "+j]=h;for(f in i)h=i[f],e(h);return a()}},setTimeout(function(){return Offline.getOption("requests")!==!1?(Offline.on("confirmed-up",function(){return f?(f=!1,a()):void 0}),Offline.on("up",b),Offline.on("down",function(){return f=!1}),Offline.onXHR(function(a){var b,c,e,f,g;return g=a.xhr,e=a.async,g.offline!==!1&&(f=function(){return d(a)},c=g.send,g.send=function(b){return a.body=b,c.apply(g,arguments)},e)?null===g.onprogress?(g.addEventListener("error",f,!1),g.addEventListener("timeout",f,!1)):(b=g.onreadystatechange,g.onreadystatechange=function(){return 0===g.readyState?f():4===g.readyState&&(0===g.status||g.status>=12e3)&&f(),"function"==typeof b?b.apply(null,arguments):void 0}):void 0}),Offline.requests={flush:b,clear:a}):void 0},0)}.call(this),function(){var a,b,c,d,e;if(!Offline)throw new Error("Offline simulate brought in without offline.js");for(d=["up","down"],b=0,c=d.length;c>b;b++)e=d[b],(document.querySelector("script[data-simulate='"+e+"']")||("undefined"!=typeof localStorage&&null!==localStorage?localStorage.OFFLINE_SIMULATE:void 0)===e)&&(null==Offline.options&&(Offline.options={}),null==(a=Offline.options).checks&&(a.checks={}),Offline.options.checks.active=e)}.call(this),function(){var a,b,c,d,e,f,g,h,i,j,k,l,m;if(!window.Offline)throw new Error("Offline UI brought in without offline.js");b='
',a='',f=function(a){var b;return b=document.createElement("div"),b.innerHTML=a,b.children[0]},g=e=null,d=function(a){return k(a),g.className+=" "+a},k=function(a){return g.className=g.className.replace(new RegExp("(^| )"+a.split(" ").join("|")+"( |$)","gi")," ")},i={},h=function(a,b){return d(a),null!=i[a]&&clearTimeout(i[a]),i[a]=setTimeout(function(){return k(a),delete i[a]},1e3*b)},m=function(a){var b,c,d,e;d={day:86400,hour:3600,minute:60,second:1};for(c in d)if(b=d[c],a>=b)return e=Math.floor(a/b),[e,c];return["now",""]},l=function(){var c,h;return g=f(b),document.body.appendChild(g),null!=Offline.reconnect&&Offline.getOption("reconnect")&&(g.appendChild(f(a)),c=g.querySelector(".offline-ui-retry"),h=function(a){return a.preventDefault(),Offline.reconnect.tryNow()},null!=c.addEventListener?c.addEventListener("click",h,!1):c.attachEvent("click",h)),d("offline-ui-"+Offline.state),e=g.querySelector(".offline-ui-content")},j=function(){return l(),Offline.on("up",function(){return k("offline-ui-down"),d("offline-ui-up"),h("offline-ui-up-2s",2),h("offline-ui-up-5s",5)}),Offline.on("down",function(){return k("offline-ui-up"),d("offline-ui-down"),h("offline-ui-down-2s",2),h("offline-ui-down-5s",5)}),Offline.on("reconnect:connecting",function(){return d("offline-ui-connecting"),k("offline-ui-waiting")}),Offline.on("reconnect:tick",function(){var a,b,c;return d("offline-ui-waiting"),k("offline-ui-connecting"),a=m(Offline.reconnect.remaining),b=a[0],c=a[1],e.setAttribute("data-retry-in-value",b),e.setAttribute("data-retry-in-unit",c)}),Offline.on("reconnect:stopped",function(){return k("offline-ui-connecting offline-ui-waiting"),e.setAttribute("data-retry-in-value",null),e.setAttribute("data-retry-in-unit",null)}),Offline.on("reconnect:failure",function(){return h("offline-ui-reconnect-failed-2s",2),h("offline-ui-reconnect-failed-5s",5)}),Offline.on("reconnect:success",function(){return h("offline-ui-reconnect-succeeded-2s",2),h("offline-ui-reconnect-succeeded-5s",5)})},"complete"===document.readyState?j():null!=document.addEventListener?document.addEventListener("DOMContentLoaded",j,!1):(c=document.onreadystatechange,document.onreadystatechange=function(){return"complete"===document.readyState&&j(),"function"==typeof c?c.apply(null,arguments):void 0})}.call(this); \ No newline at end of file diff --git a/package.json b/package.json index 2c75fcb..1c91415 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "offline-js", - "version": "0.7.13", + "version": "0.7.14", "description": "Automatically detect when a browser is offline", "authors": [ "Adam Schwartz ", From 2523c5fe9b449e4fa89a64d5945beebffecd0d88 Mon Sep 17 00:00:00 2001 From: Mathieu Ghaleb Date: Fri, 2 Oct 2015 11:34:06 +0200 Subject: [PATCH 03/49] Offline.options can now be defined before including offline.js setTimeout(init, 0) trick is not working using AMD so it will be particulary usefull in this case --- coffee/offline.coffee | 2 +- js/offline.js | 4 +--- offline.js | 3 ++- offline.min.js | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/coffee/offline.coffee b/coffee/offline.coffee index e1f4e3a..ec3a313 100644 --- a/coffee/offline.coffee +++ b/coffee/offline.coffee @@ -14,7 +14,7 @@ extendNative = (to, from) -> Offline = {} -Offline.options ?= {} +Offline.options = if window.Offline then window.Offline.options or {} else {} defaultOptions = checks: xhr: diff --git a/js/offline.js b/js/offline.js index d82d9d5..555eded 100644 --- a/js/offline.js +++ b/js/offline.js @@ -21,9 +21,7 @@ Offline = {}; - if (Offline.options == null) { - Offline.options = {}; - } + Offline.options = window.Offline ? window.Offline.options || {} : {}; defaultOptions = { checks: { diff --git a/offline.js b/offline.js index 84f4381..ba4bf50 100644 --- a/offline.js +++ b/offline.js @@ -10,7 +10,8 @@ e = _error; } return results; - }, Offline = {}, null == Offline.options && (Offline.options = {}), defaultOptions = { + }, Offline = {}, Offline.options = window.Offline ? window.Offline.options || {} :{}, + defaultOptions = { checks:{ xhr:{ url:function() { diff --git a/offline.min.js b/offline.min.js index 2278db3..cda72c4 100644 --- a/offline.min.js +++ b/offline.min.js @@ -1,2 +1,2 @@ /*! offline-js 0.7.14 */ -(function(){var a,b,c,d,e,f,g;d=function(a,b){var c,d,e,f;e=[];for(d in b.prototype)try{f=b.prototype[d],null==a[d]&&"function"!=typeof f?e.push(a[d]=f):e.push(void 0)}catch(g){c=g}return e},a={},null==a.options&&(a.options={}),c={checks:{xhr:{url:function(){return"/favicon.ico?_="+(new Date).getTime()},timeout:5e3,type:"HEAD"},image:{url:function(){return"/favicon.ico?_="+(new Date).getTime()}},active:"xhr"},checkOnLoad:!1,interceptRequests:!0,reconnect:!0,deDupBody:!1},e=function(a,b){var c,d,e,f,g,h;for(c=a,h=b.split("."),d=e=0,f=h.length;f>e&&(g=h[d],c=c[g],"object"==typeof c);d=++e);return d===h.length-1?c:void 0},a.getOption=function(b){var d,f;return f=null!=(d=e(a.options,b))?d:e(c,b),"function"==typeof f?f():f},"function"==typeof window.addEventListener&&window.addEventListener("online",function(){return setTimeout(a.confirmUp,100)},!1),"function"==typeof window.addEventListener&&window.addEventListener("offline",function(){return a.confirmDown()},!1),a.state="up",a.markUp=function(){return a.trigger("confirmed-up"),"up"!==a.state?(a.state="up",a.trigger("up")):void 0},a.markDown=function(){return a.trigger("confirmed-down"),"down"!==a.state?(a.state="down",a.trigger("down")):void 0},f={},a.on=function(b,c,d){var e,g,h,i,j;if(g=b.split(" "),g.length>1){for(j=[],h=0,i=g.length;i>h;h++)e=g[h],j.push(a.on(e,c,d));return j}return null==f[b]&&(f[b]=[]),f[b].push([d,c])},a.off=function(a,b){var c,d,e,g,h;if(null!=f[a]){if(b){for(e=0,h=[];ed;d++)h=g[d],b=h[0],c=h[1],i.push(c.call(b));return i}},b=function(a,b,c){var d,e,f,g,h;return h=function(){return a.status&&a.status<12e3?b():c()},null===a.onprogress?(d=a.onerror,a.onerror=function(){return c(),"function"==typeof d?d.apply(null,arguments):void 0},g=a.ontimeout,a.ontimeout=function(){return c(),"function"==typeof g?g.apply(null,arguments):void 0},e=a.onload,a.onload=function(){return h(),"function"==typeof e?e.apply(null,arguments):void 0}):(f=a.onreadystatechange,a.onreadystatechange=function(){return 4===a.readyState?h():0===a.readyState&&c(),"function"==typeof f?f.apply(null,arguments):void 0})},a.checks={},a.checks.xhr=function(){var c,d;d=new XMLHttpRequest,d.offline=!1,d.open(a.getOption("checks.xhr.type"),a.getOption("checks.xhr.url"),!0),null!=d.timeout&&(d.timeout=a.getOption("checks.xhr.timeout")),b(d,a.markUp,a.markDown);try{d.send()}catch(e){c=e,a.markDown()}return d},a.checks.image=function(){var b;return b=document.createElement("img"),b.onerror=a.markDown,b.onload=a.markUp,void(b.src=a.getOption("checks.image.url"))},a.checks.down=a.markDown,a.checks.up=a.markUp,a.check=function(){return a.trigger("checking"),a.checks[a.getOption("checks.active")]()},a.confirmUp=a.confirmDown=a.check,a.onXHR=function(a){var b,c,e;return e=function(b,c){var d;return d=b.open,b.open=function(e,f,g,h,i){return a({type:e,url:f,async:g,flags:c,user:h,password:i,xhr:b}),d.apply(b,arguments)}},c=window.XMLHttpRequest,window.XMLHttpRequest=function(a){var b,d,f;return f=new c(a),e(f,a),d=f.setRequestHeader,f.headers={},f.setRequestHeader=function(a,b){return f.headers[a]=b,d.call(f,a,b)},b=f.overrideMimeType,f.overrideMimeType=function(a){return f.mimeType=a,b.call(f,a)},f},d(window.XMLHttpRequest,c),null!=window.XDomainRequest?(b=window.XDomainRequest,window.XDomainRequest=function(){var a;return a=new b,e(a),a},d(window.XDomainRequest,b)):void 0},g=function(){return a.getOption("interceptRequests")&&a.onXHR(function(c){var d;return d=c.xhr,d.offline!==!1?b(d,a.markUp,a.confirmDown):void 0}),a.getOption("checkOnLoad")?a.check():void 0},setTimeout(g,0),window.Offline=a}).call(this),function(){var a,b,c,d,e,f,g,h,i;if(!window.Offline)throw new Error("Offline Reconnect brought in without offline.js");d=Offline.reconnect={},f=null,e=function(){var a;return null!=d.state&&"inactive"!==d.state&&Offline.trigger("reconnect:stopped"),d.state="inactive",d.remaining=d.delay=null!=(a=Offline.getOption("reconnect.initialDelay"))?a:3},b=function(){var a,b;return a=null!=(b=Offline.getOption("reconnect.delay"))?b:Math.min(Math.ceil(1.5*d.delay),3600),d.remaining=d.delay=a},g=function(){return"connecting"!==d.state?(d.remaining-=1,Offline.trigger("reconnect:tick"),0===d.remaining?h():void 0):void 0},h=function(){return"waiting"===d.state?(Offline.trigger("reconnect:connecting"),d.state="connecting",Offline.check()):void 0},a=function(){return Offline.getOption("reconnect")?(e(),d.state="waiting",Offline.trigger("reconnect:started"),f=setInterval(g,1e3)):void 0},i=function(){return null!=f&&clearInterval(f),e()},c=function(){return Offline.getOption("reconnect")&&"connecting"===d.state?(Offline.trigger("reconnect:failure"),d.state="waiting",b()):void 0},d.tryNow=h,e(),Offline.on("down",a),Offline.on("confirmed-down",c),Offline.on("up",i)}.call(this),function(){var a,b,c,d,e,f;if(!window.Offline)throw new Error("Requests module brought in without offline.js");c=[],f=!1,d=function(a){return Offline.getOption("requests")!==!1?(Offline.trigger("requests:capture"),"down"!==Offline.state&&(f=!0),c.push(a)):void 0},e=function(a){var b,c,d,e,f,g,h,i,j;if(j=a.xhr,g=a.url,f=a.type,h=a.user,d=a.password,b=a.body,Offline.getOption("requests")!==!1){j.abort(),j.open(f,g,!0,h,d),e=j.headers;for(c in e)i=e[c],j.setRequestHeader(c,i);return j.mimeType&&j.overrideMimeType(j.mimeType),j.send(b)}},a=function(){return c=[]},b=function(){var b,d,f,g,h,i,j;if(Offline.getOption("requests")!==!1){for(Offline.trigger("requests:flush"),i={},d=0,g=c.length;g>d;d++)h=c[d],j=h.url.replace(/(\?|&)_=[0-9]+/,function(a,b){return"?"===b?b:""}),Offline.getOption("deDupBody")?(b=h.body,b="[object Object]"===b.toString()?JSON.stringify(b):b.toString(),i[h.type.toUpperCase()+" - "+j+" - "+b]=h):i[h.type.toUpperCase()+" - "+j]=h;for(f in i)h=i[f],e(h);return a()}},setTimeout(function(){return Offline.getOption("requests")!==!1?(Offline.on("confirmed-up",function(){return f?(f=!1,a()):void 0}),Offline.on("up",b),Offline.on("down",function(){return f=!1}),Offline.onXHR(function(a){var b,c,e,f,g;return g=a.xhr,e=a.async,g.offline!==!1&&(f=function(){return d(a)},c=g.send,g.send=function(b){return a.body=b,c.apply(g,arguments)},e)?null===g.onprogress?(g.addEventListener("error",f,!1),g.addEventListener("timeout",f,!1)):(b=g.onreadystatechange,g.onreadystatechange=function(){return 0===g.readyState?f():4===g.readyState&&(0===g.status||g.status>=12e3)&&f(),"function"==typeof b?b.apply(null,arguments):void 0}):void 0}),Offline.requests={flush:b,clear:a}):void 0},0)}.call(this),function(){var a,b,c,d,e;if(!Offline)throw new Error("Offline simulate brought in without offline.js");for(d=["up","down"],b=0,c=d.length;c>b;b++)e=d[b],(document.querySelector("script[data-simulate='"+e+"']")||("undefined"!=typeof localStorage&&null!==localStorage?localStorage.OFFLINE_SIMULATE:void 0)===e)&&(null==Offline.options&&(Offline.options={}),null==(a=Offline.options).checks&&(a.checks={}),Offline.options.checks.active=e)}.call(this),function(){var a,b,c,d,e,f,g,h,i,j,k,l,m;if(!window.Offline)throw new Error("Offline UI brought in without offline.js");b='
',a='',f=function(a){var b;return b=document.createElement("div"),b.innerHTML=a,b.children[0]},g=e=null,d=function(a){return k(a),g.className+=" "+a},k=function(a){return g.className=g.className.replace(new RegExp("(^| )"+a.split(" ").join("|")+"( |$)","gi")," ")},i={},h=function(a,b){return d(a),null!=i[a]&&clearTimeout(i[a]),i[a]=setTimeout(function(){return k(a),delete i[a]},1e3*b)},m=function(a){var b,c,d,e;d={day:86400,hour:3600,minute:60,second:1};for(c in d)if(b=d[c],a>=b)return e=Math.floor(a/b),[e,c];return["now",""]},l=function(){var c,h;return g=f(b),document.body.appendChild(g),null!=Offline.reconnect&&Offline.getOption("reconnect")&&(g.appendChild(f(a)),c=g.querySelector(".offline-ui-retry"),h=function(a){return a.preventDefault(),Offline.reconnect.tryNow()},null!=c.addEventListener?c.addEventListener("click",h,!1):c.attachEvent("click",h)),d("offline-ui-"+Offline.state),e=g.querySelector(".offline-ui-content")},j=function(){return l(),Offline.on("up",function(){return k("offline-ui-down"),d("offline-ui-up"),h("offline-ui-up-2s",2),h("offline-ui-up-5s",5)}),Offline.on("down",function(){return k("offline-ui-up"),d("offline-ui-down"),h("offline-ui-down-2s",2),h("offline-ui-down-5s",5)}),Offline.on("reconnect:connecting",function(){return d("offline-ui-connecting"),k("offline-ui-waiting")}),Offline.on("reconnect:tick",function(){var a,b,c;return d("offline-ui-waiting"),k("offline-ui-connecting"),a=m(Offline.reconnect.remaining),b=a[0],c=a[1],e.setAttribute("data-retry-in-value",b),e.setAttribute("data-retry-in-unit",c)}),Offline.on("reconnect:stopped",function(){return k("offline-ui-connecting offline-ui-waiting"),e.setAttribute("data-retry-in-value",null),e.setAttribute("data-retry-in-unit",null)}),Offline.on("reconnect:failure",function(){return h("offline-ui-reconnect-failed-2s",2),h("offline-ui-reconnect-failed-5s",5)}),Offline.on("reconnect:success",function(){return h("offline-ui-reconnect-succeeded-2s",2),h("offline-ui-reconnect-succeeded-5s",5)})},"complete"===document.readyState?j():null!=document.addEventListener?document.addEventListener("DOMContentLoaded",j,!1):(c=document.onreadystatechange,document.onreadystatechange=function(){return"complete"===document.readyState&&j(),"function"==typeof c?c.apply(null,arguments):void 0})}.call(this); \ No newline at end of file +(function(){var a,b,c,d,e,f,g;d=function(a,b){var c,d,e,f;e=[];for(d in b.prototype)try{f=b.prototype[d],null==a[d]&&"function"!=typeof f?e.push(a[d]=f):e.push(void 0)}catch(g){c=g}return e},a={},a.options=window.Offline?window.Offline.options||{}:{},c={checks:{xhr:{url:function(){return"/favicon.ico?_="+(new Date).getTime()},timeout:5e3,type:"HEAD"},image:{url:function(){return"/favicon.ico?_="+(new Date).getTime()}},active:"xhr"},checkOnLoad:!1,interceptRequests:!0,reconnect:!0,deDupBody:!1},e=function(a,b){var c,d,e,f,g,h;for(c=a,h=b.split("."),d=e=0,f=h.length;f>e&&(g=h[d],c=c[g],"object"==typeof c);d=++e);return d===h.length-1?c:void 0},a.getOption=function(b){var d,f;return f=null!=(d=e(a.options,b))?d:e(c,b),"function"==typeof f?f():f},"function"==typeof window.addEventListener&&window.addEventListener("online",function(){return setTimeout(a.confirmUp,100)},!1),"function"==typeof window.addEventListener&&window.addEventListener("offline",function(){return a.confirmDown()},!1),a.state="up",a.markUp=function(){return a.trigger("confirmed-up"),"up"!==a.state?(a.state="up",a.trigger("up")):void 0},a.markDown=function(){return a.trigger("confirmed-down"),"down"!==a.state?(a.state="down",a.trigger("down")):void 0},f={},a.on=function(b,c,d){var e,g,h,i,j;if(g=b.split(" "),g.length>1){for(j=[],h=0,i=g.length;i>h;h++)e=g[h],j.push(a.on(e,c,d));return j}return null==f[b]&&(f[b]=[]),f[b].push([d,c])},a.off=function(a,b){var c,d,e,g,h;if(null!=f[a]){if(b){for(e=0,h=[];ed;d++)h=g[d],b=h[0],c=h[1],i.push(c.call(b));return i}},b=function(a,b,c){var d,e,f,g,h;return h=function(){return a.status&&a.status<12e3?b():c()},null===a.onprogress?(d=a.onerror,a.onerror=function(){return c(),"function"==typeof d?d.apply(null,arguments):void 0},g=a.ontimeout,a.ontimeout=function(){return c(),"function"==typeof g?g.apply(null,arguments):void 0},e=a.onload,a.onload=function(){return h(),"function"==typeof e?e.apply(null,arguments):void 0}):(f=a.onreadystatechange,a.onreadystatechange=function(){return 4===a.readyState?h():0===a.readyState&&c(),"function"==typeof f?f.apply(null,arguments):void 0})},a.checks={},a.checks.xhr=function(){var c,d;d=new XMLHttpRequest,d.offline=!1,d.open(a.getOption("checks.xhr.type"),a.getOption("checks.xhr.url"),!0),null!=d.timeout&&(d.timeout=a.getOption("checks.xhr.timeout")),b(d,a.markUp,a.markDown);try{d.send()}catch(e){c=e,a.markDown()}return d},a.checks.image=function(){var b;return b=document.createElement("img"),b.onerror=a.markDown,b.onload=a.markUp,void(b.src=a.getOption("checks.image.url"))},a.checks.down=a.markDown,a.checks.up=a.markUp,a.check=function(){return a.trigger("checking"),a.checks[a.getOption("checks.active")]()},a.confirmUp=a.confirmDown=a.check,a.onXHR=function(a){var b,c,e;return e=function(b,c){var d;return d=b.open,b.open=function(e,f,g,h,i){return a({type:e,url:f,async:g,flags:c,user:h,password:i,xhr:b}),d.apply(b,arguments)}},c=window.XMLHttpRequest,window.XMLHttpRequest=function(a){var b,d,f;return f=new c(a),e(f,a),d=f.setRequestHeader,f.headers={},f.setRequestHeader=function(a,b){return f.headers[a]=b,d.call(f,a,b)},b=f.overrideMimeType,f.overrideMimeType=function(a){return f.mimeType=a,b.call(f,a)},f},d(window.XMLHttpRequest,c),null!=window.XDomainRequest?(b=window.XDomainRequest,window.XDomainRequest=function(){var a;return a=new b,e(a),a},d(window.XDomainRequest,b)):void 0},g=function(){return a.getOption("interceptRequests")&&a.onXHR(function(c){var d;return d=c.xhr,d.offline!==!1?b(d,a.markUp,a.confirmDown):void 0}),a.getOption("checkOnLoad")?a.check():void 0},setTimeout(g,0),window.Offline=a}).call(this),function(){var a,b,c,d,e,f,g,h,i;if(!window.Offline)throw new Error("Offline Reconnect brought in without offline.js");d=Offline.reconnect={},f=null,e=function(){var a;return null!=d.state&&"inactive"!==d.state&&Offline.trigger("reconnect:stopped"),d.state="inactive",d.remaining=d.delay=null!=(a=Offline.getOption("reconnect.initialDelay"))?a:3},b=function(){var a,b;return a=null!=(b=Offline.getOption("reconnect.delay"))?b:Math.min(Math.ceil(1.5*d.delay),3600),d.remaining=d.delay=a},g=function(){return"connecting"!==d.state?(d.remaining-=1,Offline.trigger("reconnect:tick"),0===d.remaining?h():void 0):void 0},h=function(){return"waiting"===d.state?(Offline.trigger("reconnect:connecting"),d.state="connecting",Offline.check()):void 0},a=function(){return Offline.getOption("reconnect")?(e(),d.state="waiting",Offline.trigger("reconnect:started"),f=setInterval(g,1e3)):void 0},i=function(){return null!=f&&clearInterval(f),e()},c=function(){return Offline.getOption("reconnect")&&"connecting"===d.state?(Offline.trigger("reconnect:failure"),d.state="waiting",b()):void 0},d.tryNow=h,e(),Offline.on("down",a),Offline.on("confirmed-down",c),Offline.on("up",i)}.call(this),function(){var a,b,c,d,e,f;if(!window.Offline)throw new Error("Requests module brought in without offline.js");c=[],f=!1,d=function(a){return Offline.getOption("requests")!==!1?(Offline.trigger("requests:capture"),"down"!==Offline.state&&(f=!0),c.push(a)):void 0},e=function(a){var b,c,d,e,f,g,h,i,j;if(j=a.xhr,g=a.url,f=a.type,h=a.user,d=a.password,b=a.body,Offline.getOption("requests")!==!1){j.abort(),j.open(f,g,!0,h,d),e=j.headers;for(c in e)i=e[c],j.setRequestHeader(c,i);return j.mimeType&&j.overrideMimeType(j.mimeType),j.send(b)}},a=function(){return c=[]},b=function(){var b,d,f,g,h,i,j;if(Offline.getOption("requests")!==!1){for(Offline.trigger("requests:flush"),i={},d=0,g=c.length;g>d;d++)h=c[d],j=h.url.replace(/(\?|&)_=[0-9]+/,function(a,b){return"?"===b?b:""}),Offline.getOption("deDupBody")?(b=h.body,b="[object Object]"===b.toString()?JSON.stringify(b):b.toString(),i[h.type.toUpperCase()+" - "+j+" - "+b]=h):i[h.type.toUpperCase()+" - "+j]=h;for(f in i)h=i[f],e(h);return a()}},setTimeout(function(){return Offline.getOption("requests")!==!1?(Offline.on("confirmed-up",function(){return f?(f=!1,a()):void 0}),Offline.on("up",b),Offline.on("down",function(){return f=!1}),Offline.onXHR(function(a){var b,c,e,f,g;return g=a.xhr,e=a.async,g.offline!==!1&&(f=function(){return d(a)},c=g.send,g.send=function(b){return a.body=b,c.apply(g,arguments)},e)?null===g.onprogress?(g.addEventListener("error",f,!1),g.addEventListener("timeout",f,!1)):(b=g.onreadystatechange,g.onreadystatechange=function(){return 0===g.readyState?f():4===g.readyState&&(0===g.status||g.status>=12e3)&&f(),"function"==typeof b?b.apply(null,arguments):void 0}):void 0}),Offline.requests={flush:b,clear:a}):void 0},0)}.call(this),function(){var a,b,c,d,e;if(!Offline)throw new Error("Offline simulate brought in without offline.js");for(d=["up","down"],b=0,c=d.length;c>b;b++)e=d[b],(document.querySelector("script[data-simulate='"+e+"']")||("undefined"!=typeof localStorage&&null!==localStorage?localStorage.OFFLINE_SIMULATE:void 0)===e)&&(null==Offline.options&&(Offline.options={}),null==(a=Offline.options).checks&&(a.checks={}),Offline.options.checks.active=e)}.call(this),function(){var a,b,c,d,e,f,g,h,i,j,k,l,m;if(!window.Offline)throw new Error("Offline UI brought in without offline.js");b='
',a='',f=function(a){var b;return b=document.createElement("div"),b.innerHTML=a,b.children[0]},g=e=null,d=function(a){return k(a),g.className+=" "+a},k=function(a){return g.className=g.className.replace(new RegExp("(^| )"+a.split(" ").join("|")+"( |$)","gi")," ")},i={},h=function(a,b){return d(a),null!=i[a]&&clearTimeout(i[a]),i[a]=setTimeout(function(){return k(a),delete i[a]},1e3*b)},m=function(a){var b,c,d,e;d={day:86400,hour:3600,minute:60,second:1};for(c in d)if(b=d[c],a>=b)return e=Math.floor(a/b),[e,c];return["now",""]},l=function(){var c,h;return g=f(b),document.body.appendChild(g),null!=Offline.reconnect&&Offline.getOption("reconnect")&&(g.appendChild(f(a)),c=g.querySelector(".offline-ui-retry"),h=function(a){return a.preventDefault(),Offline.reconnect.tryNow()},null!=c.addEventListener?c.addEventListener("click",h,!1):c.attachEvent("click",h)),d("offline-ui-"+Offline.state),e=g.querySelector(".offline-ui-content")},j=function(){return l(),Offline.on("up",function(){return k("offline-ui-down"),d("offline-ui-up"),h("offline-ui-up-2s",2),h("offline-ui-up-5s",5)}),Offline.on("down",function(){return k("offline-ui-up"),d("offline-ui-down"),h("offline-ui-down-2s",2),h("offline-ui-down-5s",5)}),Offline.on("reconnect:connecting",function(){return d("offline-ui-connecting"),k("offline-ui-waiting")}),Offline.on("reconnect:tick",function(){var a,b,c;return d("offline-ui-waiting"),k("offline-ui-connecting"),a=m(Offline.reconnect.remaining),b=a[0],c=a[1],e.setAttribute("data-retry-in-value",b),e.setAttribute("data-retry-in-unit",c)}),Offline.on("reconnect:stopped",function(){return k("offline-ui-connecting offline-ui-waiting"),e.setAttribute("data-retry-in-value",null),e.setAttribute("data-retry-in-unit",null)}),Offline.on("reconnect:failure",function(){return h("offline-ui-reconnect-failed-2s",2),h("offline-ui-reconnect-failed-5s",5)}),Offline.on("reconnect:success",function(){return h("offline-ui-reconnect-succeeded-2s",2),h("offline-ui-reconnect-succeeded-5s",5)})},"complete"===document.readyState?j():null!=document.addEventListener?document.addEventListener("DOMContentLoaded",j,!1):(c=document.onreadystatechange,document.onreadystatechange=function(){return"complete"===document.readyState&&j(),"function"==typeof c?c.apply(null,arguments):void 0})}.call(this); \ No newline at end of file From 26fb61ab413a316f43d4149619332816cb1e6052 Mon Sep 17 00:00:00 2001 From: Stephan Max Date: Sat, 31 Oct 2015 09:59:51 +0000 Subject: [PATCH 04/49] Fixed issue #177 by replacing 'char' with 'chr' --- coffee/requests.coffee | 4 ++-- js/requests.js | 6 +++--- offline.js | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/coffee/requests.coffee b/coffee/requests.coffee index 12b1192..4b1ddd1 100644 --- a/coffee/requests.coffee +++ b/coffee/requests.coffee @@ -36,8 +36,8 @@ flush = -> # TODO: Throw out PUT/POST/DELETE requests after too much time? for request in held # Break cache breaking - url = request.url.replace /(\?|&)_=[0-9]+/, (match, char) -> - if char is '?' then char else '' + url = request.url.replace /(\?|&)_=[0-9]+/, (match, chr) -> + if chr is '?' then chr else '' if Offline.getOption('deDupBody') body = request.body diff --git a/js/requests.js b/js/requests.js index 22ddac6..f6e0b47 100644 --- a/js/requests.js +++ b/js/requests.js @@ -52,9 +52,9 @@ requests = {}; for (i = 0, len = held.length; i < len; i++) { request = held[i]; - url = request.url.replace(/(\?|&)_=[0-9]+/, function(match, char) { - if (char === '?') { - return char; + url = request.url.replace(/(\?|&)_=[0-9]+/, function(match, chr) { + if (chr === '?') { + return chr; } else { return ''; } diff --git a/offline.js b/offline.js index ba4bf50..f0a07c5 100644 --- a/offline.js +++ b/offline.js @@ -185,8 +185,8 @@ var body, i, key, len, request, requests, url; if (Offline.getOption("requests") !== !1) { for (Offline.trigger("requests:flush"), requests = {}, i = 0, len = held.length; len > i; i++) request = held[i], - url = request.url.replace(/(\?|&)_=[0-9]+/, function(match, char) { - return "?" === char ? char :""; + url = request.url.replace(/(\?|&)_=[0-9]+/, function(match, chr) { + return "?" === chr ? chr :""; }), Offline.getOption("deDupBody") ? (body = request.body, body = "[object Object]" === body.toString() ? JSON.stringify(body) :body.toString(), requests[request.type.toUpperCase() + " - " + url + " - " + body] = request) :requests[request.type.toUpperCase() + " - " + url] = request; for (key in requests) request = requests[key], makeRequest(request); From 6cae1ee22864e2f352f1e7f0a87e3d7d48f69b75 Mon Sep 17 00:00:00 2001 From: Mohammad Esfandiari Date: Wed, 9 Dec 2015 00:39:32 +0330 Subject: [PATCH 05/49] Create offline-language-persian-indicator.css Add support for Persian language --- themes/offline-language-persian-indicator.css | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 themes/offline-language-persian-indicator.css diff --git a/themes/offline-language-persian-indicator.css b/themes/offline-language-persian-indicator.css new file mode 100644 index 0000000..326900f --- /dev/null +++ b/themes/offline-language-persian-indicator.css @@ -0,0 +1,8 @@ +* line 5, ../sass/offline-language-english-indicator.sass */ +.offline-ui.offline-ui-up .offline-ui-content:before { + content: "آنلاین"; +} +/* line 10, ../sass/offline-language-english-indicator.sass */ +.offline-ui.offline-ui-down .offline-ui-content:before { + content: "آفلاین"; +} From 9ba40e97eb1e26bf0c601ad09f5a9206b3d11f4d Mon Sep 17 00:00:00 2001 From: Mohammad Esfandiari Date: Wed, 9 Dec 2015 01:17:26 +0330 Subject: [PATCH 06/49] Create _persian.sass Add Persian language file --- sass/_persian.sass | 49 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 sass/_persian.sass diff --git a/sass/_persian.sass b/sass/_persian.sass new file mode 100644 index 0000000..76bddce --- /dev/null +++ b/sass/_persian.sass @@ -0,0 +1,49 @@ +$upComputer: "ارتباط کامپیوتر شما با اینترنت برقرار است." +$upDevice: "ارتباط دستگاه شما با اینترنت برقرار است." +$upDeviceSmall: "دستگاه شما متصل است." + +$downComputer: "ازتباط کامپیوتر شما با اینترنت قطع شده است." +$downDevice: "ارتباط دستگاه شما با اینترنت قطع شده است." +$downDeviceSmall: "دستگاه شما متصل نیست." + +$connecting: "تلاش برای اتصال مجدد..." + +$retryButton: "اتصال مجدد" + +$reconnectFailed: "تلاش برای اتصال مجدد بی نتیجه بود." + +$retryingSecondBeforeValueSingularComputer: "اتصال قطع شد. اتصال مجدد در " +$retryingSecondBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingMinuteBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer +$retryingMinuteBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingHourBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer +$retryingHourBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingSecondBeforeValueSingularDeviceSmall: "اتصال مجدد در " +$retryingSecondBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingMinuteBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall +$retryingMinuteBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingHourBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall +$retryingHourBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingSecondAfterValueSingularComputer: " ثانیه..." +$retryingSecondAfterValuePluralComputer: " ثانیه..." + +$retryingSecondAfterValueSingularDeviceSmall: "s..." +$retryingSecondAfterValuePluralDeviceSmall: $retryingSecondAfterValueSingularDeviceSmall + +$retryingMinuteAfterValueSingularComputer: " دقیقه..." +$retryingMinuteAfterValuePluralComputer: " دقیقه..." + +$retryingMinuteAfterValueSingularDeviceSmall: "m..." +$retryingMinuteAfterValuePluralDeviceSmall: $retryingMinuteAfterValueSingularDeviceSmall + +$retryingHourAfterValueSingularComputer: " ساعت..." +$retryingHourAfterValuePluralComputer: " ساعت..." + +$retryingHourAfterValueSingularDeviceSmall: "h..." +$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall From 3e33a66723243304dafa08e04203627a58522fbb Mon Sep 17 00:00:00 2001 From: Mohammad Esfandiari Date: Wed, 9 Dec 2015 08:27:43 +0330 Subject: [PATCH 07/49] Create offline-language-persian.css Add Persian language file --- themes/offline-language-persian.css | 108 ++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 themes/offline-language-persian.css diff --git a/themes/offline-language-persian.css b/themes/offline-language-persian.css new file mode 100644 index 0000000..a1bb9b4 --- /dev/null +++ b/themes/offline-language-persian.css @@ -0,0 +1,108 @@ +/* line 6, ../sass/_content.sass */ +.offline-ui .offline-ui-retry:before { + content: "اتصال مجدد"; +} +/* line 11, ../sass/_content.sass */ +.offline-ui.offline-ui-up .offline-ui-content:before { + content: "ارتباط کامپیوتر شما با اینترنت برقرار است."; +} +@media (max-width: 1024px) { + /* line 11, ../sass/_content.sass */ + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "ارتباط دستگاه شما با اینترنت برقرار است."; + } +} +@media (max-width: 568px) { + /* line 11, ../sass/_content.sass */ + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "دستگاه شما متصل است."; + } +} +/* line 22, ../sass/_content.sass */ +.offline-ui.offline-ui-down .offline-ui-content:before { + content: "ارتباط کامپیوتر شما با اینترنت قطع شده است."; +} +@media (max-width: 1024px) { + /* line 22, ../sass/_content.sass */ + .offline-ui.offline-ui-down .offline-ui-content:before { + content: "ارتباط دستگاه شما با اینترنت قطع شده است."; + } +} +@media (max-width: 568px) { + /* line 22, ../sass/_content.sass */ + .offline-ui.offline-ui-down .offline-ui-content:before { + content: "دستگاه شما متصل نیست."; + } +} +/* line 33, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-connecting .offline-ui-content:before, .offline-ui.offline-ui-down.offline-ui-connecting-2s .offline-ui-content:before { + content: "تلاش برای اتصال مجدد..."; +} +/* line 42, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: "اتصال قطع شد. اتصال مجدد در " attr(data-retry-in-value) " ثانیه..."; +} +@media (max-width: 568px) { + /* line 42, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: "اتصال مجدد در " attr(data-retry-in-value) "s..."; + } +} +/* line 50, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: "اتصال قطع شد. اتصال مجدد در " attr(data-retry-in-value) " ثانیه..."; +} +@media (max-width: 568px) { + /* line 50, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: "اتصال مجدد در " attr(data-retry-in-value) "s..."; + } +} +/* line 58, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: "اتصال قطع شد. اتصال مجدد در " attr(data-retry-in-value) " دقیقه..."; +} +@media (max-width: 568px) { + /* line 58, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: "اتصال مجدد در " attr(data-retry-in-value) "m..."; + } +} +/* line 66, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: "اتصال قطع شد. اتصال مجدد در " attr(data-retry-in-value) " دقیقه..."; +} +@media (max-width: 568px) { + /* line 66, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: "اتصال مجدد در " attr(data-retry-in-value) "m..."; + } +} +/* line 74, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: "اتصال قطع شد. اتصال مجدد در " attr(data-retry-in-value) " ساعت..."; +} +@media (max-width: 568px) { + /* line 74, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: "اتصال مجدد در " attr(data-retry-in-value) "h..."; + } +} +/* line 82, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: "اتصال قطع شد. اتصال مجدد در " attr(data-retry-in-value) " ساعت..."; +} +@media (max-width: 568px) { + /* line 82, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: "اتصال مجدد در " attr(data-retry-in-value) "h..."; + } +} +/* line 90, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s.offline-ui-waiting .offline-ui-retry { + display: none; +} +/* line 93, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s .offline-ui-content:before { + content: "تلاش برای اتصال مجدد بی نتیجه بود."; +} From 350efe4ee2c6fd67f5707a7ca27f30ef80939bbd Mon Sep 17 00:00:00 2001 From: Shai Raiten Date: Thu, 24 Dec 2015 11:45:24 +0200 Subject: [PATCH 08/49] Create offline-language-hebrew-indicator.css --- themes/offline-language-hebrew-indicator.css | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 themes/offline-language-hebrew-indicator.css diff --git a/themes/offline-language-hebrew-indicator.css b/themes/offline-language-hebrew-indicator.css new file mode 100644 index 0000000..92abbfa --- /dev/null +++ b/themes/offline-language-hebrew-indicator.css @@ -0,0 +1,8 @@ +/* line 5, ../sass/offline-language-english-indicator.sass */ +.offline-ui.offline-ui-up .offline-ui-content:before { + content: "מחובר"; +} +/* line 10, ../sass/offline-language-english-indicator.sass */ +.offline-ui.offline-ui-down .offline-ui-content:before { + content: "מנותק"; +} From f5ec88e5d03564a677ff061fb229c8d5ea8ae98a Mon Sep 17 00:00:00 2001 From: Shai Raiten Date: Thu, 24 Dec 2015 11:46:32 +0200 Subject: [PATCH 09/49] Create offline-language-hebrew.css --- themes/offline-language-hebrew.css | 130 +++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 themes/offline-language-hebrew.css diff --git a/themes/offline-language-hebrew.css b/themes/offline-language-hebrew.css new file mode 100644 index 0000000..9c3a4b9 --- /dev/null +++ b/themes/offline-language-hebrew.css @@ -0,0 +1,130 @@ +/* line 6, ../sass/_content.sass */ + +.offline-ui .offline-ui-retry:before { + content: "מתחבר"; +} +/* line 11, ../sass/_content.sass */ + +.offline-ui.offline-ui-up .offline-ui-content:before { + content: "המחשב לא מחובר לאינטרנט."; +} + +@media (max-width: 1024px) { /* line 11, ../sass/_content.sass */ + + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "המכשיר לא מחובר לאינטרנט."; + } +} + +@media (max-width: 568px) { /* line 11, ../sass/_content.sass */ + + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "המכשיר מחובר."; + } +} +/* line 22, ../sass/_content.sass */ + +.offline-ui.offline-ui-down .offline-ui-content:before { + content: "המחשב איבד את החיבור לאינטרנט."; +} + +@media (max-width: 1024px) { /* line 22, ../sass/_content.sass */ + + .offline-ui.offline-ui-down .offline-ui-content:before { + content: "המכשיר איבד את החיבור לאינטרנט."; + } +} + +@media (max-width: 568px) { /* line 22, ../sass/_content.sass */ + + .offline-ui.offline-ui-down .offline-ui-content:before { + content: "המכשיר מחובר."; + } +} +/* line 33, ../sass/_content.sass */ + +.offline-ui.offline-ui-down.offline-ui-connecting .offline-ui-content:before, .offline-ui.offline-ui-down.offline-ui-connecting-2s .offline-ui-content:before { + content: "מנסה להתחבר..."; +} +/* line 42, ../sass/_content.sass */ + +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: "החיבור אבד. מתחבר בעוד " attr(data-retry-in-value) " שניות..."; +} + +@media (max-width: 568px) { /* line 42, ../sass/_content.sass */ + + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: "מתחבר בעוד " attr(data-retry-in-value) " ש..."; + } +} +/* line 50, ../sass/_content.sass */ + +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: "החיבור אבד. מתחבר בעוד " attr(data-retry-in-value) " שניות..."; +} + +@media (max-width: 568px) { /* line 50, ../sass/_content.sass */ + + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: "מתחבר בעוד " attr(data-retry-in-value) " ש..."; + } +} +/* line 58, ../sass/_content.sass */ + +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: "חיבור אבד. מתחבר בעוד " attr(data-retry-in-value) " דקות..."; +} + +@media (max-width: 568px) { /* line 58, ../sass/_content.sass */ + + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: "מתחבר בעוד " attr(data-retry-in-value) " ד..."; + } +} +/* line 66, ../sass/_content.sass */ + +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: "חיבור אבד. מתחבר בעוד " attr(data-retry-in-value) " דקה..."; +} + +@media (max-width: 568px) { /* line 66, ../sass/_content.sass */ + + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: "מתחבר בעוד " attr(data-retry-in-value) " ד..."; + } +} +/* line 74, ../sass/_content.sass */ + +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: "חיבור אבד. מתחבר בעוד " attr(data-retry-in-value) " שעות..."; +} + +@media (max-width: 568px) { /* line 74, ../sass/_content.sass */ + + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: "מתחבר בעוד " attr(data-retry-in-value) " שע..."; + } +} +/* line 82, ../sass/_content.sass */ + +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: "חיבור אבד. מתחבר בעוד " attr(data-retry-in-value) " שעה..."; +} + +@media (max-width: 568px) { /* line 82, ../sass/_content.sass */ + + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: "מתחבר בעוד " attr(data-retry-in-value) " שע..."; + } +} +/* line 90, ../sass/_content.sass */ + +.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s.offline-ui-waiting .offline-ui-retry { + display: none; +} +/* line 93, ../sass/_content.sass */ + +.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s .offline-ui-content:before { + content: "חיבור מחדש נכשל."; +} From d20cffaacdac4595f6d9dc3c0ca87a3fa649a015 Mon Sep 17 00:00:00 2001 From: Linus Metzler Date: Wed, 13 Jan 2016 14:08:57 +0100 Subject: [PATCH 10/49] Fixed a typo --- themes/offline-language-german.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/offline-language-german.css b/themes/offline-language-german.css index 90f46c3..36dcd46 100644 --- a/themes/offline-language-german.css +++ b/themes/offline-language-german.css @@ -10,7 +10,7 @@ @media (max-width: 1024px) { /* line 11, ../sass/_content.sass */ .offline-ui.offline-ui-up .offline-ui-content:before { - content: "Deing Gerät ist mit dem Internet verbunden."; + content: "Dein Gerät ist mit dem Internet verbunden."; } } @media (max-width: 568px) { From 7e978862624ccaf392dfac0c5b0e4be757536180 Mon Sep 17 00:00:00 2001 From: Ryan Berdeen Date: Wed, 27 Jan 2016 16:32:59 -0500 Subject: [PATCH 11/49] 0.7.15 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1c91415..41d6f9e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "offline-js", - "version": "0.7.14", + "version": "0.7.15", "description": "Automatically detect when a browser is offline", "authors": [ "Adam Schwartz ", From 41cd4ce6b78b651aab6a1828b510908378204212 Mon Sep 17 00:00:00 2001 From: Mathieu Ghaleb Date: Wed, 16 Mar 2016 00:04:44 +0100 Subject: [PATCH 12/49] Prevent error `Uncaught SecurityError: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.` when localStorage is disabled on Chrome --- coffee/simulate.coffee | 7 ++++++- js/simulate.js | 25 ++++++++++++++++--------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/coffee/simulate.coffee b/coffee/simulate.coffee index 62efe4b..1b9c745 100644 --- a/coffee/simulate.coffee +++ b/coffee/simulate.coffee @@ -2,7 +2,12 @@ unless Offline throw new Error("Offline simulate brought in without offline.js") for state in ['up', 'down'] - if document.querySelector("script[data-simulate='#{ state }']") or localStorage?.OFFLINE_SIMULATE is state + try + simulate = document.querySelector("script[data-simulate='#{ state }']") or localStorage?.OFFLINE_SIMULATE is state + catch e + simulate = false + + if simulate Offline.options ?= {} Offline.options.checks ?= {} Offline.options.checks.active = state diff --git a/js/simulate.js b/js/simulate.js index 3875267..30bff80 100644 --- a/js/simulate.js +++ b/js/simulate.js @@ -1,5 +1,5 @@ (function() { - var base, i, len, ref, state; + var base, e, i, len, ref, simulate, state; if (!Offline) { throw new Error("Offline simulate brought in without offline.js"); @@ -8,15 +8,22 @@ ref = ['up', 'down']; for (i = 0, len = ref.length; i < len; i++) { state = ref[i]; - if (document.querySelector("script[data-simulate='" + state + "']") || (typeof localStorage !== "undefined" && localStorage !== null ? localStorage.OFFLINE_SIMULATE : void 0) === state) { - if (Offline.options == null) { - Offline.options = {}; - } - if ((base = Offline.options).checks == null) { - base.checks = {}; - } - Offline.options.checks.active = state; + try { + simulate = document.querySelector("script[data-simulate='" + state + "']") || (typeof localStorage !== "undefined" && localStorage !== null ? localStorage.OFFLINE_SIMULATE : void 0) === state; + } catch (_error) { + e = _error; + simulate = false; } } + if (simulate) { + if (Offline.options == null) { + Offline.options = {}; + } + if ((base = Offline.options).checks == null) { + base.checks = {}; + } + Offline.options.checks.active = state; + } + }).call(this); From 442e86f3d5edee9a8c12262bffc5717393652e34 Mon Sep 17 00:00:00 2001 From: Hamed Mehryar Date: Sat, 26 Mar 2016 14:27:47 +0430 Subject: [PATCH 13/49] added pashto language --- themes/offline-language-pashto-indicator.css | 8 ++ themes/offline-language-pashto.css | 108 +++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 themes/offline-language-pashto-indicator.css create mode 100644 themes/offline-language-pashto.css diff --git a/themes/offline-language-pashto-indicator.css b/themes/offline-language-pashto-indicator.css new file mode 100644 index 0000000..a05fc1a --- /dev/null +++ b/themes/offline-language-pashto-indicator.css @@ -0,0 +1,8 @@ +/* line 5, ../sass/offline-language-english-indicator.sass */ +.offline-ui.offline-ui-up .offline-ui-content:before { + content: "آنلاین"; +} +/* line 10, ../sass/offline-language-english-indicator.sass */ +.offline-ui.offline-ui-down .offline-ui-content:before { + content: "آفلاین"; +} diff --git a/themes/offline-language-pashto.css b/themes/offline-language-pashto.css new file mode 100644 index 0000000..a81737d --- /dev/null +++ b/themes/offline-language-pashto.css @@ -0,0 +1,108 @@ +/* line 6, ../sass/_content.sass */ +.offline-ui .offline-ui-retry:before { + content: "بیا نښلول"; +} +/* line 11, ../sass/_content.sass */ +.offline-ui.offline-ui-up .offline-ui-content:before { + content: "Your computer is connected to the internet."; +} +@media (max-width: 1024px) { + /* line 11, ../sass/_content.sass */ + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "ستاسو د کمپيوټر له انټرنيټ سره نښلي."; + } +} +@media (max-width: 568px) { + /* line 11, ../sass/_content.sass */ + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "ستاسو آله سره نښلي."; + } +} +/* line 22, ../sass/_content.sass */ +.offline-ui.offline-ui-down .offline-ui-content:before { + content: "ستاسو د کمپیوټر د خپل د انټرنېټ پیوستون له لاسه ورکړ."; +} +@media (max-width: 1024px) { + /* line 22, ../sass/_content.sass */ + .offline-ui.offline-ui-down .offline-ui-content:before { + content: "ستاسو آله خپل د انټرنېټ پیوستون له لاسه ورکړ."; + } +} +@media (max-width: 568px) { + /* line 22, ../sass/_content.sass */ + .offline-ui.offline-ui-down .offline-ui-content:before { + content: "ستاسو آله نه نښلي."; + } +} +/* line 33, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-connecting .offline-ui-content:before, .offline-ui.offline-ui-down.offline-ui-connecting-2s .offline-ui-content:before { + content: "کوښښ د نښلول لپاره..."; +} +/* line 42, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: "پیوستون له لاسه ورکړ. په " attr(data-retry-in-value) "ثانیو کی بیا کوښښ کول."; +} +@media (max-width: 568px) { + /* line 42, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: "بیا کوښښ‌کول په " attr(data-retry-in-value) " ثانیو کی..."; + } +} +/* line 50, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: "وستون له لاسه ورکړ. په " attr(data-retry-in-value) " ثانیه کی بیا کوښښ کول..."; +} +@media (max-width: 568px) { + /* line 50, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: "بیا کوښښ کول په " attr(data-retry-in-value) "ثانیو کی..."; + } +} +/* line 58, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: "یوستون له لاسه ورکړ. په " attr(data-retry-in-value) " دقیقو کی بیا کوښښ‌کول..."; +} +@media (max-width: 568px) { + /* line 58, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: "بیا کوښښ کول په " attr(data-retry-in-value) "دقیقو کی..."; + } +} +/* line 66, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: "پیوستون له لاسه ورکړ. بیا کوښښ کول په " attr(data-retry-in-value) " دقیقو"; +} +@media (max-width: 568px) { + /* line 66, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: "بیا کوښښ کول په " attr(data-retry-in-value) "دقیقو..."; + } +} +/* line 74, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: "پیوستون له لاسه ورکړ. بیا کوښښ‌کول په " attr(data-retry-in-value) " ساعتونه..."; +} +@media (max-width: 568px) { + /* line 74, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: "بیا کوښښ کول په " attr(data-retry-in-value) " ساعتونه..."; + } +} +/* line 82, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: "یوستون له لاسه ورکړ. بیا کوښښ‌کول په " attr(data-retry-in-value) " ساعتونه..."; +} +@media (max-width: 568px) { + /* line 82, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: "بیا کوښښ کول په " attr(data-retry-in-value) " ساعتونه..."; + } +} +/* line 90, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s.offline-ui-waiting .offline-ui-retry { + display: none; +} +/* line 93, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s .offline-ui-content:before { + content: "پیوستون هڅه ناکامه شوه."; +} From a795bdace5e5560c292134e33a03945faca1c073 Mon Sep 17 00:00:00 2001 From: phra Date: Sun, 27 Mar 2016 01:56:47 +0100 Subject: [PATCH 14/49] add italian translation --- install.json | 2 + sass/_italian.sass | 49 ++++++++++++++++++++ sass/offline-language-italian-indicator.sass | 11 +++++ sass/offline-language-italian.sass | 4 ++ 4 files changed, 66 insertions(+) create mode 100644 sass/_italian.sass create mode 100644 sass/offline-language-italian-indicator.sass create mode 100644 sass/offline-language-italian.sass diff --git a/install.json b/install.json index 64a8fb5..b8cd3f1 100644 --- a/install.json +++ b/install.json @@ -46,6 +46,7 @@ "german", "portuguese-brazil", "spanish", + "italian", "turkish" ], "enumNames": { @@ -55,6 +56,7 @@ "german": "German", "portuguese-brazil": "Brazilian Portuguese", "spanish": "Spanish", + "italian": "Italian", "turkish": "Turkish" }, "default": "english" diff --git a/sass/_italian.sass b/sass/_italian.sass new file mode 100644 index 0000000..c7b86e2 --- /dev/null +++ b/sass/_italian.sass @@ -0,0 +1,49 @@ +$upComputer: "Il tuo computer è connesso ad internet." +$upDevice: "Il tuo device è connesso ad internet." +$upDeviceSmall: "Il tuo device è connesso." + +$downComputer: "Il tuo computer si è disconnesso da internet." +$downDevice: "Il tuo device si è disconnesso da internet." +$downDeviceSmall: "Il tuo device si è disconnesso." + +$connecting: "Connessione in corso..." + +$retryButton: "Riconnetti" + +$reconnectFailed: "Tentativo di connessione fallito." + +$retryingSecondBeforeValueSingularComputer: "Connessione persa. Riconnessione tra " +$retryingSecondBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingMinuteBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer +$retryingMinuteBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingHourBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer +$retryingHourBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingSecondBeforeValueSingularDeviceSmall: "Riconnessione tra " +$retryingSecondBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingMinuteBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall +$retryingMinuteBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingHourBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall +$retryingHourBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingSecondAfterValueSingularComputer: " secondo..." +$retryingSecondAfterValuePluralComputer: " secondi..." + +$retryingSecondAfterValueSingularDeviceSmall: "s..." +$retryingSecondAfterValuePluralDeviceSmall: $retryingSecondAfterValueSingularDeviceSmall + +$retryingMinuteAfterValueSingularComputer: " minuto..." +$retryingMinuteAfterValuePluralComputer: " minuti..." + +$retryingMinuteAfterValueSingularDeviceSmall: "m..." +$retryingMinuteAfterValuePluralDeviceSmall: $retryingMinuteAfterValueSingularDeviceSmall + +$retryingHourAfterValueSingularComputer: " ora..." +$retryingHourAfterValuePluralComputer: " ore..." + +$retryingHourAfterValueSingularDeviceSmall: "h..." +$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall diff --git a/sass/offline-language-italian-indicator.sass b/sass/offline-language-italian-indicator.sass new file mode 100644 index 0000000..1f2972e --- /dev/null +++ b/sass/offline-language-italian-indicator.sass @@ -0,0 +1,11 @@ +.offline-ui + + &.offline-ui-up + + .offline-ui-content:before + content: "Online" + + &.offline-ui-down + + .offline-ui-content:before + content: "Offline" \ No newline at end of file diff --git a/sass/offline-language-italian.sass b/sass/offline-language-italian.sass new file mode 100644 index 0000000..e5bd277 --- /dev/null +++ b/sass/offline-language-italian.sass @@ -0,0 +1,4 @@ +@import content +@import italian + ++offline-content From 3acf94641a9aa1d8485cd1ce9bc414bd0fe765f9 Mon Sep 17 00:00:00 2001 From: Ryan Berdeen Date: Mon, 11 Apr 2016 17:19:00 -0400 Subject: [PATCH 15/49] remove deprecated version field --- bower.json | 1 - 1 file changed, 1 deletion(-) diff --git a/bower.json b/bower.json index fa65a6d..b9abb1b 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,5 @@ { "name": "offline", - "version": "0.7.14", "homepage": "http://github.hubspot.com/offline/docs/welcome", "authors": [ "Zack Bloom ", From b695690898f90bae2cedd52f2f3f6060b2eab90d Mon Sep 17 00:00:00 2001 From: Ryan Berdeen Date: Mon, 11 Apr 2016 17:25:51 -0400 Subject: [PATCH 16/49] compile #205 --- offline.js | 21 ++-- offline.min.js | 4 +- package.json | 2 +- themes/offline-language-italian-indicator.css | 8 ++ themes/offline-language-italian.css | 109 ++++++++++++++++++ 5 files changed, 134 insertions(+), 10 deletions(-) create mode 100644 themes/offline-language-italian-indicator.css create mode 100644 themes/offline-language-italian.css diff --git a/offline.js b/offline.js index ba4bf50..4d83763 100644 --- a/offline.js +++ b/offline.js @@ -1,4 +1,4 @@ -/*! offline-js 0.7.14 */ +/*! offline-js 0.7.16 */ (function() { var Offline, checkXHR, defaultOptions, extendNative, grab, handlers, init; extendNative = function(to, from) { @@ -100,8 +100,8 @@ return xhr; }, Offline.checks.image = function() { var img; - return img = document.createElement("img"), img.onerror = Offline.markDown, img.onload = Offline.markUp, - void (img.src = Offline.getOption("checks.image.url")); + img = document.createElement("img"), img.onerror = Offline.markDown, img.onload = Offline.markUp, + img.src = Offline.getOption("checks.image.url"); }, Offline.checks.down = Offline.markDown, Offline.checks.up = Offline.markUp, Offline.check = function() { return Offline.trigger("checking"), Offline.checks[Offline.getOption("checks.active")](); }, Offline.confirmUp = Offline.confirmDown = Offline.check, Offline.onXHR = function(cb) { @@ -215,11 +215,18 @@ }) :void 0; }, 0); }.call(this), function() { - var base, i, len, ref, state; + var base, e, i, len, ref, simulate, state; if (!Offline) throw new Error("Offline simulate brought in without offline.js"); - for (ref = [ "up", "down" ], i = 0, len = ref.length; len > i; i++) state = ref[i], - (document.querySelector("script[data-simulate='" + state + "']") || ("undefined" != typeof localStorage && null !== localStorage ? localStorage.OFFLINE_SIMULATE :void 0) === state) && (null == Offline.options && (Offline.options = {}), - null == (base = Offline.options).checks && (base.checks = {}), Offline.options.checks.active = state); + for (ref = [ "up", "down" ], i = 0, len = ref.length; len > i; i++) { + state = ref[i]; + try { + simulate = document.querySelector("script[data-simulate='" + state + "']") || ("undefined" != typeof localStorage && null !== localStorage ? localStorage.OFFLINE_SIMULATE :void 0) === state; + } catch (_error) { + e = _error, simulate = !1; + } + } + simulate && (null == Offline.options && (Offline.options = {}), null == (base = Offline.options).checks && (base.checks = {}), + Offline.options.checks.active = state); }.call(this), function() { var RETRY_TEMPLATE, TEMPLATE, _onreadystatechange, addClass, content, createFromHTML, el, flashClass, flashTimeouts, init, removeClass, render, roundTime; if (!window.Offline) throw new Error("Offline UI brought in without offline.js"); diff --git a/offline.min.js b/offline.min.js index cda72c4..38310a2 100644 --- a/offline.min.js +++ b/offline.min.js @@ -1,2 +1,2 @@ -/*! offline-js 0.7.14 */ -(function(){var a,b,c,d,e,f,g;d=function(a,b){var c,d,e,f;e=[];for(d in b.prototype)try{f=b.prototype[d],null==a[d]&&"function"!=typeof f?e.push(a[d]=f):e.push(void 0)}catch(g){c=g}return e},a={},a.options=window.Offline?window.Offline.options||{}:{},c={checks:{xhr:{url:function(){return"/favicon.ico?_="+(new Date).getTime()},timeout:5e3,type:"HEAD"},image:{url:function(){return"/favicon.ico?_="+(new Date).getTime()}},active:"xhr"},checkOnLoad:!1,interceptRequests:!0,reconnect:!0,deDupBody:!1},e=function(a,b){var c,d,e,f,g,h;for(c=a,h=b.split("."),d=e=0,f=h.length;f>e&&(g=h[d],c=c[g],"object"==typeof c);d=++e);return d===h.length-1?c:void 0},a.getOption=function(b){var d,f;return f=null!=(d=e(a.options,b))?d:e(c,b),"function"==typeof f?f():f},"function"==typeof window.addEventListener&&window.addEventListener("online",function(){return setTimeout(a.confirmUp,100)},!1),"function"==typeof window.addEventListener&&window.addEventListener("offline",function(){return a.confirmDown()},!1),a.state="up",a.markUp=function(){return a.trigger("confirmed-up"),"up"!==a.state?(a.state="up",a.trigger("up")):void 0},a.markDown=function(){return a.trigger("confirmed-down"),"down"!==a.state?(a.state="down",a.trigger("down")):void 0},f={},a.on=function(b,c,d){var e,g,h,i,j;if(g=b.split(" "),g.length>1){for(j=[],h=0,i=g.length;i>h;h++)e=g[h],j.push(a.on(e,c,d));return j}return null==f[b]&&(f[b]=[]),f[b].push([d,c])},a.off=function(a,b){var c,d,e,g,h;if(null!=f[a]){if(b){for(e=0,h=[];ed;d++)h=g[d],b=h[0],c=h[1],i.push(c.call(b));return i}},b=function(a,b,c){var d,e,f,g,h;return h=function(){return a.status&&a.status<12e3?b():c()},null===a.onprogress?(d=a.onerror,a.onerror=function(){return c(),"function"==typeof d?d.apply(null,arguments):void 0},g=a.ontimeout,a.ontimeout=function(){return c(),"function"==typeof g?g.apply(null,arguments):void 0},e=a.onload,a.onload=function(){return h(),"function"==typeof e?e.apply(null,arguments):void 0}):(f=a.onreadystatechange,a.onreadystatechange=function(){return 4===a.readyState?h():0===a.readyState&&c(),"function"==typeof f?f.apply(null,arguments):void 0})},a.checks={},a.checks.xhr=function(){var c,d;d=new XMLHttpRequest,d.offline=!1,d.open(a.getOption("checks.xhr.type"),a.getOption("checks.xhr.url"),!0),null!=d.timeout&&(d.timeout=a.getOption("checks.xhr.timeout")),b(d,a.markUp,a.markDown);try{d.send()}catch(e){c=e,a.markDown()}return d},a.checks.image=function(){var b;return b=document.createElement("img"),b.onerror=a.markDown,b.onload=a.markUp,void(b.src=a.getOption("checks.image.url"))},a.checks.down=a.markDown,a.checks.up=a.markUp,a.check=function(){return a.trigger("checking"),a.checks[a.getOption("checks.active")]()},a.confirmUp=a.confirmDown=a.check,a.onXHR=function(a){var b,c,e;return e=function(b,c){var d;return d=b.open,b.open=function(e,f,g,h,i){return a({type:e,url:f,async:g,flags:c,user:h,password:i,xhr:b}),d.apply(b,arguments)}},c=window.XMLHttpRequest,window.XMLHttpRequest=function(a){var b,d,f;return f=new c(a),e(f,a),d=f.setRequestHeader,f.headers={},f.setRequestHeader=function(a,b){return f.headers[a]=b,d.call(f,a,b)},b=f.overrideMimeType,f.overrideMimeType=function(a){return f.mimeType=a,b.call(f,a)},f},d(window.XMLHttpRequest,c),null!=window.XDomainRequest?(b=window.XDomainRequest,window.XDomainRequest=function(){var a;return a=new b,e(a),a},d(window.XDomainRequest,b)):void 0},g=function(){return a.getOption("interceptRequests")&&a.onXHR(function(c){var d;return d=c.xhr,d.offline!==!1?b(d,a.markUp,a.confirmDown):void 0}),a.getOption("checkOnLoad")?a.check():void 0},setTimeout(g,0),window.Offline=a}).call(this),function(){var a,b,c,d,e,f,g,h,i;if(!window.Offline)throw new Error("Offline Reconnect brought in without offline.js");d=Offline.reconnect={},f=null,e=function(){var a;return null!=d.state&&"inactive"!==d.state&&Offline.trigger("reconnect:stopped"),d.state="inactive",d.remaining=d.delay=null!=(a=Offline.getOption("reconnect.initialDelay"))?a:3},b=function(){var a,b;return a=null!=(b=Offline.getOption("reconnect.delay"))?b:Math.min(Math.ceil(1.5*d.delay),3600),d.remaining=d.delay=a},g=function(){return"connecting"!==d.state?(d.remaining-=1,Offline.trigger("reconnect:tick"),0===d.remaining?h():void 0):void 0},h=function(){return"waiting"===d.state?(Offline.trigger("reconnect:connecting"),d.state="connecting",Offline.check()):void 0},a=function(){return Offline.getOption("reconnect")?(e(),d.state="waiting",Offline.trigger("reconnect:started"),f=setInterval(g,1e3)):void 0},i=function(){return null!=f&&clearInterval(f),e()},c=function(){return Offline.getOption("reconnect")&&"connecting"===d.state?(Offline.trigger("reconnect:failure"),d.state="waiting",b()):void 0},d.tryNow=h,e(),Offline.on("down",a),Offline.on("confirmed-down",c),Offline.on("up",i)}.call(this),function(){var a,b,c,d,e,f;if(!window.Offline)throw new Error("Requests module brought in without offline.js");c=[],f=!1,d=function(a){return Offline.getOption("requests")!==!1?(Offline.trigger("requests:capture"),"down"!==Offline.state&&(f=!0),c.push(a)):void 0},e=function(a){var b,c,d,e,f,g,h,i,j;if(j=a.xhr,g=a.url,f=a.type,h=a.user,d=a.password,b=a.body,Offline.getOption("requests")!==!1){j.abort(),j.open(f,g,!0,h,d),e=j.headers;for(c in e)i=e[c],j.setRequestHeader(c,i);return j.mimeType&&j.overrideMimeType(j.mimeType),j.send(b)}},a=function(){return c=[]},b=function(){var b,d,f,g,h,i,j;if(Offline.getOption("requests")!==!1){for(Offline.trigger("requests:flush"),i={},d=0,g=c.length;g>d;d++)h=c[d],j=h.url.replace(/(\?|&)_=[0-9]+/,function(a,b){return"?"===b?b:""}),Offline.getOption("deDupBody")?(b=h.body,b="[object Object]"===b.toString()?JSON.stringify(b):b.toString(),i[h.type.toUpperCase()+" - "+j+" - "+b]=h):i[h.type.toUpperCase()+" - "+j]=h;for(f in i)h=i[f],e(h);return a()}},setTimeout(function(){return Offline.getOption("requests")!==!1?(Offline.on("confirmed-up",function(){return f?(f=!1,a()):void 0}),Offline.on("up",b),Offline.on("down",function(){return f=!1}),Offline.onXHR(function(a){var b,c,e,f,g;return g=a.xhr,e=a.async,g.offline!==!1&&(f=function(){return d(a)},c=g.send,g.send=function(b){return a.body=b,c.apply(g,arguments)},e)?null===g.onprogress?(g.addEventListener("error",f,!1),g.addEventListener("timeout",f,!1)):(b=g.onreadystatechange,g.onreadystatechange=function(){return 0===g.readyState?f():4===g.readyState&&(0===g.status||g.status>=12e3)&&f(),"function"==typeof b?b.apply(null,arguments):void 0}):void 0}),Offline.requests={flush:b,clear:a}):void 0},0)}.call(this),function(){var a,b,c,d,e;if(!Offline)throw new Error("Offline simulate brought in without offline.js");for(d=["up","down"],b=0,c=d.length;c>b;b++)e=d[b],(document.querySelector("script[data-simulate='"+e+"']")||("undefined"!=typeof localStorage&&null!==localStorage?localStorage.OFFLINE_SIMULATE:void 0)===e)&&(null==Offline.options&&(Offline.options={}),null==(a=Offline.options).checks&&(a.checks={}),Offline.options.checks.active=e)}.call(this),function(){var a,b,c,d,e,f,g,h,i,j,k,l,m;if(!window.Offline)throw new Error("Offline UI brought in without offline.js");b='
',a='',f=function(a){var b;return b=document.createElement("div"),b.innerHTML=a,b.children[0]},g=e=null,d=function(a){return k(a),g.className+=" "+a},k=function(a){return g.className=g.className.replace(new RegExp("(^| )"+a.split(" ").join("|")+"( |$)","gi")," ")},i={},h=function(a,b){return d(a),null!=i[a]&&clearTimeout(i[a]),i[a]=setTimeout(function(){return k(a),delete i[a]},1e3*b)},m=function(a){var b,c,d,e;d={day:86400,hour:3600,minute:60,second:1};for(c in d)if(b=d[c],a>=b)return e=Math.floor(a/b),[e,c];return["now",""]},l=function(){var c,h;return g=f(b),document.body.appendChild(g),null!=Offline.reconnect&&Offline.getOption("reconnect")&&(g.appendChild(f(a)),c=g.querySelector(".offline-ui-retry"),h=function(a){return a.preventDefault(),Offline.reconnect.tryNow()},null!=c.addEventListener?c.addEventListener("click",h,!1):c.attachEvent("click",h)),d("offline-ui-"+Offline.state),e=g.querySelector(".offline-ui-content")},j=function(){return l(),Offline.on("up",function(){return k("offline-ui-down"),d("offline-ui-up"),h("offline-ui-up-2s",2),h("offline-ui-up-5s",5)}),Offline.on("down",function(){return k("offline-ui-up"),d("offline-ui-down"),h("offline-ui-down-2s",2),h("offline-ui-down-5s",5)}),Offline.on("reconnect:connecting",function(){return d("offline-ui-connecting"),k("offline-ui-waiting")}),Offline.on("reconnect:tick",function(){var a,b,c;return d("offline-ui-waiting"),k("offline-ui-connecting"),a=m(Offline.reconnect.remaining),b=a[0],c=a[1],e.setAttribute("data-retry-in-value",b),e.setAttribute("data-retry-in-unit",c)}),Offline.on("reconnect:stopped",function(){return k("offline-ui-connecting offline-ui-waiting"),e.setAttribute("data-retry-in-value",null),e.setAttribute("data-retry-in-unit",null)}),Offline.on("reconnect:failure",function(){return h("offline-ui-reconnect-failed-2s",2),h("offline-ui-reconnect-failed-5s",5)}),Offline.on("reconnect:success",function(){return h("offline-ui-reconnect-succeeded-2s",2),h("offline-ui-reconnect-succeeded-5s",5)})},"complete"===document.readyState?j():null!=document.addEventListener?document.addEventListener("DOMContentLoaded",j,!1):(c=document.onreadystatechange,document.onreadystatechange=function(){return"complete"===document.readyState&&j(),"function"==typeof c?c.apply(null,arguments):void 0})}.call(this); \ No newline at end of file +/*! offline-js 0.7.16 */ +(function(){var a,b,c,d,e,f,g;d=function(a,b){var c,d,e,f;e=[];for(d in b.prototype)try{f=b.prototype[d],null==a[d]&&"function"!=typeof f?e.push(a[d]=f):e.push(void 0)}catch(g){c=g}return e},a={},a.options=window.Offline?window.Offline.options||{}:{},c={checks:{xhr:{url:function(){return"/favicon.ico?_="+(new Date).getTime()},timeout:5e3,type:"HEAD"},image:{url:function(){return"/favicon.ico?_="+(new Date).getTime()}},active:"xhr"},checkOnLoad:!1,interceptRequests:!0,reconnect:!0,deDupBody:!1},e=function(a,b){var c,d,e,f,g,h;for(c=a,h=b.split("."),d=e=0,f=h.length;f>e&&(g=h[d],c=c[g],"object"==typeof c);d=++e);return d===h.length-1?c:void 0},a.getOption=function(b){var d,f;return f=null!=(d=e(a.options,b))?d:e(c,b),"function"==typeof f?f():f},"function"==typeof window.addEventListener&&window.addEventListener("online",function(){return setTimeout(a.confirmUp,100)},!1),"function"==typeof window.addEventListener&&window.addEventListener("offline",function(){return a.confirmDown()},!1),a.state="up",a.markUp=function(){return a.trigger("confirmed-up"),"up"!==a.state?(a.state="up",a.trigger("up")):void 0},a.markDown=function(){return a.trigger("confirmed-down"),"down"!==a.state?(a.state="down",a.trigger("down")):void 0},f={},a.on=function(b,c,d){var e,g,h,i,j;if(g=b.split(" "),g.length>1){for(j=[],h=0,i=g.length;i>h;h++)e=g[h],j.push(a.on(e,c,d));return j}return null==f[b]&&(f[b]=[]),f[b].push([d,c])},a.off=function(a,b){var c,d,e,g,h;if(null!=f[a]){if(b){for(e=0,h=[];ed;d++)h=g[d],b=h[0],c=h[1],i.push(c.call(b));return i}},b=function(a,b,c){var d,e,f,g,h;return h=function(){return a.status&&a.status<12e3?b():c()},null===a.onprogress?(d=a.onerror,a.onerror=function(){return c(),"function"==typeof d?d.apply(null,arguments):void 0},g=a.ontimeout,a.ontimeout=function(){return c(),"function"==typeof g?g.apply(null,arguments):void 0},e=a.onload,a.onload=function(){return h(),"function"==typeof e?e.apply(null,arguments):void 0}):(f=a.onreadystatechange,a.onreadystatechange=function(){return 4===a.readyState?h():0===a.readyState&&c(),"function"==typeof f?f.apply(null,arguments):void 0})},a.checks={},a.checks.xhr=function(){var c,d;d=new XMLHttpRequest,d.offline=!1,d.open(a.getOption("checks.xhr.type"),a.getOption("checks.xhr.url"),!0),null!=d.timeout&&(d.timeout=a.getOption("checks.xhr.timeout")),b(d,a.markUp,a.markDown);try{d.send()}catch(e){c=e,a.markDown()}return d},a.checks.image=function(){var b;b=document.createElement("img"),b.onerror=a.markDown,b.onload=a.markUp,b.src=a.getOption("checks.image.url")},a.checks.down=a.markDown,a.checks.up=a.markUp,a.check=function(){return a.trigger("checking"),a.checks[a.getOption("checks.active")]()},a.confirmUp=a.confirmDown=a.check,a.onXHR=function(a){var b,c,e;return e=function(b,c){var d;return d=b.open,b.open=function(e,f,g,h,i){return a({type:e,url:f,async:g,flags:c,user:h,password:i,xhr:b}),d.apply(b,arguments)}},c=window.XMLHttpRequest,window.XMLHttpRequest=function(a){var b,d,f;return f=new c(a),e(f,a),d=f.setRequestHeader,f.headers={},f.setRequestHeader=function(a,b){return f.headers[a]=b,d.call(f,a,b)},b=f.overrideMimeType,f.overrideMimeType=function(a){return f.mimeType=a,b.call(f,a)},f},d(window.XMLHttpRequest,c),null!=window.XDomainRequest?(b=window.XDomainRequest,window.XDomainRequest=function(){var a;return a=new b,e(a),a},d(window.XDomainRequest,b)):void 0},g=function(){return a.getOption("interceptRequests")&&a.onXHR(function(c){var d;return d=c.xhr,d.offline!==!1?b(d,a.markUp,a.confirmDown):void 0}),a.getOption("checkOnLoad")?a.check():void 0},setTimeout(g,0),window.Offline=a}).call(this),function(){var a,b,c,d,e,f,g,h,i;if(!window.Offline)throw new Error("Offline Reconnect brought in without offline.js");d=Offline.reconnect={},f=null,e=function(){var a;return null!=d.state&&"inactive"!==d.state&&Offline.trigger("reconnect:stopped"),d.state="inactive",d.remaining=d.delay=null!=(a=Offline.getOption("reconnect.initialDelay"))?a:3},b=function(){var a,b;return a=null!=(b=Offline.getOption("reconnect.delay"))?b:Math.min(Math.ceil(1.5*d.delay),3600),d.remaining=d.delay=a},g=function(){return"connecting"!==d.state?(d.remaining-=1,Offline.trigger("reconnect:tick"),0===d.remaining?h():void 0):void 0},h=function(){return"waiting"===d.state?(Offline.trigger("reconnect:connecting"),d.state="connecting",Offline.check()):void 0},a=function(){return Offline.getOption("reconnect")?(e(),d.state="waiting",Offline.trigger("reconnect:started"),f=setInterval(g,1e3)):void 0},i=function(){return null!=f&&clearInterval(f),e()},c=function(){return Offline.getOption("reconnect")&&"connecting"===d.state?(Offline.trigger("reconnect:failure"),d.state="waiting",b()):void 0},d.tryNow=h,e(),Offline.on("down",a),Offline.on("confirmed-down",c),Offline.on("up",i)}.call(this),function(){var a,b,c,d,e,f;if(!window.Offline)throw new Error("Requests module brought in without offline.js");c=[],f=!1,d=function(a){return Offline.getOption("requests")!==!1?(Offline.trigger("requests:capture"),"down"!==Offline.state&&(f=!0),c.push(a)):void 0},e=function(a){var b,c,d,e,f,g,h,i,j;if(j=a.xhr,g=a.url,f=a.type,h=a.user,d=a.password,b=a.body,Offline.getOption("requests")!==!1){j.abort(),j.open(f,g,!0,h,d),e=j.headers;for(c in e)i=e[c],j.setRequestHeader(c,i);return j.mimeType&&j.overrideMimeType(j.mimeType),j.send(b)}},a=function(){return c=[]},b=function(){var b,d,f,g,h,i,j;if(Offline.getOption("requests")!==!1){for(Offline.trigger("requests:flush"),i={},d=0,g=c.length;g>d;d++)h=c[d],j=h.url.replace(/(\?|&)_=[0-9]+/,function(a,b){return"?"===b?b:""}),Offline.getOption("deDupBody")?(b=h.body,b="[object Object]"===b.toString()?JSON.stringify(b):b.toString(),i[h.type.toUpperCase()+" - "+j+" - "+b]=h):i[h.type.toUpperCase()+" - "+j]=h;for(f in i)h=i[f],e(h);return a()}},setTimeout(function(){return Offline.getOption("requests")!==!1?(Offline.on("confirmed-up",function(){return f?(f=!1,a()):void 0}),Offline.on("up",b),Offline.on("down",function(){return f=!1}),Offline.onXHR(function(a){var b,c,e,f,g;return g=a.xhr,e=a.async,g.offline!==!1&&(f=function(){return d(a)},c=g.send,g.send=function(b){return a.body=b,c.apply(g,arguments)},e)?null===g.onprogress?(g.addEventListener("error",f,!1),g.addEventListener("timeout",f,!1)):(b=g.onreadystatechange,g.onreadystatechange=function(){return 0===g.readyState?f():4===g.readyState&&(0===g.status||g.status>=12e3)&&f(),"function"==typeof b?b.apply(null,arguments):void 0}):void 0}),Offline.requests={flush:b,clear:a}):void 0},0)}.call(this),function(){var a,b,c,d,e,f,g;if(!Offline)throw new Error("Offline simulate brought in without offline.js");for(e=["up","down"],c=0,d=e.length;d>c;c++){g=e[c];try{f=document.querySelector("script[data-simulate='"+g+"']")||("undefined"!=typeof localStorage&&null!==localStorage?localStorage.OFFLINE_SIMULATE:void 0)===g}catch(h){b=h,f=!1}}f&&(null==Offline.options&&(Offline.options={}),null==(a=Offline.options).checks&&(a.checks={}),Offline.options.checks.active=g)}.call(this),function(){var a,b,c,d,e,f,g,h,i,j,k,l,m;if(!window.Offline)throw new Error("Offline UI brought in without offline.js");b='
',a='',f=function(a){var b;return b=document.createElement("div"),b.innerHTML=a,b.children[0]},g=e=null,d=function(a){return k(a),g.className+=" "+a},k=function(a){return g.className=g.className.replace(new RegExp("(^| )"+a.split(" ").join("|")+"( |$)","gi")," ")},i={},h=function(a,b){return d(a),null!=i[a]&&clearTimeout(i[a]),i[a]=setTimeout(function(){return k(a),delete i[a]},1e3*b)},m=function(a){var b,c,d,e;d={day:86400,hour:3600,minute:60,second:1};for(c in d)if(b=d[c],a>=b)return e=Math.floor(a/b),[e,c];return["now",""]},l=function(){var c,h;return g=f(b),document.body.appendChild(g),null!=Offline.reconnect&&Offline.getOption("reconnect")&&(g.appendChild(f(a)),c=g.querySelector(".offline-ui-retry"),h=function(a){return a.preventDefault(),Offline.reconnect.tryNow()},null!=c.addEventListener?c.addEventListener("click",h,!1):c.attachEvent("click",h)),d("offline-ui-"+Offline.state),e=g.querySelector(".offline-ui-content")},j=function(){return l(),Offline.on("up",function(){return k("offline-ui-down"),d("offline-ui-up"),h("offline-ui-up-2s",2),h("offline-ui-up-5s",5)}),Offline.on("down",function(){return k("offline-ui-up"),d("offline-ui-down"),h("offline-ui-down-2s",2),h("offline-ui-down-5s",5)}),Offline.on("reconnect:connecting",function(){return d("offline-ui-connecting"),k("offline-ui-waiting")}),Offline.on("reconnect:tick",function(){var a,b,c;return d("offline-ui-waiting"),k("offline-ui-connecting"),a=m(Offline.reconnect.remaining),b=a[0],c=a[1],e.setAttribute("data-retry-in-value",b),e.setAttribute("data-retry-in-unit",c)}),Offline.on("reconnect:stopped",function(){return k("offline-ui-connecting offline-ui-waiting"),e.setAttribute("data-retry-in-value",null),e.setAttribute("data-retry-in-unit",null)}),Offline.on("reconnect:failure",function(){return h("offline-ui-reconnect-failed-2s",2),h("offline-ui-reconnect-failed-5s",5)}),Offline.on("reconnect:success",function(){return h("offline-ui-reconnect-succeeded-2s",2),h("offline-ui-reconnect-succeeded-5s",5)})},"complete"===document.readyState?j():null!=document.addEventListener?document.addEventListener("DOMContentLoaded",j,!1):(c=document.onreadystatechange,document.onreadystatechange=function(){return"complete"===document.readyState&&j(),"function"==typeof c?c.apply(null,arguments):void 0})}.call(this); \ No newline at end of file diff --git a/package.json b/package.json index 41d6f9e..4fb5acb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "offline-js", - "version": "0.7.15", + "version": "0.7.16", "description": "Automatically detect when a browser is offline", "authors": [ "Adam Schwartz ", diff --git a/themes/offline-language-italian-indicator.css b/themes/offline-language-italian-indicator.css new file mode 100644 index 0000000..2b5f6e8 --- /dev/null +++ b/themes/offline-language-italian-indicator.css @@ -0,0 +1,8 @@ +/* line 5, ../sass/offline-language-italian-indicator.sass */ +.offline-ui.offline-ui-up .offline-ui-content:before { + content: "Online"; +} +/* line 10, ../sass/offline-language-italian-indicator.sass */ +.offline-ui.offline-ui-down .offline-ui-content:before { + content: "Offline"; +} diff --git a/themes/offline-language-italian.css b/themes/offline-language-italian.css new file mode 100644 index 0000000..7d38dd5 --- /dev/null +++ b/themes/offline-language-italian.css @@ -0,0 +1,109 @@ +@charset "UTF-8"; +/* line 6, ../sass/_content.sass */ +.offline-ui .offline-ui-retry:before { + content: "Riconnetti"; +} +/* line 11, ../sass/_content.sass */ +.offline-ui.offline-ui-up .offline-ui-content:before { + content: "Il tuo computer è connesso ad internet."; +} +@media (max-width: 1024px) { + /* line 11, ../sass/_content.sass */ + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "Il tuo device è connesso ad internet."; + } +} +@media (max-width: 568px) { + /* line 11, ../sass/_content.sass */ + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "Il tuo device è connesso."; + } +} +/* line 22, ../sass/_content.sass */ +.offline-ui.offline-ui-down .offline-ui-content:before { + content: "Il tuo computer si è disconnesso da internet."; +} +@media (max-width: 1024px) { + /* line 22, ../sass/_content.sass */ + .offline-ui.offline-ui-down .offline-ui-content:before { + content: "Il tuo device si è disconnesso da internet."; + } +} +@media (max-width: 568px) { + /* line 22, ../sass/_content.sass */ + .offline-ui.offline-ui-down .offline-ui-content:before { + content: "Il tuo device si è disconnesso."; + } +} +/* line 33, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-connecting .offline-ui-content:before, .offline-ui.offline-ui-down.offline-ui-connecting-2s .offline-ui-content:before { + content: "Connessione in corso..."; +} +/* line 42, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: "Connessione persa. Riconnessione tra " attr(data-retry-in-value) " secondi..."; +} +@media (max-width: 568px) { + /* line 42, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: "Riconnessione tra " attr(data-retry-in-value) "s..."; + } +} +/* line 50, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: "Connessione persa. Riconnessione tra " attr(data-retry-in-value) " secondo..."; +} +@media (max-width: 568px) { + /* line 50, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: "Riconnessione tra " attr(data-retry-in-value) "s..."; + } +} +/* line 58, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: "Connessione persa. Riconnessione tra " attr(data-retry-in-value) " minuti..."; +} +@media (max-width: 568px) { + /* line 58, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: "Riconnessione tra " attr(data-retry-in-value) "m..."; + } +} +/* line 66, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: "Connessione persa. Riconnessione tra " attr(data-retry-in-value) " minuto..."; +} +@media (max-width: 568px) { + /* line 66, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: "Riconnessione tra " attr(data-retry-in-value) "m..."; + } +} +/* line 74, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: "Connessione persa. Riconnessione tra " attr(data-retry-in-value) " ore..."; +} +@media (max-width: 568px) { + /* line 74, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: "Riconnessione tra " attr(data-retry-in-value) "h..."; + } +} +/* line 82, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: "Connessione persa. Riconnessione tra " attr(data-retry-in-value) " ora..."; +} +@media (max-width: 568px) { + /* line 82, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: "Riconnessione tra " attr(data-retry-in-value) "h..."; + } +} +/* line 90, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s.offline-ui-waiting .offline-ui-retry { + display: none; +} +/* line 93, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s .offline-ui-content:before { + content: "Tentativo di connessione fallito."; +} From a0b4ed80b5e87d5f51a317e0c94c07c1e7a81023 Mon Sep 17 00:00:00 2001 From: jetma Date: Sat, 23 Apr 2016 01:17:24 +0800 Subject: [PATCH 17/49] add simplified-chinese translation --- sass/_simplified-chinese.sass | 50 ++++++++ ...language-simplified-chinese-indicator.sass | 12 ++ sass/offline-language-simplified-chinese.sass | 4 + ...-language-simplified-chinese-indicator.css | 9 ++ .../offline-language-simplified-chinese.css | 109 ++++++++++++++++++ 5 files changed, 184 insertions(+) create mode 100644 sass/_simplified-chinese.sass create mode 100644 sass/offline-language-simplified-chinese-indicator.sass create mode 100644 sass/offline-language-simplified-chinese.sass create mode 100644 themes/offline-language-simplified-chinese-indicator.css create mode 100644 themes/offline-language-simplified-chinese.css diff --git a/sass/_simplified-chinese.sass b/sass/_simplified-chinese.sass new file mode 100644 index 0000000..6741b51 --- /dev/null +++ b/sass/_simplified-chinese.sass @@ -0,0 +1,50 @@ +@charset "utf-8" +$upComputer: "您的电脑网络已经连接." +$upDevice: "您的设备网络已经连接." +$upDeviceSmall: "您的设备已在线." + +$downComputer: "您的电脑网络已经中断." +$downDevice: "您的设备网络已经中断." +$downDeviceSmall: "您的设备已离线." + +$connecting: "正在尝试重连中..." + +$retryButton: "重连" + +$reconnectFailed: "重连尝试失败." + +$retryingSecondBeforeValueSingularComputer: "连接丢失. 正在重连 " +$retryingSecondBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingMinuteBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer +$retryingMinuteBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingHourBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer +$retryingHourBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingSecondBeforeValueSingularDeviceSmall: "正在重连 " +$retryingSecondBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingMinuteBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall +$retryingMinuteBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingHourBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall +$retryingHourBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingSecondAfterValueSingularComputer: " 秒..." +$retryingSecondAfterValuePluralComputer: " 秒..." + +$retryingSecondAfterValueSingularDeviceSmall: "s..." +$retryingSecondAfterValuePluralDeviceSmall: $retryingSecondAfterValueSingularDeviceSmall + +$retryingMinuteAfterValueSingularComputer: " 分..." +$retryingMinuteAfterValuePluralComputer: " 分..." + +$retryingMinuteAfterValueSingularDeviceSmall: "m..." +$retryingMinuteAfterValuePluralDeviceSmall: $retryingMinuteAfterValueSingularDeviceSmall + +$retryingHourAfterValueSingularComputer: " 时..." +$retryingHourAfterValuePluralComputer: " 时..." + +$retryingHourAfterValueSingularDeviceSmall: "h..." +$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall \ No newline at end of file diff --git a/sass/offline-language-simplified-chinese-indicator.sass b/sass/offline-language-simplified-chinese-indicator.sass new file mode 100644 index 0000000..40bfcbd --- /dev/null +++ b/sass/offline-language-simplified-chinese-indicator.sass @@ -0,0 +1,12 @@ +@charset "utf-8" +.offline-ui + + &.offline-ui-up + + .offline-ui-content:before + content: "在线" + + &.offline-ui-down + + .offline-ui-content:before + content: "离线" \ No newline at end of file diff --git a/sass/offline-language-simplified-chinese.sass b/sass/offline-language-simplified-chinese.sass new file mode 100644 index 0000000..539e0a9 --- /dev/null +++ b/sass/offline-language-simplified-chinese.sass @@ -0,0 +1,4 @@ +@import content +@import simplified-chinese + ++offline-content \ No newline at end of file diff --git a/themes/offline-language-simplified-chinese-indicator.css b/themes/offline-language-simplified-chinese-indicator.css new file mode 100644 index 0000000..8939336 --- /dev/null +++ b/themes/offline-language-simplified-chinese-indicator.css @@ -0,0 +1,9 @@ +@charset "UTF-8"; +/* line 6, ../sass/offline-language-simplified-chinese-indicator.sass */ +.offline-ui.offline-ui-up .offline-ui-content:before { + content: "在线"; +} +/* line 11, ../sass/offline-language-simplified-chinese-indicator.sass */ +.offline-ui.offline-ui-down .offline-ui-content:before { + content: "离线"; +} diff --git a/themes/offline-language-simplified-chinese.css b/themes/offline-language-simplified-chinese.css new file mode 100644 index 0000000..5f38db6 --- /dev/null +++ b/themes/offline-language-simplified-chinese.css @@ -0,0 +1,109 @@ +@charset "UTF-8"; +/* line 6, ../sass/_content.sass */ +.offline-ui .offline-ui-retry:before { + content: "重连"; +} +/* line 11, ../sass/_content.sass */ +.offline-ui.offline-ui-up .offline-ui-content:before { + content: "您的电脑网络已经连接."; +} +@media (max-width: 1024px) { + /* line 11, ../sass/_content.sass */ + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "您的设备网络已经连接."; + } +} +@media (max-width: 568px) { + /* line 11, ../sass/_content.sass */ + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "您的设备已在线."; + } +} +/* line 22, ../sass/_content.sass */ +.offline-ui.offline-ui-down .offline-ui-content:before { + content: "您的电脑网络已经中断."; +} +@media (max-width: 1024px) { + /* line 22, ../sass/_content.sass */ + .offline-ui.offline-ui-down .offline-ui-content:before { + content: "您的设备网络已经中断."; + } +} +@media (max-width: 568px) { + /* line 22, ../sass/_content.sass */ + .offline-ui.offline-ui-down .offline-ui-content:before { + content: "您的设备已离线."; + } +} +/* line 33, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-connecting .offline-ui-content:before, .offline-ui.offline-ui-down.offline-ui-connecting-2s .offline-ui-content:before { + content: "正在尝试重连中..."; +} +/* line 42, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: "连接丢失. 正在重连 " attr(data-retry-in-value) " 秒..."; +} +@media (max-width: 568px) { + /* line 42, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: "正在重连 " attr(data-retry-in-value) "s..."; + } +} +/* line 50, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: "连接丢失. 正在重连 " attr(data-retry-in-value) " 秒..."; +} +@media (max-width: 568px) { + /* line 50, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: "正在重连 " attr(data-retry-in-value) "s..."; + } +} +/* line 58, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: "连接丢失. 正在重连 " attr(data-retry-in-value) " 分..."; +} +@media (max-width: 568px) { + /* line 58, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: "正在重连 " attr(data-retry-in-value) "m..."; + } +} +/* line 66, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: "连接丢失. 正在重连 " attr(data-retry-in-value) " 分..."; +} +@media (max-width: 568px) { + /* line 66, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: "正在重连 " attr(data-retry-in-value) "m..."; + } +} +/* line 74, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: "连接丢失. 正在重连 " attr(data-retry-in-value) " 时..."; +} +@media (max-width: 568px) { + /* line 74, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: "正在重连 " attr(data-retry-in-value) "h..."; + } +} +/* line 82, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: "连接丢失. 正在重连 " attr(data-retry-in-value) " 时..."; +} +@media (max-width: 568px) { + /* line 82, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: "正在重连 " attr(data-retry-in-value) "h..."; + } +} +/* line 90, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s.offline-ui-waiting .offline-ui-retry { + display: none; +} +/* line 93, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s .offline-ui-content:before { + content: "重连尝试失败."; +} From 732cca8dcc810f2d40366724a0818216f76a1c35 Mon Sep 17 00:00:00 2001 From: jetma Date: Sat, 23 Apr 2016 01:29:03 +0800 Subject: [PATCH 18/49] add simplified-chinese translation --- install.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install.json b/install.json index b8cd3f1..d760ce7 100644 --- a/install.json +++ b/install.json @@ -45,6 +45,7 @@ "french", "german", "portuguese-brazil", + "simplified-chinese", "spanish", "italian", "turkish" @@ -55,6 +56,7 @@ "french": "French", "german": "German", "portuguese-brazil": "Brazilian Portuguese", + "simplified-chinese": "Simplified Chinese", "spanish": "Spanish", "italian": "Italian", "turkish": "Turkish" From 6fdb1b4e0f1cf5d2d694fb89c689abefabc39364 Mon Sep 17 00:00:00 2001 From: Sadok Sfar Date: Mon, 2 May 2016 12:00:00 +0200 Subject: [PATCH 19/49] Add missing space before retry countdown --- themes/offline-language-french.css | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/themes/offline-language-french.css b/themes/offline-language-french.css index be90c31..88b0069 100644 --- a/themes/offline-language-french.css +++ b/themes/offline-language-french.css @@ -41,7 +41,7 @@ } /* line 42, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { - content: "Connexion perdue. Reconnexion dans" attr(data-retry-in-value) " secondes..."; + content: "Connexion perdue. Reconnexion dans " attr(data-retry-in-value) " secondes..."; } @media (max-width: 568px) { /* line 42, ../sass/_content.sass */ @@ -51,7 +51,7 @@ } /* line 50, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { - content: "Connexion perdue. Reconnexion dans" attr(data-retry-in-value) " seconde..."; + content: "Connexion perdue. Reconnexion dans " attr(data-retry-in-value) " seconde..."; } @media (max-width: 568px) { /* line 50, ../sass/_content.sass */ @@ -61,7 +61,7 @@ } /* line 58, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { - content: "Connexion perdue. Reconnexion dans" attr(data-retry-in-value) " minutes..."; + content: "Connexion perdue. Reconnexion dans " attr(data-retry-in-value) " minutes..."; } @media (max-width: 568px) { /* line 58, ../sass/_content.sass */ @@ -71,7 +71,7 @@ } /* line 66, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { - content: "Connexion perdue. Reconnexion dans" attr(data-retry-in-value) " minute..."; + content: "Connexion perdue. Reconnexion dans " attr(data-retry-in-value) " minute..."; } @media (max-width: 568px) { /* line 66, ../sass/_content.sass */ @@ -81,7 +81,7 @@ } /* line 74, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { - content: "Connexion perdue. Reconnexion dans" attr(data-retry-in-value) " heures..."; + content: "Connexion perdue. Reconnexion dans " attr(data-retry-in-value) " heures..."; } @media (max-width: 568px) { /* line 74, ../sass/_content.sass */ @@ -91,7 +91,7 @@ } /* line 82, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { - content: "Connexion perdue. Reconnexion dans" attr(data-retry-in-value) " heure..."; + content: "Connexion perdue. Reconnexion dans " attr(data-retry-in-value) " heure..."; } @media (max-width: 568px) { /* line 82, ../sass/_content.sass */ @@ -106,4 +106,4 @@ /* line 93, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s .offline-ui-content:before { content: "La tentative de connexion a échoué."; -} +} \ No newline at end of file From b3d668d3ff438655a78508f180166877d50d8c56 Mon Sep 17 00:00:00 2001 From: Sadok Sfar Date: Mon, 2 May 2016 14:41:58 +0200 Subject: [PATCH 20/49] Add missing space before retry countdown in sass --- sass/_french.sass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sass/_french.sass b/sass/_french.sass index fd478e6..c64396b 100644 --- a/sass/_french.sass +++ b/sass/_french.sass @@ -12,7 +12,7 @@ $retryButton: "Reconnecter" $reconnectFailed: "La tentative de connexion a échoué." -$retryingSecondBeforeValueSingularComputer: "Connexion perdue. Reconnexion dans" +$retryingSecondBeforeValueSingularComputer: "Connexion perdue. Reconnexion dans " $retryingSecondBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer $retryingMinuteBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer From 1462b8f569aa7f8e443b8a557b42246e188937de Mon Sep 17 00:00:00 2001 From: Ryan Berdeen Date: Mon, 2 May 2016 17:00:48 -0400 Subject: [PATCH 21/49] 0.7.17 --- offline.js | 2 +- offline.min.js | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/offline.js b/offline.js index 4d83763..c70f1ca 100644 --- a/offline.js +++ b/offline.js @@ -1,4 +1,4 @@ -/*! offline-js 0.7.16 */ +/*! offline-js 0.7.17 */ (function() { var Offline, checkXHR, defaultOptions, extendNative, grab, handlers, init; extendNative = function(to, from) { diff --git a/offline.min.js b/offline.min.js index 38310a2..03c7252 100644 --- a/offline.min.js +++ b/offline.min.js @@ -1,2 +1,2 @@ -/*! offline-js 0.7.16 */ +/*! offline-js 0.7.17 */ (function(){var a,b,c,d,e,f,g;d=function(a,b){var c,d,e,f;e=[];for(d in b.prototype)try{f=b.prototype[d],null==a[d]&&"function"!=typeof f?e.push(a[d]=f):e.push(void 0)}catch(g){c=g}return e},a={},a.options=window.Offline?window.Offline.options||{}:{},c={checks:{xhr:{url:function(){return"/favicon.ico?_="+(new Date).getTime()},timeout:5e3,type:"HEAD"},image:{url:function(){return"/favicon.ico?_="+(new Date).getTime()}},active:"xhr"},checkOnLoad:!1,interceptRequests:!0,reconnect:!0,deDupBody:!1},e=function(a,b){var c,d,e,f,g,h;for(c=a,h=b.split("."),d=e=0,f=h.length;f>e&&(g=h[d],c=c[g],"object"==typeof c);d=++e);return d===h.length-1?c:void 0},a.getOption=function(b){var d,f;return f=null!=(d=e(a.options,b))?d:e(c,b),"function"==typeof f?f():f},"function"==typeof window.addEventListener&&window.addEventListener("online",function(){return setTimeout(a.confirmUp,100)},!1),"function"==typeof window.addEventListener&&window.addEventListener("offline",function(){return a.confirmDown()},!1),a.state="up",a.markUp=function(){return a.trigger("confirmed-up"),"up"!==a.state?(a.state="up",a.trigger("up")):void 0},a.markDown=function(){return a.trigger("confirmed-down"),"down"!==a.state?(a.state="down",a.trigger("down")):void 0},f={},a.on=function(b,c,d){var e,g,h,i,j;if(g=b.split(" "),g.length>1){for(j=[],h=0,i=g.length;i>h;h++)e=g[h],j.push(a.on(e,c,d));return j}return null==f[b]&&(f[b]=[]),f[b].push([d,c])},a.off=function(a,b){var c,d,e,g,h;if(null!=f[a]){if(b){for(e=0,h=[];ed;d++)h=g[d],b=h[0],c=h[1],i.push(c.call(b));return i}},b=function(a,b,c){var d,e,f,g,h;return h=function(){return a.status&&a.status<12e3?b():c()},null===a.onprogress?(d=a.onerror,a.onerror=function(){return c(),"function"==typeof d?d.apply(null,arguments):void 0},g=a.ontimeout,a.ontimeout=function(){return c(),"function"==typeof g?g.apply(null,arguments):void 0},e=a.onload,a.onload=function(){return h(),"function"==typeof e?e.apply(null,arguments):void 0}):(f=a.onreadystatechange,a.onreadystatechange=function(){return 4===a.readyState?h():0===a.readyState&&c(),"function"==typeof f?f.apply(null,arguments):void 0})},a.checks={},a.checks.xhr=function(){var c,d;d=new XMLHttpRequest,d.offline=!1,d.open(a.getOption("checks.xhr.type"),a.getOption("checks.xhr.url"),!0),null!=d.timeout&&(d.timeout=a.getOption("checks.xhr.timeout")),b(d,a.markUp,a.markDown);try{d.send()}catch(e){c=e,a.markDown()}return d},a.checks.image=function(){var b;b=document.createElement("img"),b.onerror=a.markDown,b.onload=a.markUp,b.src=a.getOption("checks.image.url")},a.checks.down=a.markDown,a.checks.up=a.markUp,a.check=function(){return a.trigger("checking"),a.checks[a.getOption("checks.active")]()},a.confirmUp=a.confirmDown=a.check,a.onXHR=function(a){var b,c,e;return e=function(b,c){var d;return d=b.open,b.open=function(e,f,g,h,i){return a({type:e,url:f,async:g,flags:c,user:h,password:i,xhr:b}),d.apply(b,arguments)}},c=window.XMLHttpRequest,window.XMLHttpRequest=function(a){var b,d,f;return f=new c(a),e(f,a),d=f.setRequestHeader,f.headers={},f.setRequestHeader=function(a,b){return f.headers[a]=b,d.call(f,a,b)},b=f.overrideMimeType,f.overrideMimeType=function(a){return f.mimeType=a,b.call(f,a)},f},d(window.XMLHttpRequest,c),null!=window.XDomainRequest?(b=window.XDomainRequest,window.XDomainRequest=function(){var a;return a=new b,e(a),a},d(window.XDomainRequest,b)):void 0},g=function(){return a.getOption("interceptRequests")&&a.onXHR(function(c){var d;return d=c.xhr,d.offline!==!1?b(d,a.markUp,a.confirmDown):void 0}),a.getOption("checkOnLoad")?a.check():void 0},setTimeout(g,0),window.Offline=a}).call(this),function(){var a,b,c,d,e,f,g,h,i;if(!window.Offline)throw new Error("Offline Reconnect brought in without offline.js");d=Offline.reconnect={},f=null,e=function(){var a;return null!=d.state&&"inactive"!==d.state&&Offline.trigger("reconnect:stopped"),d.state="inactive",d.remaining=d.delay=null!=(a=Offline.getOption("reconnect.initialDelay"))?a:3},b=function(){var a,b;return a=null!=(b=Offline.getOption("reconnect.delay"))?b:Math.min(Math.ceil(1.5*d.delay),3600),d.remaining=d.delay=a},g=function(){return"connecting"!==d.state?(d.remaining-=1,Offline.trigger("reconnect:tick"),0===d.remaining?h():void 0):void 0},h=function(){return"waiting"===d.state?(Offline.trigger("reconnect:connecting"),d.state="connecting",Offline.check()):void 0},a=function(){return Offline.getOption("reconnect")?(e(),d.state="waiting",Offline.trigger("reconnect:started"),f=setInterval(g,1e3)):void 0},i=function(){return null!=f&&clearInterval(f),e()},c=function(){return Offline.getOption("reconnect")&&"connecting"===d.state?(Offline.trigger("reconnect:failure"),d.state="waiting",b()):void 0},d.tryNow=h,e(),Offline.on("down",a),Offline.on("confirmed-down",c),Offline.on("up",i)}.call(this),function(){var a,b,c,d,e,f;if(!window.Offline)throw new Error("Requests module brought in without offline.js");c=[],f=!1,d=function(a){return Offline.getOption("requests")!==!1?(Offline.trigger("requests:capture"),"down"!==Offline.state&&(f=!0),c.push(a)):void 0},e=function(a){var b,c,d,e,f,g,h,i,j;if(j=a.xhr,g=a.url,f=a.type,h=a.user,d=a.password,b=a.body,Offline.getOption("requests")!==!1){j.abort(),j.open(f,g,!0,h,d),e=j.headers;for(c in e)i=e[c],j.setRequestHeader(c,i);return j.mimeType&&j.overrideMimeType(j.mimeType),j.send(b)}},a=function(){return c=[]},b=function(){var b,d,f,g,h,i,j;if(Offline.getOption("requests")!==!1){for(Offline.trigger("requests:flush"),i={},d=0,g=c.length;g>d;d++)h=c[d],j=h.url.replace(/(\?|&)_=[0-9]+/,function(a,b){return"?"===b?b:""}),Offline.getOption("deDupBody")?(b=h.body,b="[object Object]"===b.toString()?JSON.stringify(b):b.toString(),i[h.type.toUpperCase()+" - "+j+" - "+b]=h):i[h.type.toUpperCase()+" - "+j]=h;for(f in i)h=i[f],e(h);return a()}},setTimeout(function(){return Offline.getOption("requests")!==!1?(Offline.on("confirmed-up",function(){return f?(f=!1,a()):void 0}),Offline.on("up",b),Offline.on("down",function(){return f=!1}),Offline.onXHR(function(a){var b,c,e,f,g;return g=a.xhr,e=a.async,g.offline!==!1&&(f=function(){return d(a)},c=g.send,g.send=function(b){return a.body=b,c.apply(g,arguments)},e)?null===g.onprogress?(g.addEventListener("error",f,!1),g.addEventListener("timeout",f,!1)):(b=g.onreadystatechange,g.onreadystatechange=function(){return 0===g.readyState?f():4===g.readyState&&(0===g.status||g.status>=12e3)&&f(),"function"==typeof b?b.apply(null,arguments):void 0}):void 0}),Offline.requests={flush:b,clear:a}):void 0},0)}.call(this),function(){var a,b,c,d,e,f,g;if(!Offline)throw new Error("Offline simulate brought in without offline.js");for(e=["up","down"],c=0,d=e.length;d>c;c++){g=e[c];try{f=document.querySelector("script[data-simulate='"+g+"']")||("undefined"!=typeof localStorage&&null!==localStorage?localStorage.OFFLINE_SIMULATE:void 0)===g}catch(h){b=h,f=!1}}f&&(null==Offline.options&&(Offline.options={}),null==(a=Offline.options).checks&&(a.checks={}),Offline.options.checks.active=g)}.call(this),function(){var a,b,c,d,e,f,g,h,i,j,k,l,m;if(!window.Offline)throw new Error("Offline UI brought in without offline.js");b='
',a='',f=function(a){var b;return b=document.createElement("div"),b.innerHTML=a,b.children[0]},g=e=null,d=function(a){return k(a),g.className+=" "+a},k=function(a){return g.className=g.className.replace(new RegExp("(^| )"+a.split(" ").join("|")+"( |$)","gi")," ")},i={},h=function(a,b){return d(a),null!=i[a]&&clearTimeout(i[a]),i[a]=setTimeout(function(){return k(a),delete i[a]},1e3*b)},m=function(a){var b,c,d,e;d={day:86400,hour:3600,minute:60,second:1};for(c in d)if(b=d[c],a>=b)return e=Math.floor(a/b),[e,c];return["now",""]},l=function(){var c,h;return g=f(b),document.body.appendChild(g),null!=Offline.reconnect&&Offline.getOption("reconnect")&&(g.appendChild(f(a)),c=g.querySelector(".offline-ui-retry"),h=function(a){return a.preventDefault(),Offline.reconnect.tryNow()},null!=c.addEventListener?c.addEventListener("click",h,!1):c.attachEvent("click",h)),d("offline-ui-"+Offline.state),e=g.querySelector(".offline-ui-content")},j=function(){return l(),Offline.on("up",function(){return k("offline-ui-down"),d("offline-ui-up"),h("offline-ui-up-2s",2),h("offline-ui-up-5s",5)}),Offline.on("down",function(){return k("offline-ui-up"),d("offline-ui-down"),h("offline-ui-down-2s",2),h("offline-ui-down-5s",5)}),Offline.on("reconnect:connecting",function(){return d("offline-ui-connecting"),k("offline-ui-waiting")}),Offline.on("reconnect:tick",function(){var a,b,c;return d("offline-ui-waiting"),k("offline-ui-connecting"),a=m(Offline.reconnect.remaining),b=a[0],c=a[1],e.setAttribute("data-retry-in-value",b),e.setAttribute("data-retry-in-unit",c)}),Offline.on("reconnect:stopped",function(){return k("offline-ui-connecting offline-ui-waiting"),e.setAttribute("data-retry-in-value",null),e.setAttribute("data-retry-in-unit",null)}),Offline.on("reconnect:failure",function(){return h("offline-ui-reconnect-failed-2s",2),h("offline-ui-reconnect-failed-5s",5)}),Offline.on("reconnect:success",function(){return h("offline-ui-reconnect-succeeded-2s",2),h("offline-ui-reconnect-succeeded-5s",5)})},"complete"===document.readyState?j():null!=document.addEventListener?document.addEventListener("DOMContentLoaded",j,!1):(c=document.onreadystatechange,document.onreadystatechange=function(){return"complete"===document.readyState&&j(),"function"==typeof c?c.apply(null,arguments):void 0})}.call(this); \ No newline at end of file diff --git a/package.json b/package.json index 4fb5acb..adc6168 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "offline-js", - "version": "0.7.16", + "version": "0.7.17", "description": "Automatically detect when a browser is offline", "authors": [ "Adam Schwartz ", From 49c7c356f94d2f124a46f671f4f1bae03be16843 Mon Sep 17 00:00:00 2001 From: Yann Leretaille Date: Tue, 24 May 2016 23:15:46 +0200 Subject: [PATCH 22/49] fixes issue that occurs when a previously registered event handler calls .off/.on --- coffee/offline.coffee | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/coffee/offline.coffee b/coffee/offline.coffee index ec3a313..c0d2a95 100644 --- a/coffee/offline.coffee +++ b/coffee/offline.coffee @@ -115,7 +115,9 @@ Offline.off = (event, handler) -> Offline.trigger = (event) -> if handlers[event]? - for [ctx, handler] in handlers[event] + # temporary cache the handlers since its possible that the called functions will modify the handlers array by calling off/on + eventHandlers = handlers[event][..] + for [ctx, handler] in eventHandlers handler.call(ctx) checkXHR = (xhr, onUp, onDown) -> From 6875efc22df966de7d254a5dd663e3d9bd239b26 Mon Sep 17 00:00:00 2001 From: Yann Leretaille Date: Tue, 24 May 2016 23:23:57 +0200 Subject: [PATCH 23/49] remove unnecessary loc --- coffee/offline.coffee | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/coffee/offline.coffee b/coffee/offline.coffee index c0d2a95..df50587 100644 --- a/coffee/offline.coffee +++ b/coffee/offline.coffee @@ -115,9 +115,8 @@ Offline.off = (event, handler) -> Offline.trigger = (event) -> if handlers[event]? - # temporary cache the handlers since its possible that the called functions will modify the handlers array by calling off/on - eventHandlers = handlers[event][..] - for [ctx, handler] in eventHandlers + # we have to make a copy of the handlers since its possible that the called functions will modify the handlers array by calling off/on + for [ctx, handler] in handlers[event][..] handler.call(ctx) checkXHR = (xhr, onUp, onDown) -> From 6f7dbbca639ceb59ad0fe7fb1c5b5a6694179011 Mon Sep 17 00:00:00 2001 From: Ryan Berdeen Date: Sun, 5 Jun 2016 20:09:12 -0400 Subject: [PATCH 24/49] fix events to refer to requests:capture fixes #194 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 44526ba..3c0f8c6 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ Properties - reconnect:connecting: We are reconnecting now - reconnect:failure: A reconnect check attempt failed - requests:flush: Any pending requests have been remade - - requests:hold: A new request is being held + - requests:capture: A new request is being held `Offline.off(event, handler)`: Unbind an event From 3b3dbf6cf873e124a05b71223124a44dae4182da Mon Sep 17 00:00:00 2001 From: Ryan Berdeen Date: Sun, 5 Jun 2016 20:44:16 -0400 Subject: [PATCH 25/49] add build script --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index adc6168..f289b64 100644 --- a/package.json +++ b/package.json @@ -21,5 +21,8 @@ "grunt-contrib-compass": "^1.0.3", "grunt-contrib-uglify": "^0.9.1", "grunt-contrib-watch": "^0.6.1" + }, + "scripts": { + "build": "grunt" } } From 5d37c3d905b840e1965b99ade43a9cad44f918d7 Mon Sep 17 00:00:00 2001 From: Jeffrey Lo Date: Thu, 9 Jun 2016 09:17:53 -0400 Subject: [PATCH 26/49] Fix typo in README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit “Caveat” --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3c0f8c6..ab3c6a7 100644 --- a/README.md +++ b/README.md @@ -113,7 +113,7 @@ If you do want to run tests on a different domain, try the image method. It loa Offline.options = {checks: {image: {url: 'my-image.gif'}, active: 'image'}} ``` -The one cavet is that with the image method, we can't distinguish a 404 from a genuine connection issue, so any error at all will +The one caveat is that with the image method, we can't distinguish a 404 from a genuine connection issue, so any error at all will appear to Offline as a connection issue. Offline also includes a check called `'up'` and another called `'down'` which will always report being up or down respectively for From 3ef194de74f70965589ecc4fd9d1d8b9ca9ad0a2 Mon Sep 17 00:00:00 2001 From: Ryan Berdeen Date: Wed, 15 Jun 2016 18:58:45 -0400 Subject: [PATCH 27/49] v0.7.18 --- js/offline.js | 2 +- offline.js | 4 ++-- offline.min.js | 4 ++-- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/js/offline.js b/js/offline.js index 555eded..30bbea9 100644 --- a/js/offline.js +++ b/js/offline.js @@ -150,7 +150,7 @@ Offline.trigger = function(event) { var ctx, handler, j, len, ref, ref1, results; if (handlers[event] != null) { - ref = handlers[event]; + ref = handlers[event].slice(0); results = []; for (j = 0, len = ref.length; j < len; j++) { ref1 = ref[j], ctx = ref1[0], handler = ref1[1]; diff --git a/offline.js b/offline.js index 84d37a0..1d16ae2 100644 --- a/offline.js +++ b/offline.js @@ -1,4 +1,4 @@ -/*! offline-js 0.7.17 */ +/*! offline-js 0.7.18 */ (function() { var Offline, checkXHR, defaultOptions, extendNative, grab, handlers, init; extendNative = function(to, from) { @@ -70,7 +70,7 @@ }, Offline.trigger = function(event) { var ctx, handler, j, len, ref, ref1, results; if (null != handlers[event]) { - for (ref = handlers[event], results = [], j = 0, len = ref.length; len > j; j++) ref1 = ref[j], + for (ref = handlers[event].slice(0), results = [], j = 0, len = ref.length; len > j; j++) ref1 = ref[j], ctx = ref1[0], handler = ref1[1], results.push(handler.call(ctx)); return results; } diff --git a/offline.min.js b/offline.min.js index 03c7252..e5c33f8 100644 --- a/offline.min.js +++ b/offline.min.js @@ -1,2 +1,2 @@ -/*! offline-js 0.7.17 */ -(function(){var a,b,c,d,e,f,g;d=function(a,b){var c,d,e,f;e=[];for(d in b.prototype)try{f=b.prototype[d],null==a[d]&&"function"!=typeof f?e.push(a[d]=f):e.push(void 0)}catch(g){c=g}return e},a={},a.options=window.Offline?window.Offline.options||{}:{},c={checks:{xhr:{url:function(){return"/favicon.ico?_="+(new Date).getTime()},timeout:5e3,type:"HEAD"},image:{url:function(){return"/favicon.ico?_="+(new Date).getTime()}},active:"xhr"},checkOnLoad:!1,interceptRequests:!0,reconnect:!0,deDupBody:!1},e=function(a,b){var c,d,e,f,g,h;for(c=a,h=b.split("."),d=e=0,f=h.length;f>e&&(g=h[d],c=c[g],"object"==typeof c);d=++e);return d===h.length-1?c:void 0},a.getOption=function(b){var d,f;return f=null!=(d=e(a.options,b))?d:e(c,b),"function"==typeof f?f():f},"function"==typeof window.addEventListener&&window.addEventListener("online",function(){return setTimeout(a.confirmUp,100)},!1),"function"==typeof window.addEventListener&&window.addEventListener("offline",function(){return a.confirmDown()},!1),a.state="up",a.markUp=function(){return a.trigger("confirmed-up"),"up"!==a.state?(a.state="up",a.trigger("up")):void 0},a.markDown=function(){return a.trigger("confirmed-down"),"down"!==a.state?(a.state="down",a.trigger("down")):void 0},f={},a.on=function(b,c,d){var e,g,h,i,j;if(g=b.split(" "),g.length>1){for(j=[],h=0,i=g.length;i>h;h++)e=g[h],j.push(a.on(e,c,d));return j}return null==f[b]&&(f[b]=[]),f[b].push([d,c])},a.off=function(a,b){var c,d,e,g,h;if(null!=f[a]){if(b){for(e=0,h=[];ed;d++)h=g[d],b=h[0],c=h[1],i.push(c.call(b));return i}},b=function(a,b,c){var d,e,f,g,h;return h=function(){return a.status&&a.status<12e3?b():c()},null===a.onprogress?(d=a.onerror,a.onerror=function(){return c(),"function"==typeof d?d.apply(null,arguments):void 0},g=a.ontimeout,a.ontimeout=function(){return c(),"function"==typeof g?g.apply(null,arguments):void 0},e=a.onload,a.onload=function(){return h(),"function"==typeof e?e.apply(null,arguments):void 0}):(f=a.onreadystatechange,a.onreadystatechange=function(){return 4===a.readyState?h():0===a.readyState&&c(),"function"==typeof f?f.apply(null,arguments):void 0})},a.checks={},a.checks.xhr=function(){var c,d;d=new XMLHttpRequest,d.offline=!1,d.open(a.getOption("checks.xhr.type"),a.getOption("checks.xhr.url"),!0),null!=d.timeout&&(d.timeout=a.getOption("checks.xhr.timeout")),b(d,a.markUp,a.markDown);try{d.send()}catch(e){c=e,a.markDown()}return d},a.checks.image=function(){var b;b=document.createElement("img"),b.onerror=a.markDown,b.onload=a.markUp,b.src=a.getOption("checks.image.url")},a.checks.down=a.markDown,a.checks.up=a.markUp,a.check=function(){return a.trigger("checking"),a.checks[a.getOption("checks.active")]()},a.confirmUp=a.confirmDown=a.check,a.onXHR=function(a){var b,c,e;return e=function(b,c){var d;return d=b.open,b.open=function(e,f,g,h,i){return a({type:e,url:f,async:g,flags:c,user:h,password:i,xhr:b}),d.apply(b,arguments)}},c=window.XMLHttpRequest,window.XMLHttpRequest=function(a){var b,d,f;return f=new c(a),e(f,a),d=f.setRequestHeader,f.headers={},f.setRequestHeader=function(a,b){return f.headers[a]=b,d.call(f,a,b)},b=f.overrideMimeType,f.overrideMimeType=function(a){return f.mimeType=a,b.call(f,a)},f},d(window.XMLHttpRequest,c),null!=window.XDomainRequest?(b=window.XDomainRequest,window.XDomainRequest=function(){var a;return a=new b,e(a),a},d(window.XDomainRequest,b)):void 0},g=function(){return a.getOption("interceptRequests")&&a.onXHR(function(c){var d;return d=c.xhr,d.offline!==!1?b(d,a.markUp,a.confirmDown):void 0}),a.getOption("checkOnLoad")?a.check():void 0},setTimeout(g,0),window.Offline=a}).call(this),function(){var a,b,c,d,e,f,g,h,i;if(!window.Offline)throw new Error("Offline Reconnect brought in without offline.js");d=Offline.reconnect={},f=null,e=function(){var a;return null!=d.state&&"inactive"!==d.state&&Offline.trigger("reconnect:stopped"),d.state="inactive",d.remaining=d.delay=null!=(a=Offline.getOption("reconnect.initialDelay"))?a:3},b=function(){var a,b;return a=null!=(b=Offline.getOption("reconnect.delay"))?b:Math.min(Math.ceil(1.5*d.delay),3600),d.remaining=d.delay=a},g=function(){return"connecting"!==d.state?(d.remaining-=1,Offline.trigger("reconnect:tick"),0===d.remaining?h():void 0):void 0},h=function(){return"waiting"===d.state?(Offline.trigger("reconnect:connecting"),d.state="connecting",Offline.check()):void 0},a=function(){return Offline.getOption("reconnect")?(e(),d.state="waiting",Offline.trigger("reconnect:started"),f=setInterval(g,1e3)):void 0},i=function(){return null!=f&&clearInterval(f),e()},c=function(){return Offline.getOption("reconnect")&&"connecting"===d.state?(Offline.trigger("reconnect:failure"),d.state="waiting",b()):void 0},d.tryNow=h,e(),Offline.on("down",a),Offline.on("confirmed-down",c),Offline.on("up",i)}.call(this),function(){var a,b,c,d,e,f;if(!window.Offline)throw new Error("Requests module brought in without offline.js");c=[],f=!1,d=function(a){return Offline.getOption("requests")!==!1?(Offline.trigger("requests:capture"),"down"!==Offline.state&&(f=!0),c.push(a)):void 0},e=function(a){var b,c,d,e,f,g,h,i,j;if(j=a.xhr,g=a.url,f=a.type,h=a.user,d=a.password,b=a.body,Offline.getOption("requests")!==!1){j.abort(),j.open(f,g,!0,h,d),e=j.headers;for(c in e)i=e[c],j.setRequestHeader(c,i);return j.mimeType&&j.overrideMimeType(j.mimeType),j.send(b)}},a=function(){return c=[]},b=function(){var b,d,f,g,h,i,j;if(Offline.getOption("requests")!==!1){for(Offline.trigger("requests:flush"),i={},d=0,g=c.length;g>d;d++)h=c[d],j=h.url.replace(/(\?|&)_=[0-9]+/,function(a,b){return"?"===b?b:""}),Offline.getOption("deDupBody")?(b=h.body,b="[object Object]"===b.toString()?JSON.stringify(b):b.toString(),i[h.type.toUpperCase()+" - "+j+" - "+b]=h):i[h.type.toUpperCase()+" - "+j]=h;for(f in i)h=i[f],e(h);return a()}},setTimeout(function(){return Offline.getOption("requests")!==!1?(Offline.on("confirmed-up",function(){return f?(f=!1,a()):void 0}),Offline.on("up",b),Offline.on("down",function(){return f=!1}),Offline.onXHR(function(a){var b,c,e,f,g;return g=a.xhr,e=a.async,g.offline!==!1&&(f=function(){return d(a)},c=g.send,g.send=function(b){return a.body=b,c.apply(g,arguments)},e)?null===g.onprogress?(g.addEventListener("error",f,!1),g.addEventListener("timeout",f,!1)):(b=g.onreadystatechange,g.onreadystatechange=function(){return 0===g.readyState?f():4===g.readyState&&(0===g.status||g.status>=12e3)&&f(),"function"==typeof b?b.apply(null,arguments):void 0}):void 0}),Offline.requests={flush:b,clear:a}):void 0},0)}.call(this),function(){var a,b,c,d,e,f,g;if(!Offline)throw new Error("Offline simulate brought in without offline.js");for(e=["up","down"],c=0,d=e.length;d>c;c++){g=e[c];try{f=document.querySelector("script[data-simulate='"+g+"']")||("undefined"!=typeof localStorage&&null!==localStorage?localStorage.OFFLINE_SIMULATE:void 0)===g}catch(h){b=h,f=!1}}f&&(null==Offline.options&&(Offline.options={}),null==(a=Offline.options).checks&&(a.checks={}),Offline.options.checks.active=g)}.call(this),function(){var a,b,c,d,e,f,g,h,i,j,k,l,m;if(!window.Offline)throw new Error("Offline UI brought in without offline.js");b='
',a='',f=function(a){var b;return b=document.createElement("div"),b.innerHTML=a,b.children[0]},g=e=null,d=function(a){return k(a),g.className+=" "+a},k=function(a){return g.className=g.className.replace(new RegExp("(^| )"+a.split(" ").join("|")+"( |$)","gi")," ")},i={},h=function(a,b){return d(a),null!=i[a]&&clearTimeout(i[a]),i[a]=setTimeout(function(){return k(a),delete i[a]},1e3*b)},m=function(a){var b,c,d,e;d={day:86400,hour:3600,minute:60,second:1};for(c in d)if(b=d[c],a>=b)return e=Math.floor(a/b),[e,c];return["now",""]},l=function(){var c,h;return g=f(b),document.body.appendChild(g),null!=Offline.reconnect&&Offline.getOption("reconnect")&&(g.appendChild(f(a)),c=g.querySelector(".offline-ui-retry"),h=function(a){return a.preventDefault(),Offline.reconnect.tryNow()},null!=c.addEventListener?c.addEventListener("click",h,!1):c.attachEvent("click",h)),d("offline-ui-"+Offline.state),e=g.querySelector(".offline-ui-content")},j=function(){return l(),Offline.on("up",function(){return k("offline-ui-down"),d("offline-ui-up"),h("offline-ui-up-2s",2),h("offline-ui-up-5s",5)}),Offline.on("down",function(){return k("offline-ui-up"),d("offline-ui-down"),h("offline-ui-down-2s",2),h("offline-ui-down-5s",5)}),Offline.on("reconnect:connecting",function(){return d("offline-ui-connecting"),k("offline-ui-waiting")}),Offline.on("reconnect:tick",function(){var a,b,c;return d("offline-ui-waiting"),k("offline-ui-connecting"),a=m(Offline.reconnect.remaining),b=a[0],c=a[1],e.setAttribute("data-retry-in-value",b),e.setAttribute("data-retry-in-unit",c)}),Offline.on("reconnect:stopped",function(){return k("offline-ui-connecting offline-ui-waiting"),e.setAttribute("data-retry-in-value",null),e.setAttribute("data-retry-in-unit",null)}),Offline.on("reconnect:failure",function(){return h("offline-ui-reconnect-failed-2s",2),h("offline-ui-reconnect-failed-5s",5)}),Offline.on("reconnect:success",function(){return h("offline-ui-reconnect-succeeded-2s",2),h("offline-ui-reconnect-succeeded-5s",5)})},"complete"===document.readyState?j():null!=document.addEventListener?document.addEventListener("DOMContentLoaded",j,!1):(c=document.onreadystatechange,document.onreadystatechange=function(){return"complete"===document.readyState&&j(),"function"==typeof c?c.apply(null,arguments):void 0})}.call(this); \ No newline at end of file +/*! offline-js 0.7.18 */ +(function(){var a,b,c,d,e,f,g;d=function(a,b){var c,d,e,f;e=[];for(d in b.prototype)try{f=b.prototype[d],null==a[d]&&"function"!=typeof f?e.push(a[d]=f):e.push(void 0)}catch(g){c=g}return e},a={},a.options=window.Offline?window.Offline.options||{}:{},c={checks:{xhr:{url:function(){return"/favicon.ico?_="+(new Date).getTime()},timeout:5e3,type:"HEAD"},image:{url:function(){return"/favicon.ico?_="+(new Date).getTime()}},active:"xhr"},checkOnLoad:!1,interceptRequests:!0,reconnect:!0,deDupBody:!1},e=function(a,b){var c,d,e,f,g,h;for(c=a,h=b.split("."),d=e=0,f=h.length;f>e&&(g=h[d],c=c[g],"object"==typeof c);d=++e);return d===h.length-1?c:void 0},a.getOption=function(b){var d,f;return f=null!=(d=e(a.options,b))?d:e(c,b),"function"==typeof f?f():f},"function"==typeof window.addEventListener&&window.addEventListener("online",function(){return setTimeout(a.confirmUp,100)},!1),"function"==typeof window.addEventListener&&window.addEventListener("offline",function(){return a.confirmDown()},!1),a.state="up",a.markUp=function(){return a.trigger("confirmed-up"),"up"!==a.state?(a.state="up",a.trigger("up")):void 0},a.markDown=function(){return a.trigger("confirmed-down"),"down"!==a.state?(a.state="down",a.trigger("down")):void 0},f={},a.on=function(b,c,d){var e,g,h,i,j;if(g=b.split(" "),g.length>1){for(j=[],h=0,i=g.length;i>h;h++)e=g[h],j.push(a.on(e,c,d));return j}return null==f[b]&&(f[b]=[]),f[b].push([d,c])},a.off=function(a,b){var c,d,e,g,h;if(null!=f[a]){if(b){for(e=0,h=[];ed;d++)h=g[d],b=h[0],c=h[1],i.push(c.call(b));return i}},b=function(a,b,c){var d,e,f,g,h;return h=function(){return a.status&&a.status<12e3?b():c()},null===a.onprogress?(d=a.onerror,a.onerror=function(){return c(),"function"==typeof d?d.apply(null,arguments):void 0},g=a.ontimeout,a.ontimeout=function(){return c(),"function"==typeof g?g.apply(null,arguments):void 0},e=a.onload,a.onload=function(){return h(),"function"==typeof e?e.apply(null,arguments):void 0}):(f=a.onreadystatechange,a.onreadystatechange=function(){return 4===a.readyState?h():0===a.readyState&&c(),"function"==typeof f?f.apply(null,arguments):void 0})},a.checks={},a.checks.xhr=function(){var c,d;d=new XMLHttpRequest,d.offline=!1,d.open(a.getOption("checks.xhr.type"),a.getOption("checks.xhr.url"),!0),null!=d.timeout&&(d.timeout=a.getOption("checks.xhr.timeout")),b(d,a.markUp,a.markDown);try{d.send()}catch(e){c=e,a.markDown()}return d},a.checks.image=function(){var b;b=document.createElement("img"),b.onerror=a.markDown,b.onload=a.markUp,b.src=a.getOption("checks.image.url")},a.checks.down=a.markDown,a.checks.up=a.markUp,a.check=function(){return a.trigger("checking"),a.checks[a.getOption("checks.active")]()},a.confirmUp=a.confirmDown=a.check,a.onXHR=function(a){var b,c,e;return e=function(b,c){var d;return d=b.open,b.open=function(e,f,g,h,i){return a({type:e,url:f,async:g,flags:c,user:h,password:i,xhr:b}),d.apply(b,arguments)}},c=window.XMLHttpRequest,window.XMLHttpRequest=function(a){var b,d,f;return f=new c(a),e(f,a),d=f.setRequestHeader,f.headers={},f.setRequestHeader=function(a,b){return f.headers[a]=b,d.call(f,a,b)},b=f.overrideMimeType,f.overrideMimeType=function(a){return f.mimeType=a,b.call(f,a)},f},d(window.XMLHttpRequest,c),null!=window.XDomainRequest?(b=window.XDomainRequest,window.XDomainRequest=function(){var a;return a=new b,e(a),a},d(window.XDomainRequest,b)):void 0},g=function(){return a.getOption("interceptRequests")&&a.onXHR(function(c){var d;return d=c.xhr,d.offline!==!1?b(d,a.markUp,a.confirmDown):void 0}),a.getOption("checkOnLoad")?a.check():void 0},setTimeout(g,0),window.Offline=a}).call(this),function(){var a,b,c,d,e,f,g,h,i;if(!window.Offline)throw new Error("Offline Reconnect brought in without offline.js");d=Offline.reconnect={},f=null,e=function(){var a;return null!=d.state&&"inactive"!==d.state&&Offline.trigger("reconnect:stopped"),d.state="inactive",d.remaining=d.delay=null!=(a=Offline.getOption("reconnect.initialDelay"))?a:3},b=function(){var a,b;return a=null!=(b=Offline.getOption("reconnect.delay"))?b:Math.min(Math.ceil(1.5*d.delay),3600),d.remaining=d.delay=a},g=function(){return"connecting"!==d.state?(d.remaining-=1,Offline.trigger("reconnect:tick"),0===d.remaining?h():void 0):void 0},h=function(){return"waiting"===d.state?(Offline.trigger("reconnect:connecting"),d.state="connecting",Offline.check()):void 0},a=function(){return Offline.getOption("reconnect")?(e(),d.state="waiting",Offline.trigger("reconnect:started"),f=setInterval(g,1e3)):void 0},i=function(){return null!=f&&clearInterval(f),e()},c=function(){return Offline.getOption("reconnect")&&"connecting"===d.state?(Offline.trigger("reconnect:failure"),d.state="waiting",b()):void 0},d.tryNow=h,e(),Offline.on("down",a),Offline.on("confirmed-down",c),Offline.on("up",i)}.call(this),function(){var a,b,c,d,e,f;if(!window.Offline)throw new Error("Requests module brought in without offline.js");c=[],f=!1,d=function(a){return Offline.getOption("requests")!==!1?(Offline.trigger("requests:capture"),"down"!==Offline.state&&(f=!0),c.push(a)):void 0},e=function(a){var b,c,d,e,f,g,h,i,j;if(j=a.xhr,g=a.url,f=a.type,h=a.user,d=a.password,b=a.body,Offline.getOption("requests")!==!1){j.abort(),j.open(f,g,!0,h,d),e=j.headers;for(c in e)i=e[c],j.setRequestHeader(c,i);return j.mimeType&&j.overrideMimeType(j.mimeType),j.send(b)}},a=function(){return c=[]},b=function(){var b,d,f,g,h,i,j;if(Offline.getOption("requests")!==!1){for(Offline.trigger("requests:flush"),i={},d=0,g=c.length;g>d;d++)h=c[d],j=h.url.replace(/(\?|&)_=[0-9]+/,function(a,b){return"?"===b?b:""}),Offline.getOption("deDupBody")?(b=h.body,b="[object Object]"===b.toString()?JSON.stringify(b):b.toString(),i[h.type.toUpperCase()+" - "+j+" - "+b]=h):i[h.type.toUpperCase()+" - "+j]=h;for(f in i)h=i[f],e(h);return a()}},setTimeout(function(){return Offline.getOption("requests")!==!1?(Offline.on("confirmed-up",function(){return f?(f=!1,a()):void 0}),Offline.on("up",b),Offline.on("down",function(){return f=!1}),Offline.onXHR(function(a){var b,c,e,f,g;return g=a.xhr,e=a.async,g.offline!==!1&&(f=function(){return d(a)},c=g.send,g.send=function(b){return a.body=b,c.apply(g,arguments)},e)?null===g.onprogress?(g.addEventListener("error",f,!1),g.addEventListener("timeout",f,!1)):(b=g.onreadystatechange,g.onreadystatechange=function(){return 0===g.readyState?f():4===g.readyState&&(0===g.status||g.status>=12e3)&&f(),"function"==typeof b?b.apply(null,arguments):void 0}):void 0}),Offline.requests={flush:b,clear:a}):void 0},0)}.call(this),function(){var a,b,c,d,e,f,g;if(!Offline)throw new Error("Offline simulate brought in without offline.js");for(e=["up","down"],c=0,d=e.length;d>c;c++){g=e[c];try{f=document.querySelector("script[data-simulate='"+g+"']")||("undefined"!=typeof localStorage&&null!==localStorage?localStorage.OFFLINE_SIMULATE:void 0)===g}catch(h){b=h,f=!1}}f&&(null==Offline.options&&(Offline.options={}),null==(a=Offline.options).checks&&(a.checks={}),Offline.options.checks.active=g)}.call(this),function(){var a,b,c,d,e,f,g,h,i,j,k,l,m;if(!window.Offline)throw new Error("Offline UI brought in without offline.js");b='
',a='',f=function(a){var b;return b=document.createElement("div"),b.innerHTML=a,b.children[0]},g=e=null,d=function(a){return k(a),g.className+=" "+a},k=function(a){return g.className=g.className.replace(new RegExp("(^| )"+a.split(" ").join("|")+"( |$)","gi")," ")},i={},h=function(a,b){return d(a),null!=i[a]&&clearTimeout(i[a]),i[a]=setTimeout(function(){return k(a),delete i[a]},1e3*b)},m=function(a){var b,c,d,e;d={day:86400,hour:3600,minute:60,second:1};for(c in d)if(b=d[c],a>=b)return e=Math.floor(a/b),[e,c];return["now",""]},l=function(){var c,h;return g=f(b),document.body.appendChild(g),null!=Offline.reconnect&&Offline.getOption("reconnect")&&(g.appendChild(f(a)),c=g.querySelector(".offline-ui-retry"),h=function(a){return a.preventDefault(),Offline.reconnect.tryNow()},null!=c.addEventListener?c.addEventListener("click",h,!1):c.attachEvent("click",h)),d("offline-ui-"+Offline.state),e=g.querySelector(".offline-ui-content")},j=function(){return l(),Offline.on("up",function(){return k("offline-ui-down"),d("offline-ui-up"),h("offline-ui-up-2s",2),h("offline-ui-up-5s",5)}),Offline.on("down",function(){return k("offline-ui-up"),d("offline-ui-down"),h("offline-ui-down-2s",2),h("offline-ui-down-5s",5)}),Offline.on("reconnect:connecting",function(){return d("offline-ui-connecting"),k("offline-ui-waiting")}),Offline.on("reconnect:tick",function(){var a,b,c;return d("offline-ui-waiting"),k("offline-ui-connecting"),a=m(Offline.reconnect.remaining),b=a[0],c=a[1],e.setAttribute("data-retry-in-value",b),e.setAttribute("data-retry-in-unit",c)}),Offline.on("reconnect:stopped",function(){return k("offline-ui-connecting offline-ui-waiting"),e.setAttribute("data-retry-in-value",null),e.setAttribute("data-retry-in-unit",null)}),Offline.on("reconnect:failure",function(){return h("offline-ui-reconnect-failed-2s",2),h("offline-ui-reconnect-failed-5s",5)}),Offline.on("reconnect:success",function(){return h("offline-ui-reconnect-succeeded-2s",2),h("offline-ui-reconnect-succeeded-5s",5)})},"complete"===document.readyState?j():null!=document.addEventListener?document.addEventListener("DOMContentLoaded",j,!1):(c=document.onreadystatechange,document.onreadystatechange=function(){return"complete"===document.readyState&&j(),"function"==typeof c?c.apply(null,arguments):void 0})}.call(this); \ No newline at end of file diff --git a/package.json b/package.json index f289b64..3f64d39 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "offline-js", - "version": "0.7.17", + "version": "0.7.18", "description": "Automatically detect when a browser is offline", "authors": [ "Adam Schwartz ", From f02bed3e4c46d513eddbc8ef27814d6a4add4dc8 Mon Sep 17 00:00:00 2001 From: Muhannad Abdelrazek Date: Fri, 15 Jul 2016 14:25:05 +0200 Subject: [PATCH 28/49] add arabic translation --- sass/_arabic.sass | 51 +++++++++++++++++++++ sass/offline-language-arabic-indicator.sass | 11 +++++ sass/offline-language-arabic.sass | 4 ++ 3 files changed, 66 insertions(+) create mode 100644 sass/_arabic.sass create mode 100644 sass/offline-language-arabic-indicator.sass create mode 100644 sass/offline-language-arabic.sass diff --git a/sass/_arabic.sass b/sass/_arabic.sass new file mode 100644 index 0000000..1e679ae --- /dev/null +++ b/sass/_arabic.sass @@ -0,0 +1,51 @@ +$upComputer: "الحاسوب متصلا بالإنترنت." +$upDevice: "جهازك متصل بالإنترنت" +$upDeviceSmall: "جهازك متصل." + + +$downComputer: "الحاسوب فقد الاتصال بالإنترنت." +$downDevice: "جهازك فقد الاتصال بالإنترنت." +$downDeviceSmall: "جهازك غير متصل." + +$connecting: "محاولة إعادة الاتصال ..." + +$retryButton: "إعادة الاتصال " + +$reconnectFailed: "فشلت محاولة الاتصال." + +$retryingSecondBeforeValueSingularComputer: "الاتصال فقد. إعادة الاتصال في " +$retryingSecondBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingMinuteBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer +$retryingMinuteBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingHourBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer +$retryingHourBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingSecondBeforeValueSingularDeviceSmall: "إعادة الاتصال في " +$retryingSecondBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingMinuteBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall +$retryingMinuteBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingHourBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall +$retryingHourBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingSecondAfterValueSingularComputer: " ثانية..." +$retryingSecondAfterValuePluralComputer: " ثواني..." + +$retryingSecondAfterValueSingularDeviceSmall: "ث..." +$retryingSecondAfterValuePluralDeviceSmall: $retryingSecondAfterValueSingularDeviceSmall + +$retryingMinuteAfterValueSingularComputer: " دقيقة..." +$retryingMinuteAfterValuePluralComputer: " دقائق..." + +$retryingMinuteAfterValueSingularDeviceSmall: "د..." +$retryingMinuteAfterValuePluralDeviceSmall: $retryingMinuteAfterValueSingularDeviceSmall + +$retryingHourAfterValueSingularComputer: " ساعه..." +$retryingHourAfterValuePluralComputer: " ساعات..." + +$retryingHourAfterValueSingularDeviceSmall: "س..." +$retryingHourAfterValuePluralDeviceSmall: +$retryingHourAfterValueSingularDeviceSmall \ No newline at end of file diff --git a/sass/offline-language-arabic-indicator.sass b/sass/offline-language-arabic-indicator.sass new file mode 100644 index 0000000..8a32051 --- /dev/null +++ b/sass/offline-language-arabic-indicator.sass @@ -0,0 +1,11 @@ +.offline-ui + + &.offline-ui-up + + .offline-ui-content:before + content: "متصل." + + &.offline-ui-down + + .offline-ui-content:before + content: "غير متصل." \ No newline at end of file diff --git a/sass/offline-language-arabic.sass b/sass/offline-language-arabic.sass new file mode 100644 index 0000000..cbad016 --- /dev/null +++ b/sass/offline-language-arabic.sass @@ -0,0 +1,4 @@ +@import content +@import arabic + ++offline-content \ No newline at end of file From ffdec0062ce3e731fb65df8fb298e38d0887e3f7 Mon Sep 17 00:00:00 2001 From: Muhannad Abdelrazek Date: Fri, 15 Jul 2016 14:33:26 +0200 Subject: [PATCH 29/49] edit arabic transition --- sass/_arabic.sass | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/sass/_arabic.sass b/sass/_arabic.sass index 1e679ae..ececaa1 100644 --- a/sass/_arabic.sass +++ b/sass/_arabic.sass @@ -1,19 +1,19 @@ -$upComputer: "الحاسوب متصلا بالإنترنت." +$upComputer: "الحاسوب متصل بالإنترنت." $upDevice: "جهازك متصل بالإنترنت" -$upDeviceSmall: "جهازك متصل." +$upDeviceSmall: ".جهازك متصل" -$downComputer: "الحاسوب فقد الاتصال بالإنترنت." -$downDevice: "جهازك فقد الاتصال بالإنترنت." -$downDeviceSmall: "جهازك غير متصل." +$downComputer: ".الحاسوب فقد الاتصال بالإنترنت" +$downDevice: ".جهازك فقد الاتصال بالإنترنت" +$downDeviceSmall: ".جهازك غير متصل" -$connecting: "محاولة إعادة الاتصال ..." +$connecting: "...محاولة إعادة الاتصال" -$retryButton: "إعادة الاتصال " +$retryButton: " إعادة الاتصال" -$reconnectFailed: "فشلت محاولة الاتصال." +$reconnectFailed: ".فشلت محاولة الاتصال" -$retryingSecondBeforeValueSingularComputer: "الاتصال فقد. إعادة الاتصال في " +$retryingSecondBeforeValueSingularComputer: " الاتصال فقد إعادة الاتصال في" $retryingSecondBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer $retryingMinuteBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer @@ -22,7 +22,7 @@ $retryingMinuteBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComp $retryingHourBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer $retryingHourBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer -$retryingSecondBeforeValueSingularDeviceSmall: "إعادة الاتصال في " +$retryingSecondBeforeValueSingularDeviceSmall: " إعادة الاتصال في" $retryingSecondBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall $retryingMinuteBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall @@ -31,21 +31,21 @@ $retryingMinuteBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularD $retryingHourBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall $retryingHourBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall -$retryingSecondAfterValueSingularComputer: " ثانية..." -$retryingSecondAfterValuePluralComputer: " ثواني..." +$retryingSecondAfterValueSingularComputer: " ...ثانية" +$retryingSecondAfterValuePluralComputer: " ...ثواني" -$retryingSecondAfterValueSingularDeviceSmall: "ث..." +$retryingSecondAfterValueSingularDeviceSmall: "...ث" $retryingSecondAfterValuePluralDeviceSmall: $retryingSecondAfterValueSingularDeviceSmall -$retryingMinuteAfterValueSingularComputer: " دقيقة..." -$retryingMinuteAfterValuePluralComputer: " دقائق..." +$retryingMinuteAfterValueSingularComputer: " ...دقيقة" +$retryingMinuteAfterValuePluralComputer: " ...دقائق" -$retryingMinuteAfterValueSingularDeviceSmall: "د..." +$retryingMinuteAfterValueSingularDeviceSmall: "...د" $retryingMinuteAfterValuePluralDeviceSmall: $retryingMinuteAfterValueSingularDeviceSmall -$retryingHourAfterValueSingularComputer: " ساعه..." -$retryingHourAfterValuePluralComputer: " ساعات..." +$retryingHourAfterValueSingularComputer: " ...ساعه" +$retryingHourAfterValuePluralComputer: " ...ساعات" -$retryingHourAfterValueSingularDeviceSmall: "س..." +$retryingHourAfterValueSingularDeviceSmall: "...س" $retryingHourAfterValuePluralDeviceSmall: -$retryingHourAfterValueSingularDeviceSmall \ No newline at end of file +$retryingHourAfterValueSingularDeviceSmall From c722412ac0cf75e53d4ffcc70063fa6c3ba07e55 Mon Sep 17 00:00:00 2001 From: Mateusz Gachowski Date: Wed, 2 Nov 2016 11:38:43 +0100 Subject: [PATCH 30/49] Polish translations added --- sass/_polish.sass | 49 +++++++++++++++++++++ sass/offline-language-polish-indicator.sass | 11 +++++ sass/offline-language-polish.sass | 4 ++ 3 files changed, 64 insertions(+) create mode 100644 sass/_polish.sass create mode 100644 sass/offline-language-polish-indicator.sass create mode 100644 sass/offline-language-polish.sass diff --git a/sass/_polish.sass b/sass/_polish.sass new file mode 100644 index 0000000..a5d6cab --- /dev/null +++ b/sass/_polish.sass @@ -0,0 +1,49 @@ +$upComputer: "Twój komputer jest podłączony do internetu." +$upDevice: "Twoje urządzenie jest podłączone do internetu." +$upDeviceSmall: "Twoje urządzenie jest podłączone." + +$downComputer: "Twój komputer stracił połączenie z internetem." +$downDevice: "Twóje urządzenie straciło połączenie z internetem." +$downDeviceSmall: "Twóje urządzenie nie jest podłączone." + +$connecting: "Próbuję połączyć..." + +$retryButton: "Połącz teraz" + +$reconnectFailed: "Nieudana próba podłączenia." + +$retryingSecondBeforeValueSingularComputer: "Połączenie utracone. Ponawiam za " +$retryingSecondBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingMinuteBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer +$retryingMinuteBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingHourBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer +$retryingHourBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingSecondBeforeValueSingularDeviceSmall: "Ponawiam za " +$retryingSecondBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingMinuteBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall +$retryingMinuteBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingHourBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall +$retryingHourBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingSecondAfterValueSingularComputer: " sekundę..." +$retryingSecondAfterValuePluralComputer: " sekund..." + +$retryingSecondAfterValueSingularDeviceSmall: "s..." +$retryingSecondAfterValuePluralDeviceSmall: $retryingSecondAfterValueSingularDeviceSmall + +$retryingMinuteAfterValueSingularComputer: " minutę..." +$retryingMinuteAfterValuePluralComputer: " minut..." + +$retryingMinuteAfterValueSingularDeviceSmall: "m..." +$retryingMinuteAfterValuePluralDeviceSmall: $retryingMinuteAfterValueSingularDeviceSmall + +$retryingHourAfterValueSingularComputer: " godzinę..." +$retryingHourAfterValuePluralComputer: " godzin..." + +$retryingHourAfterValueSingularDeviceSmall: "h..." +$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall diff --git a/sass/offline-language-polish-indicator.sass b/sass/offline-language-polish-indicator.sass new file mode 100644 index 0000000..39e4567 --- /dev/null +++ b/sass/offline-language-polish-indicator.sass @@ -0,0 +1,11 @@ +.offline-ui + + &.offline-ui-up + + .offline-ui-content:before + content: "Połączony" + + &.offline-ui-down + + .offline-ui-content:before + content: "Rozłączony" diff --git a/sass/offline-language-polish.sass b/sass/offline-language-polish.sass new file mode 100644 index 0000000..0e8b0c1 --- /dev/null +++ b/sass/offline-language-polish.sass @@ -0,0 +1,4 @@ +@import content +@import polish + ++offline-content From abb72aff9de4a516c42e14fbe5cc98949e2bbf80 Mon Sep 17 00:00:00 2001 From: Mateusz Gachowski Date: Wed, 2 Nov 2016 11:38:59 +0100 Subject: [PATCH 31/49] Update install.json with polish langauge props --- install.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/install.json b/install.json index b8cd3f1..b2fc4af 100644 --- a/install.json +++ b/install.json @@ -47,7 +47,8 @@ "portuguese-brazil", "spanish", "italian", - "turkish" + "turkish", + "polish" ], "enumNames": { "dutch": "Dutch", @@ -57,7 +58,8 @@ "portuguese-brazil": "Brazilian Portuguese", "spanish": "Spanish", "italian": "Italian", - "turkish": "Turkish" + "turkish": "Turkish", + "polish": "Polish" }, "default": "english" }, From 8425406df99a68a04fd4be7ba73a3acb090bf04d Mon Sep 17 00:00:00 2001 From: Mateusz Gachowski Date: Wed, 2 Nov 2016 11:40:23 +0100 Subject: [PATCH 32/49] New compiled JS --- offline.js | 60 +++++++++++++++++++++++++------------------------- offline.min.js | 2 +- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/offline.js b/offline.js index 1d16ae2..7d02701 100644 --- a/offline.js +++ b/offline.js @@ -33,7 +33,7 @@ deDupBody:!1 }, grab = function(obj, key) { var cur, i, j, len, part, parts; - for (cur = obj, parts = key.split("."), i = j = 0, len = parts.length; len > j && (part = parts[i], + for (cur = obj, parts = key.split("."), i = j = 0, len = parts.length; j < len && (part = parts[i], cur = cur[part], "object" == typeof cur); i = ++j) ; return i === parts.length - 1 ? cur :void 0; }, Offline.getOption = function(key) { @@ -45,15 +45,15 @@ }, !1), "function" == typeof window.addEventListener && window.addEventListener("offline", function() { return Offline.confirmDown(); }, !1), Offline.state = "up", Offline.markUp = function() { - return Offline.trigger("confirmed-up"), "up" !== Offline.state ? (Offline.state = "up", - Offline.trigger("up")) :void 0; + if (Offline.trigger("confirmed-up"), "up" !== Offline.state) return Offline.state = "up", + Offline.trigger("up"); }, Offline.markDown = function() { - return Offline.trigger("confirmed-down"), "down" !== Offline.state ? (Offline.state = "down", - Offline.trigger("down")) :void 0; + if (Offline.trigger("confirmed-down"), "down" !== Offline.state) return Offline.state = "down", + Offline.trigger("down"); }, handlers = {}, Offline.on = function(event, handler, ctx) { var e, events, j, len, results; if (events = event.split(" "), events.length > 1) { - for (results = [], j = 0, len = events.length; len > j; j++) e = events[j], results.push(Offline.on(e, handler, ctx)); + for (results = [], j = 0, len = events.length; j < len; j++) e = events[j], results.push(Offline.on(e, handler, ctx)); return results; } return null == handlers[event] && (handlers[event] = []), handlers[event].push([ ctx, handler ]); @@ -70,7 +70,7 @@ }, Offline.trigger = function(event) { var ctx, handler, j, len, ref, ref1, results; if (null != handlers[event]) { - for (ref = handlers[event].slice(0), results = [], j = 0, len = ref.length; len > j; j++) ref1 = ref[j], + for (ref = handlers[event].slice(0), results = [], j = 0, len = ref.length; j < len; j++) ref1 = ref[j], ctx = ref1[0], handler = ref1[1], results.push(handler.call(ctx)); return results; } @@ -106,7 +106,7 @@ return Offline.trigger("checking"), Offline.checks[Offline.getOption("checks.active")](); }, Offline.confirmUp = Offline.confirmDown = Offline.check, Offline.onXHR = function(cb) { var _XDomainRequest, _XMLHttpRequest, monitorXHR; - return monitorXHR = function(req, flags) { + if (monitorXHR = function(req, flags) { var _open; return _open = req.open, req.open = function(type, url, async, user, password) { return cb({ @@ -127,16 +127,16 @@ }, _overrideMimeType = req.overrideMimeType, req.overrideMimeType = function(type) { return req.mimeType = type, _overrideMimeType.call(req, type); }, req; - }, extendNative(window.XMLHttpRequest, _XMLHttpRequest), null != window.XDomainRequest ? (_XDomainRequest = window.XDomainRequest, + }, extendNative(window.XMLHttpRequest, _XMLHttpRequest), null != window.XDomainRequest) return _XDomainRequest = window.XDomainRequest, window.XDomainRequest = function() { var req; return req = new _XDomainRequest(), monitorXHR(req), req; - }, extendNative(window.XDomainRequest, _XDomainRequest)) :void 0; + }, extendNative(window.XDomainRequest, _XDomainRequest); }, init = function() { - return Offline.getOption("interceptRequests") && Offline.onXHR(function(arg) { + if (Offline.getOption("interceptRequests") && Offline.onXHR(function(arg) { var xhr; - return xhr = arg.xhr, xhr.offline !== !1 ? checkXHR(xhr, Offline.markUp, Offline.confirmDown) :void 0; - }), Offline.getOption("checkOnLoad") ? Offline.check() :void 0; + if (xhr = arg.xhr, xhr.offline !== !1) return checkXHR(xhr, Offline.markUp, Offline.confirmDown); + }), Offline.getOption("checkOnLoad")) return Offline.check(); }, setTimeout(init, 0), window.Offline = Offline; }).call(this), function() { var down, next, nope, rc, reset, retryIntv, tick, tryNow, up; @@ -150,18 +150,18 @@ return delay = null != (ref = Offline.getOption("reconnect.delay")) ? ref :Math.min(Math.ceil(1.5 * rc.delay), 3600), rc.remaining = rc.delay = delay; }, tick = function() { - return "connecting" !== rc.state ? (rc.remaining -= 1, Offline.trigger("reconnect:tick"), - 0 === rc.remaining ? tryNow() :void 0) :void 0; + if ("connecting" !== rc.state) return rc.remaining -= 1, Offline.trigger("reconnect:tick"), + 0 === rc.remaining ? tryNow() :void 0; }, tryNow = function() { - return "waiting" === rc.state ? (Offline.trigger("reconnect:connecting"), rc.state = "connecting", - Offline.check()) :void 0; + if ("waiting" === rc.state) return Offline.trigger("reconnect:connecting"), rc.state = "connecting", + Offline.check(); }, down = function() { - return Offline.getOption("reconnect") ? (reset(), rc.state = "waiting", Offline.trigger("reconnect:started"), - retryIntv = setInterval(tick, 1e3)) :void 0; + if (Offline.getOption("reconnect")) return reset(), rc.state = "waiting", Offline.trigger("reconnect:started"), + retryIntv = setInterval(tick, 1e3); }, up = function() { return null != retryIntv && clearInterval(retryIntv), reset(); }, nope = function() { - return Offline.getOption("reconnect") && "connecting" === rc.state ? (Offline.trigger("reconnect:failure"), + if (Offline.getOption("reconnect")) return "connecting" === rc.state ? (Offline.trigger("reconnect:failure"), rc.state = "waiting", next()) :void 0; }, rc.tryNow = tryNow, reset(), Offline.on("down", down), Offline.on("confirmed-down", nope), Offline.on("up", up); @@ -169,8 +169,8 @@ var clear, flush, held, holdRequest, makeRequest, waitingOnConfirm; if (!window.Offline) throw new Error("Requests module brought in without offline.js"); held = [], waitingOnConfirm = !1, holdRequest = function(req) { - return Offline.getOption("requests") !== !1 ? (Offline.trigger("requests:capture"), - "down" !== Offline.state && (waitingOnConfirm = !0), held.push(req)) :void 0; + if (Offline.getOption("requests") !== !1) return Offline.trigger("requests:capture"), + "down" !== Offline.state && (waitingOnConfirm = !0), held.push(req); }, makeRequest = function(arg) { var body, name, password, ref, type, url, user, val, xhr; if (xhr = arg.xhr, url = arg.url, type = arg.type, user = arg.user, password = arg.password, @@ -184,7 +184,7 @@ }, flush = function() { var body, i, key, len, request, requests, url; if (Offline.getOption("requests") !== !1) { - for (Offline.trigger("requests:flush"), requests = {}, i = 0, len = held.length; len > i; i++) request = held[i], + for (Offline.trigger("requests:flush"), requests = {}, i = 0, len = held.length; i < len; i++) request = held[i], url = request.url.replace(/(\?|&)_=[0-9]+/, function(match, chr) { return "?" === chr ? chr :""; }), Offline.getOption("deDupBody") ? (body = request.body, body = "[object Object]" === body.toString() ? JSON.stringify(body) :body.toString(), @@ -193,31 +193,31 @@ return clear(); } }, setTimeout(function() { - return Offline.getOption("requests") !== !1 ? (Offline.on("confirmed-up", function() { - return waitingOnConfirm ? (waitingOnConfirm = !1, clear()) :void 0; + if (Offline.getOption("requests") !== !1) return Offline.on("confirmed-up", function() { + if (waitingOnConfirm) return waitingOnConfirm = !1, clear(); }), Offline.on("up", flush), Offline.on("down", function() { return waitingOnConfirm = !1; }), Offline.onXHR(function(request) { var _onreadystatechange, _send, async, hold, xhr; - return xhr = request.xhr, async = request.async, xhr.offline !== !1 && (hold = function() { + if (xhr = request.xhr, async = request.async, xhr.offline !== !1 && (hold = function() { return holdRequest(request); }, _send = xhr.send, xhr.send = function(body) { return request.body = body, _send.apply(xhr, arguments); - }, async) ? null === xhr.onprogress ? (xhr.addEventListener("error", hold, !1), + }, async)) return null === xhr.onprogress ? (xhr.addEventListener("error", hold, !1), xhr.addEventListener("timeout", hold, !1)) :(_onreadystatechange = xhr.onreadystatechange, xhr.onreadystatechange = function() { return 0 === xhr.readyState ? hold() :4 === xhr.readyState && (0 === xhr.status || xhr.status >= 12e3) && hold(), "function" == typeof _onreadystatechange ? _onreadystatechange.apply(null, arguments) :void 0; - }) :void 0; + }); }), Offline.requests = { flush:flush, clear:clear - }) :void 0; + }; }, 0); }.call(this), function() { var base, e, i, len, ref, simulate, state; if (!Offline) throw new Error("Offline simulate brought in without offline.js"); - for (ref = [ "up", "down" ], i = 0, len = ref.length; len > i; i++) { + for (ref = [ "up", "down" ], i = 0, len = ref.length; i < len; i++) { state = ref[i]; try { simulate = document.querySelector("script[data-simulate='" + state + "']") || ("undefined" != typeof localStorage && null !== localStorage ? localStorage.OFFLINE_SIMULATE :void 0) === state; diff --git a/offline.min.js b/offline.min.js index e5c33f8..b6bd15c 100644 --- a/offline.min.js +++ b/offline.min.js @@ -1,2 +1,2 @@ /*! offline-js 0.7.18 */ -(function(){var a,b,c,d,e,f,g;d=function(a,b){var c,d,e,f;e=[];for(d in b.prototype)try{f=b.prototype[d],null==a[d]&&"function"!=typeof f?e.push(a[d]=f):e.push(void 0)}catch(g){c=g}return e},a={},a.options=window.Offline?window.Offline.options||{}:{},c={checks:{xhr:{url:function(){return"/favicon.ico?_="+(new Date).getTime()},timeout:5e3,type:"HEAD"},image:{url:function(){return"/favicon.ico?_="+(new Date).getTime()}},active:"xhr"},checkOnLoad:!1,interceptRequests:!0,reconnect:!0,deDupBody:!1},e=function(a,b){var c,d,e,f,g,h;for(c=a,h=b.split("."),d=e=0,f=h.length;f>e&&(g=h[d],c=c[g],"object"==typeof c);d=++e);return d===h.length-1?c:void 0},a.getOption=function(b){var d,f;return f=null!=(d=e(a.options,b))?d:e(c,b),"function"==typeof f?f():f},"function"==typeof window.addEventListener&&window.addEventListener("online",function(){return setTimeout(a.confirmUp,100)},!1),"function"==typeof window.addEventListener&&window.addEventListener("offline",function(){return a.confirmDown()},!1),a.state="up",a.markUp=function(){return a.trigger("confirmed-up"),"up"!==a.state?(a.state="up",a.trigger("up")):void 0},a.markDown=function(){return a.trigger("confirmed-down"),"down"!==a.state?(a.state="down",a.trigger("down")):void 0},f={},a.on=function(b,c,d){var e,g,h,i,j;if(g=b.split(" "),g.length>1){for(j=[],h=0,i=g.length;i>h;h++)e=g[h],j.push(a.on(e,c,d));return j}return null==f[b]&&(f[b]=[]),f[b].push([d,c])},a.off=function(a,b){var c,d,e,g,h;if(null!=f[a]){if(b){for(e=0,h=[];ed;d++)h=g[d],b=h[0],c=h[1],i.push(c.call(b));return i}},b=function(a,b,c){var d,e,f,g,h;return h=function(){return a.status&&a.status<12e3?b():c()},null===a.onprogress?(d=a.onerror,a.onerror=function(){return c(),"function"==typeof d?d.apply(null,arguments):void 0},g=a.ontimeout,a.ontimeout=function(){return c(),"function"==typeof g?g.apply(null,arguments):void 0},e=a.onload,a.onload=function(){return h(),"function"==typeof e?e.apply(null,arguments):void 0}):(f=a.onreadystatechange,a.onreadystatechange=function(){return 4===a.readyState?h():0===a.readyState&&c(),"function"==typeof f?f.apply(null,arguments):void 0})},a.checks={},a.checks.xhr=function(){var c,d;d=new XMLHttpRequest,d.offline=!1,d.open(a.getOption("checks.xhr.type"),a.getOption("checks.xhr.url"),!0),null!=d.timeout&&(d.timeout=a.getOption("checks.xhr.timeout")),b(d,a.markUp,a.markDown);try{d.send()}catch(e){c=e,a.markDown()}return d},a.checks.image=function(){var b;b=document.createElement("img"),b.onerror=a.markDown,b.onload=a.markUp,b.src=a.getOption("checks.image.url")},a.checks.down=a.markDown,a.checks.up=a.markUp,a.check=function(){return a.trigger("checking"),a.checks[a.getOption("checks.active")]()},a.confirmUp=a.confirmDown=a.check,a.onXHR=function(a){var b,c,e;return e=function(b,c){var d;return d=b.open,b.open=function(e,f,g,h,i){return a({type:e,url:f,async:g,flags:c,user:h,password:i,xhr:b}),d.apply(b,arguments)}},c=window.XMLHttpRequest,window.XMLHttpRequest=function(a){var b,d,f;return f=new c(a),e(f,a),d=f.setRequestHeader,f.headers={},f.setRequestHeader=function(a,b){return f.headers[a]=b,d.call(f,a,b)},b=f.overrideMimeType,f.overrideMimeType=function(a){return f.mimeType=a,b.call(f,a)},f},d(window.XMLHttpRequest,c),null!=window.XDomainRequest?(b=window.XDomainRequest,window.XDomainRequest=function(){var a;return a=new b,e(a),a},d(window.XDomainRequest,b)):void 0},g=function(){return a.getOption("interceptRequests")&&a.onXHR(function(c){var d;return d=c.xhr,d.offline!==!1?b(d,a.markUp,a.confirmDown):void 0}),a.getOption("checkOnLoad")?a.check():void 0},setTimeout(g,0),window.Offline=a}).call(this),function(){var a,b,c,d,e,f,g,h,i;if(!window.Offline)throw new Error("Offline Reconnect brought in without offline.js");d=Offline.reconnect={},f=null,e=function(){var a;return null!=d.state&&"inactive"!==d.state&&Offline.trigger("reconnect:stopped"),d.state="inactive",d.remaining=d.delay=null!=(a=Offline.getOption("reconnect.initialDelay"))?a:3},b=function(){var a,b;return a=null!=(b=Offline.getOption("reconnect.delay"))?b:Math.min(Math.ceil(1.5*d.delay),3600),d.remaining=d.delay=a},g=function(){return"connecting"!==d.state?(d.remaining-=1,Offline.trigger("reconnect:tick"),0===d.remaining?h():void 0):void 0},h=function(){return"waiting"===d.state?(Offline.trigger("reconnect:connecting"),d.state="connecting",Offline.check()):void 0},a=function(){return Offline.getOption("reconnect")?(e(),d.state="waiting",Offline.trigger("reconnect:started"),f=setInterval(g,1e3)):void 0},i=function(){return null!=f&&clearInterval(f),e()},c=function(){return Offline.getOption("reconnect")&&"connecting"===d.state?(Offline.trigger("reconnect:failure"),d.state="waiting",b()):void 0},d.tryNow=h,e(),Offline.on("down",a),Offline.on("confirmed-down",c),Offline.on("up",i)}.call(this),function(){var a,b,c,d,e,f;if(!window.Offline)throw new Error("Requests module brought in without offline.js");c=[],f=!1,d=function(a){return Offline.getOption("requests")!==!1?(Offline.trigger("requests:capture"),"down"!==Offline.state&&(f=!0),c.push(a)):void 0},e=function(a){var b,c,d,e,f,g,h,i,j;if(j=a.xhr,g=a.url,f=a.type,h=a.user,d=a.password,b=a.body,Offline.getOption("requests")!==!1){j.abort(),j.open(f,g,!0,h,d),e=j.headers;for(c in e)i=e[c],j.setRequestHeader(c,i);return j.mimeType&&j.overrideMimeType(j.mimeType),j.send(b)}},a=function(){return c=[]},b=function(){var b,d,f,g,h,i,j;if(Offline.getOption("requests")!==!1){for(Offline.trigger("requests:flush"),i={},d=0,g=c.length;g>d;d++)h=c[d],j=h.url.replace(/(\?|&)_=[0-9]+/,function(a,b){return"?"===b?b:""}),Offline.getOption("deDupBody")?(b=h.body,b="[object Object]"===b.toString()?JSON.stringify(b):b.toString(),i[h.type.toUpperCase()+" - "+j+" - "+b]=h):i[h.type.toUpperCase()+" - "+j]=h;for(f in i)h=i[f],e(h);return a()}},setTimeout(function(){return Offline.getOption("requests")!==!1?(Offline.on("confirmed-up",function(){return f?(f=!1,a()):void 0}),Offline.on("up",b),Offline.on("down",function(){return f=!1}),Offline.onXHR(function(a){var b,c,e,f,g;return g=a.xhr,e=a.async,g.offline!==!1&&(f=function(){return d(a)},c=g.send,g.send=function(b){return a.body=b,c.apply(g,arguments)},e)?null===g.onprogress?(g.addEventListener("error",f,!1),g.addEventListener("timeout",f,!1)):(b=g.onreadystatechange,g.onreadystatechange=function(){return 0===g.readyState?f():4===g.readyState&&(0===g.status||g.status>=12e3)&&f(),"function"==typeof b?b.apply(null,arguments):void 0}):void 0}),Offline.requests={flush:b,clear:a}):void 0},0)}.call(this),function(){var a,b,c,d,e,f,g;if(!Offline)throw new Error("Offline simulate brought in without offline.js");for(e=["up","down"],c=0,d=e.length;d>c;c++){g=e[c];try{f=document.querySelector("script[data-simulate='"+g+"']")||("undefined"!=typeof localStorage&&null!==localStorage?localStorage.OFFLINE_SIMULATE:void 0)===g}catch(h){b=h,f=!1}}f&&(null==Offline.options&&(Offline.options={}),null==(a=Offline.options).checks&&(a.checks={}),Offline.options.checks.active=g)}.call(this),function(){var a,b,c,d,e,f,g,h,i,j,k,l,m;if(!window.Offline)throw new Error("Offline UI brought in without offline.js");b='
',a='',f=function(a){var b;return b=document.createElement("div"),b.innerHTML=a,b.children[0]},g=e=null,d=function(a){return k(a),g.className+=" "+a},k=function(a){return g.className=g.className.replace(new RegExp("(^| )"+a.split(" ").join("|")+"( |$)","gi")," ")},i={},h=function(a,b){return d(a),null!=i[a]&&clearTimeout(i[a]),i[a]=setTimeout(function(){return k(a),delete i[a]},1e3*b)},m=function(a){var b,c,d,e;d={day:86400,hour:3600,minute:60,second:1};for(c in d)if(b=d[c],a>=b)return e=Math.floor(a/b),[e,c];return["now",""]},l=function(){var c,h;return g=f(b),document.body.appendChild(g),null!=Offline.reconnect&&Offline.getOption("reconnect")&&(g.appendChild(f(a)),c=g.querySelector(".offline-ui-retry"),h=function(a){return a.preventDefault(),Offline.reconnect.tryNow()},null!=c.addEventListener?c.addEventListener("click",h,!1):c.attachEvent("click",h)),d("offline-ui-"+Offline.state),e=g.querySelector(".offline-ui-content")},j=function(){return l(),Offline.on("up",function(){return k("offline-ui-down"),d("offline-ui-up"),h("offline-ui-up-2s",2),h("offline-ui-up-5s",5)}),Offline.on("down",function(){return k("offline-ui-up"),d("offline-ui-down"),h("offline-ui-down-2s",2),h("offline-ui-down-5s",5)}),Offline.on("reconnect:connecting",function(){return d("offline-ui-connecting"),k("offline-ui-waiting")}),Offline.on("reconnect:tick",function(){var a,b,c;return d("offline-ui-waiting"),k("offline-ui-connecting"),a=m(Offline.reconnect.remaining),b=a[0],c=a[1],e.setAttribute("data-retry-in-value",b),e.setAttribute("data-retry-in-unit",c)}),Offline.on("reconnect:stopped",function(){return k("offline-ui-connecting offline-ui-waiting"),e.setAttribute("data-retry-in-value",null),e.setAttribute("data-retry-in-unit",null)}),Offline.on("reconnect:failure",function(){return h("offline-ui-reconnect-failed-2s",2),h("offline-ui-reconnect-failed-5s",5)}),Offline.on("reconnect:success",function(){return h("offline-ui-reconnect-succeeded-2s",2),h("offline-ui-reconnect-succeeded-5s",5)})},"complete"===document.readyState?j():null!=document.addEventListener?document.addEventListener("DOMContentLoaded",j,!1):(c=document.onreadystatechange,document.onreadystatechange=function(){return"complete"===document.readyState&&j(),"function"==typeof c?c.apply(null,arguments):void 0})}.call(this); \ No newline at end of file +(function(){var a,b,c,d,e,f,g;d=function(a,b){var c,d,e,f;e=[];for(d in b.prototype)try{f=b.prototype[d],null==a[d]&&"function"!=typeof f?e.push(a[d]=f):e.push(void 0)}catch(g){c=g}return e},a={},a.options=window.Offline?window.Offline.options||{}:{},c={checks:{xhr:{url:function(){return"/favicon.ico?_="+(new Date).getTime()},timeout:5e3,type:"HEAD"},image:{url:function(){return"/favicon.ico?_="+(new Date).getTime()}},active:"xhr"},checkOnLoad:!1,interceptRequests:!0,reconnect:!0,deDupBody:!1},e=function(a,b){var c,d,e,f,g,h;for(c=a,h=b.split("."),d=e=0,f=h.length;e1){for(j=[],h=0,i=g.length;h=12e3)&&f(),"function"==typeof b?b.apply(null,arguments):void 0})}),Offline.requests={flush:b,clear:a}},0)}.call(this),function(){var a,b,c,d,e,f,g;if(!Offline)throw new Error("Offline simulate brought in without offline.js");for(e=["up","down"],c=0,d=e.length;c=b)return e=Math.floor(a/b),[e,c];return["now",""]},l=function(){var c,h;return g=f(b),document.body.appendChild(g),null!=Offline.reconnect&&Offline.getOption("reconnect")&&(g.appendChild(f(a)),c=g.querySelector(".offline-ui-retry"),h=function(a){return a.preventDefault(),Offline.reconnect.tryNow()},null!=c.addEventListener?c.addEventListener("click",h,!1):c.attachEvent("click",h)),d("offline-ui-"+Offline.state),e=g.querySelector(".offline-ui-content")},j=function(){return l(),Offline.on("up",function(){return k("offline-ui-down"),d("offline-ui-up"),h("offline-ui-up-2s",2),h("offline-ui-up-5s",5)}),Offline.on("down",function(){return k("offline-ui-up"),d("offline-ui-down"),h("offline-ui-down-2s",2),h("offline-ui-down-5s",5)}),Offline.on("reconnect:connecting",function(){return d("offline-ui-connecting"),k("offline-ui-waiting")}),Offline.on("reconnect:tick",function(){var a,b,c;return d("offline-ui-waiting"),k("offline-ui-connecting"),a=m(Offline.reconnect.remaining),b=a[0],c=a[1],e.setAttribute("data-retry-in-value",b),e.setAttribute("data-retry-in-unit",c)}),Offline.on("reconnect:stopped",function(){return k("offline-ui-connecting offline-ui-waiting"),e.setAttribute("data-retry-in-value",null),e.setAttribute("data-retry-in-unit",null)}),Offline.on("reconnect:failure",function(){return h("offline-ui-reconnect-failed-2s",2),h("offline-ui-reconnect-failed-5s",5)}),Offline.on("reconnect:success",function(){return h("offline-ui-reconnect-succeeded-2s",2),h("offline-ui-reconnect-succeeded-5s",5)})},"complete"===document.readyState?j():null!=document.addEventListener?document.addEventListener("DOMContentLoaded",j,!1):(c=document.onreadystatechange,document.onreadystatechange=function(){return"complete"===document.readyState&&j(),"function"==typeof c?c.apply(null,arguments):void 0})}.call(this); \ No newline at end of file From 8d0cc80392bdb491f42561be3578763fa600b463 Mon Sep 17 00:00:00 2001 From: Mateusz Gachowski Date: Wed, 2 Nov 2016 11:40:33 +0100 Subject: [PATCH 33/49] New compiled css files with polish lang --- themes/offline-language-polish-indicator.css | 9 ++ themes/offline-language-polish.css | 109 +++++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 themes/offline-language-polish-indicator.css create mode 100644 themes/offline-language-polish.css diff --git a/themes/offline-language-polish-indicator.css b/themes/offline-language-polish-indicator.css new file mode 100644 index 0000000..7fe27de --- /dev/null +++ b/themes/offline-language-polish-indicator.css @@ -0,0 +1,9 @@ +@charset "UTF-8"; +/* line 5, ../sass/offline-language-polish-indicator.sass */ +.offline-ui.offline-ui-up .offline-ui-content:before { + content: "Połączony"; +} +/* line 10, ../sass/offline-language-polish-indicator.sass */ +.offline-ui.offline-ui-down .offline-ui-content:before { + content: "Rozłączony"; +} diff --git a/themes/offline-language-polish.css b/themes/offline-language-polish.css new file mode 100644 index 0000000..92234e8 --- /dev/null +++ b/themes/offline-language-polish.css @@ -0,0 +1,109 @@ +@charset "UTF-8"; +/* line 6, ../sass/_content.sass */ +.offline-ui .offline-ui-retry:before { + content: "Połącz teraz"; +} +/* line 11, ../sass/_content.sass */ +.offline-ui.offline-ui-up .offline-ui-content:before { + content: "Twój komputer jest podłączony do internetu."; +} +@media (max-width: 1024px) { + /* line 11, ../sass/_content.sass */ + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "Twoje urządzenie jest podłączone do internetu."; + } +} +@media (max-width: 568px) { + /* line 11, ../sass/_content.sass */ + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "Twoje urządzenie jest podłączone."; + } +} +/* line 22, ../sass/_content.sass */ +.offline-ui.offline-ui-down .offline-ui-content:before { + content: "Twój komputer stracił połączenie z internetem."; +} +@media (max-width: 1024px) { + /* line 22, ../sass/_content.sass */ + .offline-ui.offline-ui-down .offline-ui-content:before { + content: "Twóje urządzenie straciło połączenie z internetem."; + } +} +@media (max-width: 568px) { + /* line 22, ../sass/_content.sass */ + .offline-ui.offline-ui-down .offline-ui-content:before { + content: "Twóje urządzenie nie jest podłączone."; + } +} +/* line 33, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-connecting .offline-ui-content:before, .offline-ui.offline-ui-down.offline-ui-connecting-2s .offline-ui-content:before { + content: "Próbuję połączyć..."; +} +/* line 42, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: "Połączenie utracone. Ponawiam za " attr(data-retry-in-value) " sekund..."; +} +@media (max-width: 568px) { + /* line 42, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: "Ponawiam za " attr(data-retry-in-value) "s..."; + } +} +/* line 50, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: "Połączenie utracone. Ponawiam za " attr(data-retry-in-value) " sekundę..."; +} +@media (max-width: 568px) { + /* line 50, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: "Ponawiam za " attr(data-retry-in-value) "s..."; + } +} +/* line 58, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: "Połączenie utracone. Ponawiam za " attr(data-retry-in-value) " minut..."; +} +@media (max-width: 568px) { + /* line 58, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: "Ponawiam za " attr(data-retry-in-value) "m..."; + } +} +/* line 66, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: "Połączenie utracone. Ponawiam za " attr(data-retry-in-value) " minutę..."; +} +@media (max-width: 568px) { + /* line 66, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: "Ponawiam za " attr(data-retry-in-value) "m..."; + } +} +/* line 74, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: "Połączenie utracone. Ponawiam za " attr(data-retry-in-value) " godzin..."; +} +@media (max-width: 568px) { + /* line 74, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: "Ponawiam za " attr(data-retry-in-value) "h..."; + } +} +/* line 82, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: "Połączenie utracone. Ponawiam za " attr(data-retry-in-value) " godzinę..."; +} +@media (max-width: 568px) { + /* line 82, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: "Ponawiam za " attr(data-retry-in-value) "h..."; + } +} +/* line 90, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s.offline-ui-waiting .offline-ui-retry { + display: none; +} +/* line 93, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s .offline-ui-content:before { + content: "Nieudana próba podłączenia."; +} From f4e42e26c08e0c24d15c1f2e1dc9f8bea2b7cf29 Mon Sep 17 00:00:00 2001 From: Mateusz Gachowski Date: Wed, 2 Nov 2016 13:24:38 +0100 Subject: [PATCH 34/49] Fix typo in translation --- sass/_polish.sass | 4 ++-- themes/offline-language-polish.css | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sass/_polish.sass b/sass/_polish.sass index a5d6cab..cea59d6 100644 --- a/sass/_polish.sass +++ b/sass/_polish.sass @@ -3,8 +3,8 @@ $upDevice: "Twoje urządzenie jest podłączone do internetu." $upDeviceSmall: "Twoje urządzenie jest podłączone." $downComputer: "Twój komputer stracił połączenie z internetem." -$downDevice: "Twóje urządzenie straciło połączenie z internetem." -$downDeviceSmall: "Twóje urządzenie nie jest podłączone." +$downDevice: "Twoje urządzenie straciło połączenie z internetem." +$downDeviceSmall: "Twoje urządzenie nie jest podłączone." $connecting: "Próbuję połączyć..." diff --git a/themes/offline-language-polish.css b/themes/offline-language-polish.css index 92234e8..e539903 100644 --- a/themes/offline-language-polish.css +++ b/themes/offline-language-polish.css @@ -26,13 +26,13 @@ @media (max-width: 1024px) { /* line 22, ../sass/_content.sass */ .offline-ui.offline-ui-down .offline-ui-content:before { - content: "Twóje urządzenie straciło połączenie z internetem."; + content: "Twoje urządzenie straciło połączenie z internetem."; } } @media (max-width: 568px) { /* line 22, ../sass/_content.sass */ .offline-ui.offline-ui-down .offline-ui-content:before { - content: "Twóje urządzenie nie jest podłączone."; + content: "Twoje urządzenie nie jest podłączone."; } } /* line 33, ../sass/_content.sass */ From 60dd8fc9c6111af422251dfefa3bfe8b30c2d5a7 Mon Sep 17 00:00:00 2001 From: Nex Zhu Date: Tue, 15 Nov 2016 18:33:37 +0800 Subject: [PATCH 35/49] Add simplified and chinese translations --- install.json | 4 + sass/_chinese-simplified.sass | 49 ++++++++ sass/_chinese-traditional.sass | 49 ++++++++ ...language-chinese-simplified-indicator.sass | 11 ++ sass/offline-language-chinese-simplified.sass | 4 + ...anguage-chinese-traditional-indicator.sass | 11 ++ .../offline-language-chinese-traditional.sass | 4 + ...-language-chinese-simplified-indicator.css | 9 ++ .../offline-language-chinese-simplified.css | 109 ++++++++++++++++++ ...language-chinese-traditional-indicator.css | 9 ++ .../offline-language-chinese-traditional.css | 109 ++++++++++++++++++ 11 files changed, 368 insertions(+) create mode 100644 sass/_chinese-simplified.sass create mode 100644 sass/_chinese-traditional.sass create mode 100644 sass/offline-language-chinese-simplified-indicator.sass create mode 100644 sass/offline-language-chinese-simplified.sass create mode 100644 sass/offline-language-chinese-traditional-indicator.sass create mode 100644 sass/offline-language-chinese-traditional.sass create mode 100644 themes/offline-language-chinese-simplified-indicator.css create mode 100644 themes/offline-language-chinese-simplified.css create mode 100644 themes/offline-language-chinese-traditional-indicator.css create mode 100644 themes/offline-language-chinese-traditional.css diff --git a/install.json b/install.json index b8cd3f1..9d8322a 100644 --- a/install.json +++ b/install.json @@ -40,6 +40,8 @@ "description": "The language of the message displayed to the user when connectivity is lost or regained.", "type": "string", "enum": [ + "chinese-simplified", + "chinese-traditional", "dutch", "english", "french", @@ -50,6 +52,8 @@ "turkish" ], "enumNames": { + "chinese-simplified": "Simplified Chinese", + "chinese-traditional": "Traditional Chinese", "dutch": "Dutch", "english": "English", "french": "French", diff --git a/sass/_chinese-simplified.sass b/sass/_chinese-simplified.sass new file mode 100644 index 0000000..bdd0297 --- /dev/null +++ b/sass/_chinese-simplified.sass @@ -0,0 +1,49 @@ +$upComputer: "您的电脑已经连接到网络。" +$upDevice: "您的设备已经连接到网络。" +$upDeviceSmall: "您的设备已经连接到网络。" + +$downComputer: "您的电脑失去了网络连接。" +$downDevice: "您的设备失去了网络连接。" +$downDeviceSmall: "您的设备失去了网络连接。" + +$connecting: "正在尝试重连..." + +$retryButton: "重连" + +$reconnectFailed: "尝试连接网络失败。" + +$retryingSecondBeforeValueSingularComputer: "失去网络连接。 即将重连:" +$retryingSecondBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingMinuteBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer +$retryingMinuteBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingHourBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer +$retryingHourBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingSecondBeforeValueSingularDeviceSmall: "即将重连:" +$retryingSecondBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingMinuteBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall +$retryingMinuteBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingHourBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall +$retryingHourBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingSecondAfterValueSingularComputer: "秒..." +$retryingSecondAfterValuePluralComputer: "秒..." + +$retryingSecondAfterValueSingularDeviceSmall: "s..." +$retryingSecondAfterValuePluralDeviceSmall: $retryingSecondAfterValueSingularDeviceSmall + +$retryingMinuteAfterValueSingularComputer: "分钟..." +$retryingMinuteAfterValuePluralComputer: "分钟..." + +$retryingMinuteAfterValueSingularDeviceSmall: "m..." +$retryingMinuteAfterValuePluralDeviceSmall: $retryingMinuteAfterValueSingularDeviceSmall + +$retryingHourAfterValueSingularComputer: "小时..." +$retryingHourAfterValuePluralComputer: "小时..." + +$retryingHourAfterValueSingularDeviceSmall: "h..." +$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall \ No newline at end of file diff --git a/sass/_chinese-traditional.sass b/sass/_chinese-traditional.sass new file mode 100644 index 0000000..93cae96 --- /dev/null +++ b/sass/_chinese-traditional.sass @@ -0,0 +1,49 @@ +$upComputer: "您的電腦已經連接到網絡。" +$upDevice: "您的設備已經連接到網絡。" +$upDeviceSmall: "您的設備已經連接到網絡。" + +$downComputer: "您的電腦失去了網絡連接。" +$downDevice: "您的設備失去了網絡連接。" +$downDeviceSmall: "您的設備失去了網絡連接。" + +$connecting: "正在嘗試重連..." + +$retryButton: "重連" + +$reconnectFailed: "嘗試連接網絡失敗。" + +$retryingSecondBeforeValueSingularComputer: "失去網絡連接。即將重連:" +$retryingSecondBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingMinuteBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer +$retryingMinuteBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingHourBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer +$retryingHourBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingSecondBeforeValueSingularDeviceSmall: "即將重連:" +$retryingSecondBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingMinuteBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall +$retryingMinuteBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingHourBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall +$retryingHourBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingSecondAfterValueSingularComputer: "秒..." +$retryingSecondAfterValuePluralComputer: "秒..." + +$retryingSecondAfterValueSingularDeviceSmall: "s..." +$retryingSecondAfterValuePluralDeviceSmall: $retryingSecondAfterValueSingularDeviceSmall + +$retryingMinuteAfterValueSingularComputer: "分鐘..." +$retryingMinuteAfterValuePluralComputer: "分鐘..." + +$retryingMinuteAfterValueSingularDeviceSmall: "m..." +$retryingMinuteAfterValuePluralDeviceSmall: $retryingMinuteAfterValueSingularDeviceSmall + +$retryingHourAfterValueSingularComputer: "小時..." +$retryingHourAfterValuePluralComputer: "小時..." + +$retryingHourAfterValueSingularDeviceSmall: "h..." +$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall \ No newline at end of file diff --git a/sass/offline-language-chinese-simplified-indicator.sass b/sass/offline-language-chinese-simplified-indicator.sass new file mode 100644 index 0000000..dc5c0e0 --- /dev/null +++ b/sass/offline-language-chinese-simplified-indicator.sass @@ -0,0 +1,11 @@ +.offline-ui + + &.offline-ui-up + + .offline-ui-content:before + content: "在线" + + &.offline-ui-down + + .offline-ui-content:before + content: "离线" \ No newline at end of file diff --git a/sass/offline-language-chinese-simplified.sass b/sass/offline-language-chinese-simplified.sass new file mode 100644 index 0000000..10612ad --- /dev/null +++ b/sass/offline-language-chinese-simplified.sass @@ -0,0 +1,4 @@ +@import content +@import chinese-simplified + ++offline-content \ No newline at end of file diff --git a/sass/offline-language-chinese-traditional-indicator.sass b/sass/offline-language-chinese-traditional-indicator.sass new file mode 100644 index 0000000..de88e59 --- /dev/null +++ b/sass/offline-language-chinese-traditional-indicator.sass @@ -0,0 +1,11 @@ +.offline-ui + + &.offline-ui-up + + .offline-ui-content:before + content: "在線" + + &.offline-ui-down + + .offline-ui-content:before + content: "離線" \ No newline at end of file diff --git a/sass/offline-language-chinese-traditional.sass b/sass/offline-language-chinese-traditional.sass new file mode 100644 index 0000000..dadde06 --- /dev/null +++ b/sass/offline-language-chinese-traditional.sass @@ -0,0 +1,4 @@ +@import content +@import chinese-traditional + ++offline-content \ No newline at end of file diff --git a/themes/offline-language-chinese-simplified-indicator.css b/themes/offline-language-chinese-simplified-indicator.css new file mode 100644 index 0000000..2a1e2e0 --- /dev/null +++ b/themes/offline-language-chinese-simplified-indicator.css @@ -0,0 +1,9 @@ +@charset "UTF-8"; +/* line 5, ../sass/offline-language-chinese-simplified-indicator.sass */ +.offline-ui.offline-ui-up .offline-ui-content:before { + content: "鍦ㄧ嚎"; +} +/* line 10, ../sass/offline-language-chinese-simplified-indicator.sass */ +.offline-ui.offline-ui-down .offline-ui-content:before { + content: "绂荤嚎"; +} diff --git a/themes/offline-language-chinese-simplified.css b/themes/offline-language-chinese-simplified.css new file mode 100644 index 0000000..ba7beda --- /dev/null +++ b/themes/offline-language-chinese-simplified.css @@ -0,0 +1,109 @@ +@charset "UTF-8"; +/* line 6, ../sass/_content.sass */ +.offline-ui .offline-ui-retry:before { + content: "重连"; +} +/* line 11, ../sass/_content.sass */ +.offline-ui.offline-ui-up .offline-ui-content:before { + content: "您的电脑已经连接到网络。"; +} +@media (max-width: 1024px) { + /* line 11, ../sass/_content.sass */ + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "您的设备已经连接到网络。"; + } +} +@media (max-width: 568px) { + /* line 11, ../sass/_content.sass */ + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "您的设备已经连接到网络。"; + } +} +/* line 22, ../sass/_content.sass */ +.offline-ui.offline-ui-down .offline-ui-content:before { + content: "您的电脑失去了网络连接。"; +} +@media (max-width: 1024px) { + /* line 22, ../sass/_content.sass */ + .offline-ui.offline-ui-down .offline-ui-content:before { + content: "您的设备失去了网络连接。"; + } +} +@media (max-width: 568px) { + /* line 22, ../sass/_content.sass */ + .offline-ui.offline-ui-down .offline-ui-content:before { + content: "您的设备失去了网络连接。"; + } +} +/* line 33, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-connecting .offline-ui-content:before, .offline-ui.offline-ui-down.offline-ui-connecting-2s .offline-ui-content:before { + content: "正在尝试重连..."; +} +/* line 42, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: "失去网络连接。 即将重连:" attr(data-retry-in-value) "秒..."; +} +@media (max-width: 568px) { + /* line 42, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: "即将重连:" attr(data-retry-in-value) "s..."; + } +} +/* line 50, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: "失去网络连接。 即将重连:" attr(data-retry-in-value) "秒..."; +} +@media (max-width: 568px) { + /* line 50, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: "即将重连:" attr(data-retry-in-value) "s..."; + } +} +/* line 58, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: "失去网络连接。 即将重连:" attr(data-retry-in-value) "分钟..."; +} +@media (max-width: 568px) { + /* line 58, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: "即将重连:" attr(data-retry-in-value) "m..."; + } +} +/* line 66, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: "失去网络连接。 即将重连:" attr(data-retry-in-value) "分钟..."; +} +@media (max-width: 568px) { + /* line 66, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: "即将重连:" attr(data-retry-in-value) "m..."; + } +} +/* line 74, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: "失去网络连接。 即将重连:" attr(data-retry-in-value) "小时..."; +} +@media (max-width: 568px) { + /* line 74, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: "即将重连:" attr(data-retry-in-value) "h..."; + } +} +/* line 82, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: "失去网络连接。 即将重连:" attr(data-retry-in-value) "小时..."; +} +@media (max-width: 568px) { + /* line 82, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: "即将重连:" attr(data-retry-in-value) "h..."; + } +} +/* line 90, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s.offline-ui-waiting .offline-ui-retry { + display: none; +} +/* line 93, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s .offline-ui-content:before { + content: "尝试连接网络失败。"; +} diff --git a/themes/offline-language-chinese-traditional-indicator.css b/themes/offline-language-chinese-traditional-indicator.css new file mode 100644 index 0000000..703634a --- /dev/null +++ b/themes/offline-language-chinese-traditional-indicator.css @@ -0,0 +1,9 @@ +@charset "UTF-8"; +/* line 5, ../sass/offline-language-chinese-traditional-indicator.sass */ +.offline-ui.offline-ui-up .offline-ui-content:before { + content: "鍦ㄧ窔"; +} +/* line 10, ../sass/offline-language-chinese-traditional-indicator.sass */ +.offline-ui.offline-ui-down .offline-ui-content:before { + content: "闆㈢窔"; +} diff --git a/themes/offline-language-chinese-traditional.css b/themes/offline-language-chinese-traditional.css new file mode 100644 index 0000000..b934b71 --- /dev/null +++ b/themes/offline-language-chinese-traditional.css @@ -0,0 +1,109 @@ +@charset "UTF-8"; +/* line 6, ../sass/_content.sass */ +.offline-ui .offline-ui-retry:before { + content: "重連"; +} +/* line 11, ../sass/_content.sass */ +.offline-ui.offline-ui-up .offline-ui-content:before { + content: "您的電腦已經連接到網絡。"; +} +@media (max-width: 1024px) { + /* line 11, ../sass/_content.sass */ + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "您的設備已經連接到網絡。"; + } +} +@media (max-width: 568px) { + /* line 11, ../sass/_content.sass */ + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "您的設備已經連接到網絡。"; + } +} +/* line 22, ../sass/_content.sass */ +.offline-ui.offline-ui-down .offline-ui-content:before { + content: "您的電腦失去了網絡連接。"; +} +@media (max-width: 1024px) { + /* line 22, ../sass/_content.sass */ + .offline-ui.offline-ui-down .offline-ui-content:before { + content: "您的設備失去了網絡連接。"; + } +} +@media (max-width: 568px) { + /* line 22, ../sass/_content.sass */ + .offline-ui.offline-ui-down .offline-ui-content:before { + content: "您的設備失去了網絡連接。"; + } +} +/* line 33, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-connecting .offline-ui-content:before, .offline-ui.offline-ui-down.offline-ui-connecting-2s .offline-ui-content:before { + content: "正在嘗試重連..."; +} +/* line 42, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: "失去網絡連接。即將重連:" attr(data-retry-in-value) "秒..."; +} +@media (max-width: 568px) { + /* line 42, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: "即將重連:" attr(data-retry-in-value) "s..."; + } +} +/* line 50, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: "失去網絡連接。即將重連:" attr(data-retry-in-value) "秒..."; +} +@media (max-width: 568px) { + /* line 50, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: "即將重連:" attr(data-retry-in-value) "s..."; + } +} +/* line 58, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: "失去網絡連接。即將重連:" attr(data-retry-in-value) "分鐘..."; +} +@media (max-width: 568px) { + /* line 58, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: "即將重連:" attr(data-retry-in-value) "m..."; + } +} +/* line 66, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: "失去網絡連接。即將重連:" attr(data-retry-in-value) "分鐘..."; +} +@media (max-width: 568px) { + /* line 66, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: "即將重連:" attr(data-retry-in-value) "m..."; + } +} +/* line 74, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: "失去網絡連接。即將重連:" attr(data-retry-in-value) "小時..."; +} +@media (max-width: 568px) { + /* line 74, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: "即將重連:" attr(data-retry-in-value) "h..."; + } +} +/* line 82, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: "失去網絡連接。即將重連:" attr(data-retry-in-value) "小時..."; +} +@media (max-width: 568px) { + /* line 82, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: "即將重連:" attr(data-retry-in-value) "h..."; + } +} +/* line 90, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s.offline-ui-waiting .offline-ui-retry { + display: none; +} +/* line 93, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s .offline-ui-content:before { + content: "嘗試連接網絡失敗。"; +} From bec7d2d6a3d8cb7954f707625860a303025699a6 Mon Sep 17 00:00:00 2001 From: Nex Zhu Date: Tue, 15 Nov 2016 18:52:04 +0800 Subject: [PATCH 36/49] Add newlines at ends of files --- sass/_chinese-simplified.sass | 4 +++- sass/_chinese-traditional.sass | 4 +++- sass/offline-language-chinese-simplified-indicator.sass | 2 +- sass/offline-language-chinese-simplified.sass | 2 +- sass/offline-language-chinese-traditional-indicator.sass | 2 +- sass/offline-language-chinese-traditional.sass | 2 +- 6 files changed, 10 insertions(+), 6 deletions(-) diff --git a/sass/_chinese-simplified.sass b/sass/_chinese-simplified.sass index bdd0297..bfd3d7e 100644 --- a/sass/_chinese-simplified.sass +++ b/sass/_chinese-simplified.sass @@ -1,3 +1,5 @@ +@charset "utf-8" + $upComputer: "您的电脑已经连接到网络。" $upDevice: "您的设备已经连接到网络。" $upDeviceSmall: "您的设备已经连接到网络。" @@ -46,4 +48,4 @@ $retryingHourAfterValueSingularComputer: "小时..." $retryingHourAfterValuePluralComputer: "小时..." $retryingHourAfterValueSingularDeviceSmall: "h..." -$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall \ No newline at end of file +$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall diff --git a/sass/_chinese-traditional.sass b/sass/_chinese-traditional.sass index 93cae96..d2eff22 100644 --- a/sass/_chinese-traditional.sass +++ b/sass/_chinese-traditional.sass @@ -1,3 +1,5 @@ +@charset "utf-8" + $upComputer: "您的電腦已經連接到網絡。" $upDevice: "您的設備已經連接到網絡。" $upDeviceSmall: "您的設備已經連接到網絡。" @@ -46,4 +48,4 @@ $retryingHourAfterValueSingularComputer: "小時..." $retryingHourAfterValuePluralComputer: "小時..." $retryingHourAfterValueSingularDeviceSmall: "h..." -$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall \ No newline at end of file +$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall diff --git a/sass/offline-language-chinese-simplified-indicator.sass b/sass/offline-language-chinese-simplified-indicator.sass index dc5c0e0..c0cd795 100644 --- a/sass/offline-language-chinese-simplified-indicator.sass +++ b/sass/offline-language-chinese-simplified-indicator.sass @@ -8,4 +8,4 @@ &.offline-ui-down .offline-ui-content:before - content: "离线" \ No newline at end of file + content: "离线" diff --git a/sass/offline-language-chinese-simplified.sass b/sass/offline-language-chinese-simplified.sass index 10612ad..f975764 100644 --- a/sass/offline-language-chinese-simplified.sass +++ b/sass/offline-language-chinese-simplified.sass @@ -1,4 +1,4 @@ @import content @import chinese-simplified -+offline-content \ No newline at end of file ++offline-content diff --git a/sass/offline-language-chinese-traditional-indicator.sass b/sass/offline-language-chinese-traditional-indicator.sass index de88e59..8a152e1 100644 --- a/sass/offline-language-chinese-traditional-indicator.sass +++ b/sass/offline-language-chinese-traditional-indicator.sass @@ -8,4 +8,4 @@ &.offline-ui-down .offline-ui-content:before - content: "離線" \ No newline at end of file + content: "離線" diff --git a/sass/offline-language-chinese-traditional.sass b/sass/offline-language-chinese-traditional.sass index dadde06..3ac1e12 100644 --- a/sass/offline-language-chinese-traditional.sass +++ b/sass/offline-language-chinese-traditional.sass @@ -1,4 +1,4 @@ @import content @import chinese-traditional -+offline-content \ No newline at end of file ++offline-content From d878f3be623c699e4b38148a5a20906831efaaf0 Mon Sep 17 00:00:00 2001 From: Jan Martinec Date: Wed, 14 Dec 2016 16:03:30 +0100 Subject: [PATCH 37/49] Czech translation --- sass/_czech.sass | 49 ++++++++++++++++++ sass/offline-language-czech-indicator.sass | 11 +++++ sass/offline-language-czech.sass | 4 ++ themes/offline-language-czech-indicator.css | 4 ++ themes/offline-language-czech.css | 55 +++++++++++++++++++++ 5 files changed, 123 insertions(+) create mode 100644 sass/_czech.sass create mode 100644 sass/offline-language-czech-indicator.sass create mode 100644 sass/offline-language-czech.sass create mode 100644 themes/offline-language-czech-indicator.css create mode 100644 themes/offline-language-czech.css diff --git a/sass/_czech.sass b/sass/_czech.sass new file mode 100644 index 0000000..f1a2af3 --- /dev/null +++ b/sass/_czech.sass @@ -0,0 +1,49 @@ +$upComputer: "Váš počítač je připojen k internetu." +$upDevice: "Vaše zařízení je připojeno k internetu." +$upDeviceSmall: "Vaše zařízení je připojeno." + +$downComputer: "Váš počítač ztratil připojení k internetu." +$downDevice: "Vaše zařízení ztratilo připojení k internetu." +$downDeviceSmall: "Vaše zařízení není připojeno." + +$connecting: "Zkouším se znovu připojit..." + +$retryButton: "Znovu připojit" + +$reconnectFailed: "Pokus o připojení selhal." + +$retryingSecondBeforeValueSingularComputer: "Připojení ztraceno. Znovu připojím za " +$retryingSecondBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingMinuteBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer +$retryingMinuteBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingHourBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer +$retryingHourBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingSecondBeforeValueSingularDeviceSmall: "Znovu připojím za " +$retryingSecondBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingMinuteBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall +$retryingMinuteBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingHourBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall +$retryingHourBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingSecondAfterValueSingularComputer: " sekundu..." +$retryingSecondAfterValuePluralComputer: " sekund..." + +$retryingSecondAfterValueSingularDeviceSmall: "s..." +$retryingSecondAfterValuePluralDeviceSmall: $retryingSecondAfterValueSingularDeviceSmall + +$retryingMinuteAfterValueSingularComputer: " minutu..." +$retryingMinuteAfterValuePluralComputer: " minut..." + +$retryingMinuteAfterValueSingularDeviceSmall: "m..." +$retryingMinuteAfterValuePluralDeviceSmall: $retryingMinuteAfterValueSingularDeviceSmall + +$retryingHourAfterValueSingularComputer: " hodinu..." +$retryingHourAfterValuePluralComputer: " hodin..." + +$retryingHourAfterValueSingularDeviceSmall: "h..." +$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall diff --git a/sass/offline-language-czech-indicator.sass b/sass/offline-language-czech-indicator.sass new file mode 100644 index 0000000..d457499 --- /dev/null +++ b/sass/offline-language-czech-indicator.sass @@ -0,0 +1,11 @@ +.offline-ui + + &.offline-ui-up + + .offline-ui-content:before + content: "Online" + + &.offline-ui-down + + .offline-ui-content:before + content: "Offline" diff --git a/sass/offline-language-czech.sass b/sass/offline-language-czech.sass new file mode 100644 index 0000000..b7fbd96 --- /dev/null +++ b/sass/offline-language-czech.sass @@ -0,0 +1,4 @@ +@import content +@import czech + ++offline-content diff --git a/themes/offline-language-czech-indicator.css b/themes/offline-language-czech-indicator.css new file mode 100644 index 0000000..2a8b59a --- /dev/null +++ b/themes/offline-language-czech-indicator.css @@ -0,0 +1,4 @@ +.offline-ui.offline-ui-up .offline-ui-content:before { + content: "Online"; } +.offline-ui.offline-ui-down .offline-ui-content:before { + content: "Offline"; } diff --git a/themes/offline-language-czech.css b/themes/offline-language-czech.css new file mode 100644 index 0000000..e0d15ba --- /dev/null +++ b/themes/offline-language-czech.css @@ -0,0 +1,55 @@ +@charset "UTF-8"; +.offline-ui .offline-ui-retry:before { + content: "Znovu připojit"; } +.offline-ui.offline-ui-up .offline-ui-content:before { + content: "Váš počítač je připojen k internetu."; } + @media (max-width: 1024px) { + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "Vaše zařízení je připojeno k internetu."; } } + @media (max-width: 568px) { + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "Vaše zařízení je připojeno."; } } +.offline-ui.offline-ui-down .offline-ui-content:before { + content: "Váš počítač ztratil připojení k internetu."; } + @media (max-width: 1024px) { + .offline-ui.offline-ui-down .offline-ui-content:before { + content: "Vaše zařízení ztratilo připojení k internetu."; } } + @media (max-width: 568px) { + .offline-ui.offline-ui-down .offline-ui-content:before { + content: "Vaše zařízení není připojeno."; } } +.offline-ui.offline-ui-down.offline-ui-connecting .offline-ui-content:before, .offline-ui.offline-ui-down.offline-ui-connecting-2s .offline-ui-content:before { + content: "Zkouším se znovu připojit..."; } +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: "Připojení ztraceno. Znovu připojím za " attr(data-retry-in-value) " sekund..."; } + @media (max-width: 568px) { + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: "Znovu připojím za " attr(data-retry-in-value) "s..."; } } +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: "Připojení ztraceno. Znovu připojím za " attr(data-retry-in-value) " sekundu..."; } + @media (max-width: 568px) { + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: "Znovu připojím za " attr(data-retry-in-value) "s..."; } } +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: "Připojení ztraceno. Znovu připojím za " attr(data-retry-in-value) " minut..."; } + @media (max-width: 568px) { + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: "Znovu připojím za " attr(data-retry-in-value) "m..."; } } +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: "Připojení ztraceno. Znovu připojím za " attr(data-retry-in-value) " minutu..."; } + @media (max-width: 568px) { + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: "Znovu připojím za " attr(data-retry-in-value) "m..."; } } +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: "Připojení ztraceno. Znovu připojím za " attr(data-retry-in-value) " hodin..."; } + @media (max-width: 568px) { + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: "Znovu připojím za " attr(data-retry-in-value) "h..."; } } +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: "Připojení ztraceno. Znovu připojím za " attr(data-retry-in-value) " hodinu..."; } + @media (max-width: 568px) { + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: "Znovu připojím za " attr(data-retry-in-value) "h..."; } } +.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s.offline-ui-waiting .offline-ui-retry { + display: none; } +.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s .offline-ui-content:before { + content: "Pokus o připojení selhal."; } From 7fa503b88a71746fcf49df152911d351af85eae0 Mon Sep 17 00:00:00 2001 From: Jan Martinec Date: Wed, 14 Dec 2016 16:03:30 +0100 Subject: [PATCH 38/49] Czech translation - all texts are translated and compiled into CSS. Changed one word so that the text makes sense in context. --- sass/_czech.sass | 4 ++-- themes/offline-language-czech.css | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/sass/_czech.sass b/sass/_czech.sass index f1a2af3..6634415 100644 --- a/sass/_czech.sass +++ b/sass/_czech.sass @@ -12,7 +12,7 @@ $retryButton: "Znovu připojit" $reconnectFailed: "Pokus o připojení selhal." -$retryingSecondBeforeValueSingularComputer: "Připojení ztraceno. Znovu připojím za " +$retryingSecondBeforeValueSingularComputer: "Připojení ztraceno. Znovu zkusím za " $retryingSecondBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer $retryingMinuteBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer @@ -21,7 +21,7 @@ $retryingMinuteBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComp $retryingHourBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer $retryingHourBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer -$retryingSecondBeforeValueSingularDeviceSmall: "Znovu připojím za " +$retryingSecondBeforeValueSingularDeviceSmall: "Znovu zkusím za " $retryingSecondBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall $retryingMinuteBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall diff --git a/themes/offline-language-czech.css b/themes/offline-language-czech.css index e0d15ba..89ed254 100644 --- a/themes/offline-language-czech.css +++ b/themes/offline-language-czech.css @@ -20,35 +20,35 @@ .offline-ui.offline-ui-down.offline-ui-connecting .offline-ui-content:before, .offline-ui.offline-ui-down.offline-ui-connecting-2s .offline-ui-content:before { content: "Zkouším se znovu připojit..."; } .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { - content: "Připojení ztraceno. Znovu připojím za " attr(data-retry-in-value) " sekund..."; } + content: "Připojení ztraceno. Znovu zkusím za " attr(data-retry-in-value) " sekund..."; } @media (max-width: 568px) { .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { - content: "Znovu připojím za " attr(data-retry-in-value) "s..."; } } + content: "Znovu zkusím za " attr(data-retry-in-value) "s..."; } } .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { - content: "Připojení ztraceno. Znovu připojím za " attr(data-retry-in-value) " sekundu..."; } + content: "Připojení ztraceno. Znovu zkusím za " attr(data-retry-in-value) " sekundu..."; } @media (max-width: 568px) { .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { - content: "Znovu připojím za " attr(data-retry-in-value) "s..."; } } + content: "Znovu zkusím za " attr(data-retry-in-value) "s..."; } } .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { - content: "Připojení ztraceno. Znovu připojím za " attr(data-retry-in-value) " minut..."; } + content: "Připojení ztraceno. Znovu zkusím za " attr(data-retry-in-value) " minut..."; } @media (max-width: 568px) { .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { - content: "Znovu připojím za " attr(data-retry-in-value) "m..."; } } + content: "Znovu zkusím za " attr(data-retry-in-value) "m..."; } } .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { - content: "Připojení ztraceno. Znovu připojím za " attr(data-retry-in-value) " minutu..."; } + content: "Připojení ztraceno. Znovu zkusím za " attr(data-retry-in-value) " minutu..."; } @media (max-width: 568px) { .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { - content: "Znovu připojím za " attr(data-retry-in-value) "m..."; } } + content: "Znovu zkusím za " attr(data-retry-in-value) "m..."; } } .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { - content: "Připojení ztraceno. Znovu připojím za " attr(data-retry-in-value) " hodin..."; } + content: "Připojení ztraceno. Znovu zkusím za " attr(data-retry-in-value) " hodin..."; } @media (max-width: 568px) { .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { - content: "Znovu připojím za " attr(data-retry-in-value) "h..."; } } + content: "Znovu zkusím za " attr(data-retry-in-value) "h..."; } } .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { - content: "Připojení ztraceno. Znovu připojím za " attr(data-retry-in-value) " hodinu..."; } + content: "Připojení ztraceno. Znovu zkusím za " attr(data-retry-in-value) " hodinu..."; } @media (max-width: 568px) { .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { - content: "Znovu připojím za " attr(data-retry-in-value) "h..."; } } + content: "Znovu zkusím za " attr(data-retry-in-value) "h..."; } } .offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s.offline-ui-waiting .offline-ui-retry { display: none; } .offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s .offline-ui-content:before { From 85eaaa75b3c99792660fa495f7fd4422ed1f9e04 Mon Sep 17 00:00:00 2001 From: Zack Bloom Date: Fri, 16 Dec 2016 14:46:10 -0800 Subject: [PATCH 39/49] Update README.md --- README.md | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/README.md b/README.md index ab3c6a7..4d748ac 100644 --- a/README.md +++ b/README.md @@ -12,18 +12,7 @@ Improve the experience of your app when your users lose connection. - Simple UI with beautiful themes - 3kb minified and compressed -Install with Eager ------------------- - -The easiest way to add Offline to your site is with [Eager](http://eager.io). -Click Install to see a live preview of Offline on your website. - - - - - - -Manual Installation +Installation ------------------- Include [the javascript](https://raw.github.com/HubSpot/offline/v0.7.14/offline.min.js), one of [the themes](http://github.hubspot.com/offline/docs/welcome/), and one of [the From b30eccbb46078f28300224fb4591b4b9eb027a62 Mon Sep 17 00:00:00 2001 From: Zack Bloom Date: Fri, 20 Jan 2017 15:22:59 -0500 Subject: [PATCH 40/49] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 4d748ac..37ae4f8 100644 --- a/README.md +++ b/README.md @@ -137,3 +137,5 @@ Browser Support --------------- Modern Chrome, Firefox, Safari and IE8+ + +Note that not all browsers (including Safari and old IE) support the offline events, forcing Offline to use less accurate methods of detection. From cac91e37e3bd0138a66f64b9ac8175a065f733fb Mon Sep 17 00:00:00 2001 From: Francisco Dias Date: Sat, 29 Apr 2017 17:02:09 -0400 Subject: [PATCH 41/49] remove offline.js diff --- offline.js | 114 ++++++++++++++++++++++++------------------------- offline.min.js | 2 +- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/offline.js b/offline.js index 7d02701..e0673e8 100644 --- a/offline.js +++ b/offline.js @@ -10,7 +10,7 @@ e = _error; } return results; - }, Offline = {}, Offline.options = window.Offline ? window.Offline.options || {} :{}, + }, Offline = {}, Offline.options = window.Offline ? window.Offline.options || {} :{}, defaultOptions = { checks:{ xhr:{ @@ -33,27 +33,27 @@ deDupBody:!1 }, grab = function(obj, key) { var cur, i, j, len, part, parts; - for (cur = obj, parts = key.split("."), i = j = 0, len = parts.length; j < len && (part = parts[i], + for (cur = obj, parts = key.split("."), i = j = 0, len = parts.length; len > j && (part = parts[i], cur = cur[part], "object" == typeof cur); i = ++j) ; return i === parts.length - 1 ? cur :void 0; }, Offline.getOption = function(key) { var ref, val; - return val = null != (ref = grab(Offline.options, key)) ? ref :grab(defaultOptions, key), + return val = null != (ref = grab(Offline.options, key)) ? ref :grab(defaultOptions, key), "function" == typeof val ? val() :val; }, "function" == typeof window.addEventListener && window.addEventListener("online", function() { return setTimeout(Offline.confirmUp, 100); }, !1), "function" == typeof window.addEventListener && window.addEventListener("offline", function() { return Offline.confirmDown(); }, !1), Offline.state = "up", Offline.markUp = function() { - if (Offline.trigger("confirmed-up"), "up" !== Offline.state) return Offline.state = "up", - Offline.trigger("up"); + return Offline.trigger("confirmed-up"), "up" !== Offline.state ? (Offline.state = "up", + Offline.trigger("up")) :void 0; }, Offline.markDown = function() { - if (Offline.trigger("confirmed-down"), "down" !== Offline.state) return Offline.state = "down", - Offline.trigger("down"); + return Offline.trigger("confirmed-down"), "down" !== Offline.state ? (Offline.state = "down", + Offline.trigger("down")) :void 0; }, handlers = {}, Offline.on = function(event, handler, ctx) { var e, events, j, len, results; if (events = event.split(" "), events.length > 1) { - for (results = [], j = 0, len = events.length; j < len; j++) e = events[j], results.push(Offline.on(e, handler, ctx)); + for (results = [], j = 0, len = events.length; len > j; j++) e = events[j], results.push(Offline.on(e, handler, ctx)); return results; } return null == handlers[event] && (handlers[event] = []), handlers[event].push([ ctx, handler ]); @@ -61,7 +61,7 @@ var _handler, ctx, i, ref, results; if (null != handlers[event]) { if (handler) { - for (i = 0, results = []; i < handlers[event].length; ) ref = handlers[event][i], + for (i = 0, results = []; i < handlers[event].length; ) ref = handlers[event][i], ctx = ref[0], _handler = ref[1], _handler === handler ? results.push(handlers[event].splice(i, 1)) :results.push(i++); return results; } @@ -70,7 +70,7 @@ }, Offline.trigger = function(event) { var ctx, handler, j, len, ref, ref1, results; if (null != handlers[event]) { - for (ref = handlers[event].slice(0), results = [], j = 0, len = ref.length; j < len; j++) ref1 = ref[j], + for (ref = handlers[event].slice(0), results = [], j = 0, len = ref.length; len > j; j++) ref1 = ref[j], ctx = ref1[0], handler = ref1[1], results.push(handler.call(ctx)); return results; } @@ -89,8 +89,8 @@ }); }, Offline.checks = {}, Offline.checks.xhr = function() { var e, xhr; - xhr = new XMLHttpRequest(), xhr.offline = !1, xhr.open(Offline.getOption("checks.xhr.type"), Offline.getOption("checks.xhr.url"), !0), - null != xhr.timeout && (xhr.timeout = Offline.getOption("checks.xhr.timeout")), + xhr = new XMLHttpRequest(), xhr.offline = !1, xhr.open(Offline.getOption("checks.xhr.type"), Offline.getOption("checks.xhr.url"), !0), + null != xhr.timeout && (xhr.timeout = Offline.getOption("checks.xhr.timeout")), checkXHR(xhr, Offline.markUp, Offline.markDown); try { xhr.send(); @@ -100,13 +100,13 @@ return xhr; }, Offline.checks.image = function() { var img; - img = document.createElement("img"), img.onerror = Offline.markDown, img.onload = Offline.markUp, + img = document.createElement("img"), img.onerror = Offline.markDown, img.onload = Offline.markUp, img.src = Offline.getOption("checks.image.url"); }, Offline.checks.down = Offline.markDown, Offline.checks.up = Offline.markUp, Offline.check = function() { return Offline.trigger("checking"), Offline.checks[Offline.getOption("checks.active")](); }, Offline.confirmUp = Offline.confirmDown = Offline.check, Offline.onXHR = function(cb) { var _XDomainRequest, _XMLHttpRequest, monitorXHR; - if (monitorXHR = function(req, flags) { + return monitorXHR = function(req, flags) { var _open; return _open = req.open, req.open = function(type, url, async, user, password) { return cb({ @@ -121,59 +121,59 @@ }; }, _XMLHttpRequest = window.XMLHttpRequest, window.XMLHttpRequest = function(flags) { var _overrideMimeType, _setRequestHeader, req; - return req = new _XMLHttpRequest(flags), monitorXHR(req, flags), _setRequestHeader = req.setRequestHeader, + return req = new _XMLHttpRequest(flags), monitorXHR(req, flags), _setRequestHeader = req.setRequestHeader, req.headers = {}, req.setRequestHeader = function(name, value) { return req.headers[name] = value, _setRequestHeader.call(req, name, value); }, _overrideMimeType = req.overrideMimeType, req.overrideMimeType = function(type) { return req.mimeType = type, _overrideMimeType.call(req, type); }, req; - }, extendNative(window.XMLHttpRequest, _XMLHttpRequest), null != window.XDomainRequest) return _XDomainRequest = window.XDomainRequest, + }, extendNative(window.XMLHttpRequest, _XMLHttpRequest), null != window.XDomainRequest ? (_XDomainRequest = window.XDomainRequest, window.XDomainRequest = function() { var req; return req = new _XDomainRequest(), monitorXHR(req), req; - }, extendNative(window.XDomainRequest, _XDomainRequest); + }, extendNative(window.XDomainRequest, _XDomainRequest)) :void 0; }, init = function() { - if (Offline.getOption("interceptRequests") && Offline.onXHR(function(arg) { + return Offline.getOption("interceptRequests") && Offline.onXHR(function(arg) { var xhr; - if (xhr = arg.xhr, xhr.offline !== !1) return checkXHR(xhr, Offline.markUp, Offline.confirmDown); - }), Offline.getOption("checkOnLoad")) return Offline.check(); + return xhr = arg.xhr, xhr.offline !== !1 ? checkXHR(xhr, Offline.markUp, Offline.confirmDown) :void 0; + }), Offline.getOption("checkOnLoad") ? Offline.check() :void 0; }, setTimeout(init, 0), window.Offline = Offline; }).call(this), function() { var down, next, nope, rc, reset, retryIntv, tick, tryNow, up; if (!window.Offline) throw new Error("Offline Reconnect brought in without offline.js"); rc = Offline.reconnect = {}, retryIntv = null, reset = function() { var ref; - return null != rc.state && "inactive" !== rc.state && Offline.trigger("reconnect:stopped"), + return null != rc.state && "inactive" !== rc.state && Offline.trigger("reconnect:stopped"), rc.state = "inactive", rc.remaining = rc.delay = null != (ref = Offline.getOption("reconnect.initialDelay")) ? ref :3; }, next = function() { var delay, ref; - return delay = null != (ref = Offline.getOption("reconnect.delay")) ? ref :Math.min(Math.ceil(1.5 * rc.delay), 3600), + return delay = null != (ref = Offline.getOption("reconnect.delay")) ? ref :Math.min(Math.ceil(1.5 * rc.delay), 3600), rc.remaining = rc.delay = delay; }, tick = function() { - if ("connecting" !== rc.state) return rc.remaining -= 1, Offline.trigger("reconnect:tick"), - 0 === rc.remaining ? tryNow() :void 0; + return "connecting" !== rc.state ? (rc.remaining -= 1, Offline.trigger("reconnect:tick"), + 0 === rc.remaining ? tryNow() :void 0) :void 0; }, tryNow = function() { - if ("waiting" === rc.state) return Offline.trigger("reconnect:connecting"), rc.state = "connecting", - Offline.check(); + return "waiting" === rc.state ? (Offline.trigger("reconnect:connecting"), rc.state = "connecting", + Offline.check()) :void 0; }, down = function() { - if (Offline.getOption("reconnect")) return reset(), rc.state = "waiting", Offline.trigger("reconnect:started"), - retryIntv = setInterval(tick, 1e3); + return Offline.getOption("reconnect") ? (reset(), rc.state = "waiting", Offline.trigger("reconnect:started"), + retryIntv = setInterval(tick, 1e3)) :void 0; }, up = function() { return null != retryIntv && clearInterval(retryIntv), reset(); }, nope = function() { - if (Offline.getOption("reconnect")) return "connecting" === rc.state ? (Offline.trigger("reconnect:failure"), + return Offline.getOption("reconnect") && "connecting" === rc.state ? (Offline.trigger("reconnect:failure"), rc.state = "waiting", next()) :void 0; - }, rc.tryNow = tryNow, reset(), Offline.on("down", down), Offline.on("confirmed-down", nope), + }, rc.tryNow = tryNow, reset(), Offline.on("down", down), Offline.on("confirmed-down", nope), Offline.on("up", up); }.call(this), function() { var clear, flush, held, holdRequest, makeRequest, waitingOnConfirm; if (!window.Offline) throw new Error("Requests module brought in without offline.js"); held = [], waitingOnConfirm = !1, holdRequest = function(req) { - if (Offline.getOption("requests") !== !1) return Offline.trigger("requests:capture"), - "down" !== Offline.state && (waitingOnConfirm = !0), held.push(req); + return Offline.getOption("requests") !== !1 ? (Offline.trigger("requests:capture"), + "down" !== Offline.state && (waitingOnConfirm = !0), held.push(req)) :void 0; }, makeRequest = function(arg) { var body, name, password, ref, type, url, user, val, xhr; - if (xhr = arg.xhr, url = arg.url, type = arg.type, user = arg.user, password = arg.password, + if (xhr = arg.xhr, url = arg.url, type = arg.type, user = arg.user, password = arg.password, body = arg.body, Offline.getOption("requests") !== !1) { xhr.abort(), xhr.open(type, url, !0, user, password), ref = xhr.headers; for (name in ref) val = ref[name], xhr.setRequestHeader(name, val); @@ -184,40 +184,40 @@ }, flush = function() { var body, i, key, len, request, requests, url; if (Offline.getOption("requests") !== !1) { - for (Offline.trigger("requests:flush"), requests = {}, i = 0, len = held.length; i < len; i++) request = held[i], + for (Offline.trigger("requests:flush"), requests = {}, i = 0, len = held.length; len > i; i++) request = held[i], url = request.url.replace(/(\?|&)_=[0-9]+/, function(match, chr) { return "?" === chr ? chr :""; - }), Offline.getOption("deDupBody") ? (body = request.body, body = "[object Object]" === body.toString() ? JSON.stringify(body) :body.toString(), + }), Offline.getOption("deDupBody") ? (body = request.body, body = "[object Object]" === body.toString() ? JSON.stringify(body) :body.toString(), requests[request.type.toUpperCase() + " - " + url + " - " + body] = request) :requests[request.type.toUpperCase() + " - " + url] = request; for (key in requests) request = requests[key], makeRequest(request); return clear(); } }, setTimeout(function() { - if (Offline.getOption("requests") !== !1) return Offline.on("confirmed-up", function() { - if (waitingOnConfirm) return waitingOnConfirm = !1, clear(); + return Offline.getOption("requests") !== !1 ? (Offline.on("confirmed-up", function() { + return waitingOnConfirm ? (waitingOnConfirm = !1, clear()) :void 0; }), Offline.on("up", flush), Offline.on("down", function() { return waitingOnConfirm = !1; }), Offline.onXHR(function(request) { var _onreadystatechange, _send, async, hold, xhr; - if (xhr = request.xhr, async = request.async, xhr.offline !== !1 && (hold = function() { + return xhr = request.xhr, async = request.async, xhr.offline !== !1 && (hold = function() { return holdRequest(request); }, _send = xhr.send, xhr.send = function(body) { return request.body = body, _send.apply(xhr, arguments); - }, async)) return null === xhr.onprogress ? (xhr.addEventListener("error", hold, !1), - xhr.addEventListener("timeout", hold, !1)) :(_onreadystatechange = xhr.onreadystatechange, + }, async) ? null === xhr.onprogress ? (xhr.addEventListener("error", hold, !1), + xhr.addEventListener("timeout", hold, !1)) :(_onreadystatechange = xhr.onreadystatechange, xhr.onreadystatechange = function() { - return 0 === xhr.readyState ? hold() :4 === xhr.readyState && (0 === xhr.status || xhr.status >= 12e3) && hold(), + return 0 === xhr.readyState ? hold() :4 === xhr.readyState && (0 === xhr.status || xhr.status >= 12e3) && hold(), "function" == typeof _onreadystatechange ? _onreadystatechange.apply(null, arguments) :void 0; - }); + }) :void 0; }), Offline.requests = { flush:flush, clear:clear - }; + }) :void 0; }, 0); }.call(this), function() { var base, e, i, len, ref, simulate, state; if (!Offline) throw new Error("Offline simulate brought in without offline.js"); - for (ref = [ "up", "down" ], i = 0, len = ref.length; i < len; i++) { + for (ref = [ "up", "down" ], i = 0, len = ref.length; len > i; i++) { state = ref[i]; try { simulate = document.querySelector("script[data-simulate='" + state + "']") || ("undefined" != typeof localStorage && null !== localStorage ? localStorage.OFFLINE_SIMULATE :void 0) === state; @@ -225,12 +225,12 @@ e = _error, simulate = !1; } } - simulate && (null == Offline.options && (Offline.options = {}), null == (base = Offline.options).checks && (base.checks = {}), + simulate && (null == Offline.options && (Offline.options = {}), null == (base = Offline.options).checks && (base.checks = {}), Offline.options.checks.active = state); }.call(this), function() { var RETRY_TEMPLATE, TEMPLATE, _onreadystatechange, addClass, content, createFromHTML, el, flashClass, flashTimeouts, init, removeClass, render, roundTime; if (!window.Offline) throw new Error("Offline UI brought in without offline.js"); - TEMPLATE = '
', + TEMPLATE = '
', RETRY_TEMPLATE = '', createFromHTML = function(html) { var el; return el = document.createElement("div"), el.innerHTML = html, el.children[0]; @@ -239,7 +239,7 @@ }, removeClass = function(name) { return el.className = el.className.replace(new RegExp("(^| )" + name.split(" ").join("|") + "( |$)", "gi"), " "); }, flashTimeouts = {}, flashClass = function(name, time) { - return addClass(name), null != flashTimeouts[name] && clearTimeout(flashTimeouts[name]), + return addClass(name), null != flashTimeouts[name] && clearTimeout(flashTimeouts[name]), flashTimeouts[name] = setTimeout(function() { return removeClass(name), delete flashTimeouts[name]; }, 1e3 * time); @@ -251,40 +251,40 @@ minute:60, second:1 }; - for (unit in units) if (mult = units[unit], sec >= mult) return val = Math.floor(sec / mult), + for (unit in units) if (mult = units[unit], sec >= mult) return val = Math.floor(sec / mult), [ val, unit ]; return [ "now", "" ]; }, render = function() { var button, handler; - return el = createFromHTML(TEMPLATE), document.body.appendChild(el), null != Offline.reconnect && Offline.getOption("reconnect") && (el.appendChild(createFromHTML(RETRY_TEMPLATE)), + return el = createFromHTML(TEMPLATE), document.body.appendChild(el), null != Offline.reconnect && Offline.getOption("reconnect") && (el.appendChild(createFromHTML(RETRY_TEMPLATE)), button = el.querySelector(".offline-ui-retry"), handler = function(e) { return e.preventDefault(), Offline.reconnect.tryNow(); - }, null != button.addEventListener ? button.addEventListener("click", handler, !1) :button.attachEvent("click", handler)), + }, null != button.addEventListener ? button.addEventListener("click", handler, !1) :button.attachEvent("click", handler)), addClass("offline-ui-" + Offline.state), content = el.querySelector(".offline-ui-content"); }, init = function() { return render(), Offline.on("up", function() { - return removeClass("offline-ui-down"), addClass("offline-ui-up"), flashClass("offline-ui-up-2s", 2), + return removeClass("offline-ui-down"), addClass("offline-ui-up"), flashClass("offline-ui-up-2s", 2), flashClass("offline-ui-up-5s", 5); }), Offline.on("down", function() { - return removeClass("offline-ui-up"), addClass("offline-ui-down"), flashClass("offline-ui-down-2s", 2), + return removeClass("offline-ui-up"), addClass("offline-ui-down"), flashClass("offline-ui-down-2s", 2), flashClass("offline-ui-down-5s", 5); }), Offline.on("reconnect:connecting", function() { return addClass("offline-ui-connecting"), removeClass("offline-ui-waiting"); }), Offline.on("reconnect:tick", function() { var ref, time, unit; - return addClass("offline-ui-waiting"), removeClass("offline-ui-connecting"), ref = roundTime(Offline.reconnect.remaining), - time = ref[0], unit = ref[1], content.setAttribute("data-retry-in-value", time), + return addClass("offline-ui-waiting"), removeClass("offline-ui-connecting"), ref = roundTime(Offline.reconnect.remaining), + time = ref[0], unit = ref[1], content.setAttribute("data-retry-in-value", time), content.setAttribute("data-retry-in-unit", unit); }), Offline.on("reconnect:stopped", function() { - return removeClass("offline-ui-connecting offline-ui-waiting"), content.setAttribute("data-retry-in-value", null), + return removeClass("offline-ui-connecting offline-ui-waiting"), content.setAttribute("data-retry-in-value", null), content.setAttribute("data-retry-in-unit", null); }), Offline.on("reconnect:failure", function() { return flashClass("offline-ui-reconnect-failed-2s", 2), flashClass("offline-ui-reconnect-failed-5s", 5); }), Offline.on("reconnect:success", function() { return flashClass("offline-ui-reconnect-succeeded-2s", 2), flashClass("offline-ui-reconnect-succeeded-5s", 5); }); - }, "complete" === document.readyState ? init() :null != document.addEventListener ? document.addEventListener("DOMContentLoaded", init, !1) :(_onreadystatechange = document.onreadystatechange, + }, "complete" === document.readyState ? init() :null != document.addEventListener ? document.addEventListener("DOMContentLoaded", init, !1) :(_onreadystatechange = document.onreadystatechange, document.onreadystatechange = function() { return "complete" === document.readyState && init(), "function" == typeof _onreadystatechange ? _onreadystatechange.apply(null, arguments) :void 0; }); -}.call(this); \ No newline at end of file +}.call(this); diff --git a/offline.min.js b/offline.min.js index b6bd15c..04528ee 100644 --- a/offline.min.js +++ b/offline.min.js @@ -1,2 +1,2 @@ /*! offline-js 0.7.18 */ -(function(){var a,b,c,d,e,f,g;d=function(a,b){var c,d,e,f;e=[];for(d in b.prototype)try{f=b.prototype[d],null==a[d]&&"function"!=typeof f?e.push(a[d]=f):e.push(void 0)}catch(g){c=g}return e},a={},a.options=window.Offline?window.Offline.options||{}:{},c={checks:{xhr:{url:function(){return"/favicon.ico?_="+(new Date).getTime()},timeout:5e3,type:"HEAD"},image:{url:function(){return"/favicon.ico?_="+(new Date).getTime()}},active:"xhr"},checkOnLoad:!1,interceptRequests:!0,reconnect:!0,deDupBody:!1},e=function(a,b){var c,d,e,f,g,h;for(c=a,h=b.split("."),d=e=0,f=h.length;e1){for(j=[],h=0,i=g.length;h=12e3)&&f(),"function"==typeof b?b.apply(null,arguments):void 0})}),Offline.requests={flush:b,clear:a}},0)}.call(this),function(){var a,b,c,d,e,f,g;if(!Offline)throw new Error("Offline simulate brought in without offline.js");for(e=["up","down"],c=0,d=e.length;c=b)return e=Math.floor(a/b),[e,c];return["now",""]},l=function(){var c,h;return g=f(b),document.body.appendChild(g),null!=Offline.reconnect&&Offline.getOption("reconnect")&&(g.appendChild(f(a)),c=g.querySelector(".offline-ui-retry"),h=function(a){return a.preventDefault(),Offline.reconnect.tryNow()},null!=c.addEventListener?c.addEventListener("click",h,!1):c.attachEvent("click",h)),d("offline-ui-"+Offline.state),e=g.querySelector(".offline-ui-content")},j=function(){return l(),Offline.on("up",function(){return k("offline-ui-down"),d("offline-ui-up"),h("offline-ui-up-2s",2),h("offline-ui-up-5s",5)}),Offline.on("down",function(){return k("offline-ui-up"),d("offline-ui-down"),h("offline-ui-down-2s",2),h("offline-ui-down-5s",5)}),Offline.on("reconnect:connecting",function(){return d("offline-ui-connecting"),k("offline-ui-waiting")}),Offline.on("reconnect:tick",function(){var a,b,c;return d("offline-ui-waiting"),k("offline-ui-connecting"),a=m(Offline.reconnect.remaining),b=a[0],c=a[1],e.setAttribute("data-retry-in-value",b),e.setAttribute("data-retry-in-unit",c)}),Offline.on("reconnect:stopped",function(){return k("offline-ui-connecting offline-ui-waiting"),e.setAttribute("data-retry-in-value",null),e.setAttribute("data-retry-in-unit",null)}),Offline.on("reconnect:failure",function(){return h("offline-ui-reconnect-failed-2s",2),h("offline-ui-reconnect-failed-5s",5)}),Offline.on("reconnect:success",function(){return h("offline-ui-reconnect-succeeded-2s",2),h("offline-ui-reconnect-succeeded-5s",5)})},"complete"===document.readyState?j():null!=document.addEventListener?document.addEventListener("DOMContentLoaded",j,!1):(c=document.onreadystatechange,document.onreadystatechange=function(){return"complete"===document.readyState&&j(),"function"==typeof c?c.apply(null,arguments):void 0})}.call(this); \ No newline at end of file +(function(){var a,b,c,d,e,f,g;d=function(a,b){var c,d,e,f;e=[];for(d in b.prototype)try{f=b.prototype[d],null==a[d]&&"function"!=typeof f?e.push(a[d]=f):e.push(void 0)}catch(g){c=g}return e},a={},a.options=window.Offline?window.Offline.options||{}:{},c={checks:{xhr:{url:function(){return"/favicon.ico?_="+(new Date).getTime()},timeout:5e3,type:"HEAD"},image:{url:function(){return"/favicon.ico?_="+(new Date).getTime()}},active:"xhr"},checkOnLoad:!1,interceptRequests:!0,reconnect:!0,deDupBody:!1},e=function(a,b){var c,d,e,f,g,h;for(c=a,h=b.split("."),d=e=0,f=h.length;f>e&&(g=h[d],c=c[g],"object"==typeof c);d=++e);return d===h.length-1?c:void 0},a.getOption=function(b){var d,f;return f=null!=(d=e(a.options,b))?d:e(c,b),"function"==typeof f?f():f},"function"==typeof window.addEventListener&&window.addEventListener("online",function(){return setTimeout(a.confirmUp,100)},!1),"function"==typeof window.addEventListener&&window.addEventListener("offline",function(){return a.confirmDown()},!1),a.state="up",a.markUp=function(){return a.trigger("confirmed-up"),"up"!==a.state?(a.state="up",a.trigger("up")):void 0},a.markDown=function(){return a.trigger("confirmed-down"),"down"!==a.state?(a.state="down",a.trigger("down")):void 0},f={},a.on=function(b,c,d){var e,g,h,i,j;if(g=b.split(" "),g.length>1){for(j=[],h=0,i=g.length;i>h;h++)e=g[h],j.push(a.on(e,c,d));return j}return null==f[b]&&(f[b]=[]),f[b].push([d,c])},a.off=function(a,b){var c,d,e,g,h;if(null!=f[a]){if(b){for(e=0,h=[];ed;d++)h=g[d],b=h[0],c=h[1],i.push(c.call(b));return i}},b=function(a,b,c){var d,e,f,g,h;return h=function(){return a.status&&a.status<12e3?b():c()},null===a.onprogress?(d=a.onerror,a.onerror=function(){return c(),"function"==typeof d?d.apply(null,arguments):void 0},g=a.ontimeout,a.ontimeout=function(){return c(),"function"==typeof g?g.apply(null,arguments):void 0},e=a.onload,a.onload=function(){return h(),"function"==typeof e?e.apply(null,arguments):void 0}):(f=a.onreadystatechange,a.onreadystatechange=function(){return 4===a.readyState?h():0===a.readyState&&c(),"function"==typeof f?f.apply(null,arguments):void 0})},a.checks={},a.checks.xhr=function(){var c,d;d=new XMLHttpRequest,d.offline=!1,d.open(a.getOption("checks.xhr.type"),a.getOption("checks.xhr.url"),!0),null!=d.timeout&&(d.timeout=a.getOption("checks.xhr.timeout")),b(d,a.markUp,a.markDown);try{d.send()}catch(e){c=e,a.markDown()}return d},a.checks.image=function(){var b;b=document.createElement("img"),b.onerror=a.markDown,b.onload=a.markUp,b.src=a.getOption("checks.image.url")},a.checks.down=a.markDown,a.checks.up=a.markUp,a.check=function(){return a.trigger("checking"),a.checks[a.getOption("checks.active")]()},a.confirmUp=a.confirmDown=a.check,a.onXHR=function(a){var b,c,e;return e=function(b,c){var d;return d=b.open,b.open=function(e,f,g,h,i){return a({type:e,url:f,async:g,flags:c,user:h,password:i,xhr:b}),d.apply(b,arguments)}},c=window.XMLHttpRequest,window.XMLHttpRequest=function(a){var b,d,f;return f=new c(a),e(f,a),d=f.setRequestHeader,f.headers={},f.setRequestHeader=function(a,b){return f.headers[a]=b,d.call(f,a,b)},b=f.overrideMimeType,f.overrideMimeType=function(a){return f.mimeType=a,b.call(f,a)},f},d(window.XMLHttpRequest,c),null!=window.XDomainRequest?(b=window.XDomainRequest,window.XDomainRequest=function(){var a;return a=new b,e(a),a},d(window.XDomainRequest,b)):void 0},g=function(){return a.getOption("interceptRequests")&&a.onXHR(function(c){var d;return d=c.xhr,d.offline!==!1?b(d,a.markUp,a.confirmDown):void 0}),a.getOption("checkOnLoad")?a.check():void 0},setTimeout(g,0),window.Offline=a}).call(this),function(){var a,b,c,d,e,f,g,h,i;if(!window.Offline)throw new Error("Offline Reconnect brought in without offline.js");d=Offline.reconnect={},f=null,e=function(){var a;return null!=d.state&&"inactive"!==d.state&&Offline.trigger("reconnect:stopped"),d.state="inactive",d.remaining=d.delay=null!=(a=Offline.getOption("reconnect.initialDelay"))?a:3},b=function(){var a,b;return a=null!=(b=Offline.getOption("reconnect.delay"))?b:Math.min(Math.ceil(1.5*d.delay),3600),d.remaining=d.delay=a},g=function(){return"connecting"!==d.state?(d.remaining-=1,Offline.trigger("reconnect:tick"),0===d.remaining?h():void 0):void 0},h=function(){return"waiting"===d.state?(Offline.trigger("reconnect:connecting"),d.state="connecting",Offline.check()):void 0},a=function(){return Offline.getOption("reconnect")?(e(),d.state="waiting",Offline.trigger("reconnect:started"),f=setInterval(g,1e3)):void 0},i=function(){return null!=f&&clearInterval(f),e()},c=function(){return Offline.getOption("reconnect")&&"connecting"===d.state?(Offline.trigger("reconnect:failure"),d.state="waiting",b()):void 0},d.tryNow=h,e(),Offline.on("down",a),Offline.on("confirmed-down",c),Offline.on("up",i)}.call(this),function(){var a,b,c,d,e,f;if(!window.Offline)throw new Error("Requests module brought in without offline.js");c=[],f=!1,d=function(a){return Offline.getOption("requests")!==!1?(Offline.trigger("requests:capture"),"down"!==Offline.state&&(f=!0),c.push(a)):void 0},e=function(a){var b,c,d,e,f,g,h,i,j;if(j=a.xhr,g=a.url,f=a.type,h=a.user,d=a.password,b=a.body,Offline.getOption("requests")!==!1){j.abort(),j.open(f,g,!0,h,d),e=j.headers;for(c in e)i=e[c],j.setRequestHeader(c,i);return j.mimeType&&j.overrideMimeType(j.mimeType),j.send(b)}},a=function(){return c=[]},b=function(){var b,d,f,g,h,i,j;if(Offline.getOption("requests")!==!1){for(Offline.trigger("requests:flush"),i={},d=0,g=c.length;g>d;d++)h=c[d],j=h.url.replace(/(\?|&)_=[0-9]+/,function(a,b){return"?"===b?b:""}),Offline.getOption("deDupBody")?(b=h.body,b="[object Object]"===b.toString()?JSON.stringify(b):b.toString(),i[h.type.toUpperCase()+" - "+j+" - "+b]=h):i[h.type.toUpperCase()+" - "+j]=h;for(f in i)h=i[f],e(h);return a()}},setTimeout(function(){return Offline.getOption("requests")!==!1?(Offline.on("confirmed-up",function(){return f?(f=!1,a()):void 0}),Offline.on("up",b),Offline.on("down",function(){return f=!1}),Offline.onXHR(function(a){var b,c,e,f,g;return g=a.xhr,e=a.async,g.offline!==!1&&(f=function(){return d(a)},c=g.send,g.send=function(b){return a.body=b,c.apply(g,arguments)},e)?null===g.onprogress?(g.addEventListener("error",f,!1),g.addEventListener("timeout",f,!1)):(b=g.onreadystatechange,g.onreadystatechange=function(){return 0===g.readyState?f():4===g.readyState&&(0===g.status||g.status>=12e3)&&f(),"function"==typeof b?b.apply(null,arguments):void 0}):void 0}),Offline.requests={flush:b,clear:a}):void 0},0)}.call(this),function(){var a,b,c,d,e,f,g;if(!Offline)throw new Error("Offline simulate brought in without offline.js");for(e=["up","down"],c=0,d=e.length;d>c;c++){g=e[c];try{f=document.querySelector("script[data-simulate='"+g+"']")||("undefined"!=typeof localStorage&&null!==localStorage?localStorage.OFFLINE_SIMULATE:void 0)===g}catch(h){b=h,f=!1}}f&&(null==Offline.options&&(Offline.options={}),null==(a=Offline.options).checks&&(a.checks={}),Offline.options.checks.active=g)}.call(this),function(){var a,b,c,d,e,f,g,h,i,j,k,l,m;if(!window.Offline)throw new Error("Offline UI brought in without offline.js");b='
',a='',f=function(a){var b;return b=document.createElement("div"),b.innerHTML=a,b.children[0]},g=e=null,d=function(a){return k(a),g.className+=" "+a},k=function(a){return g.className=g.className.replace(new RegExp("(^| )"+a.split(" ").join("|")+"( |$)","gi")," ")},i={},h=function(a,b){return d(a),null!=i[a]&&clearTimeout(i[a]),i[a]=setTimeout(function(){return k(a),delete i[a]},1e3*b)},m=function(a){var b,c,d,e;d={day:86400,hour:3600,minute:60,second:1};for(c in d)if(b=d[c],a>=b)return e=Math.floor(a/b),[e,c];return["now",""]},l=function(){var c,h;return g=f(b),document.body.appendChild(g),null!=Offline.reconnect&&Offline.getOption("reconnect")&&(g.appendChild(f(a)),c=g.querySelector(".offline-ui-retry"),h=function(a){return a.preventDefault(),Offline.reconnect.tryNow()},null!=c.addEventListener?c.addEventListener("click",h,!1):c.attachEvent("click",h)),d("offline-ui-"+Offline.state),e=g.querySelector(".offline-ui-content")},j=function(){return l(),Offline.on("up",function(){return k("offline-ui-down"),d("offline-ui-up"),h("offline-ui-up-2s",2),h("offline-ui-up-5s",5)}),Offline.on("down",function(){return k("offline-ui-up"),d("offline-ui-down"),h("offline-ui-down-2s",2),h("offline-ui-down-5s",5)}),Offline.on("reconnect:connecting",function(){return d("offline-ui-connecting"),k("offline-ui-waiting")}),Offline.on("reconnect:tick",function(){var a,b,c;return d("offline-ui-waiting"),k("offline-ui-connecting"),a=m(Offline.reconnect.remaining),b=a[0],c=a[1],e.setAttribute("data-retry-in-value",b),e.setAttribute("data-retry-in-unit",c)}),Offline.on("reconnect:stopped",function(){return k("offline-ui-connecting offline-ui-waiting"),e.setAttribute("data-retry-in-value",null),e.setAttribute("data-retry-in-unit",null)}),Offline.on("reconnect:failure",function(){return h("offline-ui-reconnect-failed-2s",2),h("offline-ui-reconnect-failed-5s",5)}),Offline.on("reconnect:success",function(){return h("offline-ui-reconnect-succeeded-2s",2),h("offline-ui-reconnect-succeeded-5s",5)})},"complete"===document.readyState?j():null!=document.addEventListener?document.addEventListener("DOMContentLoaded",j,!1):(c=document.onreadystatechange,document.onreadystatechange=function(){return"complete"===document.readyState&&j(),"function"==typeof c?c.apply(null,arguments):void 0})}.call(this); From cd250c51fd7a462f81468028ad1a29f1300b0c6d Mon Sep 17 00:00:00 2001 From: Francisco Dias Date: Sat, 29 Apr 2017 17:11:00 -0400 Subject: [PATCH 42/49] fixed arabic.sass --- offline.js | 136 +++++++++---------- offline.min.js | 2 +- sass/_arabic.sass | 3 +- themes/offline-language-arabic-indicator.css | 9 ++ themes/offline-language-arabic.css | 109 +++++++++++++++ 5 files changed, 188 insertions(+), 71 deletions(-) create mode 100644 themes/offline-language-arabic-indicator.css create mode 100644 themes/offline-language-arabic.css diff --git a/offline.js b/offline.js index e0673e8..a4141d1 100644 --- a/offline.js +++ b/offline.js @@ -2,15 +2,15 @@ (function() { var Offline, checkXHR, defaultOptions, extendNative, grab, handlers, init; extendNative = function(to, from) { - var e, key, results, val; + var key, results, val; results = []; for (key in from.prototype) try { val = from.prototype[key], null == to[key] && "function" != typeof val ? results.push(to[key] = val) :results.push(void 0); } catch (_error) { - e = _error; + _error; } return results; - }, Offline = {}, Offline.options = window.Offline ? window.Offline.options || {} :{}, + }, Offline = {}, Offline.options = window.Offline ? window.Offline.options || {} :{}, defaultOptions = { checks:{ xhr:{ @@ -33,36 +33,36 @@ deDupBody:!1 }, grab = function(obj, key) { var cur, i, j, len, part, parts; - for (cur = obj, parts = key.split("."), i = j = 0, len = parts.length; len > j && (part = parts[i], - cur = cur[part], "object" == typeof cur); i = ++j) ; + for (cur = obj, parts = key.split("."), i = j = 0, len = parts.length; j < len && (part = parts[i], + "object" == typeof (cur = cur[part])); i = ++j) ; return i === parts.length - 1 ? cur :void 0; }, Offline.getOption = function(key) { var ref, val; - return val = null != (ref = grab(Offline.options, key)) ? ref :grab(defaultOptions, key), + return val = null != (ref = grab(Offline.options, key)) ? ref :grab(defaultOptions, key), "function" == typeof val ? val() :val; }, "function" == typeof window.addEventListener && window.addEventListener("online", function() { return setTimeout(Offline.confirmUp, 100); }, !1), "function" == typeof window.addEventListener && window.addEventListener("offline", function() { return Offline.confirmDown(); }, !1), Offline.state = "up", Offline.markUp = function() { - return Offline.trigger("confirmed-up"), "up" !== Offline.state ? (Offline.state = "up", - Offline.trigger("up")) :void 0; + if (Offline.trigger("confirmed-up"), "up" !== Offline.state) return Offline.state = "up", + Offline.trigger("up"); }, Offline.markDown = function() { - return Offline.trigger("confirmed-down"), "down" !== Offline.state ? (Offline.state = "down", - Offline.trigger("down")) :void 0; + if (Offline.trigger("confirmed-down"), "down" !== Offline.state) return Offline.state = "down", + Offline.trigger("down"); }, handlers = {}, Offline.on = function(event, handler, ctx) { var e, events, j, len, results; if (events = event.split(" "), events.length > 1) { - for (results = [], j = 0, len = events.length; len > j; j++) e = events[j], results.push(Offline.on(e, handler, ctx)); + for (results = [], j = 0, len = events.length; j < len; j++) e = events[j], results.push(Offline.on(e, handler, ctx)); return results; } return null == handlers[event] && (handlers[event] = []), handlers[event].push([ ctx, handler ]); }, Offline.off = function(event, handler) { - var _handler, ctx, i, ref, results; + var _handler, i, ref, results; if (null != handlers[event]) { if (handler) { - for (i = 0, results = []; i < handlers[event].length; ) ref = handlers[event][i], - ctx = ref[0], _handler = ref[1], _handler === handler ? results.push(handlers[event].splice(i, 1)) :results.push(i++); + for (i = 0, results = []; i < handlers[event].length; ) ref = handlers[event][i], + ref[0], _handler = ref[1], _handler === handler ? results.push(handlers[event].splice(i, 1)) :results.push(i++); return results; } return handlers[event] = []; @@ -70,7 +70,7 @@ }, Offline.trigger = function(event) { var ctx, handler, j, len, ref, ref1, results; if (null != handlers[event]) { - for (ref = handlers[event].slice(0), results = [], j = 0, len = ref.length; len > j; j++) ref1 = ref[j], + for (ref = handlers[event].slice(0), results = [], j = 0, len = ref.length; j < len; j++) ref1 = ref[j], ctx = ref1[0], handler = ref1[1], results.push(handler.call(ctx)); return results; } @@ -88,25 +88,25 @@ return 4 === xhr.readyState ? checkStatus() :0 === xhr.readyState && onDown(), "function" == typeof _onreadystatechange ? _onreadystatechange.apply(null, arguments) :void 0; }); }, Offline.checks = {}, Offline.checks.xhr = function() { - var e, xhr; - xhr = new XMLHttpRequest(), xhr.offline = !1, xhr.open(Offline.getOption("checks.xhr.type"), Offline.getOption("checks.xhr.url"), !0), - null != xhr.timeout && (xhr.timeout = Offline.getOption("checks.xhr.timeout")), + var xhr; + xhr = new XMLHttpRequest(), xhr.offline = !1, xhr.open(Offline.getOption("checks.xhr.type"), Offline.getOption("checks.xhr.url"), !0), + null != xhr.timeout && (xhr.timeout = Offline.getOption("checks.xhr.timeout")), checkXHR(xhr, Offline.markUp, Offline.markDown); try { xhr.send(); } catch (_error) { - e = _error, Offline.markDown(); + _error, Offline.markDown(); } return xhr; }, Offline.checks.image = function() { var img; - img = document.createElement("img"), img.onerror = Offline.markDown, img.onload = Offline.markUp, + img = document.createElement("img"), img.onerror = Offline.markDown, img.onload = Offline.markUp, img.src = Offline.getOption("checks.image.url"); }, Offline.checks.down = Offline.markDown, Offline.checks.up = Offline.markUp, Offline.check = function() { return Offline.trigger("checking"), Offline.checks[Offline.getOption("checks.active")](); }, Offline.confirmUp = Offline.confirmDown = Offline.check, Offline.onXHR = function(cb) { var _XDomainRequest, _XMLHttpRequest, monitorXHR; - return monitorXHR = function(req, flags) { + if (monitorXHR = function(req, flags) { var _open; return _open = req.open, req.open = function(type, url, async, user, password) { return cb({ @@ -121,60 +121,60 @@ }; }, _XMLHttpRequest = window.XMLHttpRequest, window.XMLHttpRequest = function(flags) { var _overrideMimeType, _setRequestHeader, req; - return req = new _XMLHttpRequest(flags), monitorXHR(req, flags), _setRequestHeader = req.setRequestHeader, + return req = new _XMLHttpRequest(flags), monitorXHR(req, flags), _setRequestHeader = req.setRequestHeader, req.headers = {}, req.setRequestHeader = function(name, value) { return req.headers[name] = value, _setRequestHeader.call(req, name, value); }, _overrideMimeType = req.overrideMimeType, req.overrideMimeType = function(type) { return req.mimeType = type, _overrideMimeType.call(req, type); }, req; - }, extendNative(window.XMLHttpRequest, _XMLHttpRequest), null != window.XDomainRequest ? (_XDomainRequest = window.XDomainRequest, + }, extendNative(window.XMLHttpRequest, _XMLHttpRequest), null != window.XDomainRequest) return _XDomainRequest = window.XDomainRequest, window.XDomainRequest = function() { var req; return req = new _XDomainRequest(), monitorXHR(req), req; - }, extendNative(window.XDomainRequest, _XDomainRequest)) :void 0; + }, extendNative(window.XDomainRequest, _XDomainRequest); }, init = function() { - return Offline.getOption("interceptRequests") && Offline.onXHR(function(arg) { + if (Offline.getOption("interceptRequests") && Offline.onXHR(function(arg) { var xhr; - return xhr = arg.xhr, xhr.offline !== !1 ? checkXHR(xhr, Offline.markUp, Offline.confirmDown) :void 0; - }), Offline.getOption("checkOnLoad") ? Offline.check() :void 0; + if (xhr = arg.xhr, !1 !== xhr.offline) return checkXHR(xhr, Offline.markUp, Offline.confirmDown); + }), Offline.getOption("checkOnLoad")) return Offline.check(); }, setTimeout(init, 0), window.Offline = Offline; }).call(this), function() { var down, next, nope, rc, reset, retryIntv, tick, tryNow, up; if (!window.Offline) throw new Error("Offline Reconnect brought in without offline.js"); rc = Offline.reconnect = {}, retryIntv = null, reset = function() { var ref; - return null != rc.state && "inactive" !== rc.state && Offline.trigger("reconnect:stopped"), + return null != rc.state && "inactive" !== rc.state && Offline.trigger("reconnect:stopped"), rc.state = "inactive", rc.remaining = rc.delay = null != (ref = Offline.getOption("reconnect.initialDelay")) ? ref :3; }, next = function() { var delay, ref; - return delay = null != (ref = Offline.getOption("reconnect.delay")) ? ref :Math.min(Math.ceil(1.5 * rc.delay), 3600), + return delay = null != (ref = Offline.getOption("reconnect.delay")) ? ref :Math.min(Math.ceil(1.5 * rc.delay), 3600), rc.remaining = rc.delay = delay; }, tick = function() { - return "connecting" !== rc.state ? (rc.remaining -= 1, Offline.trigger("reconnect:tick"), - 0 === rc.remaining ? tryNow() :void 0) :void 0; + if ("connecting" !== rc.state) return rc.remaining -= 1, Offline.trigger("reconnect:tick"), + 0 === rc.remaining ? tryNow() :void 0; }, tryNow = function() { - return "waiting" === rc.state ? (Offline.trigger("reconnect:connecting"), rc.state = "connecting", - Offline.check()) :void 0; + if ("waiting" === rc.state) return Offline.trigger("reconnect:connecting"), rc.state = "connecting", + Offline.check(); }, down = function() { - return Offline.getOption("reconnect") ? (reset(), rc.state = "waiting", Offline.trigger("reconnect:started"), - retryIntv = setInterval(tick, 1e3)) :void 0; + if (Offline.getOption("reconnect")) return reset(), rc.state = "waiting", Offline.trigger("reconnect:started"), + retryIntv = setInterval(tick, 1e3); }, up = function() { return null != retryIntv && clearInterval(retryIntv), reset(); }, nope = function() { - return Offline.getOption("reconnect") && "connecting" === rc.state ? (Offline.trigger("reconnect:failure"), + if (Offline.getOption("reconnect")) return "connecting" === rc.state ? (Offline.trigger("reconnect:failure"), rc.state = "waiting", next()) :void 0; - }, rc.tryNow = tryNow, reset(), Offline.on("down", down), Offline.on("confirmed-down", nope), + }, rc.tryNow = tryNow, reset(), Offline.on("down", down), Offline.on("confirmed-down", nope), Offline.on("up", up); }.call(this), function() { var clear, flush, held, holdRequest, makeRequest, waitingOnConfirm; if (!window.Offline) throw new Error("Requests module brought in without offline.js"); held = [], waitingOnConfirm = !1, holdRequest = function(req) { - return Offline.getOption("requests") !== !1 ? (Offline.trigger("requests:capture"), - "down" !== Offline.state && (waitingOnConfirm = !0), held.push(req)) :void 0; + if (!1 !== Offline.getOption("requests")) return Offline.trigger("requests:capture"), + "down" !== Offline.state && (waitingOnConfirm = !0), held.push(req); }, makeRequest = function(arg) { var body, name, password, ref, type, url, user, val, xhr; - if (xhr = arg.xhr, url = arg.url, type = arg.type, user = arg.user, password = arg.password, - body = arg.body, Offline.getOption("requests") !== !1) { + if (xhr = arg.xhr, url = arg.url, type = arg.type, user = arg.user, password = arg.password, + body = arg.body, !1 !== Offline.getOption("requests")) { xhr.abort(), xhr.open(type, url, !0, user, password), ref = xhr.headers; for (name in ref) val = ref[name], xhr.setRequestHeader(name, val); return xhr.mimeType && xhr.overrideMimeType(xhr.mimeType), xhr.send(body); @@ -183,54 +183,54 @@ return held = []; }, flush = function() { var body, i, key, len, request, requests, url; - if (Offline.getOption("requests") !== !1) { - for (Offline.trigger("requests:flush"), requests = {}, i = 0, len = held.length; len > i; i++) request = held[i], + if (!1 !== Offline.getOption("requests")) { + for (Offline.trigger("requests:flush"), requests = {}, i = 0, len = held.length; i < len; i++) request = held[i], url = request.url.replace(/(\?|&)_=[0-9]+/, function(match, chr) { return "?" === chr ? chr :""; - }), Offline.getOption("deDupBody") ? (body = request.body, body = "[object Object]" === body.toString() ? JSON.stringify(body) :body.toString(), + }), Offline.getOption("deDupBody") ? (body = request.body, body = "[object Object]" === body.toString() ? JSON.stringify(body) :body.toString(), requests[request.type.toUpperCase() + " - " + url + " - " + body] = request) :requests[request.type.toUpperCase() + " - " + url] = request; for (key in requests) request = requests[key], makeRequest(request); return clear(); } }, setTimeout(function() { - return Offline.getOption("requests") !== !1 ? (Offline.on("confirmed-up", function() { - return waitingOnConfirm ? (waitingOnConfirm = !1, clear()) :void 0; + if (!1 !== Offline.getOption("requests")) return Offline.on("confirmed-up", function() { + if (waitingOnConfirm) return waitingOnConfirm = !1, clear(); }), Offline.on("up", flush), Offline.on("down", function() { return waitingOnConfirm = !1; }), Offline.onXHR(function(request) { var _onreadystatechange, _send, async, hold, xhr; - return xhr = request.xhr, async = request.async, xhr.offline !== !1 && (hold = function() { + if (xhr = request.xhr, async = request.async, !1 !== xhr.offline && (hold = function() { return holdRequest(request); }, _send = xhr.send, xhr.send = function(body) { return request.body = body, _send.apply(xhr, arguments); - }, async) ? null === xhr.onprogress ? (xhr.addEventListener("error", hold, !1), - xhr.addEventListener("timeout", hold, !1)) :(_onreadystatechange = xhr.onreadystatechange, + }, async)) return null === xhr.onprogress ? (xhr.addEventListener("error", hold, !1), + xhr.addEventListener("timeout", hold, !1)) :(_onreadystatechange = xhr.onreadystatechange, xhr.onreadystatechange = function() { - return 0 === xhr.readyState ? hold() :4 === xhr.readyState && (0 === xhr.status || xhr.status >= 12e3) && hold(), + return 0 === xhr.readyState ? hold() :4 === xhr.readyState && (0 === xhr.status || xhr.status >= 12e3) && hold(), "function" == typeof _onreadystatechange ? _onreadystatechange.apply(null, arguments) :void 0; - }) :void 0; + }); }), Offline.requests = { flush:flush, clear:clear - }) :void 0; + }; }, 0); }.call(this), function() { - var base, e, i, len, ref, simulate, state; + var base, i, len, ref, simulate, state; if (!Offline) throw new Error("Offline simulate brought in without offline.js"); - for (ref = [ "up", "down" ], i = 0, len = ref.length; len > i; i++) { + for (ref = [ "up", "down" ], i = 0, len = ref.length; i < len; i++) { state = ref[i]; try { simulate = document.querySelector("script[data-simulate='" + state + "']") || ("undefined" != typeof localStorage && null !== localStorage ? localStorage.OFFLINE_SIMULATE :void 0) === state; } catch (_error) { - e = _error, simulate = !1; + _error, simulate = !1; } } - simulate && (null == Offline.options && (Offline.options = {}), null == (base = Offline.options).checks && (base.checks = {}), + simulate && (null == Offline.options && (Offline.options = {}), null == (base = Offline.options).checks && (base.checks = {}), Offline.options.checks.active = state); }.call(this), function() { var RETRY_TEMPLATE, TEMPLATE, _onreadystatechange, addClass, content, createFromHTML, el, flashClass, flashTimeouts, init, removeClass, render, roundTime; if (!window.Offline) throw new Error("Offline UI brought in without offline.js"); - TEMPLATE = '
', + TEMPLATE = '
', RETRY_TEMPLATE = '', createFromHTML = function(html) { var el; return el = document.createElement("div"), el.innerHTML = html, el.children[0]; @@ -239,7 +239,7 @@ }, removeClass = function(name) { return el.className = el.className.replace(new RegExp("(^| )" + name.split(" ").join("|") + "( |$)", "gi"), " "); }, flashTimeouts = {}, flashClass = function(name, time) { - return addClass(name), null != flashTimeouts[name] && clearTimeout(flashTimeouts[name]), + return addClass(name), null != flashTimeouts[name] && clearTimeout(flashTimeouts[name]), flashTimeouts[name] = setTimeout(function() { return removeClass(name), delete flashTimeouts[name]; }, 1e3 * time); @@ -251,40 +251,40 @@ minute:60, second:1 }; - for (unit in units) if (mult = units[unit], sec >= mult) return val = Math.floor(sec / mult), + for (unit in units) if (mult = units[unit], sec >= mult) return val = Math.floor(sec / mult), [ val, unit ]; return [ "now", "" ]; }, render = function() { var button, handler; - return el = createFromHTML(TEMPLATE), document.body.appendChild(el), null != Offline.reconnect && Offline.getOption("reconnect") && (el.appendChild(createFromHTML(RETRY_TEMPLATE)), + return el = createFromHTML(TEMPLATE), document.body.appendChild(el), null != Offline.reconnect && Offline.getOption("reconnect") && (el.appendChild(createFromHTML(RETRY_TEMPLATE)), button = el.querySelector(".offline-ui-retry"), handler = function(e) { return e.preventDefault(), Offline.reconnect.tryNow(); - }, null != button.addEventListener ? button.addEventListener("click", handler, !1) :button.attachEvent("click", handler)), + }, null != button.addEventListener ? button.addEventListener("click", handler, !1) :button.attachEvent("click", handler)), addClass("offline-ui-" + Offline.state), content = el.querySelector(".offline-ui-content"); }, init = function() { return render(), Offline.on("up", function() { - return removeClass("offline-ui-down"), addClass("offline-ui-up"), flashClass("offline-ui-up-2s", 2), + return removeClass("offline-ui-down"), addClass("offline-ui-up"), flashClass("offline-ui-up-2s", 2), flashClass("offline-ui-up-5s", 5); }), Offline.on("down", function() { - return removeClass("offline-ui-up"), addClass("offline-ui-down"), flashClass("offline-ui-down-2s", 2), + return removeClass("offline-ui-up"), addClass("offline-ui-down"), flashClass("offline-ui-down-2s", 2), flashClass("offline-ui-down-5s", 5); }), Offline.on("reconnect:connecting", function() { return addClass("offline-ui-connecting"), removeClass("offline-ui-waiting"); }), Offline.on("reconnect:tick", function() { var ref, time, unit; - return addClass("offline-ui-waiting"), removeClass("offline-ui-connecting"), ref = roundTime(Offline.reconnect.remaining), - time = ref[0], unit = ref[1], content.setAttribute("data-retry-in-value", time), + return addClass("offline-ui-waiting"), removeClass("offline-ui-connecting"), ref = roundTime(Offline.reconnect.remaining), + time = ref[0], unit = ref[1], content.setAttribute("data-retry-in-value", time), content.setAttribute("data-retry-in-unit", unit); }), Offline.on("reconnect:stopped", function() { - return removeClass("offline-ui-connecting offline-ui-waiting"), content.setAttribute("data-retry-in-value", null), + return removeClass("offline-ui-connecting offline-ui-waiting"), content.setAttribute("data-retry-in-value", null), content.setAttribute("data-retry-in-unit", null); }), Offline.on("reconnect:failure", function() { return flashClass("offline-ui-reconnect-failed-2s", 2), flashClass("offline-ui-reconnect-failed-5s", 5); }), Offline.on("reconnect:success", function() { return flashClass("offline-ui-reconnect-succeeded-2s", 2), flashClass("offline-ui-reconnect-succeeded-5s", 5); }); - }, "complete" === document.readyState ? init() :null != document.addEventListener ? document.addEventListener("DOMContentLoaded", init, !1) :(_onreadystatechange = document.onreadystatechange, + }, "complete" === document.readyState ? init() :null != document.addEventListener ? document.addEventListener("DOMContentLoaded", init, !1) :(_onreadystatechange = document.onreadystatechange, document.onreadystatechange = function() { return "complete" === document.readyState && init(), "function" == typeof _onreadystatechange ? _onreadystatechange.apply(null, arguments) :void 0; }); -}.call(this); +}.call(this); \ No newline at end of file diff --git a/offline.min.js b/offline.min.js index 04528ee..4e55cc6 100644 --- a/offline.min.js +++ b/offline.min.js @@ -1,2 +1,2 @@ /*! offline-js 0.7.18 */ -(function(){var a,b,c,d,e,f,g;d=function(a,b){var c,d,e,f;e=[];for(d in b.prototype)try{f=b.prototype[d],null==a[d]&&"function"!=typeof f?e.push(a[d]=f):e.push(void 0)}catch(g){c=g}return e},a={},a.options=window.Offline?window.Offline.options||{}:{},c={checks:{xhr:{url:function(){return"/favicon.ico?_="+(new Date).getTime()},timeout:5e3,type:"HEAD"},image:{url:function(){return"/favicon.ico?_="+(new Date).getTime()}},active:"xhr"},checkOnLoad:!1,interceptRequests:!0,reconnect:!0,deDupBody:!1},e=function(a,b){var c,d,e,f,g,h;for(c=a,h=b.split("."),d=e=0,f=h.length;f>e&&(g=h[d],c=c[g],"object"==typeof c);d=++e);return d===h.length-1?c:void 0},a.getOption=function(b){var d,f;return f=null!=(d=e(a.options,b))?d:e(c,b),"function"==typeof f?f():f},"function"==typeof window.addEventListener&&window.addEventListener("online",function(){return setTimeout(a.confirmUp,100)},!1),"function"==typeof window.addEventListener&&window.addEventListener("offline",function(){return a.confirmDown()},!1),a.state="up",a.markUp=function(){return a.trigger("confirmed-up"),"up"!==a.state?(a.state="up",a.trigger("up")):void 0},a.markDown=function(){return a.trigger("confirmed-down"),"down"!==a.state?(a.state="down",a.trigger("down")):void 0},f={},a.on=function(b,c,d){var e,g,h,i,j;if(g=b.split(" "),g.length>1){for(j=[],h=0,i=g.length;i>h;h++)e=g[h],j.push(a.on(e,c,d));return j}return null==f[b]&&(f[b]=[]),f[b].push([d,c])},a.off=function(a,b){var c,d,e,g,h;if(null!=f[a]){if(b){for(e=0,h=[];ed;d++)h=g[d],b=h[0],c=h[1],i.push(c.call(b));return i}},b=function(a,b,c){var d,e,f,g,h;return h=function(){return a.status&&a.status<12e3?b():c()},null===a.onprogress?(d=a.onerror,a.onerror=function(){return c(),"function"==typeof d?d.apply(null,arguments):void 0},g=a.ontimeout,a.ontimeout=function(){return c(),"function"==typeof g?g.apply(null,arguments):void 0},e=a.onload,a.onload=function(){return h(),"function"==typeof e?e.apply(null,arguments):void 0}):(f=a.onreadystatechange,a.onreadystatechange=function(){return 4===a.readyState?h():0===a.readyState&&c(),"function"==typeof f?f.apply(null,arguments):void 0})},a.checks={},a.checks.xhr=function(){var c,d;d=new XMLHttpRequest,d.offline=!1,d.open(a.getOption("checks.xhr.type"),a.getOption("checks.xhr.url"),!0),null!=d.timeout&&(d.timeout=a.getOption("checks.xhr.timeout")),b(d,a.markUp,a.markDown);try{d.send()}catch(e){c=e,a.markDown()}return d},a.checks.image=function(){var b;b=document.createElement("img"),b.onerror=a.markDown,b.onload=a.markUp,b.src=a.getOption("checks.image.url")},a.checks.down=a.markDown,a.checks.up=a.markUp,a.check=function(){return a.trigger("checking"),a.checks[a.getOption("checks.active")]()},a.confirmUp=a.confirmDown=a.check,a.onXHR=function(a){var b,c,e;return e=function(b,c){var d;return d=b.open,b.open=function(e,f,g,h,i){return a({type:e,url:f,async:g,flags:c,user:h,password:i,xhr:b}),d.apply(b,arguments)}},c=window.XMLHttpRequest,window.XMLHttpRequest=function(a){var b,d,f;return f=new c(a),e(f,a),d=f.setRequestHeader,f.headers={},f.setRequestHeader=function(a,b){return f.headers[a]=b,d.call(f,a,b)},b=f.overrideMimeType,f.overrideMimeType=function(a){return f.mimeType=a,b.call(f,a)},f},d(window.XMLHttpRequest,c),null!=window.XDomainRequest?(b=window.XDomainRequest,window.XDomainRequest=function(){var a;return a=new b,e(a),a},d(window.XDomainRequest,b)):void 0},g=function(){return a.getOption("interceptRequests")&&a.onXHR(function(c){var d;return d=c.xhr,d.offline!==!1?b(d,a.markUp,a.confirmDown):void 0}),a.getOption("checkOnLoad")?a.check():void 0},setTimeout(g,0),window.Offline=a}).call(this),function(){var a,b,c,d,e,f,g,h,i;if(!window.Offline)throw new Error("Offline Reconnect brought in without offline.js");d=Offline.reconnect={},f=null,e=function(){var a;return null!=d.state&&"inactive"!==d.state&&Offline.trigger("reconnect:stopped"),d.state="inactive",d.remaining=d.delay=null!=(a=Offline.getOption("reconnect.initialDelay"))?a:3},b=function(){var a,b;return a=null!=(b=Offline.getOption("reconnect.delay"))?b:Math.min(Math.ceil(1.5*d.delay),3600),d.remaining=d.delay=a},g=function(){return"connecting"!==d.state?(d.remaining-=1,Offline.trigger("reconnect:tick"),0===d.remaining?h():void 0):void 0},h=function(){return"waiting"===d.state?(Offline.trigger("reconnect:connecting"),d.state="connecting",Offline.check()):void 0},a=function(){return Offline.getOption("reconnect")?(e(),d.state="waiting",Offline.trigger("reconnect:started"),f=setInterval(g,1e3)):void 0},i=function(){return null!=f&&clearInterval(f),e()},c=function(){return Offline.getOption("reconnect")&&"connecting"===d.state?(Offline.trigger("reconnect:failure"),d.state="waiting",b()):void 0},d.tryNow=h,e(),Offline.on("down",a),Offline.on("confirmed-down",c),Offline.on("up",i)}.call(this),function(){var a,b,c,d,e,f;if(!window.Offline)throw new Error("Requests module brought in without offline.js");c=[],f=!1,d=function(a){return Offline.getOption("requests")!==!1?(Offline.trigger("requests:capture"),"down"!==Offline.state&&(f=!0),c.push(a)):void 0},e=function(a){var b,c,d,e,f,g,h,i,j;if(j=a.xhr,g=a.url,f=a.type,h=a.user,d=a.password,b=a.body,Offline.getOption("requests")!==!1){j.abort(),j.open(f,g,!0,h,d),e=j.headers;for(c in e)i=e[c],j.setRequestHeader(c,i);return j.mimeType&&j.overrideMimeType(j.mimeType),j.send(b)}},a=function(){return c=[]},b=function(){var b,d,f,g,h,i,j;if(Offline.getOption("requests")!==!1){for(Offline.trigger("requests:flush"),i={},d=0,g=c.length;g>d;d++)h=c[d],j=h.url.replace(/(\?|&)_=[0-9]+/,function(a,b){return"?"===b?b:""}),Offline.getOption("deDupBody")?(b=h.body,b="[object Object]"===b.toString()?JSON.stringify(b):b.toString(),i[h.type.toUpperCase()+" - "+j+" - "+b]=h):i[h.type.toUpperCase()+" - "+j]=h;for(f in i)h=i[f],e(h);return a()}},setTimeout(function(){return Offline.getOption("requests")!==!1?(Offline.on("confirmed-up",function(){return f?(f=!1,a()):void 0}),Offline.on("up",b),Offline.on("down",function(){return f=!1}),Offline.onXHR(function(a){var b,c,e,f,g;return g=a.xhr,e=a.async,g.offline!==!1&&(f=function(){return d(a)},c=g.send,g.send=function(b){return a.body=b,c.apply(g,arguments)},e)?null===g.onprogress?(g.addEventListener("error",f,!1),g.addEventListener("timeout",f,!1)):(b=g.onreadystatechange,g.onreadystatechange=function(){return 0===g.readyState?f():4===g.readyState&&(0===g.status||g.status>=12e3)&&f(),"function"==typeof b?b.apply(null,arguments):void 0}):void 0}),Offline.requests={flush:b,clear:a}):void 0},0)}.call(this),function(){var a,b,c,d,e,f,g;if(!Offline)throw new Error("Offline simulate brought in without offline.js");for(e=["up","down"],c=0,d=e.length;d>c;c++){g=e[c];try{f=document.querySelector("script[data-simulate='"+g+"']")||("undefined"!=typeof localStorage&&null!==localStorage?localStorage.OFFLINE_SIMULATE:void 0)===g}catch(h){b=h,f=!1}}f&&(null==Offline.options&&(Offline.options={}),null==(a=Offline.options).checks&&(a.checks={}),Offline.options.checks.active=g)}.call(this),function(){var a,b,c,d,e,f,g,h,i,j,k,l,m;if(!window.Offline)throw new Error("Offline UI brought in without offline.js");b='
',a='',f=function(a){var b;return b=document.createElement("div"),b.innerHTML=a,b.children[0]},g=e=null,d=function(a){return k(a),g.className+=" "+a},k=function(a){return g.className=g.className.replace(new RegExp("(^| )"+a.split(" ").join("|")+"( |$)","gi")," ")},i={},h=function(a,b){return d(a),null!=i[a]&&clearTimeout(i[a]),i[a]=setTimeout(function(){return k(a),delete i[a]},1e3*b)},m=function(a){var b,c,d,e;d={day:86400,hour:3600,minute:60,second:1};for(c in d)if(b=d[c],a>=b)return e=Math.floor(a/b),[e,c];return["now",""]},l=function(){var c,h;return g=f(b),document.body.appendChild(g),null!=Offline.reconnect&&Offline.getOption("reconnect")&&(g.appendChild(f(a)),c=g.querySelector(".offline-ui-retry"),h=function(a){return a.preventDefault(),Offline.reconnect.tryNow()},null!=c.addEventListener?c.addEventListener("click",h,!1):c.attachEvent("click",h)),d("offline-ui-"+Offline.state),e=g.querySelector(".offline-ui-content")},j=function(){return l(),Offline.on("up",function(){return k("offline-ui-down"),d("offline-ui-up"),h("offline-ui-up-2s",2),h("offline-ui-up-5s",5)}),Offline.on("down",function(){return k("offline-ui-up"),d("offline-ui-down"),h("offline-ui-down-2s",2),h("offline-ui-down-5s",5)}),Offline.on("reconnect:connecting",function(){return d("offline-ui-connecting"),k("offline-ui-waiting")}),Offline.on("reconnect:tick",function(){var a,b,c;return d("offline-ui-waiting"),k("offline-ui-connecting"),a=m(Offline.reconnect.remaining),b=a[0],c=a[1],e.setAttribute("data-retry-in-value",b),e.setAttribute("data-retry-in-unit",c)}),Offline.on("reconnect:stopped",function(){return k("offline-ui-connecting offline-ui-waiting"),e.setAttribute("data-retry-in-value",null),e.setAttribute("data-retry-in-unit",null)}),Offline.on("reconnect:failure",function(){return h("offline-ui-reconnect-failed-2s",2),h("offline-ui-reconnect-failed-5s",5)}),Offline.on("reconnect:success",function(){return h("offline-ui-reconnect-succeeded-2s",2),h("offline-ui-reconnect-succeeded-5s",5)})},"complete"===document.readyState?j():null!=document.addEventListener?document.addEventListener("DOMContentLoaded",j,!1):(c=document.onreadystatechange,document.onreadystatechange=function(){return"complete"===document.readyState&&j(),"function"==typeof c?c.apply(null,arguments):void 0})}.call(this); +(function(){var a,b,c,d,e,f,g;d=function(a,b){var c,d,e;d=[];for(c in b.prototype)try{e=b.prototype[c],null==a[c]&&"function"!=typeof e?d.push(a[c]=e):d.push(void 0)}catch(f){f}return d},a={},a.options=window.Offline?window.Offline.options||{}:{},c={checks:{xhr:{url:function(){return"/favicon.ico?_="+(new Date).getTime()},timeout:5e3,type:"HEAD"},image:{url:function(){return"/favicon.ico?_="+(new Date).getTime()}},active:"xhr"},checkOnLoad:!1,interceptRequests:!0,reconnect:!0,deDupBody:!1},e=function(a,b){var c,d,e,f,g,h;for(c=a,h=b.split("."),d=e=0,f=h.length;e1){for(j=[],h=0,i=g.length;h=12e3)&&f(),"function"==typeof b?b.apply(null,arguments):void 0})}),Offline.requests={flush:b,clear:a}},0)}.call(this),function(){var a,b,c,d,e,f;if(!Offline)throw new Error("Offline simulate brought in without offline.js");for(d=["up","down"],b=0,c=d.length;b=b)return e=Math.floor(a/b),[e,c];return["now",""]},l=function(){var c,h;return g=f(b),document.body.appendChild(g),null!=Offline.reconnect&&Offline.getOption("reconnect")&&(g.appendChild(f(a)),c=g.querySelector(".offline-ui-retry"),h=function(a){return a.preventDefault(),Offline.reconnect.tryNow()},null!=c.addEventListener?c.addEventListener("click",h,!1):c.attachEvent("click",h)),d("offline-ui-"+Offline.state),e=g.querySelector(".offline-ui-content")},j=function(){return l(),Offline.on("up",function(){return k("offline-ui-down"),d("offline-ui-up"),h("offline-ui-up-2s",2),h("offline-ui-up-5s",5)}),Offline.on("down",function(){return k("offline-ui-up"),d("offline-ui-down"),h("offline-ui-down-2s",2),h("offline-ui-down-5s",5)}),Offline.on("reconnect:connecting",function(){return d("offline-ui-connecting"),k("offline-ui-waiting")}),Offline.on("reconnect:tick",function(){var a,b,c;return d("offline-ui-waiting"),k("offline-ui-connecting"),a=m(Offline.reconnect.remaining),b=a[0],c=a[1],e.setAttribute("data-retry-in-value",b),e.setAttribute("data-retry-in-unit",c)}),Offline.on("reconnect:stopped",function(){return k("offline-ui-connecting offline-ui-waiting"),e.setAttribute("data-retry-in-value",null),e.setAttribute("data-retry-in-unit",null)}),Offline.on("reconnect:failure",function(){return h("offline-ui-reconnect-failed-2s",2),h("offline-ui-reconnect-failed-5s",5)}),Offline.on("reconnect:success",function(){return h("offline-ui-reconnect-succeeded-2s",2),h("offline-ui-reconnect-succeeded-5s",5)})},"complete"===document.readyState?j():null!=document.addEventListener?document.addEventListener("DOMContentLoaded",j,!1):(c=document.onreadystatechange,document.onreadystatechange=function(){return"complete"===document.readyState&&j(),"function"==typeof c?c.apply(null,arguments):void 0})}.call(this); \ No newline at end of file diff --git a/sass/_arabic.sass b/sass/_arabic.sass index ececaa1..eec31e5 100644 --- a/sass/_arabic.sass +++ b/sass/_arabic.sass @@ -47,5 +47,4 @@ $retryingHourAfterValueSingularComputer: " ...ساعه" $retryingHourAfterValuePluralComputer: " ...ساعات" $retryingHourAfterValueSingularDeviceSmall: "...س" -$retryingHourAfterValuePluralDeviceSmall: -$retryingHourAfterValueSingularDeviceSmall +$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall diff --git a/themes/offline-language-arabic-indicator.css b/themes/offline-language-arabic-indicator.css new file mode 100644 index 0000000..ee70a5d --- /dev/null +++ b/themes/offline-language-arabic-indicator.css @@ -0,0 +1,9 @@ +@charset "UTF-8"; +/* line 5, ../sass/offline-language-arabic-indicator.sass */ +.offline-ui.offline-ui-up .offline-ui-content:before { + content: "متصل."; +} +/* line 10, ../sass/offline-language-arabic-indicator.sass */ +.offline-ui.offline-ui-down .offline-ui-content:before { + content: "غير متصل."; +} diff --git a/themes/offline-language-arabic.css b/themes/offline-language-arabic.css new file mode 100644 index 0000000..83bde08 --- /dev/null +++ b/themes/offline-language-arabic.css @@ -0,0 +1,109 @@ +@charset "UTF-8"; +/* line 6, ../sass/_content.sass */ +.offline-ui .offline-ui-retry:before { + content: " إعادة الاتصال"; +} +/* line 11, ../sass/_content.sass */ +.offline-ui.offline-ui-up .offline-ui-content:before { + content: "الحاسوب متصل بالإنترنت."; +} +@media (max-width: 1024px) { + /* line 11, ../sass/_content.sass */ + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "جهازك متصل بالإنترنت"; + } +} +@media (max-width: 568px) { + /* line 11, ../sass/_content.sass */ + .offline-ui.offline-ui-up .offline-ui-content:before { + content: ".جهازك متصل"; + } +} +/* line 22, ../sass/_content.sass */ +.offline-ui.offline-ui-down .offline-ui-content:before { + content: ".الحاسوب فقد الاتصال بالإنترنت"; +} +@media (max-width: 1024px) { + /* line 22, ../sass/_content.sass */ + .offline-ui.offline-ui-down .offline-ui-content:before { + content: ".جهازك فقد الاتصال بالإنترنت"; + } +} +@media (max-width: 568px) { + /* line 22, ../sass/_content.sass */ + .offline-ui.offline-ui-down .offline-ui-content:before { + content: ".جهازك غير متصل"; + } +} +/* line 33, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-connecting .offline-ui-content:before, .offline-ui.offline-ui-down.offline-ui-connecting-2s .offline-ui-content:before { + content: "...محاولة إعادة الاتصال"; +} +/* line 42, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: " الاتصال فقد إعادة الاتصال في" attr(data-retry-in-value) " ...ثواني"; +} +@media (max-width: 568px) { + /* line 42, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: " إعادة الاتصال في" attr(data-retry-in-value) "...ث"; + } +} +/* line 50, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: " الاتصال فقد إعادة الاتصال في" attr(data-retry-in-value) " ...ثانية"; +} +@media (max-width: 568px) { + /* line 50, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: " إعادة الاتصال في" attr(data-retry-in-value) "...ث"; + } +} +/* line 58, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: " الاتصال فقد إعادة الاتصال في" attr(data-retry-in-value) " ...دقائق"; +} +@media (max-width: 568px) { + /* line 58, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: " إعادة الاتصال في" attr(data-retry-in-value) "...د"; + } +} +/* line 66, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: " الاتصال فقد إعادة الاتصال في" attr(data-retry-in-value) " ...دقيقة"; +} +@media (max-width: 568px) { + /* line 66, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: " إعادة الاتصال في" attr(data-retry-in-value) "...د"; + } +} +/* line 74, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: " الاتصال فقد إعادة الاتصال في" attr(data-retry-in-value) " ...ساعات"; +} +@media (max-width: 568px) { + /* line 74, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: " إعادة الاتصال في" attr(data-retry-in-value) "...س"; + } +} +/* line 82, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: " الاتصال فقد إعادة الاتصال في" attr(data-retry-in-value) " ...ساعه"; +} +@media (max-width: 568px) { + /* line 82, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: " إعادة الاتصال في" attr(data-retry-in-value) "...س"; + } +} +/* line 90, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s.offline-ui-waiting .offline-ui-retry { + display: none; +} +/* line 93, ../sass/_content.sass */ +.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s .offline-ui-content:before { + content: ".فشلت محاولة الاتصال"; +} From 4f7e927fd31a3c699d81cfc0d83cc2983d3a38dd Mon Sep 17 00:00:00 2001 From: Francisco Dias Date: Sat, 29 Apr 2017 17:18:29 -0400 Subject: [PATCH 43/49] remove simplified chinese in favor of chinese simplified --- install.json | 14 ++- sass/_simplified-chinese.sass | 50 -------- .../offline-language-simplified-chinese.css | 109 ------------------ 3 files changed, 9 insertions(+), 164 deletions(-) delete mode 100644 sass/_simplified-chinese.sass delete mode 100644 themes/offline-language-simplified-chinese.css diff --git a/install.json b/install.json index 405502d..10337d5 100644 --- a/install.json +++ b/install.json @@ -40,30 +40,34 @@ "description": "The language of the message displayed to the user when connectivity is lost or regained.", "type": "string", "enum": [ + "arabic", "chinese-simplified", "chinese-traditional", + "czech" "dutch", "english", "french", "german", + "italian", + "pashto", + "polish", "portuguese-brazil", - "simplified-chinese", "spanish", - "italian", "turkish", - "polish" ], "enumNames": { + "arabic": "Arabic", "chinese-simplified": "Simplified Chinese", "chinese-traditional": "Traditional Chinese", + "czech": "Czech", "dutch": "Dutch", "english": "English", "french": "French", "german": "German", + "italian": "Italian", + "pashto": "Pashto", "portuguese-brazil": "Brazilian Portuguese", - "simplified-chinese": "Simplified Chinese", "spanish": "Spanish", - "italian": "Italian", "turkish": "Turkish", "polish": "Polish" }, diff --git a/sass/_simplified-chinese.sass b/sass/_simplified-chinese.sass deleted file mode 100644 index 6741b51..0000000 --- a/sass/_simplified-chinese.sass +++ /dev/null @@ -1,50 +0,0 @@ -@charset "utf-8" -$upComputer: "您的电脑网络已经连接." -$upDevice: "您的设备网络已经连接." -$upDeviceSmall: "您的设备已在线." - -$downComputer: "您的电脑网络已经中断." -$downDevice: "您的设备网络已经中断." -$downDeviceSmall: "您的设备已离线." - -$connecting: "正在尝试重连中..." - -$retryButton: "重连" - -$reconnectFailed: "重连尝试失败." - -$retryingSecondBeforeValueSingularComputer: "连接丢失. 正在重连 " -$retryingSecondBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer - -$retryingMinuteBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer -$retryingMinuteBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer - -$retryingHourBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer -$retryingHourBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer - -$retryingSecondBeforeValueSingularDeviceSmall: "正在重连 " -$retryingSecondBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall - -$retryingMinuteBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall -$retryingMinuteBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall - -$retryingHourBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall -$retryingHourBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall - -$retryingSecondAfterValueSingularComputer: " 秒..." -$retryingSecondAfterValuePluralComputer: " 秒..." - -$retryingSecondAfterValueSingularDeviceSmall: "s..." -$retryingSecondAfterValuePluralDeviceSmall: $retryingSecondAfterValueSingularDeviceSmall - -$retryingMinuteAfterValueSingularComputer: " 分..." -$retryingMinuteAfterValuePluralComputer: " 分..." - -$retryingMinuteAfterValueSingularDeviceSmall: "m..." -$retryingMinuteAfterValuePluralDeviceSmall: $retryingMinuteAfterValueSingularDeviceSmall - -$retryingHourAfterValueSingularComputer: " 时..." -$retryingHourAfterValuePluralComputer: " 时..." - -$retryingHourAfterValueSingularDeviceSmall: "h..." -$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall \ No newline at end of file diff --git a/themes/offline-language-simplified-chinese.css b/themes/offline-language-simplified-chinese.css deleted file mode 100644 index 5f38db6..0000000 --- a/themes/offline-language-simplified-chinese.css +++ /dev/null @@ -1,109 +0,0 @@ -@charset "UTF-8"; -/* line 6, ../sass/_content.sass */ -.offline-ui .offline-ui-retry:before { - content: "重连"; -} -/* line 11, ../sass/_content.sass */ -.offline-ui.offline-ui-up .offline-ui-content:before { - content: "您的电脑网络已经连接."; -} -@media (max-width: 1024px) { - /* line 11, ../sass/_content.sass */ - .offline-ui.offline-ui-up .offline-ui-content:before { - content: "您的设备网络已经连接."; - } -} -@media (max-width: 568px) { - /* line 11, ../sass/_content.sass */ - .offline-ui.offline-ui-up .offline-ui-content:before { - content: "您的设备已在线."; - } -} -/* line 22, ../sass/_content.sass */ -.offline-ui.offline-ui-down .offline-ui-content:before { - content: "您的电脑网络已经中断."; -} -@media (max-width: 1024px) { - /* line 22, ../sass/_content.sass */ - .offline-ui.offline-ui-down .offline-ui-content:before { - content: "您的设备网络已经中断."; - } -} -@media (max-width: 568px) { - /* line 22, ../sass/_content.sass */ - .offline-ui.offline-ui-down .offline-ui-content:before { - content: "您的设备已离线."; - } -} -/* line 33, ../sass/_content.sass */ -.offline-ui.offline-ui-down.offline-ui-connecting .offline-ui-content:before, .offline-ui.offline-ui-down.offline-ui-connecting-2s .offline-ui-content:before { - content: "正在尝试重连中..."; -} -/* line 42, ../sass/_content.sass */ -.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { - content: "连接丢失. 正在重连 " attr(data-retry-in-value) " 秒..."; -} -@media (max-width: 568px) { - /* line 42, ../sass/_content.sass */ - .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { - content: "正在重连 " attr(data-retry-in-value) "s..."; - } -} -/* line 50, ../sass/_content.sass */ -.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { - content: "连接丢失. 正在重连 " attr(data-retry-in-value) " 秒..."; -} -@media (max-width: 568px) { - /* line 50, ../sass/_content.sass */ - .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { - content: "正在重连 " attr(data-retry-in-value) "s..."; - } -} -/* line 58, ../sass/_content.sass */ -.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { - content: "连接丢失. 正在重连 " attr(data-retry-in-value) " 分..."; -} -@media (max-width: 568px) { - /* line 58, ../sass/_content.sass */ - .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { - content: "正在重连 " attr(data-retry-in-value) "m..."; - } -} -/* line 66, ../sass/_content.sass */ -.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { - content: "连接丢失. 正在重连 " attr(data-retry-in-value) " 分..."; -} -@media (max-width: 568px) { - /* line 66, ../sass/_content.sass */ - .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { - content: "正在重连 " attr(data-retry-in-value) "m..."; - } -} -/* line 74, ../sass/_content.sass */ -.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { - content: "连接丢失. 正在重连 " attr(data-retry-in-value) " 时..."; -} -@media (max-width: 568px) { - /* line 74, ../sass/_content.sass */ - .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { - content: "正在重连 " attr(data-retry-in-value) "h..."; - } -} -/* line 82, ../sass/_content.sass */ -.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { - content: "连接丢失. 正在重连 " attr(data-retry-in-value) " 时..."; -} -@media (max-width: 568px) { - /* line 82, ../sass/_content.sass */ - .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { - content: "正在重连 " attr(data-retry-in-value) "h..."; - } -} -/* line 90, ../sass/_content.sass */ -.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s.offline-ui-waiting .offline-ui-retry { - display: none; -} -/* line 93, ../sass/_content.sass */ -.offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s .offline-ui-content:before { - content: "重连尝试失败."; -} From 32417e39142d9e8748c373e0ca0882800fe36a17 Mon Sep 17 00:00:00 2001 From: Francisco Dias Date: Sat, 29 Apr 2017 17:33:04 -0400 Subject: [PATCH 44/49] add pashto --- install.json | 7 ++- sass/_pashto.sass | 49 +++++++++++++++++++ sass/offline-language-pashto-indicator.sass | 11 +++++ sass/offline-language-pashto.sass | 4 ++ sass/offline-language-simplified-chinese.sass | 4 -- themes/offline-language-pashto-indicator.css | 8 +-- themes/offline-language-pashto.css | 35 ++++++------- 7 files changed, 89 insertions(+), 29 deletions(-) create mode 100644 sass/_pashto.sass create mode 100644 sass/offline-language-pashto-indicator.sass create mode 100644 sass/offline-language-pashto.sass delete mode 100644 sass/offline-language-simplified-chinese.sass diff --git a/install.json b/install.json index 10337d5..75afb28 100644 --- a/install.json +++ b/install.json @@ -43,7 +43,6 @@ "arabic", "chinese-simplified", "chinese-traditional", - "czech" "dutch", "english", "french", @@ -53,7 +52,7 @@ "polish", "portuguese-brazil", "spanish", - "turkish", + "turkish" ], "enumNames": { "arabic": "Arabic", @@ -66,10 +65,10 @@ "german": "German", "italian": "Italian", "pashto": "Pashto", + "polish": "Polish", "portuguese-brazil": "Brazilian Portuguese", "spanish": "Spanish", - "turkish": "Turkish", - "polish": "Polish" + "turkish": "Turkish" }, "default": "english" }, diff --git a/sass/_pashto.sass b/sass/_pashto.sass new file mode 100644 index 0000000..35da571 --- /dev/null +++ b/sass/_pashto.sass @@ -0,0 +1,49 @@ +$upComputer: "ستاسو د کمپيوټر له انټرنيټ سره وصل دی." +$upDevice: "ستاسو وسيله چې د انټرنټ سره نښلي." +$upDeviceSmall: "ستاسو آله سره نښلي." + +$downComputer: "ستاسو د کمپيوټر د خپل د انټرنېټ پیوستون له لاسه ورکړ." +$downDevice: "ستاسو آله خپل د انټرنېټ پیوستون له لاسه ورکړ." +$downDeviceSmall: "ستاسو آله نه نښلي." + +$connecting: "هڅه کوي تر څو یو ځل بیا سره نښلوي" + +$retryButton: "بيا ونښلوي" + +$reconnectFailed: "پیوستون هڅه ناکامه شوه." + +$retryingSecondBeforeValueSingularComputer: "پیوستون له لاسه ورکړ. بيا په سره نښلوي" +$retryingSecondBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingMinuteBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer +$retryingMinuteBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingHourBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer +$retryingHourBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer + +$retryingSecondBeforeValueSingularDeviceSmall: "بيا په سره نښلوي" +$retryingSecondBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingMinuteBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall +$retryingMinuteBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingHourBeforeValueSingularDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall +$retryingHourBeforeValuePluralDeviceSmall: $retryingSecondBeforeValueSingularDeviceSmall + +$retryingSecondAfterValueSingularComputer: "دوهم..." +$retryingSecondAfterValuePluralComputer: "ثانيو ..." + +$retryingSecondAfterValueSingularDeviceSmall: "s..." +$retryingSecondAfterValuePluralDeviceSmall: $retryingSecondAfterValueSingularDeviceSmall + +$retryingMinuteAfterValueSingularComputer: "دقیقه ..." +$retryingMinuteAfterValuePluralComputer: "دقیقو ..." + +$retryingMinuteAfterValueSingularDeviceSmall: "m..." +$retryingMinuteAfterValuePluralDeviceSmall: $retryingMinuteAfterValueSingularDeviceSmall + +$retryingHourAfterValueSingularComputer: "ساعت ..." +$retryingHourAfterValuePluralComputer: "ساعتونو کې ..." + +$retryingHourAfterValueSingularDeviceSmall: "h..." +$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall diff --git a/sass/offline-language-pashto-indicator.sass b/sass/offline-language-pashto-indicator.sass new file mode 100644 index 0000000..1f2972e --- /dev/null +++ b/sass/offline-language-pashto-indicator.sass @@ -0,0 +1,11 @@ +.offline-ui + + &.offline-ui-up + + .offline-ui-content:before + content: "Online" + + &.offline-ui-down + + .offline-ui-content:before + content: "Offline" \ No newline at end of file diff --git a/sass/offline-language-pashto.sass b/sass/offline-language-pashto.sass new file mode 100644 index 0000000..0b0c487 --- /dev/null +++ b/sass/offline-language-pashto.sass @@ -0,0 +1,4 @@ +@import content +@import pashto + ++offline-content diff --git a/sass/offline-language-simplified-chinese.sass b/sass/offline-language-simplified-chinese.sass deleted file mode 100644 index 539e0a9..0000000 --- a/sass/offline-language-simplified-chinese.sass +++ /dev/null @@ -1,4 +0,0 @@ -@import content -@import simplified-chinese - -+offline-content \ No newline at end of file diff --git a/themes/offline-language-pashto-indicator.css b/themes/offline-language-pashto-indicator.css index a05fc1a..ea172d6 100644 --- a/themes/offline-language-pashto-indicator.css +++ b/themes/offline-language-pashto-indicator.css @@ -1,8 +1,8 @@ -/* line 5, ../sass/offline-language-english-indicator.sass */ +/* line 5, ../sass/offline-language-pashto-indicator.sass */ .offline-ui.offline-ui-up .offline-ui-content:before { - content: "آنلاین"; + content: "Online"; } -/* line 10, ../sass/offline-language-english-indicator.sass */ +/* line 10, ../sass/offline-language-pashto-indicator.sass */ .offline-ui.offline-ui-down .offline-ui-content:before { - content: "آفلاین"; + content: "Offline"; } diff --git a/themes/offline-language-pashto.css b/themes/offline-language-pashto.css index a81737d..bdcaf46 100644 --- a/themes/offline-language-pashto.css +++ b/themes/offline-language-pashto.css @@ -1,15 +1,16 @@ +@charset "UTF-8"; /* line 6, ../sass/_content.sass */ .offline-ui .offline-ui-retry:before { - content: "بیا نښلول"; + content: "بيا ونښلوي"; } /* line 11, ../sass/_content.sass */ .offline-ui.offline-ui-up .offline-ui-content:before { - content: "Your computer is connected to the internet."; + content: "ستاسو د کمپيوټر له انټرنيټ سره وصل دی."; } @media (max-width: 1024px) { /* line 11, ../sass/_content.sass */ .offline-ui.offline-ui-up .offline-ui-content:before { - content: "ستاسو د کمپيوټر له انټرنيټ سره نښلي."; + content: "ستاسو وسيله چې د انټرنټ سره نښلي."; } } @media (max-width: 568px) { @@ -20,7 +21,7 @@ } /* line 22, ../sass/_content.sass */ .offline-ui.offline-ui-down .offline-ui-content:before { - content: "ستاسو د کمپیوټر د خپل د انټرنېټ پیوستون له لاسه ورکړ."; + content: "ستاسو د کمپيوټر د خپل د انټرنېټ پیوستون له لاسه ورکړ."; } @media (max-width: 1024px) { /* line 22, ../sass/_content.sass */ @@ -36,66 +37,66 @@ } /* line 33, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-connecting .offline-ui-content:before, .offline-ui.offline-ui-down.offline-ui-connecting-2s .offline-ui-content:before { - content: "کوښښ د نښلول لپاره..."; + content: "هڅه کوي تر څو یو ځل بیا سره نښلوي"; } /* line 42, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { - content: "پیوستون له لاسه ورکړ. په " attr(data-retry-in-value) "ثانیو کی بیا کوښښ کول."; + content: "پیوستون له لاسه ورکړ. بيا په سره نښلوي" attr(data-retry-in-value) "ثانيو ..."; } @media (max-width: 568px) { /* line 42, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { - content: "بیا کوښښ‌کول په " attr(data-retry-in-value) " ثانیو کی..."; + content: "بيا په سره نښلوي" attr(data-retry-in-value) "s..."; } } /* line 50, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { - content: "وستون له لاسه ورکړ. په " attr(data-retry-in-value) " ثانیه کی بیا کوښښ کول..."; + content: "پیوستون له لاسه ورکړ. بيا په سره نښلوي" attr(data-retry-in-value) "دوهم..."; } @media (max-width: 568px) { /* line 50, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { - content: "بیا کوښښ کول په " attr(data-retry-in-value) "ثانیو کی..."; + content: "بيا په سره نښلوي" attr(data-retry-in-value) "s..."; } } /* line 58, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { - content: "یوستون له لاسه ورکړ. په " attr(data-retry-in-value) " دقیقو کی بیا کوښښ‌کول..."; + content: "پیوستون له لاسه ورکړ. بيا په سره نښلوي" attr(data-retry-in-value) "دقیقو ..."; } @media (max-width: 568px) { /* line 58, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { - content: "بیا کوښښ کول په " attr(data-retry-in-value) "دقیقو کی..."; + content: "بيا په سره نښلوي" attr(data-retry-in-value) "m..."; } } /* line 66, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { - content: "پیوستون له لاسه ورکړ. بیا کوښښ کول په " attr(data-retry-in-value) " دقیقو"; + content: "پیوستون له لاسه ورکړ. بيا په سره نښلوي" attr(data-retry-in-value) "دقیقه ..."; } @media (max-width: 568px) { /* line 66, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { - content: "بیا کوښښ کول په " attr(data-retry-in-value) "دقیقو..."; + content: "بيا په سره نښلوي" attr(data-retry-in-value) "m..."; } } /* line 74, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { - content: "پیوستون له لاسه ورکړ. بیا کوښښ‌کول په " attr(data-retry-in-value) " ساعتونه..."; + content: "پیوستون له لاسه ورکړ. بيا په سره نښلوي" attr(data-retry-in-value) "ساعتونو کې ..."; } @media (max-width: 568px) { /* line 74, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { - content: "بیا کوښښ کول په " attr(data-retry-in-value) " ساعتونه..."; + content: "بيا په سره نښلوي" attr(data-retry-in-value) "h..."; } } /* line 82, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { - content: "یوستون له لاسه ورکړ. بیا کوښښ‌کول په " attr(data-retry-in-value) " ساعتونه..."; + content: "پیوستون له لاسه ورکړ. بيا په سره نښلوي" attr(data-retry-in-value) "ساعت ..."; } @media (max-width: 568px) { /* line 82, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { - content: "بیا کوښښ کول په " attr(data-retry-in-value) " ساعتونه..."; + content: "بيا په سره نښلوي" attr(data-retry-in-value) "h..."; } } /* line 90, ../sass/_content.sass */ From 2907e0b89106a5d3ab617b8affff1080a95c8fa6 Mon Sep 17 00:00:00 2001 From: Francisco Dias Date: Sat, 29 Apr 2017 17:37:37 -0400 Subject: [PATCH 45/49] add charset --- install.json | 2 + sass/_arabic.sass | 1 + sass/_czech.sass | 2 + sass/_dutch.sass | 2 + sass/_english.sass | 3 +- sass/_french.sass | 3 +- sass/_german.sass | 3 +- sass/_italian.sass | 1 + sass/_pashto.sass | 1 + sass/_persian.sass | 1 + sass/_polish.sass | 1 + sass/_portuguese-brazil.sass | 1 + sass/_spanish.sass | 1 + sass/_turkish.sass | 3 +- themes/offline-language-czech.css | 138 ++++++++++++++++++++--------- themes/offline-language-french.css | 2 +- themes/offline-language-german.css | 2 +- 17 files changed, 119 insertions(+), 48 deletions(-) diff --git a/install.json b/install.json index 75afb28..6f14fc8 100644 --- a/install.json +++ b/install.json @@ -49,6 +49,7 @@ "german", "italian", "pashto", + "persian", "polish", "portuguese-brazil", "spanish", @@ -65,6 +66,7 @@ "german": "German", "italian": "Italian", "pashto": "Pashto", + "persian": "Persian", "polish": "Polish", "portuguese-brazil": "Brazilian Portuguese", "spanish": "Spanish", diff --git a/sass/_arabic.sass b/sass/_arabic.sass index eec31e5..3ef29d2 100644 --- a/sass/_arabic.sass +++ b/sass/_arabic.sass @@ -1,3 +1,4 @@ +@charset "utf-8" $upComputer: "الحاسوب متصل بالإنترنت." $upDevice: "جهازك متصل بالإنترنت" $upDeviceSmall: ".جهازك متصل" diff --git a/sass/_czech.sass b/sass/_czech.sass index 6634415..4c6d723 100644 --- a/sass/_czech.sass +++ b/sass/_czech.sass @@ -1,3 +1,5 @@ +@charset "utf-8" + $upComputer: "Váš počítač je připojen k internetu." $upDevice: "Vaše zařízení je připojeno k internetu." $upDeviceSmall: "Vaše zařízení je připojeno." diff --git a/sass/_dutch.sass b/sass/_dutch.sass index 3cfb35e..3c529aa 100644 --- a/sass/_dutch.sass +++ b/sass/_dutch.sass @@ -1,3 +1,5 @@ +@charset "utf-8" + $upComputer: "Computer verbonden met internet." $upDevice: "Apparaat verbonden met internet." $upDeviceSmall: "Apparaat verbonden met internet." diff --git a/sass/_english.sass b/sass/_english.sass index 899f7f2..58f557e 100644 --- a/sass/_english.sass +++ b/sass/_english.sass @@ -1,3 +1,4 @@ +@charset "utf-8" $upComputer: "Your computer is connected to the internet." $upDevice: "Your device is connected to the internet." $upDeviceSmall: "Your device is connected." @@ -46,4 +47,4 @@ $retryingHourAfterValueSingularComputer: " hour..." $retryingHourAfterValuePluralComputer: " hours..." $retryingHourAfterValueSingularDeviceSmall: "h..." -$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall \ No newline at end of file +$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall diff --git a/sass/_french.sass b/sass/_french.sass index c64396b..28b9aff 100644 --- a/sass/_french.sass +++ b/sass/_french.sass @@ -1,3 +1,4 @@ +@charset "utf-8" $upComputer: "Votre ordinateur est connecté à Internet." $upDevice: "Votre appareil est connecté à Internet." $upDeviceSmall: "Votre appareil est connecté." @@ -46,4 +47,4 @@ $retryingHourAfterValueSingularComputer: " heure..." $retryingHourAfterValuePluralComputer: " heures..." $retryingHourAfterValueSingularDeviceSmall: "h..." -$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall \ No newline at end of file +$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall diff --git a/sass/_german.sass b/sass/_german.sass index 83a8564..c12bd57 100644 --- a/sass/_german.sass +++ b/sass/_german.sass @@ -1,3 +1,4 @@ +@charset "utf-8" $upComputer: "Dein Computer ist mit dem Internet verbunden." $upDevice: "Deing Gerät ist mit dem Internet verbunden." $upDeviceSmall: "Dein Gerät ist online." @@ -46,4 +47,4 @@ $retryingHourAfterValueSingularComputer: " Stunde..." $retryingHourAfterValuePluralComputer: " Stunden..." $retryingHourAfterValueSingularDeviceSmall: "h..." -$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall \ No newline at end of file +$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall diff --git a/sass/_italian.sass b/sass/_italian.sass index c7b86e2..caab9cd 100644 --- a/sass/_italian.sass +++ b/sass/_italian.sass @@ -1,3 +1,4 @@ +@charset "utf-8" $upComputer: "Il tuo computer è connesso ad internet." $upDevice: "Il tuo device è connesso ad internet." $upDeviceSmall: "Il tuo device è connesso." diff --git a/sass/_pashto.sass b/sass/_pashto.sass index 35da571..c8534fa 100644 --- a/sass/_pashto.sass +++ b/sass/_pashto.sass @@ -1,3 +1,4 @@ +@charset "utf-8" $upComputer: "ستاسو د کمپيوټر له انټرنيټ سره وصل دی." $upDevice: "ستاسو وسيله چې د انټرنټ سره نښلي." $upDeviceSmall: "ستاسو آله سره نښلي." diff --git a/sass/_persian.sass b/sass/_persian.sass index 76bddce..3f40207 100644 --- a/sass/_persian.sass +++ b/sass/_persian.sass @@ -1,3 +1,4 @@ +@charset "utf-8" $upComputer: "ارتباط کامپیوتر شما با اینترنت برقرار است." $upDevice: "ارتباط دستگاه شما با اینترنت برقرار است." $upDeviceSmall: "دستگاه شما متصل است." diff --git a/sass/_polish.sass b/sass/_polish.sass index cea59d6..0e76a6b 100644 --- a/sass/_polish.sass +++ b/sass/_polish.sass @@ -1,3 +1,4 @@ +@charset "utf-8" $upComputer: "Twój komputer jest podłączony do internetu." $upDevice: "Twoje urządzenie jest podłączone do internetu." $upDeviceSmall: "Twoje urządzenie jest podłączone." diff --git a/sass/_portuguese-brazil.sass b/sass/_portuguese-brazil.sass index 8f8318b..1080872 100644 --- a/sass/_portuguese-brazil.sass +++ b/sass/_portuguese-brazil.sass @@ -1,3 +1,4 @@ +@charset "utf-8" $upComputer: "Seu computador está conectado à internet." $upDevice: "O dispositivo está conectado à internet." $upDeviceSmall: "O dispositivo está conectado." diff --git a/sass/_spanish.sass b/sass/_spanish.sass index 92accea..11b3375 100644 --- a/sass/_spanish.sass +++ b/sass/_spanish.sass @@ -1,3 +1,4 @@ +@charset "utf-8" $upComputer: "Tu computador está conectado a internet." $upDevice: "Tu dispositivo está conectado a internet." $upDeviceSmall: "Tu dispositivo está conectado." diff --git a/sass/_turkish.sass b/sass/_turkish.sass index 3489884..c1efb3a 100644 --- a/sass/_turkish.sass +++ b/sass/_turkish.sass @@ -1,3 +1,4 @@ +@charset "utf-8" $upComputer: "Bilgisayarınız internete bağlı." $upDevice: "Cihazınız internete bağlı." $upDeviceSmall: "Cihazınız bağlı." @@ -46,4 +47,4 @@ $retryingHourAfterValueSingularComputer: " saat içersinde tekrar bağlanmayı d $retryingHourAfterValuePluralComputer: " saat içersinde tekrar bağlanmayı deneyecek..." $retryingHourAfterValueSingularDeviceSmall: "saat içersinde tekrar bağlanmayı deneyecek..." -$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall \ No newline at end of file +$retryingHourAfterValuePluralDeviceSmall: $retryingHourAfterValueSingularDeviceSmall diff --git a/themes/offline-language-czech.css b/themes/offline-language-czech.css index 89ed254..aec95eb 100644 --- a/themes/offline-language-czech.css +++ b/themes/offline-language-czech.css @@ -1,55 +1,109 @@ @charset "UTF-8"; +/* line 6, ../sass/_content.sass */ .offline-ui .offline-ui-retry:before { - content: "Znovu připojit"; } + content: "Znovu připojit"; +} +/* line 11, ../sass/_content.sass */ .offline-ui.offline-ui-up .offline-ui-content:before { - content: "Váš počítač je připojen k internetu."; } - @media (max-width: 1024px) { - .offline-ui.offline-ui-up .offline-ui-content:before { - content: "Vaše zařízení je připojeno k internetu."; } } - @media (max-width: 568px) { - .offline-ui.offline-ui-up .offline-ui-content:before { - content: "Vaše zařízení je připojeno."; } } + content: "Váš počítač je připojen k internetu."; +} +@media (max-width: 1024px) { + /* line 11, ../sass/_content.sass */ + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "Vaše zařízení je připojeno k internetu."; + } +} +@media (max-width: 568px) { + /* line 11, ../sass/_content.sass */ + .offline-ui.offline-ui-up .offline-ui-content:before { + content: "Vaše zařízení je připojeno."; + } +} +/* line 22, ../sass/_content.sass */ .offline-ui.offline-ui-down .offline-ui-content:before { - content: "Váš počítač ztratil připojení k internetu."; } - @media (max-width: 1024px) { - .offline-ui.offline-ui-down .offline-ui-content:before { - content: "Vaše zařízení ztratilo připojení k internetu."; } } - @media (max-width: 568px) { - .offline-ui.offline-ui-down .offline-ui-content:before { - content: "Vaše zařízení není připojeno."; } } + content: "Váš počítač ztratil připojení k internetu."; +} +@media (max-width: 1024px) { + /* line 22, ../sass/_content.sass */ + .offline-ui.offline-ui-down .offline-ui-content:before { + content: "Vaše zařízení ztratilo připojení k internetu."; + } +} +@media (max-width: 568px) { + /* line 22, ../sass/_content.sass */ + .offline-ui.offline-ui-down .offline-ui-content:before { + content: "Vaše zařízení není připojeno."; + } +} +/* line 33, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-connecting .offline-ui-content:before, .offline-ui.offline-ui-down.offline-ui-connecting-2s .offline-ui-content:before { - content: "Zkouším se znovu připojit..."; } + content: "Zkouším se znovu připojit..."; +} +/* line 42, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { - content: "Připojení ztraceno. Znovu zkusím za " attr(data-retry-in-value) " sekund..."; } - @media (max-width: 568px) { - .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { - content: "Znovu zkusím za " attr(data-retry-in-value) "s..."; } } + content: "Připojení ztraceno. Znovu zkusím za " attr(data-retry-in-value) " sekund..."; +} +@media (max-width: 568px) { + /* line 42, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { + content: "Znovu zkusím za " attr(data-retry-in-value) "s..."; + } +} +/* line 50, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { - content: "Připojení ztraceno. Znovu zkusím za " attr(data-retry-in-value) " sekundu..."; } - @media (max-width: 568px) { - .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { - content: "Znovu zkusím za " attr(data-retry-in-value) "s..."; } } + content: "Připojení ztraceno. Znovu zkusím za " attr(data-retry-in-value) " sekundu..."; +} +@media (max-width: 568px) { + /* line 50, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { + content: "Znovu zkusím za " attr(data-retry-in-value) "s..."; + } +} +/* line 58, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { - content: "Připojení ztraceno. Znovu zkusím za " attr(data-retry-in-value) " minut..."; } - @media (max-width: 568px) { - .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { - content: "Znovu zkusím za " attr(data-retry-in-value) "m..."; } } + content: "Připojení ztraceno. Znovu zkusím za " attr(data-retry-in-value) " minut..."; +} +@media (max-width: 568px) { + /* line 58, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { + content: "Znovu zkusím za " attr(data-retry-in-value) "m..."; + } +} +/* line 66, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { - content: "Připojení ztraceno. Znovu zkusím za " attr(data-retry-in-value) " minutu..."; } - @media (max-width: 568px) { - .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { - content: "Znovu zkusím za " attr(data-retry-in-value) "m..."; } } + content: "Připojení ztraceno. Znovu zkusím za " attr(data-retry-in-value) " minutu..."; +} +@media (max-width: 568px) { + /* line 66, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { + content: "Znovu zkusím za " attr(data-retry-in-value) "m..."; + } +} +/* line 74, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { - content: "Připojení ztraceno. Znovu zkusím za " attr(data-retry-in-value) " hodin..."; } - @media (max-width: 568px) { - .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { - content: "Znovu zkusím za " attr(data-retry-in-value) "h..."; } } + content: "Připojení ztraceno. Znovu zkusím za " attr(data-retry-in-value) " hodin..."; +} +@media (max-width: 568px) { + /* line 74, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { + content: "Znovu zkusím za " attr(data-retry-in-value) "h..."; + } +} +/* line 82, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { - content: "Připojení ztraceno. Znovu zkusím za " attr(data-retry-in-value) " hodinu..."; } - @media (max-width: 568px) { - .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { - content: "Znovu zkusím za " attr(data-retry-in-value) "h..."; } } + content: "Připojení ztraceno. Znovu zkusím za " attr(data-retry-in-value) " hodinu..."; +} +@media (max-width: 568px) { + /* line 82, ../sass/_content.sass */ + .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { + content: "Znovu zkusím za " attr(data-retry-in-value) "h..."; + } +} +/* line 90, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s.offline-ui-waiting .offline-ui-retry { - display: none; } + display: none; +} +/* line 93, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s .offline-ui-content:before { - content: "Pokus o připojení selhal."; } + content: "Pokus o připojení selhal."; +} diff --git a/themes/offline-language-french.css b/themes/offline-language-french.css index 88b0069..6145db5 100644 --- a/themes/offline-language-french.css +++ b/themes/offline-language-french.css @@ -106,4 +106,4 @@ /* line 93, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s .offline-ui-content:before { content: "La tentative de connexion a échoué."; -} \ No newline at end of file +} diff --git a/themes/offline-language-german.css b/themes/offline-language-german.css index 36dcd46..90f46c3 100644 --- a/themes/offline-language-german.css +++ b/themes/offline-language-german.css @@ -10,7 +10,7 @@ @media (max-width: 1024px) { /* line 11, ../sass/_content.sass */ .offline-ui.offline-ui-up .offline-ui-content:before { - content: "Dein Gerät ist mit dem Internet verbunden."; + content: "Deing Gerät ist mit dem Internet verbunden."; } } @media (max-width: 568px) { From 95a932206d808670c4970aaebac7b0ae42b8dc4e Mon Sep 17 00:00:00 2001 From: Ryan Berdeen Date: Mon, 8 May 2017 14:18:37 -0400 Subject: [PATCH 46/49] note that the project is not maintained --- .github/ISSUE_TEMPLATE | 7 +++++++ .github/PULL_REQUEST_TEMPLATE | 7 +++++++ README.md | 5 +++++ 3 files changed, 19 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE create mode 100644 .github/PULL_REQUEST_TEMPLATE diff --git a/.github/ISSUE_TEMPLATE b/.github/ISSUE_TEMPLATE new file mode 100644 index 0000000..3200ab3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE @@ -0,0 +1,7 @@ + diff --git a/.github/PULL_REQUEST_TEMPLATE b/.github/PULL_REQUEST_TEMPLATE new file mode 100644 index 0000000..3200ab3 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE @@ -0,0 +1,7 @@ + diff --git a/README.md b/README.md index 37ae4f8..ea0e3c8 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ +___ + +**This project isn't actively maintained.** +___ + Offline ====== From a841d1af30ddad6e18f7ac51bf48787c2a418469 Mon Sep 17 00:00:00 2001 From: Lennon Jesus Date: Mon, 22 May 2017 14:56:56 -0300 Subject: [PATCH 47/49] Minor pt_BR typo fix --- themes/offline-language-portuguese-brazil.css | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/themes/offline-language-portuguese-brazil.css b/themes/offline-language-portuguese-brazil.css index 614f5a9..f31e0af 100644 --- a/themes/offline-language-portuguese-brazil.css +++ b/themes/offline-language-portuguese-brazil.css @@ -41,7 +41,7 @@ } /* line 42, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"]:before { - content: "Conexão perdida. reconectando em " attr(data-retry-in-value) " segundos..."; + content: "Conexão perdida. Reconectando em " attr(data-retry-in-value) " segundos..."; } @media (max-width: 568px) { /* line 42, ../sass/_content.sass */ @@ -51,7 +51,7 @@ } /* line 50, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="second"][data-retry-in-value="1"]:before { - content: "Conexão perdida. reconectando em " attr(data-retry-in-value) " segundo..."; + content: "Conexão perdida. Reconectando em " attr(data-retry-in-value) " segundo..."; } @media (max-width: 568px) { /* line 50, ../sass/_content.sass */ @@ -61,7 +61,7 @@ } /* line 58, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"]:before { - content: "Conexão perdida. reconectando em " attr(data-retry-in-value) " minutos..."; + content: "Conexão perdida. Reconectando em " attr(data-retry-in-value) " minutos..."; } @media (max-width: 568px) { /* line 58, ../sass/_content.sass */ @@ -71,7 +71,7 @@ } /* line 66, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="minute"][data-retry-in-value="1"]:before { - content: "Conexão perdida. reconectando em " attr(data-retry-in-value) " minuto..."; + content: "Conexão perdida. Reconectando em " attr(data-retry-in-value) " minuto..."; } @media (max-width: 568px) { /* line 66, ../sass/_content.sass */ @@ -81,7 +81,7 @@ } /* line 74, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"]:before { - content: "Conexão perdida. reconectando em " attr(data-retry-in-value) " horas..."; + content: "Conexão perdida. Reconectando em " attr(data-retry-in-value) " horas..."; } @media (max-width: 568px) { /* line 74, ../sass/_content.sass */ @@ -91,7 +91,7 @@ } /* line 82, ../sass/_content.sass */ .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content[data-retry-in-unit="hour"][data-retry-in-value="1"]:before { - content: "Conexão perdida. reconectando em " attr(data-retry-in-value) " hora..."; + content: "Conexão perdida. Reconectando em " attr(data-retry-in-value) " hora..."; } @media (max-width: 568px) { /* line 82, ../sass/_content.sass */ From ac378c1c78f4087edcce21015cf9098e4f1c98f0 Mon Sep 17 00:00:00 2001 From: Ryan Berdeen Date: Fri, 26 May 2017 15:31:57 -0400 Subject: [PATCH 48/49] fix typo in pt-br sass --- sass/_portuguese-brazil.sass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sass/_portuguese-brazil.sass b/sass/_portuguese-brazil.sass index 1080872..d20bbe5 100644 --- a/sass/_portuguese-brazil.sass +++ b/sass/_portuguese-brazil.sass @@ -13,7 +13,7 @@ $retryButton: "Reconectar" $reconnectFailed: "Tentativa de conexão falhou." -$retryingSecondBeforeValueSingularComputer: "Conexão perdida. reconectando em " +$retryingSecondBeforeValueSingularComputer: "Conexão perdida. Reconectando em " $retryingSecondBeforeValuePluralComputer: $retryingSecondBeforeValueSingularComputer $retryingMinuteBeforeValueSingularComputer: $retryingSecondBeforeValueSingularComputer From a17291864212aab9ae9325c7ce5a2e0f541e96bf Mon Sep 17 00:00:00 2001 From: Ryan Berdeen Date: Fri, 26 May 2017 15:38:57 -0400 Subject: [PATCH 49/49] v0.7.19 --- offline.js | 2 +- offline.min.js | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/offline.js b/offline.js index a4141d1..4c02d59 100644 --- a/offline.js +++ b/offline.js @@ -1,4 +1,4 @@ -/*! offline-js 0.7.18 */ +/*! offline-js 0.7.19 */ (function() { var Offline, checkXHR, defaultOptions, extendNative, grab, handlers, init; extendNative = function(to, from) { diff --git a/offline.min.js b/offline.min.js index 4e55cc6..469e4b7 100644 --- a/offline.min.js +++ b/offline.min.js @@ -1,2 +1,2 @@ -/*! offline-js 0.7.18 */ +/*! offline-js 0.7.19 */ (function(){var a,b,c,d,e,f,g;d=function(a,b){var c,d,e;d=[];for(c in b.prototype)try{e=b.prototype[c],null==a[c]&&"function"!=typeof e?d.push(a[c]=e):d.push(void 0)}catch(f){f}return d},a={},a.options=window.Offline?window.Offline.options||{}:{},c={checks:{xhr:{url:function(){return"/favicon.ico?_="+(new Date).getTime()},timeout:5e3,type:"HEAD"},image:{url:function(){return"/favicon.ico?_="+(new Date).getTime()}},active:"xhr"},checkOnLoad:!1,interceptRequests:!0,reconnect:!0,deDupBody:!1},e=function(a,b){var c,d,e,f,g,h;for(c=a,h=b.split("."),d=e=0,f=h.length;e1){for(j=[],h=0,i=g.length;h=12e3)&&f(),"function"==typeof b?b.apply(null,arguments):void 0})}),Offline.requests={flush:b,clear:a}},0)}.call(this),function(){var a,b,c,d,e,f;if(!Offline)throw new Error("Offline simulate brought in without offline.js");for(d=["up","down"],b=0,c=d.length;b=b)return e=Math.floor(a/b),[e,c];return["now",""]},l=function(){var c,h;return g=f(b),document.body.appendChild(g),null!=Offline.reconnect&&Offline.getOption("reconnect")&&(g.appendChild(f(a)),c=g.querySelector(".offline-ui-retry"),h=function(a){return a.preventDefault(),Offline.reconnect.tryNow()},null!=c.addEventListener?c.addEventListener("click",h,!1):c.attachEvent("click",h)),d("offline-ui-"+Offline.state),e=g.querySelector(".offline-ui-content")},j=function(){return l(),Offline.on("up",function(){return k("offline-ui-down"),d("offline-ui-up"),h("offline-ui-up-2s",2),h("offline-ui-up-5s",5)}),Offline.on("down",function(){return k("offline-ui-up"),d("offline-ui-down"),h("offline-ui-down-2s",2),h("offline-ui-down-5s",5)}),Offline.on("reconnect:connecting",function(){return d("offline-ui-connecting"),k("offline-ui-waiting")}),Offline.on("reconnect:tick",function(){var a,b,c;return d("offline-ui-waiting"),k("offline-ui-connecting"),a=m(Offline.reconnect.remaining),b=a[0],c=a[1],e.setAttribute("data-retry-in-value",b),e.setAttribute("data-retry-in-unit",c)}),Offline.on("reconnect:stopped",function(){return k("offline-ui-connecting offline-ui-waiting"),e.setAttribute("data-retry-in-value",null),e.setAttribute("data-retry-in-unit",null)}),Offline.on("reconnect:failure",function(){return h("offline-ui-reconnect-failed-2s",2),h("offline-ui-reconnect-failed-5s",5)}),Offline.on("reconnect:success",function(){return h("offline-ui-reconnect-succeeded-2s",2),h("offline-ui-reconnect-succeeded-5s",5)})},"complete"===document.readyState?j():null!=document.addEventListener?document.addEventListener("DOMContentLoaded",j,!1):(c=document.onreadystatechange,document.onreadystatechange=function(){return"complete"===document.readyState&&j(),"function"==typeof c?c.apply(null,arguments):void 0})}.call(this); \ No newline at end of file diff --git a/package.json b/package.json index 3f64d39..89e2975 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "offline-js", - "version": "0.7.18", + "version": "0.7.19", "description": "Automatically detect when a browser is offline", "authors": [ "Adam Schwartz ",