Skip to content

Pivot Features

Pivot Grid Feature List

Status legend:

  • Existing βœ… - implemented now.
  • Partial β˜‘οΈ - foundation exists, but product/API/UX work is still needed. β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • Planned 🚧 - roadmap item.

1. Data Source

Local data

  • βœ… Static array data source
  • βœ… Immutable data source support
  • βœ… Mutable data source support
  • β˜‘οΈ Incremental row updates β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ β˜‘οΈ row updates β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Batch row updates β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Append rows β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Remove rows β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Replace rows
  • βœ… Data normalization for generated pivot rows/cells
  • β˜‘οΈ Data type inference β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Schema inference β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Manual schema definition through dimensions
  • βœ… Direct grid.pivot configuration
  • βœ… Legacy additionalData.pivot configuration
  • βœ… Restore original source, columns, grouping, and pinned rows on clearPivot()
  • βœ… Generated pivot row metadata
  • βœ… Generated pivot column metadata

Remote data

  • βœ… Server-side data source contract
  • β˜‘οΈ Lazy loading β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Pagination-aware loading
  • β˜‘οΈ Cursor-based loading β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Offset/limit loading
  • 🚧 Streaming data source
  • 🚧 WebSocket data source
  • βœ… REST data source through HttpPivotRemoteStore
  • β˜‘οΈ GraphQL data source through custom adapter/store β€” Why partial: foundation exists through custom adapter/store, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Custom data adapter through PivotEngineAdapter
  • βœ… Request cancellation
  • β˜‘οΈ Retry logic β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Loading state handling
  • βœ… Error state handling
  • βœ… Stale response guard
  • βœ… HTTP auth header provider
  • βœ… HTTP request lifecycle hooks
  • βœ… In-flight remote request deduplication

Hybrid data

  • β˜‘οΈ Client-side cache β€” Why partial: cache keys/state foundations exist, but full lifecycle, invalidation, and observability are not complete.
  • βœ… Server-side aggregation with client rendering
  • βœ… Client-side aggregation with remote-style engine adapter
  • β˜‘οΈ β˜‘οΈ pre-aggregation β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • 🚧 Incremental cache refresh
  • 🚧 Optimistic updates
  • 🚧 Offline mode
  • 🚧 Local-first mode

2. Field Model

Field metadata

  • βœ… Field name
  • βœ… Field label through RevoGrid column name
  • βœ… Field type through RevoGrid column/type metadata
  • βœ… Field description
  • β˜‘οΈ Field category β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Field icon β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Field visibility through hidden dimension metadata and show-hidden field filtering
  • β˜‘οΈ Field permissions through remote field registry metadata β€” Why partial: foundation exists through remote field registry metadata, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Field default format through column config/templates/parsers β€” Why partial: foundation exists through column config/templates/parsers, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Field default aggregation through value definitions and dimension aggregators
  • βœ… Field default sorting through RevoGrid column sort metadata
  • βœ… Field default filtering through RevoGrid column filter metadata
  • β˜‘οΈ Field nullable flag β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • 🚧 Field unique values provider
  • βœ… Field value formatter through cell templates/parsers
  • βœ… Field value parser through RevoGrid column parser support
  • βœ… Server-side public selector registry
  • βœ… Backend expression metadata for field registry
  • βœ… Allowed filter operations metadata
  • βœ… Allowed summary metadata
  • βœ… Allowed group interval metadata
  • βœ… Drilldown visibility metadata

Field types

  • βœ… Text field
  • βœ… Number field
  • β˜‘οΈ Integer field β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Decimal field β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Currency field β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Percentage field β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Date field
  • β˜‘οΈ Date-time field β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Time field β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Boolean field
  • β˜‘οΈ Enum field β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Multi-enum field β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Object field β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Array field β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ JSON field β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Link field β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Image field β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Custom field type through RevoGrid column types

Field categories

  • βœ… Dimension fields
  • βœ… Measure fields
  • β˜‘οΈ Calculated fields β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • βœ… Hidden fields through hidden dimension metadata
  • β˜‘οΈ System fields β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Technical fields β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ User-defined fields β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.

3. Pivot Layout Areas

Rows area

  • βœ… Add row dimension
  • βœ… Remove row dimension
  • βœ… Reorder row dimensions
  • βœ… Nested row dimensions
  • βœ… Row hierarchy
  • βœ… Row group expansion
  • βœ… Row group collapse
  • βœ… Row group sorting through grid sorting/dimension comparers
  • β˜‘οΈ Row group filtering β€” Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.
  • βœ… Row group formatting through column templates/parsers
  • βœ… Row group custom renderer through grouping label template

Columns area

  • βœ… Add column dimension
  • βœ… Remove column dimension
  • βœ… Reorder column dimensions
  • βœ… Nested column dimensions
  • βœ… Column hierarchy
  • βœ… Column group expansion
  • βœ… Column group collapse
  • βœ… Column group sorting through dimension comparers
  • β˜‘οΈ Column group filtering β€” Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.
  • βœ… Column group formatting through templates/placeholders
  • β˜‘οΈ Column group custom renderer β€” Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.

Values area

  • βœ… Add measure
  • βœ… Remove measure
  • βœ… Reorder measures
  • βœ… Multiple measures
  • βœ… Measure grouping in generated columns
  • βœ… Measure display on columns
  • βœ… Measure display on rows
  • βœ… Measure aliases through PivotConfigValue.label/name
  • βœ… Measure formatting through column config/templates/parsers
  • βœ… Measure custom renderer through RevoGrid cell templates

Filters area

  • βœ… Add report filter to configuration/panel
  • βœ… Remove report filter from configuration/panel
  • βœ… Reorder filters
  • β˜‘οΈ Global filters β€” Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.
  • βœ… Field-level filters through RevoGrid filter collection
  • βœ… Subtotal and grand-total rows are excluded from filter matching and selection-filter option lists
  • β˜‘οΈ Context filters β€” Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.
  • 🚧 Hidden filters
  • 🚧 Locked filters

4. Row Pivoting

Row grouping

  • βœ… Single-level row grouping
  • βœ… Multi-level row grouping
  • βœ… Nested row groups
  • βœ… Hierarchical row grouping
  • βœ… Tree-style row grouping through RevoGrid grouping
  • βœ… Flat row grouping
  • β˜‘οΈ Compact row grouping β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Outline row grouping β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Tabular row grouping β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.

Row group behavior

  • βœ… Expand row group
  • βœ… Collapse row group
  • βœ… Expand all row groups through collapsed: false
  • βœ… Collapse all row groups through collapsed: true
  • β˜‘οΈ Expand to level β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Collapse to level β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Preserve expansion state
  • βœ… Initial expansion state
  • 🚧 Lazy group expansion
  • 🚧 Async group expansion

Row group display

  • βœ… Group indentation through RevoGrid grouping
  • βœ… Group icons through RevoGrid grouping
  • βœ… Group labels
  • β˜‘οΈ Group counts β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Group summaries through groupAggregations
  • 🚧 Group badges
  • β˜‘οΈ Group path display β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Custom group label
  • βœ… Empty group label through groupLabels.empty
  • βœ… Null group label through groupLabels.null

5. Column Pivoting

Column grouping

  • βœ… Single-level column grouping
  • βœ… Multi-level column grouping
  • βœ… Nested column groups
  • βœ… Dynamic pivot columns
  • βœ… Generated pivot columns
  • βœ… Hierarchical column headers
  • βœ… Multi-row column headers
  • βœ… Column group headers
  • βœ… Column leaf headers

Column group behavior

  • βœ… Expand column group
  • βœ… Collapse column group
  • βœ… Expand all column groups
  • βœ… Collapse all column groups
  • β˜‘οΈ Expand columns to level β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Collapse columns to level β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Preserve column expansion state
  • 🚧 Lazy column group expansion
  • 🚧 Async column group expansion

Column group display

  • βœ… Column group labels
  • β˜‘οΈ Column group icons β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Column group summaries through subtotal/grand-total/collapsed buckets
  • β˜‘οΈ Column group counts through hidden-count metadata β€” Why partial: foundation exists through hidden-count metadata, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Column group badges
  • β˜‘οΈ Custom column group renderer β€” Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.
  • βœ… Empty column group label through groupLabels.empty
  • βœ… Null column group label through groupLabels.null
  • βœ… Flat column header mode
  • βœ… Merged value headers through mergeValueHeaders
  • βœ… Collapsed column placeholder header/cell templates
  • βœ… Collapsed column hidden leaf count metadata

6. Aggregations

Basic aggregations

  • βœ… Sum
  • βœ… Count
  • β˜‘οΈ Count non-empty β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Count empty β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Count distinct through distinct
  • βœ… Average
  • βœ… Minimum
  • βœ… Maximum
  • βœ… Median
  • βœ… Mode
  • βœ… First value
  • βœ… Last value
  • βœ… Range
  • 🚧 Product

