webui: separate sources per module

* migrate to esbuild from terser, since now js source needs bundling
* (temporary?) hijack inline-source object handling to inline html files
* get rid of legacy removeIf comments in source in favour of explicit
  removal either through bundling tree-shaking and / or manual module-*
  class element removal w/ jsdom
* get rid of multi-layered custom checkboxes in favour of
  `appearance: none` directly styling the `input` elem
  also removes scripting part that was supposed to adjust for=... labels
* update to html-minifier-terser, up-to-date html-minifier fork
* update to iro.js 5.5.x, using npm to manage dependencies
* build script can now update resulting html output
  (called after bundling stage, before minification)
This commit is contained in:
Maxim Prokhorov
2024-06-13 20:43:57 +03:00
parent bfa4ed7541
commit 289fea4f3d
133 changed files with 25863 additions and 17391 deletions

View File

@@ -0,0 +1,39 @@
<form id="form-debug" class="pure-form">
<div class="panel" id="panel-debug">
<div class="header">
<h1>DEBUG LOG AND TERMINAL</h1>
<h2>
Interactive console of the device
</h2>
</div>
<div class="page">
<fieldset>
<div class="pure-control-group module module-dbg module-cmd">
<span class="pure-form-message">
Write a command and press <kbd>ENTER</kbd> (or click the button) to execute it on the device. The output will be shown in the debug text area below. Type <code>HELP</code> or <code>COMMANDS</code> to see available commands.
</span>
</div>
<div class="pure-controls">
<button type="button" class="pure-button button-dbg-clear pure-input-1">Clear</button>
</div>
<div class="pure-control-group terminal">
<textarea class="pure-input-1" id="cmd-output" name="log" wrap="soft" readonly></textarea>
<input id="cmd-input" class="pure-input-1 module module-cmd" name="cmd" type="text" autocomplete="off" data-action="none">
</div>
<div class="pure-controls module module-cmd">
<button type="submit" class="pure-button button-cmd pure-input-1">Enter</button>
</div>
</fieldset>
</div>
</div>
</form>