A vanilla JavaScript web component for viewing tabular data with support for multi-index structures.
- Filter and sort rows/columns
- Multi-index support for both rows and columns
- Record view for detailed row inspection
- Column visibility controls
- Keyboard navigation
- Locale-aware number/date formatting
<data-viewer
src="data/example.json"
locale="nl-NL"
height="600px">
</data-viewer>Load the component:
<script type="module" src="src/viewer.js"></script>src- JSON data source URLlocale- Format locale (default: "default")na-rep- Null value representation (default: "-")height- Component height (default: "600px")view- Display mode: "table" or "record"hide-group-borders- Hide column group bordershide-row-borders- Hide row bordershide-index-border- Hide index/data separatorhide-thead-border- Hide header borderhide-filter-row- Hide filter inputs
data-viewer {
--cursor: pointer;
--border-color: currentColor;
--axes-width: 2px;
}data-changed- Fired when data is loaded/updatedcell-click- Fired on cell interactionfield-click- Fired on record field interaction
Expected JSON structure:
{
"columns": ["col1", "col2"],
"index": ["row1", "row2"],
"values": [[val1, val2], [val3, val4]],
"dtypes": ["int", "float"],
"columnNames": ["Columns"],
"indexNames": ["Index"]
}Multi-index uses nested arrays for columns and index.
Ctrl+F- Focus first filterCtrl+H- Toggle filter rowCtrl+R- Toggle table/record viewEscape- Clear all filters- Arrow keys - Navigate between elements
Modern browsers with ES6 module support and Custom Elements v1.
None. Pure vanilla JavaScript.