Documentation

@kanunilabs/pivotgrid


@kanunilabs/pivotgrid / PivotController

Class: PivotController<TRow>

Framework-agnostic pivot grid controller.

Orchestrates field management, engine computation (via Web Worker), state persistence, export, and event emission. Consumed by React/Angular adapters.

Type Parameters

TRow

TRow

Shape of source data rows.

Constructors

Constructor

new PivotController<TRow>(options): PivotController<TRow>

Parameters

options

PivotControllerOptions<TRow>

Returns

PivotController<TRow>

Properties

getSnapshot

getSnapshot: () => PivotControllerState<TRow>

Returns

PivotControllerState<TRow>


subscribe

subscribe: (listener) => () => void

Parameters

listener

PivotStateListener

Returns

() => void

Methods

applyFilter()

applyFilter(fieldId, selectedValues, filterType): void

Parameters

fieldId

string

selectedValues

Set<any>

filterType

"include" | "exclude"

Returns

void


calculateDropIntent()

calculateDropIntent(pointerX, pointerY, itemRect, previousIntent, isLastItem, orientation): DropIntent

Parameters

pointerX

number

pointerY

number

itemRect
height

number

left

number

top

number

width

number

previousIntent

DropIntent

isLastItem

boolean

orientation

"horizontal" | "vertical"

Returns

DropIntent


cancelImport()

cancelImport(): void

Cancel an in-flight import started by importFile/importFiles/importFromUrl.

Returns

void


cancelImportPreview()

cancelImportPreview(): void

Discard a pending previewed import without applying it.

Returns

void


changeFieldArea()

changeFieldArea(fieldId, area): void

Parameters

fieldId

string

area

PivotArea

Returns

void


clearAllSorting()

clearAllSorting(): void

Returns

void


clearFilter()

clearFilter(fieldId): void

Parameters

fieldId

string

Returns

void


closeImportStatus()

closeImportStatus(): void

Returns

void


collapseAll()

collapseAll(): void

Returns

void


collapseColPaths()

collapseColPaths(paths): void

Parameters

paths

string[]

Returns

void


collapsePaths()

collapsePaths(paths): void

Parameters

paths

string[]

Returns

void


commitDrag()

commitDrag(fieldId, overId): Promise<void>

Parameters

fieldId

string

overId

string | null

Returns

Promise<void>


commitImport()

commitImport(plan, labels): void

Commit a previewed import using the reviewed column plan (include/exclude, caption + type overrides). Columns whose type changed are re-coerced.

Parameters

plan

PivotImportField & object[] | undefined

labels

PivotImportLabels

Returns

void


deleteField()

deleteField(fieldId): void

Parameters

fieldId

string

Returns

void


deleteReport()

deleteReport(id): void

Parameters

id

string

Returns

void


dispose()

dispose(): void

Returns

void


expandAll()

expandAll(): void

Returns

void


expandColPaths()

expandColPaths(paths): void

Parameters

paths

string[]

Returns

void


expandPaths()

expandPaths(paths): void

Parameters

paths

string[]

Returns

void


exportData()

exportData(format, options?): Promise<void>

Parameters

format

string

options?

ExportOptions

Returns

Promise<void>


getAreaFields()

getAreaFields(area): PivotField<TRow, PivotCellTemplate, any>[]

Parameters

area

PivotArea

Returns

PivotField<TRow, PivotCellTemplate, any>[]


getCell()

getCell(rowPath, colPath): PivotCell<any> | null

Parameters

rowPath

string[]

colPath

string[]

Returns

PivotCell<any> | null


getEngineResult()

getEngineResult(): PivotEngineResult | null

Returns

PivotEngineResult | null


getRawData()

getRawData(): TRow[]

Returns

TRow[]


getState()

getState(): PivotControllerState<TRow>

Returns

PivotControllerState<TRow>


importData()

importData(rows, labels): Promise<void>

Import an already-materialized array of rows (e.g. an API response).

Parameters

rows

any[]

labels

PivotImportLabels

Returns

Promise<void>


importFile()

importFile(file, labels): Promise<void>

Import a single uploaded file (worker-streamed for CSV/JSON/XML).

Parameters

file

File

labels

PivotImportLabels

Returns

Promise<void>


importFiles()

importFiles(files, labels): Promise<void>

Import one or more files at once, appending their rows (union fields).

Parameters

files

FileList | File[]

labels

PivotImportLabels

