csvtool/frontend/index.html
exe.dev user ab2d281aad
Some checks failed
Build / build-linux (push) Failing after 14s
Build / build-linux-webkit2_41 (push) Failing after 14s
Build / build-macos (push) Successful in 3m21s
Add Sort Advanced command with multi-column sort
Opens a modal with a text field supporting autocomplete of column
names. Enter comma-separated column names in priority order;
rows are sorted ascending using locale-aware numeric comparison,
first by the first column, then by the second, and so on.

Autocomplete filters to matching headers, excludes already-chosen
columns, and supports keyboard navigation (arrows + enter).

Co-authored-by: Shelley <shelley@exe.dev>
2026-03-05 02:41:41 +00:00

47 lines
1.8 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<title>CSV Tool</title>
<link rel="stylesheet" href="./src/style.css"/>
</head>
<body>
<div id="app">
<div id="toolbar">
<div id="cell-ref"></div>
<input type="text" id="formula-bar" placeholder="Select a cell to edit" />
</div>
<div id="table-container" style="--wails-drop-target:drop">
<table id="csv-table">
<thead id="table-head"></thead>
<tbody id="table-body"></tbody>
</table>
</div>
<div id="status-bar">
<span id="status-text">Ready</span>
</div>
<div id="command-palette" class="hidden">
<input type="text" id="command-input" placeholder="Type a command..." />
<div id="command-list"></div>
</div>
<div id="sort-modal" class="hidden">
<div class="modal-title">Sort Advanced</div>
<div class="modal-body">
<label for="sort-columns-input">Columns (comma-separated, in priority order):</label>
<div id="sort-input-wrap">
<input type="text" id="sort-columns-input" placeholder="e.g. Name, Age, City" autocomplete="off" />
<div id="sort-autocomplete" class="hidden"></div>
</div>
</div>
<div class="modal-actions">
<button id="sort-cancel-btn" class="modal-btn">Cancel</button>
<button id="sort-confirm-btn" class="modal-btn modal-btn-primary">Sort</button>
</div>
</div>
<div id="overlay" class="hidden"></div>
</div>
<script src="./src/main.js" type="module"></script>
</body>
</html>