virtual-keypad 5.8.0 → 5.9.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "virtual-keypad",
3
- "version": "5.8.0",
3
+ "version": "5.9.1",
4
4
  "description": "User response at a distance. Simple utility to summon forth a virtual keypad webapp.",
5
5
  "main": "dist/main.js",
6
6
  "directories": {
package/src/keypad.css CHANGED
@@ -13,6 +13,7 @@
13
13
  justify-content: center;
14
14
 
15
15
  padding: 1em;
16
+ font-family: sans-serif;
16
17
  }
17
18
  #keypad-header {
18
19
  height: 100%;
@@ -34,6 +35,13 @@
34
35
  box-shadow: inset 2px 2px 4px #888888,
35
36
  inset -2px -2px 4px #fff;
36
37
  }
38
+ #keypad-footer {
39
+ position: absolute;
40
+ font-size: smaller;
41
+ width: 100%;
42
+ bottom: 0;
43
+ right: 0;
44
+ }
37
45
 
38
46
  /* Grid of main keys themselves */
39
47
  #keypad-keys {
package/src/keypad.js CHANGED
@@ -67,8 +67,13 @@ class Keypad extends KeypadPeer {
67
67
  break;
68
68
  case "UpdateHeader":
69
69
  document.getElementById("keypad-header").innerText = data.headerContent;
70
+ document.getElementById("keypad-header").style.display = data.headerContent === "" ? "none" : "block";
70
71
  this.headerMessage = data.headerContent;
71
72
  break;
73
+ case "UpdateFooter":
74
+ document.getElementById("keypad-footer").innerText = data.headerContent;
75
+ this.footerMessage = data.headerContent;
76
+ break;
72
77
  case "Update":
73
78
  // Keypad has received data to update the keypad
74
79
  if ((!data.hasOwnProperty("alphabet") && !data.hasOwnProperty("font"))) {
@@ -148,9 +153,12 @@ class Keypad extends KeypadPeer {
148
153
  const keypadControlKeys = document.createElement("div");
149
154
  keypadControlKeys.setAttribute("id", "keypad-control-keys");
150
155
  keypadControlKeys.classList.add("keys");
156
+ const keypadFooter = document.createElement("div");
157
+ keypadFooter.setAttribute("id", "keypad-footer");
151
158
  keypadElem.appendChild(keypadHeader);
152
159
  keypadElem.appendChild(keypadKeys);
153
160
  keypadElem.appendChild(keypadControlKeys);
161
+ keypadElem.appendChild(keypadFooter);
154
162
  // Add keypad, ie container with header,keys,control keys to page where specified
155
163
  if (document.getElementById(this.targetElement)) {
156
164
  console.log("Specified target element successfully used.");
@@ -268,12 +276,14 @@ class Keypad extends KeypadPeer {
268
276
 
269
277
  // Set-up an instruction/welcome message for the user
270
278
  const header = document.getElementById("keypad-header");
271
- header.innerText = this.headerMessage || "Please respond by pressing a key.";
279
+ header.innerText = this.headerMessage || "";
280
+ header.style.display = header.innerText === "" ? "none" : "block";
272
281
  // Get the keypad element
273
282
  const remoteControl = document.getElementById("keypad");
274
283
 
275
284
  // Set-up audio element
276
285
  const feedbackAudio = document.createElement("audio");
286
+ // TODO investigate why feedback audio is broken/unreliable
277
287
  feedbackAudio.id = "feedbackAudio";
278
288
  feedbackAudio.src = "onems.mp3";
279
289
  header.appendChild(feedbackAudio);
@@ -292,11 +302,17 @@ class Keypad extends KeypadPeer {
292
302
  setTimeout(defaultKeypadMessaging, delayTime);
293
303
  };
294
304
  defaultKeypadMessaging = (
295
- headerText = "Please respond by pressing a key."
305
+ headerText = ""
296
306
  ) => {
297
307
  // Set-up an instruction/welcome message for the user
298
308
  const header = document.getElementById("keypad-header");
299
- header.innerText = headerText;
309
+ if (headerText === "") {
310
+ header.style.display = "none";
311
+ } else {
312
+ header.innerText = headerText;
313
+ header.style.display = "block";
314
+
315
+ }
300
316
 
301
317
  // Make each button pressable
302
318
  const buttons = document.getElementsByClassName("response-button");
package/src/receiver.js CHANGED
@@ -94,6 +94,17 @@ class Receiver extends KeypadPeer {
94
94
  console.error(e);
95
95
  }
96
96
  };
97
+ updateFooterMessage = (message) => {
98
+ try {
99
+ this.conn.send({
100
+ message: "UpdateFooter",
101
+ headerContent: message
102
+ })
103
+ } catch (e) {
104
+ this.displayUpdate("Error in updating footer message.") // Debug
105
+ console.error(e);
106
+ }
107
+ };
97
108
  #verifyKeypadParameters = (keypadParameters) => {
98
109
  if (!keypadParameters.hasOwnProperty("alphabet")) {
99
110
  console.error(