root/Ui.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPLv3.0
(function() {
    var fn = null;
    var inputEl = document.getElementById("input");
    var outputEl = document.getElementById("output");
    var formatsEl = document.getElementById("formats");
    var events = ["keydown", "keyup", "change"];

    function update() {
        outputEl.textContent = fn(inputEl.value);
    }

    events.map(function(eventKey) {
        inputEl.addEventListener(eventKey, update);
    });

    Convert.formats.map(function(format, k) {
        var radio = document.createElement("input");
        radio.type = "radio";
        radio.name = "fromat";
        if (k === 0) {
            radio.checked = true;
            fn = format.fn;
        }
        radio.onclick = function() {
            fn = format.fn;
            update();
        }

        var label = document.createElement("label");
        var labelText = document.createElement("span");
        labelText.textContent = format.fn(format.key);
        label.appendChild(radio);
        label.appendChild(labelText);
        label.style.display = "block";

        formatsEl.appendChild(label, inputEl);
    });

    update();
})();