Statistical aggregations

  • βœ… Variance
  • β˜‘οΈ Sample variance β€” Why partial: base grid behavior exists, but Pivot-specific grouped rows, generated columns, and totals need dedicated UX/accessibility coverage.
  • βœ… Population variance
  • βœ… Standard deviation through stdDev
  • β˜‘οΈ Sample standard deviation β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Population standard deviation through stdDev
  • 🚧 Percentile
  • 🚧 Quartile
  • 🚧 Interquartile range
  • 🚧 Skewness
  • 🚧 Kurtosis
  • 🚧 Correlation
  • 🚧 Covariance

Financial aggregations

  • 🚧 Weighted average
  • βœ… Running total through advanced accSum aggregator
  • βœ… Cumulative sum through advanced accSum aggregator
  • 🚧 Year-to-date
  • 🚧 Quarter-to-date
  • 🚧 Month-to-date
  • 🚧 Growth rate
  • β˜‘οΈ Percentage change through custom aggregation β€” Why partial: foundation exists through custom aggregation, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Contribution percentage through advanced %oftotal aggregator
  • β˜‘οΈ Margin percentage through custom aggregation β€” Why partial: foundation exists through custom aggregation, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Compound annual growth rate

Custom aggregations

  • βœ… Custom aggregation function
  • β˜‘οΈ Multi-field aggregation β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • β˜‘οΈ Aggregation dependencies β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • β˜‘οΈ Aggregation context β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • β˜‘οΈ Aggregation metadata β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • 🚧 Aggregation lifecycle hooks
  • 🚧 Async aggregation
  • β˜‘οΈ Server-defined aggregation β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • βœ… User-defined aggregation
  • βœ… Streaming accumulator path for common client aggregators
  • βœ… Custom collapsed-column aggregation override

7. Calculated Fields

Calculated dimensions

  • β˜‘οΈ Formula-based dimension through precomputed/custom source fields β€” Why partial: foundation exists through precomputed/custom source fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Date-derived dimension through precomputed/custom source fields β€” Why partial: foundation exists through precomputed/custom source fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Text-derived dimension through precomputed/custom source fields β€” Why partial: foundation exists through precomputed/custom source fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Bucketed dimension through remote group intervals or precomputed fields β€” Why partial: foundation exists through remote group intervals or precomputed fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Conditional dimension through precomputed/custom source fields β€” Why partial: foundation exists through precomputed/custom source fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Lookup-based dimension through precomputed/custom source fields β€” Why partial: foundation exists through precomputed/custom source fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Custom function dimension through precomputed/custom source fields β€” Why partial: foundation exists through precomputed/custom source fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.

Calculated measures

  • β˜‘οΈ Formula-based measure through custom aggregation/precomputed fields β€” Why partial: foundation exists through custom aggregation/precomputed fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Measure-to-measure calculation β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • β˜‘οΈ Ratio calculation β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • β˜‘οΈ Percentage calculation β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • β˜‘οΈ Difference calculation β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • 🚧 Difference from previous
  • 🚧 Difference from parent
  • 🚧 Difference from grand total
  • β˜‘οΈ Running calculation through accSum β€” Why partial: foundation exists through accSum, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Window calculation

Formula system

  • 🚧 Formula editor
  • 🚧 Formula validation
  • 🚧 Formula autocomplete
  • 🚧 Formula syntax highlighting
  • 🚧 Formula error display
  • 🚧 Formula dependency tracking
  • 🚧 Safe formula execution
  • 🚧 Custom formula functions
  • 🚧 Formula versioning

8. Totals and Subtotals

Grand totals

  • βœ… Row grand total
  • βœ… Column grand total
  • βœ… Both-axis grand total
  • βœ… Enable/disable grand totals
  • 🚧 Grand total position top
  • βœ… Grand total position bottom through pinned bottom rows
  • 🚧 Grand total position left
  • βœ… Grand total position right as generated total columns
  • βœ… Sticky grand total row through pinned bottom rows
  • β˜‘οΈ Sticky grand total column β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.

Subtotals

  • βœ… Row subtotals
  • βœ… Column subtotals
  • βœ… Per-level subtotals
  • βœ… Per-field subtotals through totals.disabledSubtotals
  • βœ… Enable/disable subtotals per field through totals.disabledSubtotals
  • 🚧 Subtotal position before children
  • βœ… Subtotal position after children
  • βœ… Custom subtotal label
  • β˜‘οΈ Custom subtotal aggregation β€” Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.
  • β˜‘οΈ Sticky subtotals β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Suppress single-child subtotals
  • βœ… Suppress redundant grand total when single leaf

Total formatting

  • βœ… Grand total styling
  • βœ… Subtotal styling
  • βœ… Total row custom renderer through row column templates
  • βœ… Total column custom renderer through value column templates
  • βœ… Total value formatter through column templates/parsers
  • βœ… Total label formatter through label templates/config labels
  • βœ… Total cells readonly behavior

9. Filtering

Basic filters

  • βœ… Equals
  • βœ… Not equals
  • βœ… Contains
  • βœ… Not contains
  • βœ… Starts with
  • βœ… Ends with
  • β˜‘οΈ Is empty β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Is not empty β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Is null β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Is not null β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… In list
  • βœ… Not in list

Number filters

  • βœ… Greater than
  • βœ… Greater than or equal
  • βœ… Less than
  • βœ… Less than or equal
  • βœ… Between through slider range mapping
  • β˜‘οΈ Not between β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Positive β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Negative β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Zero β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • 🚧 Top N
  • 🚧 Bottom N
  • 🚧 Above average
  • 🚧 Below average

Date filters

  • β˜‘οΈ Date equals β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Date before β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Date after β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Date between β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • 🚧 Today
  • 🚧 Yesterday
  • 🚧 Tomorrow
  • 🚧 This week
  • 🚧 Last week
  • 🚧 Next week
  • 🚧 This month
  • 🚧 Last month
  • 🚧 Next month
  • 🚧 This quarter
  • 🚧 Last quarter
  • 🚧 This year
  • 🚧 Last year
  • 🚧 Year-to-date
  • 🚧 Rolling period

Pivot-specific filters

  • β˜‘οΈ Pre-aggregation filters β€” Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.
  • β˜‘οΈ Post-aggregation filters β€” Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.
  • β˜‘οΈ Group filters β€” Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.
  • β˜‘οΈ Measure filters β€” Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.
  • 🚧 Subtotal filters
  • 🚧 Grand total filters
  • β˜‘οΈ Axis filters β€” Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.
  • β˜‘οΈ Context filters β€” Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.
  • βœ… Report filters in layout state/panel
  • 🚧 Hidden filters
  • 🚧 Locked filters

Filter UX

  • βœ… Filter popup through RevoGrid filters
  • βœ… Filter chips through exported Pivot filter chip helpers
  • β˜‘οΈ Filter sidebar β€” Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.
  • βœ… Filter search through RevoGrid filters where enabled
  • 🚧 Filter presets
  • 🚧 Filter history
  • βœ… Clear filter through RevoGrid filters
  • βœ… Clear all filters through RevoGrid filters
  • 🚧 Save filter set
  • 🚧 Restore filter set

10. Sorting

Field sorting

  • βœ… Ascending sort
  • βœ… Descending sort
  • βœ… No sort
  • βœ… Multi-field sort in local grid sorting
  • β˜‘οΈ Natural sort β€” Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.
  • β˜‘οΈ Locale-aware sort β€” Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.
  • β˜‘οΈ Case-sensitive sort β€” Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.
  • β˜‘οΈ Case-insensitive sort β€” Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.
  • βœ… Custom comparator through RevoGrid cellCompare

Pivot sorting

  • βœ… Sort row groups by label
  • β˜‘οΈ Sort row groups by measure β€” Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.
  • β˜‘οΈ Sort row groups by subtotal β€” Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.
  • β˜‘οΈ Sort row groups by grand total β€” Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.
  • βœ… Sort column groups by label
  • β˜‘οΈ Sort column groups by measure β€” Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.
  • β˜‘οΈ Sort column groups by subtotal β€” Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.
  • β˜‘οΈ Sort column groups by grand total β€” Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.
  • βœ… Sort leaf rows
  • βœ… Sort leaf columns

Advanced sorting

  • β˜‘οΈ Sort by hidden measure β€” Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.
  • β˜‘οΈ Sort by calculated field β€” Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.
  • β˜‘οΈ Sort by custom order β€” Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.
  • 🚧 Sort by manual order
  • β˜‘οΈ Sort by hierarchy order β€” Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.
  • βœ… Sort by server-side order
  • βœ… Preserve sort after refresh in remote controller state
  • βœ… Field-panel sort toggle
  • βœ… Remote sort descriptor mapping

