Give up on top-level inclusion of xterm and CheerpX
In preparation for SSR
This commit is contained in:
parent
208cfa8e0d
commit
d4db6f8e16
@ -1,11 +1,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import { onMount } from 'svelte';
|
import { onMount } from 'svelte';
|
||||||
import { Terminal } from '@xterm/xterm';
|
|
||||||
import { FitAddon } from '@xterm/addon-fit';
|
|
||||||
import { WebLinksAddon } from '@xterm/addon-web-links';
|
|
||||||
import Nav from 'labs/packages/global-navbar/src/Nav.svelte';
|
import Nav from 'labs/packages/global-navbar/src/Nav.svelte';
|
||||||
import SideBar from '$lib/SideBar.svelte';
|
import SideBar from '$lib/SideBar.svelte';
|
||||||
import * as CheerpX from '@leaningtech/cheerpx';
|
|
||||||
import '$lib/global.css';
|
import '$lib/global.css';
|
||||||
import '@xterm/xterm/css/xterm.css'
|
import '@xterm/xterm/css/xterm.css'
|
||||||
import '@fortawesome/fontawesome-free/css/all.min.css'
|
import '@fortawesome/fontawesome-free/css/all.min.css'
|
||||||
@ -17,12 +13,8 @@
|
|||||||
export let processCallback = null;
|
export let processCallback = null;
|
||||||
export let cacheId = null;
|
export let cacheId = null;
|
||||||
|
|
||||||
var term = new Terminal({cursorBlink:true, convertEol:true, fontFamily:"monospace", fontWeight: 400, fontWeightBold: 700});
|
var term = null;
|
||||||
var cx = null;
|
var cx = null;
|
||||||
var fitAddon = new FitAddon();
|
|
||||||
term.loadAddon(fitAddon);
|
|
||||||
var linkAddon = new WebLinksAddon();
|
|
||||||
term.loadAddon(linkAddon);
|
|
||||||
var cxReadFunc = null;
|
var cxReadFunc = null;
|
||||||
var processCount = 0;
|
var processCount = 0;
|
||||||
var curVT = 0;
|
var curVT = 0;
|
||||||
@ -52,15 +44,23 @@
|
|||||||
{
|
{
|
||||||
cpuActivity.set(state != "ready");
|
cpuActivity.set(state != "ready");
|
||||||
}
|
}
|
||||||
term.onData(readData);
|
async function initTerminal()
|
||||||
function initTerminal()
|
|
||||||
{
|
{
|
||||||
|
const { Terminal } = await import('@xterm/xterm');
|
||||||
|
const { FitAddon } = await import('@xterm/addon-fit');
|
||||||
|
const { WebLinksAddon } = await import('@xterm/addon-web-links');
|
||||||
|
term = new Terminal({cursorBlink:true, convertEol:true, fontFamily:"monospace", fontWeight: 400, fontWeightBold: 700});
|
||||||
|
var fitAddon = new FitAddon();
|
||||||
|
term.loadAddon(fitAddon);
|
||||||
|
var linkAddon = new WebLinksAddon();
|
||||||
|
term.loadAddon(linkAddon);
|
||||||
const consoleDiv = document.getElementById("console");
|
const consoleDiv = document.getElementById("console");
|
||||||
term.open(consoleDiv);
|
term.open(consoleDiv);
|
||||||
term.scrollToTop();
|
term.scrollToTop();
|
||||||
fitAddon.fit();
|
fitAddon.fit();
|
||||||
window.addEventListener("resize", function(ev){ fitAddon.fit(); });
|
window.addEventListener("resize", function(ev){ fitAddon.fit(); });
|
||||||
term.focus();
|
term.focus();
|
||||||
|
term.onData(readData);
|
||||||
// Avoid undesired default DnD handling
|
// Avoid undesired default DnD handling
|
||||||
function preventDefaults (e) {
|
function preventDefaults (e) {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
@ -94,7 +94,7 @@
|
|||||||
}
|
}
|
||||||
async function initCheerpX()
|
async function initCheerpX()
|
||||||
{
|
{
|
||||||
// TODO: Check for SAB support
|
const CheerpX = await import('@leaningtech/cheerpx');
|
||||||
var blockDevice = null;
|
var blockDevice = null;
|
||||||
switch(configObj.diskImageType)
|
switch(configObj.diskImageType)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user