Pivot
Module Extensions
Section titled “Module Extensions”HTMLRevoGridElementEventMap (Extended from global)
Section titled “HTMLRevoGridElementEventMap (Extended from global)”interface HTMLRevoGridElementEventMap {  /**       * Event triggered when the pivot config is updated       *       * @example       * ```typescript       * grid.addEventListener(PIVOT_CFG_UPDATE_EVENT, (e) => {       *   console.log(e);       * });       * ```       */      [PIVOT_CFG_UPDATE_EVENT]: PivotConfig}AdditionalData (Extended from @revolist/revogrid)
Section titled “AdditionalData (Extended from @revolist/revogrid)”interface AdditionalData {  /**       * Additional data property for pivot       *       * @example       * ```typescript       * const grid = document.createElement('revo-grid');       * grid.additionalData = {       *   pivot: {       *     dimensions: [       *       { prop: 'name', aggregator: 'sum' },       *     ],       *     rows: ['name'],       *     columns: ['age'],       *     values: [{ prop: 'salary', aggregator: 'sum' }],       *   },       * };       * ```       */      pivot?: PivotConfig}Plugin API
Section titled “Plugin API”PivotPlugin
Section titled “PivotPlugin”The PivotPlugin is a RevoGrid plugin that enables dynamic creation and manipulation of pivot table structures within the grid. It provides users with the ability to configure and apply pivot transformations on grid data for enhanced reporting and analysis.
Key Features:
- Configurable Pivot Table – Allows users to define row, column, and value fields dynamically.
- Interactive Configurator – Integrates a pivot configurator panel to modify pivot settings in real-time.
- Drag-and-Drop Support – Enables users to rearrange fields via the configurator for a flexible pivot experience.
- Efficient Data Transformation – Utilizes optimized data processing to group and aggregate large datasets.
- Custom Aggregations – Supports multiple aggregation functions, including sum,count,avg,min, andmax.
- Dynamic Theme Adaptation – Adjusts automatically to the applied RevoGrid theme.
- State Persistence – Updates additionalData.pivotdynamically, ensuring persistent pivot configurations.
Usage:
- Instantiate the PivotPlugin in a RevoGrid instance and define a pivot configuration.
- Use applyPivotto generate a pivoted grid based on selected row, column, and value fields.
- Modify the pivot structure using the interactive configurator.
- Call clearPivotto restore the original grid state.
Example
Section titled “Example”import { PivotPlugin } from '@revolist/revogrid-pro';
const grid = document.createElement('revo-grid');grid.plugins = [PivotPlugin];
grid.additionalData = {  pivot: {     dimensions: [{ prop: 'Age' }, { prop: 'City' }, { prop: 'Gender' }, { prop: 'Total Spend' }],     rows: ['City', 'Age'],     columns: ['Gender'],     values: [       { prop: 'Total Spend', aggregator: 'sum' },     ],     hasConfigurator: true,   },};This plugin is essential for users who require advanced pivot table functionalities within RevoGrid, offering comprehensive tools for data transformation and visualization.
class PivotPlugin {  updateConfigurator(config?: PivotConfig);
  /**     * Apply a pivot configuration to the grid.     */  applyPivot(config?: Partial<PivotConfig>);
  /**     * Clear the pivot view and restore the original data.     */  clearPivot();}PivotConfigValue
Section titled “PivotConfigValue”interface PivotConfigValue {  // column?: Partial<ColumnRegular>;    prop: ColumnProp;  aggregator: string}PanelType
Section titled “PanelType”The type of the panel
/** The type of the panel */export type PanelType =  'dimensions' | 'rows' | 'columns' | 'values';PivotConfigDimension (Extended from index.ts)
Section titled “PivotConfigDimension (Extended from index.ts)”interface PivotConfigDimension {  prop: ColumnProp;  /**     * Custom aggregators or use common aggregators     */    aggregators?: { [name: string]: ((values: any[]) => any) };  /**     * Aggregator value for the column     * set automatically     */    readonly aggregator?: string;  /**     * The type of the dimension: rows, values     * set automatically     */    readonly dimension?: PanelType}PivotConfig
Section titled “PivotConfig”interface PivotConfig {  dimensions?: PivotConfigDimension[];  // Row fields for the pivot    rows: ColumnProp[];  // Column fields for the pivot    columns?: ColumnProp[];  // Value fields with aggregators    values: PivotConfigValue[];  // Whether to show the configurator    hasConfigurator?: boolean;  // Where to mount the configurator    // defaults to custom element in the grid    mountTo?: HTMLElement;  flatHeaders?: boolean;  // Hide columns in the configurator    showColumns?: boolean;  // Hide rows in the configurator    showRows?: boolean;  // Hide values in the configurator    showValues?: boolean;  // i18n    i18n?: typeof PIVOT_CONFIG_EN}createPivotData
Section titled “createPivotData”Create pivot data based on the configuration.
export function createPivotData(  originalData: DataType[],;pivotColumns
Section titled “pivotColumns”export function pivotColumns(;