Skip to content
GRAPHIC WALKER
API Reference
TableWalker

TableWalker

TableWalker renders an interactive data table with column profiling, filtering, and sorting. It provides a tabular view of your data with optional statistical summaries for each column.

import { TableWalker } from '@kanaries/graphic-walker';

Props

Data Props

PropTypeRequiredDescription
dataRecord<string, any>[]Yes*Array of data records for client-side mode.
fieldsIMutField[]YesField definitions describing each column.
computationIComputationFunctionYes*Server-side computation function. Alternative to data.

*Provide either data (client-side) or computation (server-side).

Table Configuration

PropTypeDefaultDescription
pageSizenumber20Number of rows per page.
hideProfilingbooleanfalseHide column profiling (distribution bars).
hidePaginationAtOnepagebooleanfalseHide pagination controls when all data fits on one page.
displayOffsetnumber0Offset for row numbering display.
disableFilterbooleanfalseDisable column filtering.
disableSortingbooleanfalseDisable column sorting.
hideSemanticTypebooleanfalseHide semantic type indicators on columns.

Appearance Props

PropTypeDefaultDescription
appearance'media' | 'light' | 'dark''media'Dark mode setting.
vizThemeConfigIThemeKey | GWGlobalConfigundefinedTheme for visual elements.
uiThemeIUIThemeConfigundefinedCustom UI colors.

Ref Props

PropTypeDescription
tableFilterRefReact.Ref<{ getFilters: () => IVisFilter[] }>Ref to access current filter state.
storeRefReact.RefObject<VizSpecStore>Ref to internal visualization store.
onMetaChange(fid: string, meta: Partial<IMutField>) => voidCallback when field metadata changes.

i18n Props

PropTypeDescription
i18nLangstringLanguage code.
i18nResourcesRecord<string, Record<string, string>>Custom translations.

Styling

PropTypeDescription
classNamestringCSS class for root element.
styleReact.CSSPropertiesInline styles. Defaults to { width: '100%', height: '100%' }.

Examples

Basic Table

import { TableWalker } from '@kanaries/graphic-walker';
 
function DataTable({ data, fields }) {
  return (
    <div style={{ height: '600px' }}>
      <TableWalker data={data} fields={fields} />
    </div>
  );
}

Read-Only Table

<TableWalker
  data={data}
  fields={fields}
  disableFilter
  disableSorting
  hideProfiling
  pageSize={50}
/>

Accessing Filters

import { useRef } from 'react';
 
function FilteredTable({ data, fields }) {
  const filterRef = useRef(null);
 
  const handleGetFilters = () => {
    if (filterRef.current) {
      const filters = filterRef.current.getFilters();
      console.log('Active filters:', filters);
    }
  };
 
  return (
    <>
      <button onClick={handleGetFilters}>Get Filters</button>
      <TableWalker
        data={data}
        fields={fields}
        tableFilterRef={filterRef}
      />
    </>
  );
}