add new table tool
All checks were successful
Deploy Sokko G / deploy (push) Successful in 6s

This commit is contained in:
Shinuwa 2026-07-30 11:32:33 +02:00
parent 896ae23ff2
commit 025cd4bf22
19 changed files with 1336 additions and 1 deletions

View file

@ -36,6 +36,7 @@ test("toolbox storage, cards and pages are wired", async () => {
assert.match(toolboxStorage, /export function normalizeLinksData/);
assert.match(toolboxStorage, /export function normalizeCountersData/);
assert.match(toolboxStorage, /export function normalizeCalculatorData/);
assert.match(toolboxStorage, /export function normalizeTableData/);
assert.match(toolboxStorage, /export function normalizeTimerData/);
assert.match(toolboxStorage, /export function normalizeTaskPlannerData/);
assert.match(toolboxStorage, /export function normalizeImageAnnotationData/);
@ -77,6 +78,8 @@ test("toolbox module registry and modules expose expected behavior", async () =>
const moduleRegistry = await readFile("website/src/features/toolboxes/modules/index.jsx", "utf8");
const notepadModule = await readFile("website/src/features/toolboxes/modules/NotepadModule.jsx", "utf8");
const calculatorModule = await readFile("website/src/features/toolboxes/modules/CalculatorModule.jsx", "utf8");
const tableModule = await readFile("website/src/features/toolboxes/modules/TableModule.jsx", "utf8");
const tableFormulaEngine = await readFile("website/src/features/toolboxes/modules/tableFormulaEngine.js", "utf8");
const timerModule = await readFile("website/src/features/toolboxes/modules/TimerModule.jsx", "utf8");
const taskPlannerModule = await readFile("website/src/features/toolboxes/modules/TaskPlannerModule.jsx", "utf8");
const checklistModule = await readFile("website/src/features/toolboxes/modules/ChecklistModule.jsx", "utf8");
@ -98,6 +101,8 @@ test("toolbox module registry and modules expose expected behavior", async () =>
assert.match(moduleRegistry, /links:/);
assert.match(moduleRegistry, /counters:/);
assert.match(moduleRegistry, /calculator:/);
assert.match(moduleRegistry, /table:/);
assert.match(moduleRegistry, /table: \{ label: "Tableau", icon: "table", Component: TableModule, editable: false, scrollable: true \}/);
assert.match(moduleRegistry, /timer:/);
assert.match(moduleRegistry, /taskPlanner:/);
assert.match(moduleRegistry, /imageAnnotation:/);
@ -132,6 +137,32 @@ test("toolbox module registry and modules expose expected behavior", async () =>
assert.match(calculatorModule, /ResizeObserver/);
assert.match(calculatorModule, /--calculator-scroll-height/);
assert.match(calculatorModule, /CalculatorEntries/);
assert.match(tableModule, /export function TableModule/);
assert.match(tableModule, /Icon name="add-row"/);
assert.match(tableModule, /Icon name="add-column"/);
assert.match(tableModule, /Icon name="remove-row"/);
assert.match(tableModule, /Icon name="remove-column"/);
assert.match(tableModule, /insertFormulaReferenceSelection/);
assert.match(tableModule, /startFormulaSelection/);
assert.match(tableModule, /copyTsv/);
assert.match(tableModule, /notepad-toolbar table-toolbar/);
assert.match(tableModule, /notepad-toolbar-group/);
assert.match(tableModule, /notepad-toolbar-button/);
assert.match(tableModule, /selection/);
assert.match(tableModule, /draggingSelectionRef/);
assert.match(tableModule, /isMultiCellSelection/);
assert.match(tableModule, /handleCellKeyDown/);
assert.match(tableModule, /clearSelection/);
assert.match(tableModule, /event\.key === "Delete"/);
assert.match(tableModule, /ArrowUp/);
assert.match(tableModule, /ArrowDown/);
assert.match(tableModule, /ArrowLeft/);
assert.match(tableModule, /ArrowRight/);
assert.match(tableModule, /function HeaderLabelInput/);
assert.match(tableModule, /event\.target\.select/);
assert.match(tableFormulaEngine, /export function evaluateTableCell/);
assert.doesNotMatch(tableFormulaEngine, /Function\(/);
assert.doesNotMatch(tableFormulaEngine, /\beval\(/);
assert.match(timerModule, /export function TimerModule/);
assert.match(timerModule, /Tabs/);
assert.match(timerModule, /stopwatch/);