11. Grouping Helpers

Date grouping

  • βœ… Group by year in remote contract
  • 🚧 Group by half-year
  • βœ… Group by quarter in remote contract
  • βœ… Group by month in remote contract
  • 🚧 Group by week
  • βœ… Group by day in remote contract
  • 🚧 Group by hour
  • 🚧 Group by minute
  • 🚧 Fiscal year grouping
  • 🚧 Fiscal quarter grouping
  • 🚧 Custom calendar grouping
  • βœ… Group by day of week in remote contract

Number grouping

  • βœ… Fixed interval buckets in remote contract
  • 🚧 Auto buckets
  • β˜‘οΈ Custom buckets through precomputed/custom fields β€” Why partial: foundation exists through precomputed/custom fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Range buckets in remote contract
  • β˜‘οΈ Histogram buckets β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Quantile buckets β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Negative/positive buckets β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.

Text grouping

  • β˜‘οΈ First letter grouping through precomputed/custom fields β€” Why partial: foundation exists through precomputed/custom fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Prefix grouping through precomputed/custom fields β€” Why partial: foundation exists through precomputed/custom fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Regex grouping through precomputed/custom fields β€” Why partial: foundation exists through precomputed/custom fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Custom text buckets through precomputed/custom fields β€” Why partial: foundation exists through precomputed/custom fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Case-insensitive grouping β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Locale-aware grouping β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.

Custom grouping

  • β˜‘οΈ Function-based grouping through precomputed/custom fields β€” Why partial: foundation exists through precomputed/custom fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Lookup-based grouping through precomputed/custom fields β€” Why partial: foundation exists through precomputed/custom fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Hierarchy-based grouping through row/column dimensions β€” Why partial: foundation exists through row/column dimensions, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Server-side grouping contract
  • β˜‘οΈ User-defined grouping β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.

12. Field Panel

Field list

  • βœ… Available fields list
  • βœ… Field search
  • β˜‘οΈ Field categories β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Field icons β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Field descriptions
  • β˜‘οΈ Field type badges β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Hidden fields toggle through filterPivotDimensions(..., { showHidden })
  • 🚧 Favorite fields
  • 🚧 Recently used fields

Drag and drop

  • βœ… Drag field to rows
  • βœ… Drag field to columns
  • βœ… Drag field to values
  • βœ… Drag field to filters
  • βœ… Reorder fields
  • βœ… Move field between areas
  • 🚧 Duplicate field
  • βœ… Remove field
  • β˜‘οΈ Drop validation β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Configurable field dragging
  • βœ… Configurable field removing

Field configuration

  • β˜‘οΈ Rename field through dimension config β€” Why partial: foundation exists through dimension config, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Change aggregation
  • β˜‘οΈ Change format through dimension config β€” Why partial: foundation exists through dimension config, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Change sort
  • β˜‘οΈ Change filter β€” Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.
  • β˜‘οΈ Change display mode β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Change subtotal settings β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • 🚧 Change null handling
  • β˜‘οΈ Change permissions through field registry/server policy β€” Why partial: foundation exists through field registry/server policy, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Open advanced settings
  • βœ… Configurable area visibility
  • βœ… Localized field panel text

13. Pivot Builder UX

Visual builder

  • βœ… Drag-and-drop pivot builder
  • βœ… Sidebar builder
  • 🚧 Modal builder
  • β˜‘οΈ Inline builder β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Compact builder
  • β˜‘οΈ Advanced builder β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • 🚧 Beginner mode
  • 🚧 Expert mode
  • βœ… Standalone configurator API
  • βœ… Standalone field panel API
  • βœ… External configurator mount target

Configuration UX

  • βœ… Live preview
  • β˜‘οΈ Apply/cancel mode β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Auto-apply mode
  • βœ… Reset layout
  • 🚧 Undo layout change
  • 🚧 Redo layout change
  • β˜‘οΈ Save configuration through remote store state API β€” Why partial: foundation exists through remote store state API, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Load configuration through remote store state API β€” Why partial: foundation exists through remote store state API, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Share configuration
  • βœ… Public pivot config update event
  • βœ… Preventable config update event flow

Validation UX

  • β˜‘οΈ Invalid field warning β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Missing measure warning β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • 🚧 Circular calculated field warning
  • βœ… Unsupported server aggregation warning/error
  • βœ… Server limitation warning
  • βœ… Performance warning

14. Display Modes

Pivot table layouts

  • β˜‘οΈ Compact layout β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Outline layout β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Tabular layout β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Flat layout
  • βœ… Matrix layout
  • βœ… Tree layout through grouped rows
  • β˜‘οΈ Excel-like layout β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Minimal layout β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Dense layout β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Comfortable layout β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.

Measure display

  • βœ… Measures as columns
  • βœ… Measures as rows
  • βœ… Measures nested under columns
  • βœ… Measures nested under rows
  • β˜‘οΈ Measures before dimensions through rowTree β€” Why partial: foundation exists through rowTree, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Measures after dimensions
  • βœ… Single measure mode
  • βœ… Multi-measure mode
  • βœ… Advanced rowTree with $values pseudo-field
  • βœ… Row-tree validation

Header display

  • βœ… Multi-row headers
  • β˜‘οΈ Merged headers β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Merged value headers through mergeValueHeaders
  • β˜‘οΈ Repeated labels β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Hidden repeated labels β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Compact headers through flatHeaders
  • βœ… Sticky headers through RevoGrid
  • β˜‘οΈ Rotated headers β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Wrapped headers β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.

15. Cell Rendering

Value rendering

  • βœ… Raw value renderer
  • βœ… Formatted value renderer
  • β˜‘οΈ Currency renderer β€” Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.
  • β˜‘οΈ Percentage renderer β€” Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.
  • β˜‘οΈ Date renderer β€” Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.
  • β˜‘οΈ Boolean renderer β€” Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.
  • β˜‘οΈ Badge renderer β€” Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.
  • β˜‘οΈ Icon renderer β€” Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.
  • β˜‘οΈ Link renderer β€” Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.
  • β˜‘οΈ Image renderer β€” Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.

Analytical rendering

  • β˜‘οΈ Data bars through custom renderer β€” Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Sparklines through custom renderer β€” Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Mini line charts through custom renderer β€” Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Mini bar charts through custom renderer β€” Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Mini area charts through custom renderer β€” Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Heatmap cells through custom renderer/cell properties β€” Why partial: foundation exists through custom renderer/cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Progress bars through custom renderer β€” Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Trend arrows through custom renderer β€” Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ KPI indicators through custom renderer β€” Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Status indicators through custom renderer β€” Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.

Custom rendering

  • βœ… Custom cell renderer
  • βœ… Custom header renderer
  • βœ… Custom group renderer
  • βœ… Custom subtotal renderer
  • βœ… Custom grand total renderer
  • βœ… Custom empty cell renderer
  • β˜‘οΈ Custom loading cell renderer β€” Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.
  • βœ… Framework component renderer through RevoGrid wrappers
  • βœ… Dimension template/parser propagation to generated columns
  • βœ… Total label template bypass for row-axis formatters

16. Formatting

Number formatting

  • βœ… Decimal places through Pivot value formatting presets
  • βœ… Thousands separator through Pivot value formatting presets
  • βœ… Currency symbol through Pivot value formatting presets
  • βœ… Currency code through Pivot value formatting presets
  • βœ… Percentage format through Pivot value formatting presets
  • β˜‘οΈ Scientific notation β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Compact notation β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Negative number format β€” Why partial: styling hooks exist, but there are no complete Pivot presets, tokens, and documented runtime controls yet.
  • β˜‘οΈ Zero display format β€” Why partial: styling hooks exist, but there are no complete Pivot presets, tokens, and documented runtime controls yet.
  • β˜‘οΈ Null display format β€” Why partial: styling hooks exist, but there are no complete Pivot presets, tokens, and documented runtime controls yet.

Date formatting

  • βœ… Short date through Pivot value formatting presets
  • βœ… Long date through Pivot value formatting presets
  • βœ… Date-time through Pivot value formatting presets
  • β˜‘οΈ Time only β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Relative date β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Custom date format β€” Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.
  • βœ… Locale-aware date format through Pivot value formatting presets
  • β˜‘οΈ Timezone-aware date format β€” Why partial: styling hooks exist, but there are no complete Pivot presets, tokens, and documented runtime controls yet.

