Documentation

Quick start (React)

Define your data, describe the fields, and render BasePivotGrid.

import { BasePivotGrid, type PivotField } from '@kanunilabs/pivotgrid-react';
import '@kanunilabs/pivotgrid-react/styles.css';

const data = [
  { region: 'EMEA', quarter: 'Q1', revenue: 1200 },
  { region: 'EMEA', quarter: 'Q2', revenue: 980 },
  { region: 'APAC', quarter: 'Q1', revenue: 1500 },
];

const fields: PivotField<(typeof data)[number]>[] = [
  { id: 'region', dataField: 'region', caption: 'Region', dataType: 'string', area: 'row' },
  { id: 'quarter', dataField: 'quarter', caption: 'Quarter', dataType: 'string', area: 'column' },
  { id: 'revenue', dataField: 'revenue', caption: 'Revenue', dataType: 'number', area: 'data', summaryType: 'sum' },
];

export function MyGrid() {
  return <BasePivotGrid gridId="demo" data={data} initialFields={fields} />;
}

Fields

Each field declares where it lives (area: 'row' | 'column' | 'data' | 'filter'), its dataType, and — for measures — a summaryType (sum, count, avg, min, max). Numbers accept an Intl format:

{
  id: 'revenue',
  dataField: 'revenue',
  caption: 'Revenue',
  dataType: 'number',
  area: 'data',
  summaryType: 'sum',
  format: { style: 'currency', currency: 'USD', maximumFractionDigits: 0 },
}

Localization

Pass a locale (one of 12) and the grid translates its chrome; ar switches to RTL.

<BasePivotGrid gridId="demo" data={data} initialFields={fields} locale="tr" />

Using Next.js? See Next.js setup for the one extra step the bundler needs.

For the complete prop and type list, see the API Reference.