virtual-keypad 5.8.0 → 5.9.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "virtual-keypad",
3
- "version": "5.8.0",
3
+ "version": "5.9.0",
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
@@ -69,6 +69,10 @@ class Keypad extends KeypadPeer {
69
69
  document.getElementById("keypad-header").innerText = data.headerContent;
70
70
  this.headerMessage = data.headerContent;
71
71
  break;
72
+ case "UpdateFooter":
73
+ document.getElementById("keypad-footer").innerText = data.headerContent;
74
+ this.footerMessage = data.headerContent;
75
+ break;
72
76
  case "Update":
73
77
  // Keypad has received data to update the keypad
74
78
  if ((!data.hasOwnProperty("alphabet") && !data.hasOwnProperty("font"))) {
@@ -148,9 +152,12 @@ class Keypad extends KeypadPeer {
148
152
  const keypadControlKeys = document.createElement("div");
149
153
  keypadControlKeys.setAttribute("id", "keypad-control-keys");
150
154
  keypadControlKeys.classList.add("keys");
155
+ const keypadFooter = document.createElement("div");
156
+ keypadFooter.setAttribute("id", "keypad-footer");
151
157
  keypadElem.appendChild(keypadHeader);
152
158
  keypadElem.appendChild(keypadKeys);
153
159
  keypadElem.appendChild(keypadControlKeys);
160
+ keypadElem.appendChild(keypadFooter);
154
161
  // Add keypad, ie container with header,keys,control keys to page where specified
155
162
  if (document.getElementById(this.targetElement)) {
156
163
  console.log("Specified target element successfully used.");
@@ -268,12 +275,14 @@ class Keypad extends KeypadPeer {
268
275
 
269
276
  // Set-up an instruction/welcome message for the user
270
277
  const header = document.getElementById("keypad-header");
271
- header.innerText = this.headerMessage || "Please respond by pressing a key.";
278
+ header.innerText = this.headerMessage || "";
279
+ header.style.display = header.innerText === "" ? "none" : "block";
272
280
  // Get the keypad element
273
281
  const remoteControl = document.getElementById("keypad");
274
282
 
275
283
  // Set-up audio element
276
284
  const feedbackAudio = document.createElement("audio");
285
+ // TODO investigate why feedback audio is broken/unreliable
277
286
  feedbackAudio.id = "feedbackAudio";
278
287
  feedbackAudio.src = "onems.mp3";
279
288
  header.appendChild(feedbackAudio);
@@ -292,11 +301,17 @@ class Keypad extends KeypadPeer {
292
301
  setTimeout(defaultKeypadMessaging, delayTime);
293
302
  };
294
303
  defaultKeypadMessaging = (
295
- headerText = "Please respond by pressing a key."
304
+ headerText = ""
296
305
  ) => {
297
306
  // Set-up an instruction/welcome message for the user
298
307
  const header = document.getElementById("keypad-header");
299
- header.innerText = headerText;
308
+ if (headerText === "") {
309
+ header.style.display = "none";
310
+ } else {
311
+ header.innerText = headerText;
312
+ header.style.display = "block";
313
+
314
+ }
300
315
 
301
316
  // Make each button pressable
302
317
  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(