Conditional formatting

  • βœ… Value-based formatting through conditional formatting presets
  • βœ… Measure-based formatting through conditional formatting presets
  • β˜‘οΈ Field-based formatting through cell properties/templates β€” Why partial: foundation exists through cell properties/templates, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Row-based formatting through cell properties/templates β€” Why partial: foundation exists through cell properties/templates, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Column-based formatting through cell properties/templates β€” Why partial: foundation exists through cell properties/templates, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Group-level formatting through group label templates β€” Why partial: foundation exists through group label templates, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Subtotal formatting
  • βœ… Grand total formatting
  • β˜‘οΈ Formula-based formatting β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.

17. Conditional Formatting Rules

Rule types

  • βœ… Greater than through conditional formatting presets
  • βœ… Less than through conditional formatting presets
  • βœ… Between through conditional formatting presets
  • βœ… Equal to through conditional formatting presets
  • βœ… Text contains through conditional formatting presets
  • β˜‘οΈ Date occurs through custom cell properties β€” Why partial: foundation exists through custom cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Duplicate values through custom cell properties β€” Why partial: foundation exists through custom cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Unique values through custom cell properties β€” Why partial: foundation exists through custom cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Top N through custom cell properties β€” Why partial: foundation exists through custom cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Bottom N through custom cell properties β€” Why partial: foundation exists through custom cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Above average through custom cell properties β€” Why partial: foundation exists through custom cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Below average through custom cell properties β€” Why partial: foundation exists through custom cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Formula rule through custom cell properties β€” Why partial: foundation exists through custom cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Custom function rule through custom cell properties β€” Why partial: foundation exists through custom cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.

Visual styles

  • βœ… Background color through cell properties
  • βœ… Text color through cell properties
  • βœ… Font weight through cell properties
  • βœ… Border through cell properties
  • β˜‘οΈ Icon set through custom renderer β€” Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Data bar through custom renderer β€” Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Color scale through cell properties β€” Why partial: foundation exists through cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Heatmap through cell properties β€” Why partial: foundation exists through cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Badge through custom renderer β€” Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Tooltip through custom renderer/properties β€” Why partial: foundation exists through custom renderer/properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Cell flash

Rule management

  • 🚧 Add rule
  • 🚧 Edit rule
  • 🚧 Delete rule
  • 🚧 Reorder rules
  • 🚧 Enable/disable rule
  • 🚧 Stop if true
  • 🚧 Apply to selected measure
  • 🚧 Apply to selected field
  • 🚧 Apply to entire pivot

18. Drilldown

Cell drilldown

  • βœ… Drill into aggregated cell through PivotDrilldownController
  • βœ… Show source rows through PivotDrilldownController
  • βœ… Show filtered raw records through PivotDrilldownController
  • 🚧 Show drilldown panel
  • 🚧 Show drilldown modal
  • 🚧 Show drilldown table
  • 🚧 Export drilldown rows
  • 🚧 Copy drilldown rows

Drill path

  • βœ… Drill down one level through row/column expand-collapse
  • βœ… Drill up one level through row/column expand-collapse
  • β˜‘οΈ Drill to leaf records through remote drilldown contract β€” Why partial: foundation exists through remote drilldown contract, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Drill across dimensions β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Drill through to source system through custom remote store β€” Why partial: foundation exists through to source system through custom remote store, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Breadcrumb navigation β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Preserve drill state for rows and columns

Drilldown permissions

  • β˜‘οΈ Disable drilldown β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Field-level drilldown permission through field registry β€” Why partial: foundation exists through field registry, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Measure-level drilldown permission β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • βœ… Mask sensitive fields through drilldown visible whitelist
  • βœ… Server-side drilldown authorization boundary

19. Expand / Collapse

Row expansion

  • βœ… Expand row group
  • βœ… Collapse row group
  • βœ… Expand all rows
  • βœ… Collapse all rows
  • βœ… Expand selected group
  • βœ… Collapse selected group
  • β˜‘οΈ Expand to row level β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Collapse to row level β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • 🚧 Lazy expand
  • 🚧 Async expand

Column expansion

  • βœ… Expand column group
  • βœ… Collapse column group
  • βœ… Expand all columns
  • βœ… Collapse all columns
  • βœ… Expand selected column group
  • βœ… Collapse selected column group
  • β˜‘οΈ Expand to column level β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Collapse to column level β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • 🚧 Lazy column expand
  • 🚧 Async column expand

Expansion state

  • βœ… Save expansion state
  • βœ… Restore expansion state
  • βœ… Serialize expansion state through pivot config
  • βœ… Path-based expansion
  • β˜‘οΈ Key-based expansion β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Server-side expansion state β€” Why partial: remote/server contracts or hooks exist, but the default backend, UI flow, and end-to-end behavior are not fully shipped.
  • βœ… Initial expanded paths
  • βœ… Initial collapsed paths
  • βœ… Persisted column collapsed state map

20. Selection

Cell selection

  • β˜‘οΈ Single cell selection through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Multiple cell selection through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Range selection through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Non-contiguous selection through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Select visible cells only β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Select raw values β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Select formatted values β€” Why partial: styling hooks exist, but there are no complete Pivot presets, tokens, and documented runtime controls yet.

Row selection

  • β˜‘οΈ Select row group through RevoGrid grouping/selection β€” Why partial: foundation exists through RevoGrid grouping/selection, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Select leaf row through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Select subtotal row through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Select grand total row through RevoGrid pinned rows β€” Why partial: foundation exists through RevoGrid pinned rows, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Select all visible rows β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • 🚧 Select all source rows behind group
  • β˜‘οΈ Checkbox selection through RevoGrid/custom columns β€” Why partial: foundation exists through RevoGrid/custom columns, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Keyboard row selection through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.

Column selection

  • β˜‘οΈ Select pivot column through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Select column group through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Select measure column through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Select subtotal column through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Select grand total column through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Select all visible columns β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Keyboard column selection through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.

21. Copy / Paste

Copy

  • β˜‘οΈ Copy selected cells through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Copy with row headers through Pivot TSV copy helper
  • βœ… Copy with column headers through Pivot TSV copy helper
  • βœ… Copy with full pivot headers through Pivot TSV copy helper
  • β˜‘οΈ Copy raw values β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • β˜‘οΈ Copy formatted values β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • βœ… Copy as TSV through Pivot TSV copy helper
  • β˜‘οΈ Copy as CSV β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • β˜‘οΈ Copy as HTML table β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • 🚧 Copy selected drilldown rows

Paste

  • β˜‘οΈ Paste into source data through RevoGrid editing β€” Why partial: foundation exists through RevoGrid editing, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Paste into editable cells through RevoGrid editing β€” Why partial: foundation exists through RevoGrid editing, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Paste range through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Paste with validation through RevoGrid/custom validation β€” Why partial: foundation exists through RevoGrid/custom validation, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Paste with parsing through RevoGrid parsers β€” Why partial: foundation exists through RevoGrid parsers, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Paste with type conversion through RevoGrid parsers β€” Why partial: foundation exists through RevoGrid parsers, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Paste conflict handling
  • 🚧 Paste undo support

22. Editing

Source editing

  • β˜‘οΈ Edit source cell through RevoGrid editing β€” Why partial: foundation exists through RevoGrid editing, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Add source row β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Delete source row β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Update source row β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Batch edit rows β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Validate source edit β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Recalculate pivot after edit β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • 🚧 Highlight affected pivot cells

Pivot editing

  • 🚧 Edit aggregated value
  • 🚧 Write-back to source records
  • 🚧 Distribute value change
  • 🚧 Equal distribution
  • 🚧 Proportional distribution
  • 🚧 Custom distribution strategy
  • β˜‘οΈ Lock non-editable measures through readonly generated columns/total cells β€” Why partial: foundation exists through readonly generated columns/total cells, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Edit validation
  • 🚧 Edit audit log

Editing UX

  • β˜‘οΈ Inline editor through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Popup editor through RevoGrid/custom editor β€” Why partial: foundation exists through RevoGrid/custom editor, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Formula editor
  • β˜‘οΈ Dropdown editor through RevoGrid/custom editor β€” Why partial: foundation exists through RevoGrid/custom editor, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Date editor through RevoGrid/custom editor β€” Why partial: foundation exists through RevoGrid/custom editor, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Number editor through RevoGrid/custom editor β€” Why partial: foundation exists through RevoGrid/custom editor, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Currency editor through RevoGrid/custom editor β€” Why partial: foundation exists through RevoGrid/custom editor, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Custom editor through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Commit/cancel edit through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Undo/redo edit

23. Undo / Redo

Layout undo

  • 🚧 Undo field move
  • 🚧 Undo field remove
  • 🚧 Undo field add
  • 🚧 Undo sort change
  • 🚧 Undo filter change
  • 🚧 Undo format change
  • 🚧 Undo layout reset

