Skip to main content
An advanced transposed grid implementation using AG Grid that supports hierarchical rollup rows, data object movement, and complex aggregation scenarios. This component displays data elements across multiple document families with support for parent-child relationships and custom rollup configurations defined as child cards.

Type

type: "transposedGridRollup"

Properties

Required Properties

PropertyTypeDescription
groupTaxonstringThe root data element group to display

Optional Properties

None - Configuration is primarily done through child rollupColumn cards. Each rollupColumn also supports background color properties for empty vs populated cells.

Layout

  • Default Width: 12 columns
  • Default Height: 10 rows
  • Supports Children: Yes (requires rollupColumn children to define rows)

Configuration Examples

Basic Rollup Grid

- type: transposedGridRollup
  id: invoiceRollup
  properties:
    groupTaxon: "invoice"
  layout:
    x: 0
    y: 0
    w: 12
    h: 12
  children:
    - type: rollupColumn
      id: "invoice/invoiceNumber"
      properties:
        title: "Invoice Number"
        color: "#333"
        backgroundColor: "#f0f0f0"
    - type: rollupColumn
      id: "invoice/totalAmount"
      properties:
        title: "Total Amount"
        fontWeight: "bold"

Rollup Grid with Movement

- type: transposedGridRollup
  id: lineItemsRollup
  properties:
    groupTaxon: "invoice/lineItems"
  layout:
    x: 0
    y: 0
    w: 12
    h: 12
  children:
    - type: rollupColumn
      id: "invoice/lineItems/description"
      properties:
        title: "Description"
        movement:
          enabled: true
          showOnRows: "parent"
          rule:
            allowedDestinations: "siblings"
            buttonLabel: "Move Item"

Rollup Column Configuration

Each child rollupColumn card defines a row in the grid with properties:
PropertyTypeDescription
titlestringDisplay name for the row
colorstringText color (CSS color value)
backgroundColorstringRow background color
valueTaxonNamestringSpecific taxon to display values from
rowDescriptionTaxonNamestringTaxon for row description text
indentstringCSS margin-left for visual hierarchy
fontWeightstringFont weight (normal, bold, etc.)
movementobjectData movement configuration
emptyRollupBackgroundColorstringCell background color when value is empty
notEmptyRollupBackgroundColorstringCell background color when value is present
emptyRollupColorstringCell text color when value is empty
notEmptyRollupColorstringCell text color when value is present

Movement Configuration

The movement property enables drag-and-drop or button-based movement:
movement: {
  enabled: boolean;
  showOnRows: 'parent' | 'child' | 'both';
  rule: {
    sourceTaxon?: string;  // Defaults to taxonPath if not specified
    allowedDestinations: string[] | 'siblings' | 'same-prefix';
    buttonLabel?: string;
    buttonIcon?: string;
    batchMode?: boolean;
    destinationFilter?: (dest, parentDataObject, source) => boolean;
  };
  quickMoves?: Array<{
    targetTaxon: string;
    label: string;
    icon?: string;
    color?: string;
    confirmationMessage?: string;
  }>;
}
Destination Patterns:
  • Array: Explicit list of allowed taxon paths or regex patterns
    • Literal paths: Exact taxon paths (e.g., BalanceSheet/Assets)
    • Regex patterns: Pattern strings that match multiple taxons (e.g., Group_.*, .*_Total$)
  • Regex patterns, when provided, are resolved to matching group taxons and combined into the destination list
  • ‘siblings’: Allow movement to sibling data objects
  • ‘same-prefix’: Allow movement to taxons with same prefix

AG Grid Features

The component uses AG Grid Enterprise features:
  • Tree data: Hierarchical parent-child relationships
  • Row grouping: Automatic grouping by document family
  • Custom cell renderers: Specialized rendering for rollup values
  • Column headers: Custom header components

Grid Organization

Columns:
  1. Group column: Shows data element hierarchy (tree structure)
  2. Document columns: One column per document family
  3. Dynamic width: Columns sized based on content
Rows:
  • Each rollup column definition creates a row
  • Parent-child relationships shown via tree structure
  • Values displayed in document columns

Financial Rollup Example

- type: transposedGridRollup
  id: balanceSheet
  properties:
    groupTaxon: "financials"
  layout:
    x: 0
    y: 0
    w: 12
    h: 14
  children:
    # Assets section
    - type: rollupColumn
      id: "financials/assets"
      properties:
        title: "ASSETS"
        fontWeight: "bold"
        backgroundColor: "#e8f4f8"

    - type: rollupColumn
      id: "financials/assets/currentAssets"
      properties:
        title: "Current Assets"
        indent: "20px"

    - type: rollupColumn
      id: "financials/assets/fixedAssets"
      properties:
        title: "Fixed Assets"
        indent: "20px"

    # Liabilities section
    - type: rollupColumn
      id: "financials/liabilities"
      properties:
        title: "LIABILITIES"
        fontWeight: "bold"
        backgroundColor: "#f8e8e8"
        movement:
          enabled: true
          showOnRows: "child"
          rule:
            allowedDestinations: "same-prefix"

Performance Optimizations

  • Force refresh counter for reactive updates
  • Computed caching for expensive operations
  • Lazy loading of document families
  • Efficient data object filtering

Integration Features

  1. Document Viewer: Integration with active selection
  2. Movement System: Centralized data object movement
  3. Event System: Emits update events for coordination
  4. Keyboard Shortcuts: Can be extended for quick actions

Notes

Uses AG Grid Enterprise (requires license)
  • Supports complex hierarchical data structures
  • Movement rules can be highly customized
  • The grid automatically handles document family grouping
  • Hidden groups can be toggled via external controls
  • Supports both batch and individual data object movement
  • Custom cell renderers provide rich formatting options
  • The component integrates with workspace store for data management
  • Group sorting can be toggled (ascending/descending)
  • Key filtering allows searching within the grid
  • The grid is fully reactive to data changes
  • Supports custom destination filters for complex movement logic
  • Visual styling can be customized per row
  • Indent property allows visual hierarchy representation