2023-02-20 18:36:49 +00:00
|
|
|
(function () {
|
|
|
|
var durationOnPause = "---";
|
|
|
|
var redrawInterval;
|
|
|
|
var startTime;
|
2023-04-19 20:50:51 +00:00
|
|
|
var showMillis = true;
|
2023-04-21 17:02:01 +00:00
|
|
|
var milliTime = 60;
|
2023-02-20 18:36:49 +00:00
|
|
|
var unqueueRedraw = function () {
|
|
|
|
if (redrawInterval)
|
|
|
|
clearInterval(redrawInterval);
|
|
|
|
redrawInterval = undefined;
|
|
|
|
};
|
|
|
|
var queueRedraw = function () {
|
|
|
|
var _this = this;
|
|
|
|
unqueueRedraw();
|
2023-04-19 07:37:41 +00:00
|
|
|
redrawInterval = setInterval(function () {
|
|
|
|
if (startTime) {
|
2023-04-21 17:02:01 +00:00
|
|
|
if (showMillis && Date.now() - startTime > milliTime * 1000) {
|
2023-04-19 20:50:51 +00:00
|
|
|
showMillis = false;
|
2023-04-19 07:37:41 +00:00
|
|
|
changeInterval(redrawInterval, 1000);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
unqueueRedraw();
|
|
|
|
}
|
|
|
|
_this.emit('redraw');
|
|
|
|
}, 100);
|
2023-02-20 18:36:49 +00:00
|
|
|
};
|
|
|
|
var pad2 = function (s) { return ('0' + s.toFixed(0)).slice(-2); };
|
|
|
|
var duration = function (start) {
|
|
|
|
var seconds = (Date.now() - start) / 1000;
|
2023-04-21 17:02:01 +00:00
|
|
|
if (seconds < milliTime)
|
2023-02-20 18:36:49 +00:00
|
|
|
return seconds.toFixed(1);
|
|
|
|
var mins = seconds / 60;
|
|
|
|
seconds %= 60;
|
|
|
|
if (mins < 60)
|
2023-04-21 17:02:01 +00:00
|
|
|
return "".concat(mins.toFixed(0), ":").concat(pad2(seconds));
|
2023-02-20 18:36:49 +00:00
|
|
|
var hours = mins / 60;
|
|
|
|
mins %= 60;
|
2023-04-21 17:02:01 +00:00
|
|
|
return "".concat(hours.toFixed(0), ":").concat(pad2(mins), ":").concat(pad2(seconds));
|
2023-02-20 18:36:49 +00:00
|
|
|
};
|
|
|
|
var img = function () { return atob("GBiBAAAAAAB+AAB+AAAAAAB+AAH/sAOB8AcA4A4YcAwYMBgYGBgYGBg8GBg8GBgYGBgAGAwAMA4AcAcA4AOBwAH/gAB+AAAAAAAAAA=="); };
|
|
|
|
return {
|
2024-08-02 15:07:48 +00:00
|
|
|
name: "timer",
|
2023-02-20 18:36:49 +00:00
|
|
|
img: img(),
|
|
|
|
items: [
|
|
|
|
{
|
|
|
|
name: "stopw",
|
|
|
|
get: function () { return ({
|
|
|
|
text: startTime
|
|
|
|
? duration(startTime)
|
|
|
|
: durationOnPause,
|
|
|
|
img: img(),
|
|
|
|
}); },
|
2023-04-16 20:06:23 +00:00
|
|
|
show: function () {
|
|
|
|
if (startTime) {
|
|
|
|
queueRedraw.call(this);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
this.emit('redraw');
|
|
|
|
}
|
|
|
|
},
|
2023-02-20 18:36:49 +00:00
|
|
|
hide: unqueueRedraw,
|
|
|
|
run: function () {
|
|
|
|
if (startTime) {
|
|
|
|
durationOnPause = duration(startTime);
|
|
|
|
startTime = undefined;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
queueRedraw.call(this);
|
2023-04-19 20:50:51 +00:00
|
|
|
showMillis = true;
|
2023-02-20 18:36:49 +00:00
|
|
|
startTime = Date.now();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
};
|
2024-10-30 20:32:22 +00:00
|
|
|
})
|