Data undo

  • 🚧 Undo cell edit
  • 🚧 Undo row insert
  • 🚧 Undo row delete
  • 🚧 Undo paste
  • 🚧 Undo batch update
  • 🚧 Redo all actions

History

  • 🚧 Action history
  • 🚧 Transaction grouping
  • 🚧 Named transactions
  • 🚧 Clear history
  • 🚧 History size limit
  • 🚧 Server-side history integration

24. Export

CSV export

  • βœ… Export visible pivot through Pivot CSV export helper
  • β˜‘οΈ Export full pivot β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • β˜‘οΈ Export expanded rows only β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • β˜‘οΈ Export all rows β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • β˜‘οΈ Export selected range β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • 🚧 Export drilldown rows
  • β˜‘οΈ Export raw values β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • β˜‘οΈ Export formatted values β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.

Excel export

  • β˜‘οΈ Export to XLSX through external/custom integration β€” Why partial: foundation exists through external/custom integration, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Export merged headers β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • β˜‘οΈ Export grouped headers β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • β˜‘οΈ Export subtotals β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • β˜‘οΈ Export grand totals β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • β˜‘οΈ Export formatting β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • β˜‘οΈ Export conditional formatting β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • β˜‘οΈ Export frozen panes β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • β˜‘οΈ Export column widths β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • β˜‘οΈ Export multiple sheets β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • 🚧 Export drilldown sheet

Other export

  • βœ… Export to JSON through Pivot state JSON helper
  • βœ… Export pivot state through Pivot state JSON helper
  • 🚧 Export PDF
  • 🚧 Export image
  • β˜‘οΈ Export clipboard through grid copy support β€” Why partial: foundation exists through grid copy support, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Server-side export through request contract extension β€” Why partial: foundation exists through request contract extension, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Background export job

25. Import

File import

  • β˜‘οΈ Import CSV through application/source setup β€” Why partial: foundation exists through application/source setup, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Import TSV through application/source setup β€” Why partial: foundation exists through application/source setup, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Import Excel through application/source setup β€” Why partial: foundation exists through application/source setup, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Import JSON through application/source setup β€” Why partial: foundation exists through application/source setup, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Import clipboard data through grid paste/source setup β€” Why partial: foundation exists through grid paste/source setup, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Import from URL through application/source setup β€” Why partial: foundation exists through application/source setup, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Import from database adapter through remote store/adapter β€” Why partial: foundation exists through remote store/adapter, but there is no complete Pivot-specific product workflow, public API, and coverage yet.

Import processing

  • β˜‘οΈ Header detection β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Type inference β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Schema mapping β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Field mapping β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Data validation β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Error reporting β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • 🚧 Preview before import
  • β˜‘οΈ Import transformation β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • 🚧 Import deduplication

Pivot import

  • β˜‘οΈ Import pivot state through serializable config β€” Why partial: foundation exists through serializable config, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Import saved view through remote state API β€” Why partial: foundation exists through remote state API, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Import calculated fields through precomputed/custom fields β€” Why partial: foundation exists through precomputed/custom fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Import formatting rules
  • β˜‘οΈ Import filters through config/grid filter state β€” Why partial: foundation exists through config/grid filter state, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Import sort rules through grid sort state β€” Why partial: foundation exists through grid sort state, but there is no complete Pivot-specific product workflow, public API, and coverage yet.

26. Charts

Pivot charts

  • 🚧 Bar chart
  • 🚧 Stacked bar chart
  • 🚧 Line chart
  • 🚧 Area chart
  • 🚧 Pie chart
  • 🚧 Donut chart
  • 🚧 Scatter chart
  • 🚧 Bubble chart
  • 🚧 Heatmap
  • 🚧 Treemap
  • 🚧 Waterfall chart
  • 🚧 Combo chart

Chart integration

  • β˜‘οΈ Generate chart from pivot through external adapter/source data β€” Why partial: foundation exists through external adapter/source data, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Chart selected range through RevoGrid selection plus external charting β€” Why partial: foundation exists through RevoGrid selection plus external charting, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Chart selected row group β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Chart selected column group β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Sync chart with filters β€” Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.
  • β˜‘οΈ Sync chart with pivot state β€” Why partial: state primitives exist, but complete persistence, management UI, and migration behavior are incomplete.
  • 🚧 Drill from chart to pivot
  • 🚧 Export chart
  • 🚧 Custom chart adapter

27. Performance

Rendering performance

  • βœ… Row virtualization through RevoGrid
  • βœ… Column virtualization through RevoGrid
  • βœ… Header virtualization through RevoGrid
  • β˜‘οΈ Group row virtualization through RevoGrid grouping β€” Why partial: foundation exists through RevoGrid grouping, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Dynamic column virtualization through RevoGrid
  • βœ… Frozen area virtualization through RevoGrid
  • βœ… Efficient DOM recycling through RevoGrid
  • β˜‘οΈ Incremental rendering through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Lazy cell rendering through RevoGrid/custom templates β€” Why partial: foundation exists through RevoGrid/custom templates, but there is no complete Pivot-specific product workflow, public API, and coverage yet.

Aggregation performance

  • βœ… Incremental aggregation for common client aggregators while scanning rows
  • β˜‘οΈ Memoized aggregation tree β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • β˜‘οΈ β˜‘οΈ recalculation β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • β˜‘οΈ Dirty path recalculation β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • β˜‘οΈ Batch recalculation β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • 🚧 Web Worker aggregation
  • 🚧 WASM aggregation support
  • β˜‘οΈ Async aggregation through remote/server mode β€” Why partial: foundation exists through remote/server mode, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Streaming aggregation β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.

Large data support

  • β˜‘οΈ Hundreds of thousands of rows β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Millions of rows with server-side mode contract
  • βœ… High column count support through column virtualization/server column viewport
  • β˜‘οΈ High cardinality field support β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Sparse matrix support through remote cell matrix materialization β€” Why partial: foundation exists through remote cell matrix materialization, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Memory usage optimization β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Backpressure handling β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Performance diagnostics through remote diagnostics model formatter

28. Server-Side Pivot

Server request model

  • βœ… Row group descriptors
  • βœ… Column group descriptors
  • βœ… Value descriptors
  • βœ… Filter descriptors
  • βœ… Sort descriptors
  • βœ… Expanded row paths
  • βœ… Expanded column paths
  • βœ… Row viewport
  • βœ… Column viewport
  • βœ… Requested summaries
  • βœ… Drilldown request
  • β˜‘οΈ Export request β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • βœ… UI state hints
  • βœ… Request id correlation
  • βœ… View id and fields version

Server response model

  • βœ… Pivot rows
  • βœ… Pivot columns through axis paths/materialization
  • βœ… Cell matrix through __rowPath and __columnPath
  • β˜‘οΈ Sparse cell matrix β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Row group count
  • βœ… Column group count
  • βœ… Total summaries
  • βœ… Group summaries
  • βœ… Metadata
  • βœ… Warnings
  • β˜‘οΈ Errors through typed PivotError β€” Why partial: foundation exists through typed PivotError, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Pinned summary rows

Server features

  • βœ… Server-side grouping contract
  • βœ… Server-side aggregation contract
  • βœ… Server-side filtering contract
  • βœ… Server-side sorting contract
  • βœ… Server-side pagination
  • β˜‘οΈ Server-side expansion β€” Why partial: remote/server contracts or hooks exist, but the default backend, UI flow, and end-to-end behavior are not fully shipped.
  • βœ… Server-side drilldown contract
  • β˜‘οΈ Server-side export β€” Why partial: remote/server contracts or hooks exist, but the default backend, UI flow, and end-to-end behavior are not fully shipped.
  • βœ… Server-side cache key contract
  • βœ… Query cancellation
  • βœ… SQL-oriented query planner
  • βœ… Average summary decomposition into sum/count plan
  • βœ… Server response normalization helpers

29. Caching

Client cache

  • β˜‘οΈ Raw data cache through captured original source β€” Why partial: foundation exists through captured original source, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Aggregation cache β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • β˜‘οΈ Group tree cache β€” Why partial: cache keys/state foundations exist, but full lifecycle, invalidation, and observability are not complete.
  • β˜‘οΈ Column tree cache β€” Why partial: cache keys/state foundations exist, but full lifecycle, invalidation, and observability are not complete.
  • β˜‘οΈ Cell value cache β€” Why partial: cache keys/state foundations exist, but full lifecycle, invalidation, and observability are not complete.
  • β˜‘οΈ Format cache β€” Why partial: cache keys/state foundations exist, but full lifecycle, invalidation, and observability are not complete.
  • β˜‘οΈ Drilldown cache through remote store dedup keys β€” Why partial: foundation exists through remote store dedup keys, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Expansion cache through pivot config state
  • βœ… View state cache through remote state API contract
  • βœ… In-flight load deduplication

