hterm: add simple test page
A test page to quickly load up local hterm js files.
Change-Id: I20971e4f6f4a58e182744c09dd37b6a65145afd6
Reviewed-on: https://chromium-review.googlesource.com/1114260
Reviewed-by: Vitaliy Shipitsyn <vsh@google.com>
Tested-by: Mike Frysinger <vapier@chromium.org>
diff --git a/hterm/html/hterm.html b/hterm/html/hterm.html
new file mode 100644
index 0000000..18826e7
--- /dev/null
+++ b/hterm/html/hterm.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>hterm test page</title>
+<meta charset='utf-8'/>
+<script src='../dist/js/hterm_deps.js'></script>
+<script src='../dist/js/hterm_resources.js'></script>
+<!-- Dist version.
+<script src='../dist/js/hterm.js'></script>
+-->
+<!-- Live version. -->
+<script src='../js/hterm.js'></script>
+<script src='../js/hterm_accessibility_reader.js'></script>
+<script src='../js/hterm_frame.js'></script>
+<script src='../js/hterm_keyboard.js'></script>
+<script src='../js/hterm_keyboard_bindings.js'></script>
+<script src='../js/hterm_keyboard_keymap.js'></script>
+<script src='../js/hterm_keyboard_keypattern.js'></script>
+<script src='../js/hterm_options.js'></script>
+<script src='../js/hterm_parser.js'></script>
+<script src='../js/hterm_parser_identifiers.js'></script>
+<script src='../js/hterm_preference_manager.js'></script>
+<script src='../js/hterm_pubsub.js'></script>
+<script src='../js/hterm_screen.js'></script>
+<script src='../js/hterm_scrollport.js'></script>
+<script src='../js/hterm_terminal.js'></script>
+<script src='../js/hterm_terminal_io.js'></script>
+<script src='../js/hterm_text_attributes.js'></script>
+<script src='../js/hterm_vt.js'></script>
+<script src='../js/hterm_vt_character_map.js'></script>
+
+<style>
+html {
+ height: 100%;
+}
+body {
+ position: absolute;
+ height: 100%;
+ width: 100%;
+ overflow: hidden;
+ margin: 0px;
+ padding: 0px;
+}
+#terminal {
+ display: block;
+ position: relative;
+ height: 100%;
+ width: 100%;
+ margin: 0px;
+ padding: 0px;
+}
+</style>
+</head>
+
+<body>
+<div id='terminal'></div>
+<script>
+function initContent(io) {
+ const ver = lib.resource.getData('libdot/changelog/version');
+ const date = lib.resource.getData('libdot/changelog/date');
+ const pkg = `libdot ${ver} (${date})`;
+ io.println("\r\n\
+ .--~~~~~~~~~~~~~------.\r\n\
+ /--===============------\\\r\n\
+ | |```````````````| |\r\n\
+ | | | |\r\n\
+ | | >_< | |\r\n\
+ | | | |\r\n\
+ | |_______________| |\r\n\
+ | ::::|\r\n\
+ '======================='\r\n\
+ //-'-'-'-'-'-'-'-'-'-'-\\\\\r\n\
+ //_'_'_'_'_'_'_'_'_'_'_'_\\\\\r\n\
+ [-------------------------]\r\n\
+ \\_________________________/\r\n\
+\r\n\
+ Welcome to hterm!\r\n\
+ Press F11 to go fullscreen to use all shortcuts.\r\n\
+ Running " + pkg + ".\r\n\
+");
+};
+
+function setupHterm() {
+ const term = new hterm.Terminal();
+
+ term.onTerminalReady = function() {
+ const io = this.io.push();
+ function printPrompt() {
+ io.print(
+ '\x1b[38:2:51:105:232mh' +
+ '\x1b[38:2:213:15:37mt' +
+ '\x1b[38:2:238:178:17me' +
+ '\x1b[38:2:51:105:232mr' +
+ '\x1b[38:2:0:153:37mm' +
+ '\x1b[38:2:213:15:37m>' +
+ '\x1b[0m ');
+ }
+
+ io.onVTKeystroke = (string) => {
+ switch (string) {
+ case '\r':
+ io.println('');
+ printPrompt();
+ break;
+ default:
+ io.print(string);
+ break;
+ }
+ };
+ io.sendString = io.print;
+ initContent(io);
+ printPrompt();
+ this.setCursorVisible(true);
+
+ this.keyboard.characterEncoding = 'raw';
+ this.keyboard.bindings.addBinding('F11', 'PASS');
+ this.keyboard.bindings.addBinding('Ctrl-R', 'PASS');
+ };
+ term.decorate(document.querySelector('#terminal'));
+ term.installKeyboard();
+
+ // Useful for console debugging.
+ window.term_ = term;
+}
+
+window.onload = function() {
+ lib.init(setupHterm);
+};
+</script>
+
+</body>
+</html>