dataTable/test/diagnostic.html

55 lines
2.3 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>AutoForm Diagnostic</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="lib/state.js"></script>
<script src="lib/base.js"></script>
<script src="lib/datatable.js"></script>
<script>
const { NewState } = globalThis;
window.DiagnosticState = NewState({
schema: [],
data: {}
});
window.runDiagnostic = async () => {
const form = document.getElementById('diagForm');
if (!form.state) form.state = NewState({ schema: [] });
console.log('--- STEP 1: TEXT ---');
DiagnosticState.schema = [{ name: 't1', label: '', type: 'text' }];
DiagnosticState.data = { t1: 'Hello World' };
form.state.schema = DiagnosticState.schema;
form.data = DiagnosticState.data;
await new Promise(r => setTimeout(r, 200));
console.log('Input value:', form.querySelector('input')?.value);
console.log('--- STEP 2: TAGS ---');
DiagnosticState.schema = [{ name: 'tags', label: '', type: 'TagsInput' }];
DiagnosticState.data = { tags: ['A', 'B'] };
form.state.schema = DiagnosticState.schema;
form.data = DiagnosticState.data;
await new Promise(r => setTimeout(r, 200));
console.log('Tags count:', form.querySelectorAll('TagsInput button').length);
console.log('--- STEP 3: RADIO ---');
DiagnosticState.schema = [{ name: 'r1', label: '', type: 'radio', options: ['Op1', 'Op2'] }];
DiagnosticState.data = { r1: 'Op2' };
form.state.schema = DiagnosticState.schema;
form.data = DiagnosticState.data;
await new Promise(r => setTimeout(r, 200));
console.log('Radio Op2 checked:', form.querySelector('input[value="Op2"]')?.checked);
};
</script>
</head>
<body class="p-4">
<div style="width: 300px; border: 1px solid blue; min-height: 100px;">
<AutoForm id="diagForm" inline></AutoForm>
</div>
<button class="btn btn-danger mt-3" onclick="runDiagnostic()">START DIAGNOSTIC</button>
</body>
</html>