Server cache

  • βœ… Query result cache key generation
  • β˜‘οΈ Aggregation cache β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • β˜‘οΈ Dimension member cache β€” Why partial: cache keys/state foundations exist, but full lifecycle, invalidation, and observability are not complete.
  • β˜‘οΈ Filter value cache β€” Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.
  • β˜‘οΈ Export cache β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • β˜‘οΈ Drilldown cache key generation β€” Why partial: cache keys/state foundations exist, but full lifecycle, invalidation, and observability are not complete.
  • β˜‘οΈ Cache invalidation request contract β€” Why partial: remote/server contracts or hooks exist, but the default backend, UI flow, and end-to-end behavior are not fully shipped.
  • β˜‘οΈ Cache TTL β€” Why partial: cache keys/state foundations exist, but full lifecycle, invalidation, and observability are not complete.
  • βœ… Cache key generation
  • βœ… Tenant/view/fields/dataset watermark cache scope
  • βœ… Cache status response metadata

30. Realtime Updates

Data updates

  • β˜‘οΈ Insert row through source replacement/reapply β€” Why partial: foundation exists through source replacement/reapply, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Update row through source replacement/reapply β€” Why partial: foundation exists through source replacement/reapply, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Delete row through source replacement/reapply β€” Why partial: foundation exists through source replacement/reapply, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Batch updates through source replacement/reapply β€” Why partial: foundation exists through source replacement/reapply, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Streaming updates
  • 🚧 WebSocket updates
  • 🚧 Event-source updates
  • β˜‘οΈ Polling updates through application-controlled source/remote reload β€” Why partial: foundation exists through application-controlled source/remote reload, but there is no complete Pivot-specific product workflow, public API, and coverage yet.

Pivot recalculation

  • β˜‘οΈ Recalculate affected groups β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Recalculate affected measures β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • β˜‘οΈ Recalculate affected totals β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Preserve expansion state
  • β˜‘οΈ Preserve selection β€” Why partial: base grid behavior exists, but Pivot-specific grouped rows, generated columns, and totals need dedicated UX/accessibility coverage.
  • β˜‘οΈ Preserve scroll position β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Preserve editing state β€” Why partial: state primitives exist, but complete persistence, management UI, and migration behavior are incomplete.
  • 🚧 Throttle updates
  • 🚧 Debounce updates
  • βœ… Reapply pivot after external source changes
  • βœ… Reapply pivot after external column changes

Visual feedback

  • 🚧 Cell flash
  • 🚧 Row flash
  • 🚧 Updated group indicator
  • 🚧 Changed total indicator
  • 🚧 Stale data indicator
  • β˜‘οΈ Last updated timestamp through remote metadata β€” Why partial: foundation exists through remote metadata, but there is no complete Pivot-specific product workflow, public API, and coverage yet.

31. State Management

Pivot state

  • βœ… Rows state
  • βœ… Columns state
  • βœ… Values state
  • βœ… Filters state
  • βœ… Sorting state
  • β˜‘οΈ Formatting state through dimension config β€” Why partial: foundation exists through dimension config, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Expansion state
  • β˜‘οΈ Selection state through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Scroll state through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Field panel state
  • βœ… Column collapse state
  • βœ… Engine/view/field-version state

State operations

  • βœ… Get state through active config/grid properties
  • βœ… Set state through grid.pivot
  • βœ… Reset state through clearPivot()/empty config
  • β˜‘οΈ Merge state through config update event patches β€” Why partial: foundation exists through config update event patches, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Serialize state through pivot config
  • βœ… Deserialize state through pivot config
  • β˜‘οΈ Version state through remote state response version β€” Why partial: foundation exists through remote state response version, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Migrate state β€” Why partial: state primitives exist, but complete persistence, management UI, and migration behavior are incomplete.
  • β˜‘οΈ Validate state β€” Why partial: state primitives exist, but complete persistence, management UI, and migration behavior are incomplete.

Saved views

  • βœ… Save view through typed remote store helper
  • βœ… Load view through typed remote store helper
  • βœ… Rename view through saved-view collection helper
  • βœ… Delete view through saved-view delete intent helper
  • βœ… Duplicate view through saved-view collection helper
  • 🚧 Share view
  • 🚧 Favorite view
  • 🚧 Default view
  • β˜‘οΈ User view through remote state user id β€” Why partial: foundation exists through remote state user id, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Team view
  • 🚧 Public view

32. API

Pivot API

  • βœ… setRows through grid.pivot.rows update
  • βœ… getRows through grid.pivot.rows/active config
  • βœ… setColumns through grid.pivot.columns update
  • βœ… getColumns through grid.pivot.columns/active config
  • βœ… setValues through grid.pivot.values update
  • βœ… getValues through grid.pivot.values/active config
  • βœ… setFilters through grid.pivot.filters/remote filters
  • βœ… getFilters through grid.pivot.filters/remote filters
  • βœ… setSorting through RevoGrid sorting plugin/remote controller
  • βœ… getSorting through RevoGrid sorting plugin/remote controller
  • βœ… refresh through applyPivot()/config reassignment
  • βœ… reset through clearPivot()
  • βœ… createPivotData
  • βœ… createPivotDataModel
  • βœ… pivotColumns
  • βœ… pivotColumnsFromPaths

Expansion API

  • βœ… expandPath through expanded state updates
  • βœ… collapsePath through expanded state updates
  • βœ… expandAll through collapsed: false
  • βœ… collapseAll through collapsed: true
  • β˜‘οΈ expandToLevel β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ collapseToLevel β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… getExpandedPaths through config state
  • βœ… setExpandedPaths through config state
  • βœ… Column collapse state through collapsedColumns

Data API

  • βœ… setData through grid source replacement
  • βœ… getData through grid source/original source
  • β˜‘οΈ updateRows β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ appendRows β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ removeRows β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… refreshData through source change/reapply
  • βœ… getSourceRows through captured original source
  • β˜‘οΈ getDrilldownRows through remote drilldown contract β€” Why partial: foundation exists through remote drilldown contract, but there is no complete Pivot-specific product workflow, public API, and coverage yet.

Export API

  • βœ… exportCsv through Pivot CSV export helper
  • β˜‘οΈ exportExcel β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • βœ… exportJson through Pivot state JSON helper
  • βœ… exportState through serializable pivot config
  • β˜‘οΈ exportDrilldown β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.

Remote API

  • βœ… PivotEngineAdapter.load
  • βœ… PivotEngineAdapter.drilldown
  • βœ… PivotRemoteStore.load
  • βœ… PivotRemoteStore.drilldown
  • βœ… PivotRemoteStore.saveState
  • βœ… PivotRemoteStore.loadState
  • βœ… HttpPivotRemoteStore
  • βœ… SqlPivotQueryPlanner
  • βœ… createFieldRegistry
  • βœ… createPivotCacheKey

33. Events

Layout events

  • βœ… Pivot changed through PIVOT_CFG_UPDATE_EVENT
  • βœ… Field added through config update event
  • βœ… Field removed through config update event
  • βœ… Field moved through config update event
  • βœ… Field reordered through config update event
  • βœ… Rows changed through config update event
  • βœ… Columns changed through config update event
  • βœ… Values changed through config update event
  • βœ… Filters changed through config update event
  • βœ… Sorting changed through RevoGrid sorting events/remote sort handling

Interaction events

  • βœ… Cell click through RevoGrid
  • βœ… Cell double click through RevoGrid
  • βœ… Cell context menu through RevoGrid
  • βœ… Header click through RevoGrid
  • βœ… Group click through RevoGrid grouping
  • βœ… Expand through RevoGrid group/column events
  • βœ… Collapse through RevoGrid group/column events
  • βœ… Selection change through RevoGrid
  • 🚧 Drilldown open
  • 🚧 Drilldown close
  • βœ… Column collapse event integration
  • βœ… Column expand event integration

Data events

  • βœ… Data loading through loader event in remote mode
  • βœ… Data loaded through remote hooks/grid events
  • βœ… Data error through remote hooks and Pivot UI diagnostics
  • βœ… Data refreshed through source set/reapply
  • β˜‘οΈ Aggregation started β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • β˜‘οΈ Aggregation finished β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • βœ… Server request started through remote store hooks
  • βœ… Server request finished through remote store hooks
  • βœ… Server request failed through remote store hooks
  • βœ… Pagination change event integration
  • βœ… Filter apply event interception in server mode
  • βœ… Sorting apply event interception in server mode

Editing events

  • β˜‘οΈ Edit start through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Edit validate through RevoGrid/custom validation β€” Why partial: foundation exists through RevoGrid/custom validation, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Edit commit through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Edit cancel through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Edit error through RevoGrid/custom validation β€” Why partial: foundation exists through RevoGrid/custom validation, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Paste start through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Paste commit through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Undo
  • 🚧 Redo

