mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
72 lines
2.0 KiB
JavaScript
72 lines
2.0 KiB
JavaScript
(function() {
|
|
'use strict';
|
|
|
|
var battery;
|
|
|
|
function toTime(sec) {
|
|
sec = parseInt(sec, 10);
|
|
|
|
var hours = Math.floor(sec / 3600),
|
|
minutes = Math.floor((sec - (hours * 3600)) / 60),
|
|
seconds = sec - (hours * 3600) - (minutes * 60);
|
|
|
|
if (hours < 10) { hours = '0' + hours; }
|
|
if (minutes < 10) { minutes = '0' + minutes; }
|
|
if (seconds < 10) { seconds = '0' + seconds; }
|
|
|
|
return hours + ':' + minutes;
|
|
}
|
|
|
|
function readBattery(b) {
|
|
battery = b || battery;
|
|
|
|
var percentage = parseFloat((battery.level * 100).toFixed(2)) + '%',
|
|
fully,
|
|
remaining;
|
|
|
|
if (battery.charging && battery.chargingTime === Infinity) {
|
|
fully = 'Calculating...';
|
|
} else if (battery.chargingTime !== Infinity) {
|
|
fully = toTime(battery.chargingTime);
|
|
} else {
|
|
fully = '---';
|
|
}
|
|
|
|
if (!battery.charging && battery.dischargingTime === Infinity) {
|
|
remaining = 'Calculating...';
|
|
} else if (battery.dischargingTime !== Infinity) {
|
|
remaining = toTime(battery.dischargingTime);
|
|
} else {
|
|
remaining = '---';
|
|
}
|
|
|
|
document.styleSheets[0].insertRule('.battery:before{width:' + percentage + '}', 0);
|
|
document.querySelector('.battery-percentage').innerHTML = percentage;
|
|
document.querySelector('.battery-status').innerHTML = battery.charging ? 'Adapter' : 'Battery';
|
|
document.querySelector('.battery-level').innerHTML = percentage;
|
|
document.querySelector('.battery-fully').innerHTML = fully;
|
|
document.querySelector('.battery-remaining').innerHTML = remaining;
|
|
|
|
}
|
|
|
|
if (navigator.battery) {
|
|
readBattery(navigator.battery);
|
|
|
|
} else if (navigator.getBattery) {
|
|
navigator.getBattery().then(readBattery);
|
|
|
|
} else {
|
|
document.querySelector('.not-support').removeAttribute('hidden');
|
|
}
|
|
|
|
window.onload = function () {
|
|
battery.addEventListener('chargingchange', function() {
|
|
readBattery();
|
|
});
|
|
|
|
battery.addEventListener("levelchange", function() {
|
|
readBattery();
|
|
});
|
|
};
|
|
}());
|