fix build
No files matched your search
@@ -0,0 +1 @@
|
||||
{"assets/android.png":["assets/android.png"],"assets/gestures.ttf":["assets/gestures.ttf"],"assets/insecure.png":["assets/insecure.png"],"assets/insecure_relay.png":["assets/insecure_relay.png"],"assets/linux.png":["assets/linux.png"],"assets/mac.png":["assets/mac.png"],"assets/secure.png":["assets/secure.png"],"assets/secure_relay.png":["assets/secure_relay.png"],"assets/win.png":["assets/win.png"],"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"],"packages/wakelock_web/assets/no_sleep.js":["packages/wakelock_web/assets/no_sleep.js"]}
|
||||
@@ -0,0 +1 @@
|
||||
[{"family":"MaterialIcons","fonts":[{"asset":"fonts/MaterialIcons-Regular.otf"}]},{"family":"GestureIcons","fonts":[{"asset":"assets/gestures.ttf"}]},{"family":"packages/cupertino_icons/CupertinoIcons","fonts":[{"asset":"packages/cupertino_icons/assets/CupertinoIcons.ttf"}]}]
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,230 @@
|
||||
var webm =
|
||||
'data:video/webm;base64,GkXfo0AgQoaBAUL3gQFC8oEEQvOBCEKCQAR3ZWJtQoeBAkKFgQIYU4BnQI0VSalmQCgq17FAAw9CQE2AQAZ3aGFtbXlXQUAGd2hhbW15RIlACECPQAAAAAAAFlSua0AxrkAu14EBY8WBAZyBACK1nEADdW5khkAFVl9WUDglhohAA1ZQOIOBAeBABrCBCLqBCB9DtnVAIueBAKNAHIEAAIAwAQCdASoIAAgAAUAmJaQAA3AA/vz0AAA='
|
||||
var mp4 =
|
||||
'data:video/mp4;base64,AAAAIGZ0eXBtcDQyAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACKBtZGF0AAAC8wYF///v3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0MiByMjQ3OSBkZDc5YTYxIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTEgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9MiBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0wIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MCA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0wIHRocmVhZHM9NiBsb29rYWhlYWRfdGhyZWFkcz0xIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVyYXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9hZGFwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MSBrZXlpbnQ9MzAwIGtleWludF9taW49MzAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD0xMCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIwLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IHZidl9tYXhyYXRlPTIwMDAwIHZidl9idWZzaXplPTI1MDAwIGNyZl9tYXg9MC4wIG5hbF9ocmQ9bm9uZSBmaWxsZXI9MCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAOWWIhAA3//p+C7v8tDDSTjf97w55i3SbRPO4ZY+hkjD5hbkAkL3zpJ6h/LR1CAABzgB1kqqzUorlhQAAAAxBmiQYhn/+qZYADLgAAAAJQZ5CQhX/AAj5IQAD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
Line truncated
|
||||
|
||||
var _createClass = (function () {
|
||||
function defineProperties(target, props) {
|
||||
for (var i = 0; i < props.length; i++) {
|
||||
var descriptor = props[i]
|
||||
descriptor.enumerable = descriptor.enumerable || false
|
||||
descriptor.configurable = true
|
||||
if ('value' in descriptor) descriptor.writable = true
|
||||
Object.defineProperty(target, descriptor.key, descriptor)
|
||||
}
|
||||
}
|
||||
return function (Constructor, protoProps, staticProps) {
|
||||
if (protoProps) defineProperties(Constructor.prototype, protoProps)
|
||||
if (staticProps) defineProperties(Constructor, staticProps)
|
||||
return Constructor
|
||||
}
|
||||
})()
|
||||
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError('Cannot call a class as a function')
|
||||
}
|
||||
}
|
||||
|
||||
// Detect iOS browsers < version 10
|
||||
var oldIOS =
|
||||
typeof navigator !== 'undefined' &&
|
||||
parseFloat(
|
||||
(
|
||||
'' +
|
||||
(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(
|
||||
navigator.userAgent
|
||||
) || [0, ''])[1]
|
||||
)
|
||||
.replace('undefined', '3_2')
|
||||
.replace('_', '.')
|
||||
.replace('_', '')
|
||||
) < 10 &&
|
||||
!window.MSStream
|
||||
|
||||
// Detect native Wake Lock API support
|
||||
var nativeWakeLock = 'wakeLock' in navigator
|
||||
|
||||
var NoSleep = (function () {
|
||||
var _releasedNative = true
|
||||
var _nativeRequestInProgress = false
|
||||
|
||||
function NoSleep() {
|
||||
var _this = this
|
||||
|
||||
_classCallCheck(this, NoSleep)
|
||||
|
||||
if (nativeWakeLock) {
|
||||
this._wakeLock = null
|
||||
var handleVisibilityChange = function handleVisibilityChange() {
|
||||
if (
|
||||
_this._wakeLock !== null &&
|
||||
document.visibilityState === 'visible'
|
||||
) {
|
||||
_this.enable()
|
||||
}
|
||||
}
|
||||
document.addEventListener('visibilitychange', handleVisibilityChange)
|
||||
document.addEventListener('fullscreenchange', handleVisibilityChange)
|
||||
} else if (oldIOS) {
|
||||
this.noSleepTimer = null
|
||||
} else {
|
||||
// Set up no sleep video element
|
||||
this.noSleepVideo = document.createElement('video')
|
||||
|
||||
this.noSleepVideo.setAttribute('title', 'No Sleep')
|
||||
this.noSleepVideo.setAttribute('playsinline', '')
|
||||
|
||||
this._addSourceToVideo(this.noSleepVideo, 'webm', webm)
|
||||
this._addSourceToVideo(this.noSleepVideo, 'mp4', mp4)
|
||||
|
||||
this.noSleepVideo.addEventListener('loadedmetadata', function () {
|
||||
if (_this.noSleepVideo.duration <= 1) {
|
||||
// webm source
|
||||
_this.noSleepVideo.setAttribute('loop', '')
|
||||
} else {
|
||||
// mp4 source
|
||||
_this.noSleepVideo.addEventListener('timeupdate', function () {
|
||||
if (_this.noSleepVideo.currentTime > 0.5) {
|
||||
_this.noSleepVideo.currentTime = Math.random()
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
_createClass(NoSleep, [
|
||||
{
|
||||
key: '_addSourceToVideo',
|
||||
value: function _addSourceToVideo(element, type, dataURI) {
|
||||
var source = document.createElement('source')
|
||||
source.src = dataURI
|
||||
source.type = 'video/' + type
|
||||
element.appendChild(source)
|
||||
},
|
||||
},
|
||||
{
|
||||
key: 'enable',
|
||||
value: function enable() {
|
||||
var _this2 = this
|
||||
|
||||
if (nativeWakeLock) {
|
||||
_nativeRequestInProgress = true
|
||||
navigator.wakeLock
|
||||
.request('screen')
|
||||
.then(function (wakeLock) {
|
||||
_releasedNative = false
|
||||
_nativeRequestInProgress = false
|
||||
|
||||
_this2._wakeLock = wakeLock
|
||||
_this2._wakeLock.addEventListener('release', function () {
|
||||
_releasedNative = true
|
||||
_this2._wakeLock = null
|
||||
})
|
||||
})
|
||||
.catch(function (err) {
|
||||
_nativeRequestInProgress = false
|
||||
console.error(err.name + ', ' + err.message)
|
||||
})
|
||||
} else if (oldIOS) {
|
||||
this.disable()
|
||||
console.warn(
|
||||
'\n NoSleep enabled for older iOS devices. This can interrupt\n active or long-running network requests from completing successfully.\n See https://github.com/richtr/NoSleep.js/issues/15 for more details.\n '
|
||||
)
|
||||
this.noSleepTimer = window.setInterval(function () {
|
||||
if (!document.hidden) {
|
||||
window.location.href = window.location.href.split('#')[0]
|
||||
window.setTimeout(window.stop, 0)
|
||||
}
|
||||
}, 15000)
|
||||
} else {
|
||||
this.noSleepVideo.play()
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
key: 'disable',
|
||||
value: function disable() {
|
||||
if (nativeWakeLock) {
|
||||
if (this._wakeLock != null) {
|
||||
_releasedNative = true
|
||||
this._wakeLock.release()
|
||||
}
|
||||
|
||||
this._wakeLock = null
|
||||
} else if (oldIOS) {
|
||||
if (this.noSleepTimer) {
|
||||
console.warn(
|
||||
'\n NoSleep now disabled for older iOS devices.\n '
|
||||
)
|
||||
window.clearInterval(this.noSleepTimer)
|
||||
this.noSleepTimer = null
|
||||
}
|
||||
} else {
|
||||
this.noSleepVideo.pause()
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
key: 'enabled',
|
||||
value: async function enabled() {
|
||||
if (nativeWakeLock) {
|
||||
if (_nativeRequestInProgress == true) {
|
||||
// Wait until the request is done.
|
||||
while (true) {
|
||||
// Wait for 42 milliseconds.
|
||||
await new Promise((resolve, reject) => setTimeout(resolve, 42))
|
||||
if (_nativeRequestInProgress == false) {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// todo: use WakeLockSentinel.released when that is available (https://developer.mozilla.org/en-US/docs/Web/API/WakeLockSentinel/released)
|
||||
if (_releasedNative != false) {
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
} else if (oldIOS) {
|
||||
return this.noSleepTimer != null
|
||||
} else {
|
||||
if (this.noSleepVideo == undefined) {
|
||||
return false
|
||||
}
|
||||
|
||||
return !this.noSleepVideo.paused
|
||||
}
|
||||
},
|
||||
},
|
||||
])
|
||||
|
||||
return NoSleep
|
||||
})()
|
||||
|
||||
var noSleep = new NoSleep()
|
||||
|
||||
var Wakelock = {
|
||||
enabled: async function () {
|
||||
try {
|
||||
return noSleep.enabled()
|
||||
} catch (e) {
|
||||
return false
|
||||
}
|
||||
},
|
||||
toggle: async function (enable) {
|
||||
if (enable) {
|
||||
noSleep.enable()
|
||||
} else {
|
||||
noSleep.disable()
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
if (nativeWakeLock != true) {
|
||||
// The first non-native call sometimes throws an error, however,
|
||||
// the error does not leak the try-catch above. Therefore, this
|
||||
// is an easy fix that realiably works.
|
||||
Wakelock.enabled()
|
||||
}
|
||||