34. Accessibility

Keyboard support

  • β˜‘οΈ Keyboard navigation through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Keyboard selection through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Keyboard expand/collapse through RevoGrid grouping/headers β€” Why partial: foundation exists through RevoGrid grouping/headers, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Keyboard field panel control β€” Why partial: base grid behavior exists, but Pivot-specific grouped rows, generated columns, and totals need dedicated UX/accessibility coverage.
  • β˜‘οΈ Keyboard sorting through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Keyboard filtering through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Keyboard editing through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Keyboard shortcuts β€” Why partial: base grid behavior exists, but Pivot-specific grouped rows, generated columns, and totals need dedicated UX/accessibility coverage.

Screen reader support

  • β˜‘οΈ ARIA grid roles through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ ARIA row groups through RevoGrid grouping β€” Why partial: foundation exists through RevoGrid grouping, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ ARIA column groups through RevoGrid headers β€” Why partial: foundation exists through RevoGrid headers, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ ARIA expanded state β€” Why partial: base grid behavior exists, but Pivot-specific grouped rows, generated columns, and totals need dedicated UX/accessibility coverage.
  • β˜‘οΈ ARIA selected state β€” Why partial: base grid behavior exists, but Pivot-specific grouped rows, generated columns, and totals need dedicated UX/accessibility coverage.
  • β˜‘οΈ ARIA sort state β€” Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.
  • β˜‘οΈ Accessible labels β€” Why partial: base grid behavior exists, but Pivot-specific grouped rows, generated columns, and totals need dedicated UX/accessibility coverage.
  • β˜‘οΈ Accessible descriptions β€” Why partial: base grid behavior exists, but Pivot-specific grouped rows, generated columns, and totals need dedicated UX/accessibility coverage.

Visual accessibility

  • β˜‘οΈ High contrast mode through theming β€” Why partial: foundation exists through theming, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Reduced motion mode through CSS/application theme β€” Why partial: foundation exists through CSS/application theme, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Focus outlines through RevoGrid/browser controls
  • β˜‘οΈ Large touch targets β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Color-blind-safe formatting β€” Why partial: styling hooks exist, but there are no complete Pivot presets, tokens, and documented runtime controls yet.
  • β˜‘οΈ Text alternatives for icons β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.

35. Permissions

Field permissions

  • β˜‘οΈ Hide field through dimensions/field registry β€” Why partial: foundation exists through dimensions/field registry, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Disable field through dimensions/field registry β€” Why partial: foundation exists through dimensions/field registry, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Read-only field through RevoGrid readonly columns β€” Why partial: foundation exists through RevoGrid readonly columns, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ No-export field β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • βœ… No-drilldown field through registry drilldownVisible
  • β˜‘οΈ Masked field through backend/custom renderer β€” Why partial: foundation exists through backend/custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Aggregated-only field through remote field registry policy β€” Why partial: foundation exists through remote field registry policy, but there is no complete Pivot-specific product workflow, public API, and coverage yet.

Action permissions

  • β˜‘οΈ Disable export β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • β˜‘οΈ Disable drilldown β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Disable editing through readonly columns β€” Why partial: foundation exists through readonly columns, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Disable field panel through config
  • 🚧 Disable calculated fields
  • 🚧 Disable custom formulas
  • β˜‘οΈ Disable saved views through store/policy β€” Why partial: foundation exists through store/policy, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Disable sharing

Data permissions

  • β˜‘οΈ Row-level security through server-side backend β€” Why partial: foundation exists through server-side backend, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Column-level security through field registry/backend β€” Why partial: foundation exists through field registry/backend, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Measure-level security through allowed summaries/backend β€” Why partial: foundation exists through allowed summaries/backend, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Drilldown-level security through field registry/backend authorization boundary
  • βœ… Server-side permission validation helpers
  • β˜‘οΈ Permission-aware totals β€” Why partial: backend/custom hooks can enforce it, but Pivot does not yet ship complete policy configuration, UI, and audit flows.
  • β˜‘οΈ Permission-aware filters β€” Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.

36. Security

Client security

  • 🚧 Safe formula execution
  • βœ… No unsafe eval in pivot implementation
  • β˜‘οΈ Sanitized renderers β€” Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.
  • β˜‘οΈ XSS-safe cell content through RevoGrid/default rendering β€” Why partial: foundation exists through RevoGrid/default rendering, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ XSS-safe tooltips β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ XSS-safe exports β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • β˜‘οΈ Safe custom HTML mode β€” Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.
  • β˜‘οΈ CSP compatibility β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.

Server security

  • βœ… Validate pivot requests through field registry/planner helpers
  • βœ… Validate filter expressions through allowed operations metadata
  • βœ… Validate sort expressions through selector registry
  • β˜‘οΈ Validate calculated fields β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • β˜‘οΈ Rate limit expensive queries β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Query timeout/cancellation through AbortSignal contract
  • βœ… Request size limit through PivotLimits contract
  • βœ… Export size limit through PivotLimits contract
  • β˜‘οΈ Audit logging through remote hooks/backend β€” Why partial: foundation exists through remote hooks/backend, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Typed pivot errors

37. Observability

Performance metrics

  • β˜‘οΈ Render time through external instrumentation β€” Why partial: foundation exists through external instrumentation, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Aggregation time through remote metadata β€” Why partial: foundation exists through remote metadata, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Filter time through remote metadata β€” Why partial: foundation exists through remote metadata, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Sort time through remote metadata β€” Why partial: foundation exists through remote metadata, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Export time β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • βœ… Server request time through remote metadata/hooks
  • βœ… Cache hit rate through cache status metadata/hooks
  • β˜‘οΈ Memory usage β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Visible row count through response row-axis metadata
  • βœ… Visible column count through response column-axis metadata
  • βœ… Generated timestamp metadata
  • βœ… Request correlation id

Debugging

  • β˜‘οΈ Debug mode β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Query inspector through planner/request objects β€” Why partial: foundation exists through planner/request objects, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Pivot state inspector through serializable config
  • βœ… Field metadata inspector through field registry
  • β˜‘οΈ Aggregation tree inspector β€” Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
  • β˜‘οΈ Render profiler β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Slow operation warnings through response warnings metadata
  • βœ… Error details through PivotError metadata
  • βœ… Developer warnings through console errors/typed errors
  • βœ… Remote warnings and errors in Pivot UI diagnostics

38. Theming

Theme support

  • βœ… Light theme through RevoGrid theme/CSS
  • βœ… Dark theme through RevoGrid theme/CSS
  • β˜‘οΈ High contrast theme β€” Why partial: styling hooks exist, but there are no complete Pivot presets, tokens, and documented runtime controls yet.
  • β˜‘οΈ Compact theme β€” Why partial: styling hooks exist, but there are no complete Pivot presets, tokens, and documented runtime controls yet.
  • βœ… Custom theme through CSS/classes
  • βœ… CSS variables through RevoGrid/plugin styles
  • β˜‘οΈ Theme tokens β€” Why partial: styling hooks exist, but there are no complete Pivot presets, tokens, and documented runtime controls yet.
  • βœ… Runtime theme switching
  • βœ… Theme propagation to configurator and field panel

Style customization

  • βœ… Cell styles through RevoGrid cell properties
  • βœ… Header styles through RevoGrid column config
  • βœ… Group row styles through grouping template/CSS
  • βœ… Subtotal styles
  • βœ… Grand total styles
  • βœ… Field panel styles
  • β˜‘οΈ Filter popup styles through RevoGrid β€” Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Drag-and-drop styles

39. Localization

Text localization

  • βœ… Field panel labels
  • β˜‘οΈ Filter labels through RevoGrid/application β€” Why partial: foundation exists through RevoGrid/application, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Sort labels through RevoGrid/application β€” Why partial: foundation exists through RevoGrid/application, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Aggregation labels through configurator/value selector text
  • βœ… Empty states in field/configurator panels
  • β˜‘οΈ Error messages β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • 🚧 Export labels
  • β˜‘οΈ Context menu labels through RevoGrid/application β€” Why partial: foundation exists through RevoGrid/application, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Configurator labels through i18n

Locale formatting

  • βœ… Locale number formatting through Pivot value formatting presets
  • βœ… Locale currency formatting through Pivot value formatting presets
  • βœ… Locale date formatting through Pivot value formatting presets
  • β˜‘οΈ Locale time formatting through custom templates/parsers β€” Why partial: foundation exists through custom templates/parsers, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Locale sorting through custom comparators β€” Why partial: foundation exists through custom comparators, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ RTL layout support β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Timezone support through custom templates/parsers β€” Why partial: foundation exists through custom templates/parsers, but there is no complete Pivot-specific product workflow, public API, and coverage yet.

