virtual-keypad 5.14.3 → 5.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/receiver.html +2 -1
- package/package.json +1 -1
- package/src/keypad.js +8 -5
- package/src/keypadPeer.js +2 -2
- package/src/maxKeySize.js +6 -2
- package/src/receiver.js +2 -0
package/dist/receiver.html
CHANGED
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
let starting_alphabet = [
|
|
96
96
|
..."ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789".split(""),
|
|
97
97
|
];
|
|
98
|
-
const ctrl = ["RETURN", "SPACE"];
|
|
98
|
+
const ctrl = ["RETURN", "SPACE", "SKIP BLOCK"];
|
|
99
99
|
let alphabet = [...starting_alphabet, ...ctrl];
|
|
100
100
|
|
|
101
101
|
let keypad_options = {
|
|
@@ -106,6 +106,7 @@
|
|
|
106
106
|
targetElementId: "display", // id of the the div where messages should be displayed
|
|
107
107
|
visualResponseFeedback: false,
|
|
108
108
|
onErrorReconnectMessage: "Custom error message",
|
|
109
|
+
controlButtons: ctrl,
|
|
109
110
|
};
|
|
110
111
|
let ondata_callback = (data) => {
|
|
111
112
|
receiver.displayUpdate(`[data] ${data.response}`, true);
|
package/package.json
CHANGED
package/src/keypad.js
CHANGED
|
@@ -16,6 +16,7 @@ class Keypad extends KeypadPeer {
|
|
|
16
16
|
});
|
|
17
17
|
this.startTime = Date.now();
|
|
18
18
|
this.receiverPeerId = null;
|
|
19
|
+
this.controlButtons = keypadParameters.controlButtons ?? ["SPACE", "RETURN"];
|
|
19
20
|
|
|
20
21
|
const parametersFromURL = this.parseParams(
|
|
21
22
|
new URLSearchParams(window.location.search),
|
|
@@ -64,6 +65,7 @@ class Keypad extends KeypadPeer {
|
|
|
64
65
|
case "KeypadParameters":
|
|
65
66
|
this.alphabet = data.alphabet;
|
|
66
67
|
this.font = data.font;
|
|
68
|
+
this.controlButtons = data.controlButtons;
|
|
67
69
|
this.onErrorReconnectMessage = data.onErrorReconnectMessage;
|
|
68
70
|
this.#populateKeypad();
|
|
69
71
|
break;
|
|
@@ -81,13 +83,14 @@ class Keypad extends KeypadPeer {
|
|
|
81
83
|
break;
|
|
82
84
|
case "Update":
|
|
83
85
|
// Keypad has received data to update the keypad
|
|
84
|
-
if (!data.hasOwnProperty("alphabet") && !data.hasOwnProperty("font")) {
|
|
86
|
+
if (!data.hasOwnProperty("alphabet") && !data.hasOwnProperty("font") && !data.hasOwnProperty("controlButtons")) {
|
|
85
87
|
console.error(
|
|
86
88
|
'Error in parsing data received! Must set "alphabet" or "font" properties',
|
|
87
89
|
);
|
|
88
90
|
} else {
|
|
89
91
|
this.alphabet = data.alphabet ?? this.alphabet;
|
|
90
92
|
this.font = data.font ?? this.font;
|
|
93
|
+
this.controlButtons = data.controlButtons ?? this.controlButtons;
|
|
91
94
|
}
|
|
92
95
|
this.#populateKeypad();
|
|
93
96
|
break;
|
|
@@ -250,12 +253,12 @@ class Keypad extends KeypadPeer {
|
|
|
250
253
|
button.addEventListener("mouseup", (e) => {
|
|
251
254
|
e.preventDefault();
|
|
252
255
|
console.log("mouseup event: ", e);
|
|
253
|
-
switch (e.
|
|
256
|
+
switch (e.target.className) {
|
|
254
257
|
case "response-button-label noselect":
|
|
255
|
-
buttonResponseFn(e.
|
|
258
|
+
buttonResponseFn(e.target.parentElement);
|
|
256
259
|
break;
|
|
257
260
|
case "response-button":
|
|
258
|
-
buttonResponseFn(e.
|
|
261
|
+
buttonResponseFn(e.target);
|
|
259
262
|
break;
|
|
260
263
|
}
|
|
261
264
|
});
|
|
@@ -290,7 +293,7 @@ class Keypad extends KeypadPeer {
|
|
|
290
293
|
// Add the label to the button
|
|
291
294
|
button.appendChild(buttonLabel);
|
|
292
295
|
// Add the labeled-button to the HTML
|
|
293
|
-
if (
|
|
296
|
+
if (this.controlButtons.includes(symbol.toUpperCase())) {
|
|
294
297
|
document.querySelector("#keypad-control-keys").appendChild(button);
|
|
295
298
|
} else {
|
|
296
299
|
document.querySelector("#keypad-keys").appendChild(button);
|
package/src/keypadPeer.js
CHANGED
|
@@ -30,11 +30,11 @@ export class KeypadPeer {
|
|
|
30
30
|
// TODO add support for ttd (ms)
|
|
31
31
|
this.ttd = parameters.hasOwnProperty("ttd")
|
|
32
32
|
? parameters.hasOwnProperty("ttd")
|
|
33
|
-
:
|
|
33
|
+
: 60000;
|
|
34
34
|
// TODO add support for heartRate (ms)
|
|
35
35
|
this.heartbeatIntervalMs = parameters.hasOwnProperty("heartRate")
|
|
36
36
|
? parameters.hasOwnProperty("heartRate")
|
|
37
|
-
:
|
|
37
|
+
: 10000;
|
|
38
38
|
this.lastHeartbeat = performance.now();
|
|
39
39
|
this.heartBeatInterval = undefined;
|
|
40
40
|
this.heartCheckInterval = undefined;
|
package/src/maxKeySize.js
CHANGED
|
@@ -79,15 +79,19 @@ export const applyMaxKeySize = (numberOfKeys) => {
|
|
|
79
79
|
let controlKeyFontSize = Infinity;
|
|
80
80
|
let keyFontSize;
|
|
81
81
|
let j = 0;
|
|
82
|
+
|
|
83
|
+
const numControlKeys = controlKeyElemsMask.filter(x => x).length;
|
|
84
|
+
|
|
82
85
|
keyElems.forEach((k, i) => {
|
|
83
86
|
k.style.position = "fixed";
|
|
84
87
|
const controlKey = controlKeyElemsMask[i];
|
|
85
88
|
let top, left, width;
|
|
86
89
|
if (controlKey) {
|
|
87
90
|
top = heightPx - keyHeightPx;
|
|
88
|
-
width = widthPx /
|
|
91
|
+
width = (widthPx / numControlKeys) - margin;
|
|
89
92
|
const m = margin * 0.5;
|
|
90
|
-
|
|
93
|
+
const controlKeyIndex = controlKeys.length;
|
|
94
|
+
left = m + controlKeyIndex * (width + margin);
|
|
91
95
|
|
|
92
96
|
const f = getLargeFontSize(k, width, keyHeightPx - margin);
|
|
93
97
|
controlKeyFontSize = Math.min(f, controlKeyFontSize);
|
package/src/receiver.js
CHANGED
|
@@ -30,6 +30,7 @@ class Receiver extends KeypadPeer {
|
|
|
30
30
|
|
|
31
31
|
this.alphabet = this.checkAlphabet(keypadParameters["alphabet"]); // What symbols to display on the keys
|
|
32
32
|
this.font = keypadParameters["font"]; // What fontface to display the symbols in
|
|
33
|
+
this.controlButtons = keypadParameters["controlButtons"];
|
|
33
34
|
this.onErrorReconnectMessage =
|
|
34
35
|
keypadParameters.onErrorReconnectMessage ??
|
|
35
36
|
"Connection lost. Please reconnect...";
|
|
@@ -226,6 +227,7 @@ class Receiver extends KeypadPeer {
|
|
|
226
227
|
this.conn.send({
|
|
227
228
|
message: "KeypadParameters",
|
|
228
229
|
alphabet: this.alphabet,
|
|
230
|
+
controlButtons: this.controlButtons,
|
|
229
231
|
font: this.font,
|
|
230
232
|
onErrorReconnectMessage: this.onErrorReconnectMessage,
|
|
231
233
|
});
|