Returns

Promise<void>


importFromUrl()

importFromUrl(url, labels, fetchInit?): Promise<void>

Import data fetched from a URL / backend API endpoint.

Parameters

url

string

labels

PivotImportLabels

fetchInit?

RequestInit

Returns

Promise<void>


importText()

importText(text, labels): Promise<void>

Import delimited text pasted from the clipboard (auto-detects CSV/TSV).

Parameters

text

string

labels

PivotImportLabels

Returns

Promise<void>


isEnterpriseEdition()

isEnterpriseEdition(): boolean

Returns

boolean


loadReport()

loadReport(id): void

Parameters

id

string

Returns

void


moveField()

moveField(fieldId, direction): void

Parameters

fieldId

string

direction

"start" | "end" | "left" | "right"

Returns

void


on()

on<K>(eventName, handler): () => void

Type Parameters

K

K extends keyof PivotControllerEvents<TRow>

Parameters

eventName

K

handler

(payload) => void

Returns

() => void


refreshEngine()

refreshEngine(): void

Returns

void


removeField()

removeField(fieldId): void

Parameters

fieldId

string

Returns

void


resetDrag()

resetDrag(): void

Returns

void


resolveCellClick()

resolveCellClick(event): CellClickEvent<TRow>

Parameters

event

CellClickEvent<TRow>

Returns

CellClickEvent<TRow>


saveReport()

saveReport(name, isDefault): void

Parameters

name

string

isDefault

boolean

Returns

void


setColumnWidths()

setColumnWidths(widths): void

Parameters

widths

Record<string, number>

Returns

void


setDefaultReport()

setDefaultReport(id): void

Parameters

id

string

Returns

void


setDragActive()

setDragActive(activeId): void

Parameters

activeId

string | null

Returns

void


setDragIntent()

setDragIntent(targetId, targetArea, intent): void

Parameters

targetId

string | null

targetArea

string | null

intent

DropIntent

Returns

void


setEnterpriseEdition()

setEnterpriseEdition(on): void

Which edition is driving this controller. Set by the React adapter from the flag EnterprisePivotGrid passes; Community never turns it on.

The engine keeps the capability either way — the pipeline is one piece and an edition boundary that tried to cut through it would be a fork, not a gate. What the flag decides is what the controller AGREES to do.

This mirrors DataGridController.setEnterpriseEdition deliberately: the two products should not have two different answers to the same question.

Parameters

on

boolean

Returns

void


setExpandedColPaths()

setExpandedColPaths(paths): void

Parameters

paths

string[]

Returns

void


setExpandedPaths()

setExpandedPaths(paths): void

Parameters

paths

string[]

Returns

void


setFields()

setFields(fields): void

Parameters

fields

PivotField<TRow, PivotCellTemplate, any>[]

Returns

void


setLayout()

setLayout(updates): void

Parameters

updates

Partial<PivotLayoutState>

Returns

void


setSelectionStats()

setSelectionStats(selectionStats): void

Parameters

selectionStats

PivotSelectionStats | null

Returns

void


showFields()

showFields(fieldIds): void

Take several fields out of the chooser in ONE commit.

The routing rule is the field chooser's checkbox rule — a number is a measure, anything else describes a row — and it lives here so the vanilla chooser, the React chooser and the Angular one cannot drift on it.

Parameters

fieldIds

string[]

Returns

void


showImportStatus()

showImportStatus(status, title, messages): void

Show a terminal import status message (e.g. clipboard empty / permission denied).

Parameters

status

"success" | "error" | "warning"

title

string

messages

string[]

Returns

void


sortField()

sortField(fieldId, direction): void

Parameters

fieldId

string

direction

"asc" | "desc" | undefined

Returns

void


sortFieldBySummary()

sortFieldBySummary(rowFieldId, summaryFieldId, colPath): void

Parameters

rowFieldId

string

summaryFieldId

string

colPath

string

Returns

void


toggleColExpanded()

toggleColExpanded(path): void

Parameters

path

string

Returns

void


toggleExpanded()

toggleExpanded(path): void

Parameters

path

string

Returns

void


updateCurrentReport()

updateCurrentReport(): void

Returns

void


updateField()

updateField(updatedField): void

Parameters

updatedField

PivotField<TRow>

Returns

void


updateOptions()

updateOptions(options): void

Parameters

options

Partial<PivotControllerOptions<TRow>>

Returns

void