40. Framework Integration

JavaScript

  • βœ… Vanilla JS support
  • βœ… TypeScript support
  • βœ… ESM build
  • β˜‘οΈ CJS build β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Tree-shakable modules
  • βœ… Public TypeScript exports for client, remote, field registry, cache, planner, and engine APIs

Frameworks

  • βœ… React wrapper/examples
  • βœ… Vue wrapper/examples
  • βœ… Angular wrapper/examples
  • β˜‘οΈ Svelte wrapper through Web Component usage β€” Why partial: foundation exists through Web Component usage, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Solid wrapper through Web Component usage β€” Why partial: foundation exists through Web Component usage, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Web Components support

Integration helpers

  • β˜‘οΈ Controlled state mode through grid.pivot and update events β€” Why partial: foundation exists through grid.pivot and update events, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Uncontrolled state mode through plugin-owned active config
  • β˜‘οΈ React hooks β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Vue composables β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ Angular services β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Event adapters through RevoGrid custom events
  • βœ… Type-safe config

41. Documentation

User docs

  • βœ… Basic pivot guide/demo
  • βœ… Field panel guide/demo
  • βœ… Aggregation guide/demo through custom aggregator examples
  • β˜‘οΈ Filtering guide β€” Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.
  • β˜‘οΈ Sorting guide β€” Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.
  • βœ… Formatting guide/demo
  • β˜‘οΈ Export guide β€” Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
  • βœ… Drilldown guide/demo for expand-collapse
  • β˜‘οΈ Saved views guide β€” Why partial: some examples or APIs exist, but documentation is not complete enough to treat it as shipped.
  • βœ… Totals guide/demo
  • βœ… Remote pivot guide/demo
  • βœ… Values-on-rows guide/demo

Developer docs

  • β˜‘οΈ API reference β€” Why partial: some examples or APIs exist, but documentation is not complete enough to treat it as shipped.
  • β˜‘οΈ Type reference β€” Why partial: some examples or APIs exist, but documentation is not complete enough to treat it as shipped.
  • βœ… Custom aggregation guide/demo
  • βœ… Custom renderer guide through RevoGrid examples
  • βœ… Server-side pivot guide/demo
  • β˜‘οΈ Data adapter guide β€” Why partial: some examples or APIs exist, but documentation is not complete enough to treat it as shipped.
  • β˜‘οΈ Performance guide β€” Why partial: some examples or APIs exist, but documentation is not complete enough to treat it as shipped.
  • β˜‘οΈ Security guide β€” Why partial: backend/custom hooks can enforce it, but Pivot does not yet ship complete policy configuration, UI, and audit flows.
  • β˜‘οΈ Migration guide β€” Why partial: some examples or APIs exist, but documentation is not complete enough to treat it as shipped.

Examples

  • βœ… Basic pivot
  • βœ… Sales analytics
  • β˜‘οΈ Finance report β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ ERP inventory β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • βœ… Server-side pivot
  • 🚧 Realtime pivot
  • β˜‘οΈ Editable pivot β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • 🚧 Pivot with charts
  • β˜‘οΈ Pivot with permissions β€” Why partial: backend/custom hooks can enforce it, but Pivot does not yet ship complete policy configuration, UI, and audit flows.
  • β˜‘οΈ Pivot with saved views β€” Why partial: state primitives exist, but complete persistence, management UI, and migration behavior are incomplete.
  • βœ… Pivot totals
  • βœ… Pivot drill-down
  • βœ… Pivot values on rows
  • βœ… Pivot field panel
  • βœ… Pivot custom aggregator
  • βœ… Pivot remote/OLAP backend demos

42. AI Features

Natural language pivot

  • 🚧 Create pivot from prompt
  • 🚧 Modify pivot from prompt
  • 🚧 Add measure from prompt
  • 🚧 Add filter from prompt
  • 🚧 Add calculated field from prompt
  • 🚧 Explain current pivot
  • 🚧 Suggest better pivot
  • 🚧 Detect anomalies
  • 🚧 Summarize insights

AI assistant actions

  • 🚧 Generate pivot layout
  • 🚧 Generate chart
  • 🚧 Generate formula
  • 🚧 Generate aggregation
  • 🚧 Generate export summary
  • 🚧 Explain drilldown result
  • 🚧 Recommend filters
  • 🚧 Recommend dimensions

43. Enterprise Features

Governance

  • β˜‘οΈ Shared reports through remote saved-state contract β€” Why partial: foundation exists through remote saved-state contract, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Team views
  • β˜‘οΈ Role-based access through backend/field registry β€” Why partial: foundation exists through backend/field registry, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Audit logs through remote hooks/backend β€” Why partial: foundation exists through remote hooks/backend, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Change history
  • β˜‘οΈ Admin-controlled defaults through supplied config β€” Why partial: foundation exists through supplied config, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Locked reports through backend/application policy β€” Why partial: foundation exists through backend/application policy, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Certified datasets through viewId/fieldsVersion β€” Why partial: foundation exists through viewId/fieldsVersion, but there is no complete Pivot-specific product workflow, public API, and coverage yet.

Compliance

  • β˜‘οΈ Export audit log through backend hooks β€” Why partial: foundation exists through backend hooks, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Drilldown audit log through backend hooks β€” Why partial: foundation exists through backend hooks, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Permission audit through backend/field registry β€” Why partial: foundation exists through backend/field registry, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Data masking through backend/custom renderers β€” Why partial: foundation exists through backend/custom renderers, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ PII protection through backend/field registry β€” Why partial: foundation exists through backend/field registry, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Secure formula mode
  • βœ… Server validation helpers
  • β˜‘οΈ Compliance documentation β€” Why partial: some examples or APIs exist, but documentation is not complete enough to treat it as shipped.

Supportability

  • β˜‘οΈ Diagnostics package through state/metadata export β€” Why partial: foundation exists through state/metadata export, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… Error reporting hooks through remote store hooks
  • β˜‘οΈ Performance report through remote metadata/hooks β€” Why partial: foundation exists through remote metadata/hooks, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • βœ… State snapshot export through serializable config
  • βœ… Reproducible bug state through config/source examples
  • β˜‘οΈ Version compatibility checks through fieldsVersion/response version β€” Why partial: foundation exists through fieldsVersion/response version, but there is no complete Pivot-specific product workflow, public API, and coverage yet.

44. Nice-to-Have Advanced Features

  • 🚧 Pivot recommendations
  • β˜‘οΈ Auto-detected measures through schema/type inference in application layer β€” Why partial: foundation exists through schema/type inference in application layer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Auto-detected dimensions through schema/type inference in application layer β€” Why partial: foundation exists through schema/type inference in application layer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Smart field categorization
  • β˜‘οΈ Automatic date hierarchy through remote group intervals/application preprocessing β€” Why partial: foundation exists through remote group intervals/application preprocessing, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Automatic number bucketing through remote numeric buckets/application preprocessing β€” Why partial: foundation exists through remote numeric buckets/application preprocessing, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Custom hierarchies through row/column dimensions and rowTree β€” Why partial: foundation exists through row/column dimensions and rowTree, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ Parent-child dimensions through precomputed hierarchy fields β€” Why partial: foundation exists through precomputed hierarchy fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Slowly changing dimensions
  • 🚧 Scenario comparison
  • 🚧 Budget vs actual mode
  • 🚧 Forecast columns
  • 🚧 What-if analysis
  • 🚧 Editable planning mode
  • 🚧 Comments on cells
  • 🚧 Cell annotations
  • 🚧 Collaborative views
  • 🚧 Live cursors
  • 🚧 Report subscriptions
  • 🚧 Scheduled exports
  • 🚧 Email reports
  • β˜‘οΈ Embedded dashboard mode through Web Component/framework wrappers β€” Why partial: foundation exists through Web Component/framework wrappers, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ White-label mode through CSS/theming β€” Why partial: foundation exists through CSS/theming, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 Plugin marketplace
  • βœ… Custom pivot extensions through adapters, stores, templates, and aggregators
  • β˜‘οΈ MCP/AI-agent integration β€” Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
  • β˜‘οΈ OLAP cube adapter through PivotEngineAdapter β€” Why partial: foundation exists through PivotEngineAdapter, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • β˜‘οΈ SQL adapter through SqlPivotQueryPlanner β€” Why partial: foundation exists through SqlPivotQueryPlanner, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
  • 🚧 DuckDB adapter
  • 🚧 Apache Arrow support
  • 🚧 Parquet support
  • 🚧 WASM query engine
  • 🚧 Worker-thread query engine