Class ScriptColumn

column combiner which uses a custom JavaScript function to combined the values The script itself can be any valid JavaScript code. It will be embedded in a function. Therefore the last statement has to return a value.

In case of a single line statement the code piece statement return will be automatically prefixed.

The function signature is:
any, index: number, children: Column[], values: any[], raws: (number|null)[]) => number

param: ```
the row in the dataset to compute the value for
param: ``
the index of the row
param: code></dt> <dd>the list of LineUp columns that are part of this ScriptColumn</dd> <dt>param: values</dt> <dd>the computed value of each column (see children) for the current row</dd> <dt>param: raws</dt> <dd>similar to values`. Numeric columns return by default the normalized value, this array gives access to the original "raw" values before mapping is applied
the computed number in the range [0, 1] or NaN

In addition to the standard JavaScript functions and objects (Math, ...) a couple of utility functions are available:

`max(arr: number[]) => number`
computes the maximum of the given array of numbers
`min(arr: number[]) => number`
computes the minimum of the given array of numbers
`extent(arr: number[]) => [number, number]`
computes both minimum and maximum and returning an array with the first element the minimum and the second the maximum
`clamp(v: number, min: number, max: number) => number`
ensures that the given value is within the given min/max value
`normalize(v: number, min: number, max: number) => number`
normalizes the given value `(v - min) / (max - min)`
`denormalize(v: number, min: number, max: number) => number`
inverts a normalized value `v * (max - min) + min`
`linear(v: number, input: [number, number], output: [number, number]) => number`
performs a linear mapping from input domain to output domain both given as an array of [min, max] values. `denormalize(normalize(v, input[0], input[1]), output[0], output[1])`









_children: Column[] = []
desc: Readonly<IColumnDesc>
parent: Readonly<IColumnParent> = null

parent column of this column, set when added to a ranking or combined column

DEFAULT_SCRIPT: "let s = 0;\ncol.forEach((c) => s += c.v);\nreturn s / col.length" = DEFAULT_SCRIPT
EVENT_ADD_COLUMN: "addColumn" = 'addColumn'
EVENT_DIRTY: "dirty" = 'dirty'
EVENT_DIRTY_CACHES: "dirtyCaches" = 'dirtyCaches'
EVENT_DIRTY_HEADER: "dirtyHeader" = 'dirtyHeader'
EVENT_DIRTY_VALUES: "dirtyValues" = 'dirtyValues'
EVENT_FILTER_CHANGED: "filterChanged" = 'filterChanged'
EVENT_GROUP_RENDERER_TYPE_CHANGED: "groupRendererChanged" = 'groupRendererChanged'
EVENT_LABEL_CHANGED: "labelChanged" = 'labelChanged'
EVENT_METADATA_CHANGED: "metaDataChanged" = 'metaDataChanged'
EVENT_MOVE_COLUMN: "moveColumn" = 'moveColumn'
EVENT_REMOVE_COLUMN: "removeColumn" = 'removeColumn'
EVENT_RENDERER_TYPE_CHANGED: "rendererTypeChanged" = 'rendererTypeChanged'
EVENT_SCRIPT_CHANGED: "scriptChanged" = 'scriptChanged'
EVENT_SUMMARY_RENDERER_TYPE_CHANGED: "summaryRendererChanged" = 'summaryRendererChanged'
EVENT_VISIBILITY_CHANGED: "visibilityChanged" = 'visibilityChanged'
EVENT_WIDTH_CHANGED: "widthChanged" = 'widthChanged'

magic variable for showing all columns


  • get canJustAddNumbers(): boolean
  • Returns boolean

  • get description(): string
  • Returns string

  • get fixed(): boolean
  • Returns boolean

  • get fqid(): string
  • returns the fully qualified id i.e. path the parent


    Returns string

  • get fqpath(): string
  • Returns string

  • get frozen(): boolean
  • Returns boolean

  • get id(): string
  • Returns string

  • get label(): string
  • Returns string


  • dumps this column to JSON compatible format


    dump of this column


    • toDescRef: ((desc: any) => any)

      helper mapping function

        • (desc: any): any
        • Parameters

          • desc: any

          Returns any

    Returns any

  • marks the header, values, or both as dirty such that the values are reevaluated


    • type: "values" | "all" | "header" = 'all'

      specify in more detail what is dirty, by default whole column

    Returns void

  • triggers that the ranking is sorted by this column


    was successful


    • ascending: boolean = ...

      ascending order?

    • priority: number = 0

      sorting priority

    Returns boolean