summaryrefslogtreecommitdiffstats
path: root/addon-sdk/source/examples/actor-repl/data/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'addon-sdk/source/examples/actor-repl/data/index.html')
-rw-r--r--addon-sdk/source/examples/actor-repl/data/index.html147
1 files changed, 0 insertions, 147 deletions
diff --git a/addon-sdk/source/examples/actor-repl/data/index.html b/addon-sdk/source/examples/actor-repl/data/index.html
deleted file mode 100644
index 250ece249..000000000
--- a/addon-sdk/source/examples/actor-repl/data/index.html
+++ /dev/null
@@ -1,147 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
- - License, v. 2.0. If a copy of the MPL was not distributed with this
- - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-<html>
- <head>
- <link rel="stylesheet" href="./codemirror.css">
- <link rel="stylesheet" href="./main.css">
- <script src="./codemirror-compressed.js"></script>
- <views>
- <section class="task cm-s-default">
- <pre class="request "></pre>
- <pre class="response"><span class="one"></span><span class="two"></span><span class="three"></span></pre>
- </section>
- </views>
- </head>
- <body>
- <pre class="input"></pre>
- </body>
- <script>
- function debounce(fn, ms) {
- var id;
- return function(...args) {
- clearTimeout(id);
- id = setTimeout(fn, ms, ...args);
- };
- }
-
- function Try(fn) {
- return function(...args) {
- try { return fn(...args); }
- catch (error) { return null; }
- };
- }
-
- var parse = Try(JSON.parse);
-
- var CommandHistory = {
- init: function() {
- this._state = {};
- this._state.els = document.querySelectorAll("body > section.task > .request");
- this._state.idx = this._state.els.length;
- },
- get prev() {
- if (!!this._state.els && this._state.idx > 0) {
- this._state.idx--;
- return this._state.els[this._state.idx].textContent;
- }
-
- return "";
- },
- get next() {
- if (!!this._state.els && this._state.idx < this._state.els.length-1) {
- this._state.idx++;
- return this._state.els[this._state.idx].textContent;
- }
-
- return "";
- }
- }
-
- function cmdHistory(fn, editor) {
- editor.setValue(fn());
- document.querySelector(".input").scrollIntoView();
- }
-
- var cmdHistoryNext = cmdHistory.bind(null, () => CommandHistory.next);
- var cmdHistoryBack = cmdHistory.bind(null, () => CommandHistory.prev);
-
- function send(editor) {
- var input = editor.getWrapperElement().parentNode;
- var code = editor.getValue().trim();
- var packet = parse(code);
- if (packet) {
- var task = document.querySelector("views .task").cloneNode(true);
- var request = task.querySelector(".request");
- var response = task.querySelector(".response");
-
- input.parentNode.insertBefore(task, input);
-
- CodeMirror.runMode(JSON.stringify(packet, 2, 2),
- "application/json",
- request);
- response.classList.add("pending");
-
- editor.setValue("");
-
- document.querySelector(".input").scrollIntoView();
-
- port.postMessage(packet);
- }
- }
-
- var editor = CodeMirror(document.querySelector(".input"), {
- autofocus: true,
- mode: "application/json",
- matchBrackets: true,
- value: '{"to": "root", "type": "requestTypes"}',
- extraKeys: {"Cmd-Enter": send,
- "Ctrl-Enter": send,
- "Cmd-Down": cmdHistoryNext,
- "Ctrl-Down": cmdHistoryNext,
- "Cmd-Up": cmdHistoryBack,
- "Ctrl-Up": cmdHistoryBack}
- });
- editor.on("change", debounce(function(editor) {
- var input = editor.getWrapperElement().parentNode;
- if (parse(editor.getValue().trim())) {
- input.classList.remove("invalid");
- } else {
- input.classList.add("invalid");
- }
- }, 800));
- </script>
- <script>
- window.addEventListener("message", event => {
- window.port = event.ports[0];
- port.onmessage = onMessage;
- });
-
- var onMessage = (event) => {
- var packet = event.data;
- var code = JSON.stringify(packet, 2, 2);
-
- var input = document.querySelector(".input");
- var response = document.querySelector(".task .response.pending");
-
- if (!response) {
- message = document.querySelector("views .task").cloneNode(true);
- response = message.querySelector(".response");
- response.classList.add("message");
-
- input.parentNode.insertBefore(message, input);
- }
-
- if (packet.error) {
- response.classList.add("error");
- }
-
- CodeMirror.runMode(code, "application/json", response);
- response.classList.remove("pending");
-
- document.querySelector(".input").scrollIntoView();
-
- CommandHistory.init();
- };
- </script>
-</html>