--- /dev/null
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<script type="module" src="/edit_structured.js/1">
+</script>
+<style>
+html {
+ scroll-padding-top: 2em;
+}
+body {
+ background: #ffffff;
+ font-family: sans-serif;
+ text-align: left;
+ margin: 0;
+ padding: 0;
+}
+#header {
+ background: #ffffff;
+ position: sticky;
+ top: 0;
+ padding-left: 0.5em;
+ padding-bottom: 0.25em;
+ border-bottom: 1px solid black;
+}
+table.alternating > tbody > tr:nth-child(odd) {
+ background-color: #dcdcdc;
+}
+table.alternating > tbody > tr:nth-child(even) {
+ background: #ffffff;
+}
+td {
+ vertical-align: top;
+}
+.critical {
+ background: #ff6666 !important;
+}
+td.amount {
+ text-align: right;
+}
+td.amount,
+td.currency {
+ font-family: monospace;
+ font-size: 1.25em;
+}
+table.alternating.critical > tbody > tr:nth-child(even) {
+ background-color: #ff8a8a;
+}
+td.balance.amount {
+ width: 10em;
+}
+td.balance.currency {
+ width: 3em;
+}
+td.direct_target {
+ font-weight: bold;
+}
+
+input.amount {
+ text-align: right;
+ font-family: monospace;
+}
+#date_input {
+ margin-right: 0.3em;
+ font-family: monospace;
+}
+</style>
+</head>
+<body>
+<div id="header">
+ <form action="" method="POST">
+ <span class="disable_on_taint">
+ ledger <a href="/ledger_structured">structured</a>
+ / <a href="/ledger_raw">raw</a>
+ · <a href="/balance">balance</a>
+ · <input type="submit"name="file_load" value="reload" />
+ </span>
+ </form>
+</div>
+<form action="/edit_structured/1" method="POST">
+<span class="disable_on_taint">
+<a href="/blocks/0">prev</a>
+<a href="/blocks/2">next</a>
+</span>
+<input class="enable_on_taint"
+ type="submit"
+ name="apply"
+ value="apply"
+ disabled
+ />
+<input class="enable_on_taint"
+ type="submit"
+ name="revert"
+ value="revert"
+ disabled
+ />
+<span class="disable_on_taint">
+<a href="/edit_raw/1">switch to raw</a>
+·
+<a href="/balance?up_incl=1">balance after</a>
+·
+<a href="/ledger_structured/#block_1">in ledger</a>
+</span>
+<hr />
+
+<span class="disable_on_taint">
+<input id="btn_mirror" type="button" value="mirror">
+<input id="btn_sink" type="button" value="fill sink">
+|
+<input id="btn_replace" type="button" value="replace string">
+from
+<input id="replace_from" />
+to
+<input id="replace_to" />
+</span>
+<hr />
+<table id="booking_lines" class="alternating">
+</table>
+<div>Gap:</div>
+<textarea id="gap_lines"
+ name="raw_lines"
+ cols=100
+ rows=2
+ class="tainter"
+ >
+</textarea>
+</form>
+<datalist id="all_accounts">
+<option value="bar">bar</a>
+<option value="bar:x">bar:x</a>
+<option value="bar:x:y">bar:x:y</a>
+<option value="bar:z">bar:z</a>
+<option value="baz">baz</a>
+<option value="foo">foo</a>
+<option value="foo:x">foo:x</a>
+</datalist>
+<hr />
+<table class="alternating">
+ <tr>
+ <th>account</th>
+ <th>before</th>
+ <th>diff</th>
+ <th>after</th>
+ </tr>
+ <tr>
+ <td class="direct_target">bar</td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">0</td>
+ <td class="balance currency">€</td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">-10</td>
+ <td class="balance currency">€</td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">-10</td>
+ <td class="balance currency">€</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="direct_target">foo</td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">0</td>
+ <td class="balance currency">€</td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">10</td>
+ <td class="balance currency">€</td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">10</td>
+ <td class="balance currency">€</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<script type="module" src="/edit_structured.js/4">
+</script>
+<style>
+html {
+ scroll-padding-top: 2em;
+}
+body {
+ background: #ffffff;
+ font-family: sans-serif;
+ text-align: left;
+ margin: 0;
+ padding: 0;
+}
+#header {
+ background: #ffffff;
+ position: sticky;
+ top: 0;
+ padding-left: 0.5em;
+ padding-bottom: 0.25em;
+ border-bottom: 1px solid black;
+}
+table.alternating > tbody > tr:nth-child(odd) {
+ background-color: #dcdcdc;
+}
+table.alternating > tbody > tr:nth-child(even) {
+ background: #ffffff;
+}
+td {
+ vertical-align: top;
+}
+.critical {
+ background: #ff6666 !important;
+}
+td.amount {
+ text-align: right;
+}
+td.amount,
+td.currency {
+ font-family: monospace;
+ font-size: 1.25em;
+}
+table.alternating.critical > tbody > tr:nth-child(even) {
+ background-color: #ff8a8a;
+}
+td.balance.amount {
+ width: 10em;
+}
+td.balance.currency {
+ width: 3em;
+}
+td.direct_target {
+ font-weight: bold;
+}
+
+input.amount {
+ text-align: right;
+ font-family: monospace;
+}
+#date_input {
+ margin-right: 0.3em;
+ font-family: monospace;
+}
+</style>
+</head>
+<body>
+<div id="header">
+ <form action="" method="POST">
+ <span class="disable_on_taint">
+ ledger <a href="/ledger_structured">structured</a>
+ / <a href="/ledger_raw">raw</a>
+ · <a href="/balance">balance</a>
+ · <input type="submit"name="file_load" value="reload" />
+ </span>
+ </form>
+</div>
+<form action="/edit_structured/4" method="POST">
+<span class="disable_on_taint">
+<a href="/blocks/3">prev</a>
+<del>next</del>
+</span>
+<input class="enable_on_taint"
+ type="submit"
+ name="apply"
+ value="apply"
+ disabled
+ />
+<input class="enable_on_taint"
+ type="submit"
+ name="revert"
+ value="revert"
+ disabled
+ />
+<span class="disable_on_taint">
+<a href="/edit_raw/4">switch to raw</a>
+·
+<a href="/balance?up_incl=4">balance after</a>
+·
+<a href="/ledger_structured/#block_4">in ledger</a>
+</span>
+<hr />
+<div class="critical">
+ block-wide errors:
+ date < previous date
+ – and:
+</div>
+<hr />
+
+<span class="disable_on_taint">
+<input id="btn_mirror" type="button" value="mirror">
+<input id="btn_sink" type="button" value="fill sink">
+|
+<input id="btn_replace" type="button" value="replace string">
+from
+<input id="replace_from" />
+to
+<input id="replace_to" />
+</span>
+<hr />
+<table id="booking_lines" class="alternating">
+</table>
+<div>Gap:</div>
+<textarea id="gap_lines"
+ name="raw_lines"
+ cols=100
+ rows=2
+ class="tainter"
+ >
+</textarea>
+</form>
+<datalist id="all_accounts">
+<option value="bar">bar</a>
+<option value="bar:x">bar:x</a>
+<option value="bar:x:y">bar:x:y</a>
+<option value="bar:z">bar:z</a>
+<option value="baz">baz</a>
+<option value="foo">foo</a>
+<option value="foo:x">foo:x</a>
+</datalist>
+<hr />
+<table class="alternating critical">
+ <tr>
+ <th>account</th>
+ <th>before</th>
+ <th>diff</th>
+ <th>after</th>
+ </tr>
+ <tr>
+ <td>bar:</td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">1</td>
+ <td class="balance currency">€</td>
+ </tr>
+ <tr>
+ <td class="balance amount">0</td>
+ <td class="balance currency">USD</td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">-10</td>
+ <td class="balance currency">€</td>
+ </tr>
+ <tr>
+ <td class="balance amount">-1</td>
+ <td class="balance currency">USD</td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">-9</td>
+ <td class="balance currency">€</td>
+ </tr>
+ <tr>
+ <td class="balance amount">-1</td>
+ <td class="balance currency">USD</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>bar:x:</td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">0</td>
+ <td class="balance currency">€</td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">-10</td>
+ <td class="balance currency">€</td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">-10</td>
+ <td class="balance currency">€</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="direct_target">bar:x:y</td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">0</td>
+ <td class="balance currency">€</td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">-10</td>
+ <td class="balance currency">€</td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">-10</td>
+ <td class="balance currency">€</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="direct_target">bar:z</td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">0</td>
+ <td class="balance currency">USD</td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">-1</td>
+ <td class="balance currency">USD</td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">-1</td>
+ <td class="balance currency">USD</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>foo:</td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">10</td>
+ <td class="balance currency">€</td>
+ </tr>
+ <tr>
+ <td class="balance amount">0</td>
+ <td class="balance currency">USD</td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">10</td>
+ <td class="balance currency">€</td>
+ </tr>
+ <tr>
+ <td class="balance amount">1</td>
+ <td class="balance currency">USD</td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">20</td>
+ <td class="balance currency">€</td>
+ </tr>
+ <tr>
+ <td class="balance amount">1</td>
+ <td class="balance currency">USD</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="direct_target">foo:x</td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">0</td>
+ <td class="balance currency">€</td>
+ </tr>
+ <tr>
+ <td class="balance amount">0</td>
+ <td class="balance currency">USD</td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">10</td>
+ <td class="balance currency">€</td>
+ </tr>
+ <tr>
+ <td class="balance amount">1</td>
+ <td class="balance currency">USD</td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <table>
+ <tr>
+ <td class="balance amount">10</td>
+ <td class="balance currency">€</td>
+ </tr>
+ <tr>
+ <td class="balance amount">1</td>
+ <td class="balance currency">USD</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+</body>
+</html>