mirror of
https://github.com/transatoshi-mw/grin-web-wallet.git
synced 2025-10-07 00:02:47 +00:00
contents of zip
This commit is contained in:
135
scripts/caps_lock.js
Executable file
135
scripts/caps_lock.js
Executable file
@@ -0,0 +1,135 @@
|
||||
// Use strict
|
||||
"use strict";
|
||||
|
||||
|
||||
// Classes
|
||||
|
||||
// Caps lock class
|
||||
class CapsLock {
|
||||
|
||||
// Public
|
||||
|
||||
// Constructor
|
||||
constructor() {
|
||||
|
||||
// Set state
|
||||
this.state = false;
|
||||
|
||||
// Get is linux
|
||||
this.isLinux = (typeof navigator === "object" && navigator !== null) ? (("userAgentData" in navigator === true && "platform" in navigator["userAgentData"] === true) ? navigator["userAgentData"]["platform"] : navigator["platform"]).toLowerCase().indexOf("linux") !== Common.INDEX_NOT_FOUND : false;
|
||||
|
||||
// Turning off
|
||||
this.turningOff = false;
|
||||
|
||||
// Get body display
|
||||
this.bodyDisplay = $("body");
|
||||
|
||||
// Set self
|
||||
var self = this;
|
||||
|
||||
// Document key down, key up, mouse down, mouse up, and mousemove event
|
||||
$(document).on("keydown keyup mousedown mouseup mousemove", function(event) {
|
||||
|
||||
// Check if Linux, event is key up or key down, and caps lock is the key
|
||||
if(self.isLinux === true && (event["type"] === "keyup" || event["type"] === "keydown") && event["originalEvent"]["code"] === "CapsLock") {
|
||||
|
||||
// Check if event is key down
|
||||
if(event["type"] === "keydown") {
|
||||
|
||||
// Check if caps lock is off
|
||||
if(event["originalEvent"].getModifierState("CapsLock") === false) {
|
||||
|
||||
// Check if state is off
|
||||
if(self.state === false) {
|
||||
|
||||
// Set state
|
||||
self.state = true;
|
||||
|
||||
// Set that body display has caps lock
|
||||
self.bodyDisplay.addClass("capsLock");
|
||||
}
|
||||
}
|
||||
|
||||
// Otherwise
|
||||
else
|
||||
|
||||
// Set turning off
|
||||
self.turningOff = true;
|
||||
}
|
||||
|
||||
// Otherwise assume event is key up
|
||||
else {
|
||||
|
||||
// Check if turning off
|
||||
if(self.turningOff === true) {
|
||||
|
||||
// Clear turning off
|
||||
self.turningOff = false;
|
||||
|
||||
// Check if state is on
|
||||
if(self.state === true) {
|
||||
|
||||
// Clear state
|
||||
self.state = false;
|
||||
|
||||
// Set that body display doesn't have caps lock
|
||||
self.bodyDisplay.removeClass("capsLock");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Otherwise check if event includes the ability to get the modifier state
|
||||
else if(typeof event === "object" && event !== null && "originalEvent" in event === true && typeof event["originalEvent"] === "object" && event["originalEvent"] !== null && "getModifierState" in event["originalEvent"] === true) {
|
||||
|
||||
// Check if caps lock is on
|
||||
if(event["originalEvent"].getModifierState("CapsLock") === true) {
|
||||
|
||||
// Check if state is off
|
||||
if(self.state === false) {
|
||||
|
||||
// Set state
|
||||
self.state = true;
|
||||
|
||||
// Set that body display has caps lock
|
||||
self.bodyDisplay.addClass("capsLock");
|
||||
}
|
||||
}
|
||||
|
||||
// Otherwise check if caps lock is off
|
||||
else if(event["originalEvent"].getModifierState("CapsLock") === false) {
|
||||
|
||||
// Check if state is on
|
||||
if(self.state === true) {
|
||||
|
||||
// Clear state
|
||||
self.state = false;
|
||||
|
||||
// Set that body display doesn't have caps lock
|
||||
self.bodyDisplay.removeClass("capsLock");
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Is on
|
||||
isOn() {
|
||||
|
||||
// Return if caps lock is on
|
||||
return this.state === true;
|
||||
}
|
||||
|
||||
// Is off
|
||||
isOff() {
|
||||
|
||||
// Return if not on
|
||||
return this.isOn() === false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Main function
|
||||
|
||||
// Set global object's caps lock
|
||||
globalThis["CapsLock"] = CapsLock;
|
Reference in New Issue
Block a user