diff --git a/static/index.html b/static/index.html
index 2f938ea..f0586b2 100644
--- a/static/index.html
+++ b/static/index.html
@@ -25,8 +25,8 @@
@@ -120,9 +120,87 @@
+
+
+
+
+
+
Dichotomous Key
+
+
+
+
+ e · |
+ i ·· |
+ s ··· |
+ h ···· |
+
+
+ v ···– |
+
+
+ u ··– |
+ f ··–· |
+
+
+ |
+
+
+ a ·– |
+ r ·–· |
+ l ·–·· |
+
+
+ j ·––– |
+
+
+ w ·–– |
+ p ·––· |
+
+
+ |
+
+
+
+ t – |
+ n –· |
+ d –·· |
+ b –··· |
+
+
+ x –··– |
+
+
+ k –·– |
+ c –·–· |
+
+
+ y –·–– |
+
+
+ m –– |
+ g ––· |
+ z ––·· |
+
+
+ q ––·– |
+
+
+ o ––– |
+ |
+
+
+ |
+
+
+
+
+
Knobs
@@ -193,81 +271,6 @@
-
-
-
Dichotomous Key
-
-
-
-
-
- e · |
- i ·· |
- s ··· |
- h ···· |
-
-
- v ···– |
-
-
- u ··– |
- f ··–· |
-
-
- |
-
-
- a ·– |
- r ·–· |
- l ·–·· |
-
-
- j ·––– |
-
-
- w ·–– |
- p ·––· |
-
-
- |
-
-
-
- t – |
- n –· |
- d –·· |
- b –··· |
-
-
- x –··– |
-
-
- k –·– |
- c –·–· |
-
-
- y –·–– |
-
-
- m –– |
- g ––· |
- z ––·· |
-
-
- q ––·– |
-
-
- o ––– |
- |
-
-
- |
-
-
-
-
-
-
Vail
diff --git a/static/vail.css b/static/vail.css
index 22eddde..10a2220 100644
--- a/static/vail.css
+++ b/static/vail.css
@@ -18,6 +18,18 @@
text-align: center;
}
+.maximize {
+ position: absolute;
+ bottom: 0;
+ right: 0;
+}
+.maximized .key {
+ height: 90vh;
+}
+.maximized {
+ width: 90vw;
+}
+
.wide {
width: 100%;
}
diff --git a/static/vail.js b/static/vail.js
index 0a93c4c..21f8091 100644
--- a/static/vail.js
+++ b/static/vail.js
@@ -7,6 +7,19 @@ const errorFreq = 30
const DIT = 1
const DAH = 3
+// iOS kludge
+if (! window.AudioContext) {
+ window.AudioContext = window.webkitAudioContext
+}
+
+function toast(msg) {
+ let el = document.querySelector("#snackbar")
+ el.MaterialSnackbar.showSnackbar({
+ message: msg,
+ timeout: 2000
+ })
+}
+
class Iambic {
constructor(beginTxFunc, endTxFunc) {
this.beginTxFunc = beginTxFunc
@@ -534,7 +547,12 @@ class Vail {
}
function vailInit() {
- window.app = new Vail()
+ try {
+ window.app = new Vail()
+ } catch (err) {
+ console.log(err)
+ toast(err)
+ }
}