[[canvas-common-functions]]
=== Canvas common functions

beta[]The common functions can run anywhere, which means they'll execute wherever 
the expression is currently executing. For example, if the engine is currently 
running on the server, the functions will run on the server.

A *** denotes a required argument.


[float]
=== all

Returns true if all of the conditions are true.

*Accepts:* Anything or nothing

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_*
|boolean
|The conditions to check
|===

*Returns:* boolean


[float]
=== alterColumn

Converts between core types, for example, string, number, null, boolean, date 
and rename columns.

*Accepts:* datatable

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|column*
|string
|The name of the column to alter

|type
|string
|The type to convert the column to; leave blank to not change type (default: `null`)

|name
|string
|The resultant column name; leave blank to not rename (default: `null`)
|===

*Returns:* datatable


[float]
=== any

Returns true if any of the conditions are true.

*Accepts:* Anything or nothing

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_*
|boolean
|The conditions to check
|===

*Returns:* boolean


[float]
=== as

Creates a datatable with a single value.

*Accepts:* string, boolean, number, null

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_ (Alias: `name`)
|string
|A name to give the column (default: `value`)
|===

*Returns:* datatable


[float]
=== axisConfig

Configures axis of a visualization.

*Accepts:* datatable

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|show
|boolean
|default: `true`

|position
|string
|The position of the axis labels, for example, top, bottom, left, and right
|===

*Returns:* axisConfig


[float]
=== case

Builds a case (including a condition/result) to pass to the switch function.

*Accepts:* Anything or nothing

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_
|any
|This value is compared to the context to see if the condition 
s met. It is overridden by the "if" argument if both are provided.

|if*
|boolean
|This value determines whether or not the condition is met. 
It overrides the unnamed argument if both are provided.

|then
|any
|The value to return if the condition is met
|===

*Returns:* case

[float]
=== clog

Outputs the context to the console.

*Accepts:* Anything or nothing

*Returns:* Depends on your input and arguments


[float]
=== columns

Includes or excludes columns from a data table. If you specify both, this will exclude first.

*Accepts:* datatable

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|include
|string
|A comma separated list of column names to keep in the table 
(default: `null`)

|exclude
|string
|A comma separated list of column names to remove from the table 
(default: `null`)
|===

*Returns:* datatable

   
[float]
=== compare

Compares the input to something else to determine true or false. 
Usually used in combination with `if`. This only works with primitive types, 
such as number, string, and boolean.

*Accepts:* null, string, number, boolean

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_ (Alias: `op`)
|string
|The operator to use in the comparison: `eq` (equal), `ne` (not equal), `lt` 
(less than), `gt` (greater than), `lte` (less than equal), `gte` (greater than eq). 
The default is `eq`. 

|to (Aliases: `this`, `b`)
|any
|The value to compare the context to, usually returned by a subexpression
|===

*Returns:* boolean


[float]
=== containerStyle

Creates an object used for describing the properties of a series on a chart. 
You would usually use this inside of a charting function.

*Accepts:* null

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|border
|string
|Valid CSS border string

|borderRadius
|string
|Number of pixels to use when rounding the border

|padding
|string
|Content distance in pixels from border

|backgroundColor
|string
|Valid CSS background color string

|backgroundImage
|string
|Valid CSS background image string

|backgroundSize
|string
|Valid CSS background size string (default: `contain`)

|backgroundRepeat
|string
|Valid CSS background repeat string (default: `no-repeat`)

|opacity
|number
|A number between 0 and 1 representing the degree of transparency of the element
|===

*Returns:* containerStyle


[float]
=== context

Returns whatever you pass into it. This can be useful when you need to use 
context as argument to a function as a sub-expression.

*Accepts:* Anything or nothing

*Returns:* Depends on your input and arguments

[float]
=== csv

Creates a datatable from CSV input.

*Accepts:* null

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_* 
|string
|CSV data to use

|delimiter*
|string
|Data separation character

|newLine*
|string
|Row separation character
|===

*Returns:* containerStyle


[float]
=== date

Returns the current time, or a time parsed from a string, as milliseconds since epoch.

*Accepts:* null

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_ 
|string
|An optional date string to be parsed into milliseconds 
since epoch. Can be either a valid JavaScript Date input or a string to parse 
using the format argument. Must be an ISO 8601 string or you must provide the format.

|format*
|string
|The Moment.js format for parsing the optional date 
string. See the https://momentjs.com/docs/#/displaying/[Moment.js documentation].
|===

*Returns:* number


[float]
=== do

Runs multiple sub-expressions. Returns the passed in context. Nice for running 
actions producing functions.

*Accepts:* Anything or nothing

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_ 
|any
|One or more sub-expressions. The value of these is not 
available in the root pipeline as this function simply returns the passed in context.
|===

*Returns:* Depends on your input and arguments


[float]
=== dropdownControl

Configures a dropdown filter control element.

*Accepts:* datatable

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|filterColumn
|any
|The column or field to which to attach the filter

|valueColumn
|any
|The datatable column from which to extract the unique values 
for the dropdown
|===

*Returns:* render


[float]
=== eq

Returns whether the context is equal to the argument.

*Accepts:* Anything or nothing

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_*
|boolean, number, string
|The value to which to compare the context
|===

*Returns:* boolean

[float]
=== exactly

Creates a filter that matches a given column for a perfectly exact value.

*Accepts:* filter

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|column* (Aliases: `field`, `c`)
|string
|The column or field to attach the filter to

|value* (Aliases: `v`, `val`)
|string
|The value to match exactly, including white space and 
capitalization
|===

*Returns:* filter


[float]
=== filterrows

Filters rows in a datatable based on the return value of a subexpression.

*Accepts:* datatable

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_* (Alias: `fn`)
|boolean
|An expression to pass into each row in the datatable.
The expression should return a boolean. A true value preserves the row, 
and a false value removes it.
|===

*Returns:* datatable


[float]
=== font

Creates font style.

*Accepts:* null

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|size
|number
|The font size in pixels (default: `14`)

|lHeight* (Alias: `lineHeight`)
|number
|The line height in pixels

|family
|string
|An acceptable CSS web font string (default: `"'Open Sans', Helvetica, Arial, sans-serif"`)

|color
|string
|The text color

|weight
|string
|The font weight, for example, `normal`, `bold`, `bolder`, `lighter`, 
`100`, `200`, `300`, `400`, `500`, `600`, `700`, `800`, `900` (default is `normal`)

|underline
|boolean
|Underline the text, `true` or `false` (default is `false`)

|italic
|boolean
|Italicize the text, `true` or `false` (default is `false`)

|align
|string
|The horizontal alignment of text (default is `left`)
|===

*Returns:* style


[float]
=== formatdate

Outputs milliseconds since epoch as a formatted string.

*Accepts:* number

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_* 
|string
|Moment.js Format with which to bucket, see the https://momentjs.com/docs/#/displaying/[Moment.js documentation]
|===

*Returns:* string


[float]
=== formatnumber

Turns a number into a string using a Number.js format.

*Accepts:* number

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_* 
|string
|Numeral.js format string, see the http://numeraljs.com/#format[Numeral.js documentation]
|===

*Returns:* string


[float]
=== getCell

Fetches a single cell in a table.

*Accepts:* datatable

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_* (Aliases: `column`, `c`)
|string
|The name of the column value to fetch

|row (Alias: `r`)
|number
|The row number, starting at 0 (default: `0`)
|===

*Returns:* Depends on your input and arguments


[float]
=== gt

Returns whether the context is greater than the argument.

*Accepts:* Anything or nothing

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_* 
|boolean, number, string
|The value to compare the context to
|===

*Returns:* boolean


[float]
=== gte

Returns whether the context is greater than or equal to the argument.

*Accepts:* Anything or nothing

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_* 
|boolean, number, string
|The value to compare the context to
|===

*Returns:* boolean


[float]
=== head

Gets the first N rows from the datatable. Also see `tail`.

*Accepts:* datatable

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_ 
|number
|Return this number of rows from the beginning of the datatable (default: `1`)
|===

*Returns:* datatable


[float]
=== if

Performs conditional logic.

*Accepts:* Anything or nothing

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_ (Alias: `condition`)
|boolean
|A boolean true or false, usually returned by a subexpression. 
If this is not supplied, then the input context will be used.

|then
|any
|The return value if true

|else
|any
|The return value if false. If else is not specified, and the condition is false,
then the input context to the function will be returned.
|===

*Returns:* Depends on your input and arguments


[float]
=== image

Displays an image.

*Accepts:* null

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|dataurl (Alias: `_,`, `url`)
|string
|An image asset can be provided as a base64 dataurl, or passed in as a subexpression
(see example below)

|mode
|string
|`contain`
|===

Example value for the `dataurl` argument, formatted as a base64 data URL:
[source, url]
-------------
data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmlld0JveD0iMCAwIDI3MC42MDAwMSAyNjkuNTQ2NjYiCiAgIGhlaWdodD0iMjY5LjU0NjY2IgogICB3aWR0aD0iMjcwLjYwMDAxIgogICB4bWw6c3BhY2U9InByZXNlcnZlIgogICBpZD0ic3ZnMiIKICAgdmVyc2lvbj0iMS4xIj48bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE4Ij48cmRmOlJERj48Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcwogICAgIGlkPSJkZWZzNiIgLz48ZwogICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMzMzMzMzMywwLDAsLTEuMzMzMzMzMywwLDI2OS41NDY2NykiCiAgICAgaWQ9ImcxMCI+PGcKICAgICAgIHRyYW5zZm9ybT0ic2NhbGUoMC4xKSIKICAgICAgIGlkPSJnMTIiPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoMTQiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMjAyOS40OCw5NjIuNDQxIGMgMCwxNzAuMDk5IC0xMDUuNDYsMzE4Ljc5OSAtMjY0LjE3LDM3Ni42NTkgNi45OCwzNS44NiAxMC42Miw3MS43MSAxMC42MiwxMDkuMDUgMCwzMTYuMTkgLTI1Ny4yNCw1NzMuNDMgLTU3My40Nyw1NzMuNDMgLTE4NC43MiwwIC0zNTYuNTU4LC04OC41OSAtNDY0LjUzLC0yMzcuODUgLTUzLjA5LDQxLjE4IC0xMTguMjg1LDYzLjc1IC0xODYuMzA1LDYzLjc1IC0xNjcuODM2LDAgLTMwNC4zODMsLTEzNi41NCAtMzA0LjM4MywtMzA0LjM4IDAsLTM3LjA4IDYuNjE3LC03Mi41OCAxOS4wMzEsLTEwNi4wOCBDIDEwOC40ODgsMTM4MC4wOSAwLDEyMjcuODkgMCwxMDU4Ljg4IDAsODg3LjkxIDEwNS45NzcsNzM4LjUzOSAyNjUuMzk4LDY4MS4wOSBjIC02Ljc2OSwtMzUuNDQyIC0xMC40NiwtNzIuMDIgLTEwLjQ2LC0xMDkgQyAyNTQuOTM4LDI1Ni42MjEgNTExLjU2NiwwIDgyNy4wMjcsMCAxMDEyLjIsMCAxMTgzLjk0LDg4Ljk0MTQgMTI5MS4zLDIzOC44MzIgYyA1My40NSwtNDEuOTYxIDExOC44LC02NC45OTIgMTg2LjU2LC02NC45OTIgMTY3LjgzLDAgMzA0LjM4LDEzNi40OTIgMzA0LjM4LDMwNC4zMzIgMCwzNy4wNzggLTYuNjIsNzIuNjI5IC0xOS4wMywxMDYuMTI5IDE1Ny43OCw1Ni44NzkgMjY2LjI3LDIwOS4xMjkgMjY2LjI3LDM3OC4xNCIgLz48cGF0aAogICAgICAgICBpZD0icGF0aDE2IgogICAgICAgICBzdHlsZT0iZmlsbDojZmFjZjA5O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBkPSJtIDc5Ny44OTgsMTE1MC45MyA0NDQuMDcyLC0yMDIuNDUgNDQ4LjA1LDM5Mi41OCBjIDYuNDksMzIuMzkgOS42Niw2NC42NyA5LjY2LDk4LjQ2IDAsMjc2LjIzIC0yMjQuNjgsNTAwLjk1IC01MDAuOSw1MDAuOTUgLTE2NS4yNCwwIC0zMTkuMzcsLTgxLjM2IC00MTMuMDUzLC0yMTcuNzkgbCAtNzQuNTI0LC0zODYuNjQgODYuNjk1LC0xODUuMTEiIC8+PHBhdGgKICAgICAgICAgaWQ9InBhdGgxOCIKICAgICAgICAgc3R5bGU9ImZpbGw6IzQ5YzFhZTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgICAgZD0ibSAzMzguMjIzLDY4MC42NzIgYyAtNi40ODksLTMyLjM4MyAtOS44MDksLTY1Ljk4MSAtOS44MDksLTk5Ljk3MyAwLC0yNzYuOTI5IDIyNS4zMzYsLTUwMi4yNTc2IDUwMi4zMTMsLTUwMi4yNTc2IDE2Ni41OTMsMCAzMjEuNDczLDgyLjExNzYgNDE1LjAxMywyMTkuOTQ5NiBsIDczLjk3LDM4NS4zNDcgLTk4LjcyLDE4OC42MjEgTCA3NzUuMTU2LDEwNzUuNTcgMzM4LjIyMyw2ODAuNjcyIiAvPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoMjAiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNlZjI5OWI7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMzM1LjQxLDE0NDkuMTggMzA0LjMzMiwtNzEuODYgNjYuNjgsMzQ2LjAyIGMgLTQxLjU4NiwzMS43OCAtOTIuOTMsNDkuMTggLTE0NS43MzEsNDkuMTggLTEzMi4yNSwwIC0yMzkuODEyLC0xMDcuNjEgLTIzOS44MTIsLTIzOS44NyAwLC0yOS4yMSA0Ljg3OSwtNTcuMjIgMTQuNTMxLC04My40NyIgLz48cGF0aAogICAgICAgICBpZD0icGF0aDIyIgogICAgICAgICBzdHlsZT0iZmlsbDojNGNhYmU0O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBkPSJNIDMwOC45OTIsMTM3Ni43IEMgMTczLjAyLDEzMzEuNjQgNzguNDgwNSwxMjAxLjMgNzguNDgwNSwxMDU3LjkzIDc4LjQ4MDUsOTE4LjM0IDE2NC44Miw3OTMuNjggMjk0LjQwNiw3NDQuMzUyIGwgNDI2Ljk4MSwzODUuOTM4IC03OC4zOTUsMTY3LjUxIC0zMzQsNzguOSIgLz48cGF0aAogICAgICAgICBpZD0icGF0aDI0IgogICAgICAgICBzdHlsZT0iZmlsbDojODVjZTI2O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBkPSJtIDEzMjMuOCwyOTguNDEgYyA0MS43NCwtMzIuMDkgOTIuODMsLTQ5LjU5IDE0NC45OCwtNDkuNTkgMTMyLjI1LDAgMjM5LjgxLDEwNy41NTkgMjM5LjgxLDIzOS44MjEgMCwyOS4xNiAtNC44OCw1Ny4xNjggLTE0LjUzLDgzLjQxOCBsIC0zMDQuMDgsNzEuMTYgLTY2LjE4LC0zNDQuODA5IiAvPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoMjYiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMzMTc3YTc7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMTM4NS42Nyw3MjIuOTMgMzM0Ljc2LC03OC4zMDEgYyAxMzYuMDIsNDQuOTYxIDIzMC41NiwxNzUuMzUxIDIzMC41NiwzMTguNzYyIDAsMTM5LjMzOSAtODYuNTQsMjYzLjg1OSAtMjE2LjM4LDMxMy4wMzkgbCAtNDM3Ljg0LC0zODMuNTkgODguOSwtMTY5LjkxIiAvPjwvZz48L2c+PC9zdmc+
-------------

*Returns:* image


[float]
=== lt

Returns whether the context is less than the argument passed in.

*Accepts:* Anything or nothing

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_* 
|boolean, number, string
|The value to compare the context to
|===

*Returns:* boolean


[float]
=== lte

Returns whether the context is less than or equal to the argument passed in.

*Accepts:* Anything or nothing

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_* 
|boolean, number, string
|The value to compare the context to
|===

*Returns:* boolean


[float]
=== mapColumn

Adds a column calculated as the result of other columns, or not.

*Accepts:* datatable

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_* (Alias: `column`)
|string
|The name of the resulting column

|expression (Aliases: `exp`, `fn`)
|boolean, number, string
|A Canvas expression that will be passed to each row as a single row datatable
|===

*Returns:* datatable


[float]
=== markdown

Adds an element for rendering Markdown text. Great for single numbers, metrics, or paragraphs of text.

*Accepts:* datatable, null

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_
|string
|A string containing Markdown. You can pass this multiple 
times to achieve concatenation (default: `""`).

|font
|style
|Font settings. Technically, you can put other styles in here too (default is `{font}`).
|===

*Returns:* render


[float]
=== math

Interprets a math expression, with a number or datatable as context. Datatable 
columns are available by their column name. If you pass in a number, it is 
available as "value" (without the quotes).

*Accepts:* number, datatable

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_*
|string
|An evaluated TinyMath expression, see <<canvas-tinymath-functions>>
|===

*Returns:* number


[float]
=== metric

A number with a label.

*Accepts:* string, null

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_
|string
|Text describing the metric (default is `""`)

|metricFont
|style
|Font settings for the metric. Technically, you can put other styles in here too.
The default is `{font size=48 family="'Open Sans', Helvetica, Arial, sans-serif" color="#000000" align=center lHeight=48}`.

|labelFont
|style
|Font settings for the label. Technically you can put other styles in here too.
The default is `{font size=14 family="'Open Sans', Helvetica, Arial, sans-serif" color="#000000" align=center}`.
|===

*Returns:* render


[float]
=== neq

Returns whether the context is not equal to the argument.

*Accepts:* Anything or nothing

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_*
|boolean, number, string
|The value to compare the context to
|===

*Returns:* boolean


[float]
=== palette

Creates a color palette.

*Accepts:* null

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_*
|string
|Palette colors, rgba, hex, or HTML color string; you can pass this multiple times

|gradient
|boolean
|Make a gradient, where supported (default: `false`)

|reverse
|any
|Reverse the palette (default is `false`)
|===

*Returns:* palette


[float]
=== pie

Configures a pie chart element.

*Accepts:* pointseries

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|palette
|palette
|A palette object for describing the colors to use on this pie (default: `{palette}`)

|seriesStyle
|seriesStyle
|A style of a specific series

|radius
|any
|Radius of the pie as a percentage (between 0 and 1) of the available space. 
Set to `auto` to automatically set radius (default: `auto`).

|hole
|number
|Draw a hole in the pie, 0-100, as a percentage of the pie radius (default: `0`)

|labels
|boolean
|Show pie labels (default: `true`)

|labelRadius
|number
|The percentage of the area of container to use as a radius for the label circle 
(default: `100`)

|font
|style
|The label font (default: `{font}`)

|legend
|string, boolean
|The legend position, `nw`, `sw`, `ne`, `se`, or `false` (default: `false`)

|tilt
|number
|The percentage of tilt, where 1 is fully vertical and 0 is completely flat (default: `1`)
|===

*Returns:* render


[float]
=== plot

Configures a plot element.

*Accepts:* pointseries

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|seriesStyle
|seriesStyle
|A style of a specific series

|defaultStyle
|seriesStyle
|The default style to use for every series (default is `{seriesStyle points=5}`)

|palette
|palette
|A palette object for describing the colors to use on this plot (default is `{palette}`)

|font
|style
|The legend and tick mark fonts (default is `{font}`)

|legend
|string, boolean
|The legend position, `nw`, `sw`, `ne`, `se`, or `false` (default is `ne`)

|yaxis
|boolean, axisConfig
|Axis configuration, or use `false` to disable (default is `true`)

|xaxis
|boolean, axisConfig
|Axis configuration, or use `false` to disable (default is `true`)
|===

*Returns:* render


[float]
=== ply

Subdivides a datatable and passes the resulting tables into an expression, 
then merges the output.

*Accepts:* datatable

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|by*
|string
|The column to subdivide

|expression* (Alias: `fn`, `function`)
|datatable
|An expression to pass into each resulting data table.
Expressions must return a datatable. Use `as` to turn literals into datatables.				
Multiple expressions must return the same number of rows. If you need to return 
a differing row count, pipe into another instance of `ply`.				
If multiple expressions return the same columns, the last one wins.
|===

*Returns:* datatable


[float]
=== render

Renders an input as a specific element and sets element level options,
such as styling.

*Accepts:* render

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|as
|string
|The element type to use in rendering. You might want to use a
specialized function instead, such as `plot` or `grid`.

|css
|string
|Any block of custom CSS to be scoped to this element (default is `"* > * {}"`)

|containerStyle
|containerStyle
|Style for the container, including background, border, and opacity
|===

*Returns:* render


[float]
=== repeatImage

Configures a repeating image element.

*Accepts:* number

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|image
|string
|An image asset can be provided as a base64 dataurl, or passed in as a subexpression
 (see example below)

|size
|number
|default: `100`

|max
|number
|default: `100`

|emptyImage
|string
|default: `null`
|===


Example value for the `image` argument, formatted as a base64 data URL:
[source, url]
------------
data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20viewBox%3D%22-3.948730230331421%20-1.7549896240234375%20245.25946044921875%20241.40370178222656%22%20width%3D%22245.25946044921875%22%20height%3D%22241.40370178222656%22%20style%3D%22enable-background%3Anew%200%200%20686.2%20235.7%3B%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cdefs%3E%0A%20%20%20%20%3Cstyle%20type%3D%22text%2Fcss%22%3E%0A%09.st0%7Bfill%3A%232D2D2D%3B%7D%0A%3C%2Fstyle%3E%0A%20%20%3C%2Fdefs%3E%0A%20%20%3Cg%20transform%3D%22matrix%281%2C%200%2C%200%2C%201%2C%200%2C%200%29%22%3E%0A%20%20%20%20%3Cg%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M329.4%2C160.3l4.7-0.5l0.3%2C9.6c-12.4%2C1.7-23%2C2.6-31.8%2C2.6c-11.7%2C0-20-3.4-24.9-10.2%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-4.9-6.8-7.3-17.4-7.3-31.7c0-28.6%2C11.4-42.9%2C34.1-42.9c11%2C0%2C19.2%2C3.1%2C24.6%2C9.2c5.4%2C6.1%2C8.1%2C15.8%2C8.1%2C28.9l-0.7%2C9.3h-53.8%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc0%2C9%2C1.6%2C15.7%2C4.9%2C20c3.3%2C4.3%2C8.9%2C6.5%2C17%2C6.5C312.8%2C161.2%2C321.1%2C160.9%2C329.4%2C160.3z%20M325%2C124.9c0-10-1.6-17.1-4.8-21.2%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-3.2-4.1-8.4-6.2-15.6-6.2c-7.2%2C0-12.7%2C2.2-16.3%2C6.5c-3.6%2C4.3-5.5%2C11.3-5.6%2C20.9H325z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M354.3%2C171.4V64h12.2v107.4H354.3z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M443.5%2C113.5v41.1c0%2C4.1%2C10.1%2C3.9%2C10.1%2C3.9l-0.6%2C10.8c-8.6%2C0-15.7%2C0.7-20-3.4c-9.8%2C4.3-19.5%2C6.1-29.3%2C6.1%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-7.5%2C0-13.2-2.1-17.1-6.4c-3.9-4.2-5.9-10.3-5.9-18.3c0-7.9%2C2-13.8%2C6-17.5c4-3.7%2C10.3-6.1%2C18.9-6.9l25.6-2.4v-7%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc0-5.5-1.2-9.5-3.6-11.9c-2.4-2.4-5.7-3.6-9.8-3.6l-32.1%2C0V87.2h31.3c9.2%2C0%2C15.9%2C2.1%2C20.1%2C6.4C441.4%2C97.8%2C443.5%2C104.5%2C443.5%2C113.5%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bz%20M393.3%2C146.7c0%2C10%2C4.1%2C15%2C12.4%2C15c7.4%2C0%2C14.7-1.2%2C21.8-3.7l3.7-1.3v-26.9l-24.1%2C2.3c-4.9%2C0.4-8.4%2C1.8-10.6%2C4.2%26%2310%3B%26%239%3B%26%239%3B%26%239%3BC394.4%2C138.7%2C393.3%2C142.2%2C393.3%2C146.7z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M491.2%2C98.2c-11.8%2C0-17.8%2C4.1-17.8%2C12.4c0%2C3.8%2C1.4%2C6.5%2C4.1%2C8.1c2.7%2C1.6%2C8.9%2C3.2%2C18.6%2C4.9%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc9.7%2C1.7%2C16.5%2C4%2C20.5%2C7.1c4%2C3%2C6%2C8.7%2C6%2C17.1c0%2C8.4-2.7%2C14.5-8.1%2C18.4c-5.4%2C3.9-13.2%2C5.9-23.6%2C5.9c-6.7%2C0-29.2-2.5-29.2-2.5%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bl0.7-10.6c12.9%2C1.2%2C22.3%2C2.2%2C28.6%2C2.2c6.3%2C0%2C11.1-1%2C14.4-3c3.3-2%2C5-5.4%2C5-10.1c0-4.7-1.4-7.9-4.2-9.6c-2.8-1.7-9-3.3-18.6-4.8%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-9.6-1.5-16.4-3.7-20.4-6.7c-4-2.9-6-8.4-6-16.3c0-7.9%2C2.8-13.8%2C8.4-17.6c5.6-3.8%2C12.6-5.7%2C20.9-5.7c6.6%2C0%2C29.6%2C1.7%2C29.6%2C1.7%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bv10.7C508.1%2C99%2C498.2%2C98.2%2C491.2%2C98.2z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M581.7%2C99.5h-25.9v39c0%2C9.3%2C0.7%2C15.5%2C2%2C18.4c1.4%2C2.9%2C4.6%2C4.4%2C9.7%2C4.4l14.5-1l0.8%2C10.1%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-7.3%2C1.2-12.8%2C1.8-16.6%2C1.8c-8.5%2C0-14.3-2.1-17.6-6.2c-3.3-4.1-4.9-12-4.9-23.6V99.5h-11.6V88.9h11.6V63.9h12.1v24.9h25.9V99.5z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M598.7%2C78.4V64.3h12.2v14.2H598.7z%20M598.7%2C171.4V88.9h12.2v82.5H598.7z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M663.8%2C87.2c3.6%2C0%2C9.7%2C0.7%2C18.3%2C2l3.9%2C0.5l-0.5%2C9.9c-8.7-1-15.1-1.5-19.2-1.5c-9.2%2C0-15.5%2C2.2-18.8%2C6.6%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-3.3%2C4.4-5%2C12.6-5%2C24.5c0%2C11.9%2C1.5%2C20.2%2C4.6%2C24.9c3.1%2C4.7%2C9.5%2C7%2C19.3%2C7l19.2-1.5l0.5%2C10.1c-10.1%2C1.5-17.7%2C2.3-22.7%2C2.3%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-12.7%2C0-21.5-3.3-26.3-9.8c-4.8-6.5-7.3-17.5-7.3-33c0-15.5%2C2.6-26.4%2C7.8-32.6C643%2C90.4%2C651.7%2C87.2%2C663.8%2C87.2z%22%2F%3E%0A%20%20%20%20%3C%2Fg%3E%0A%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M236.6%2C123.5c0-19.8-12.3-37.2-30.8-43.9c0.8-4.2%2C1.2-8.4%2C1.2-12.7C207%2C30%2C177%2C0%2C140.2%2C0%26%2310%3B%26%239%3B%26%239%3BC118.6%2C0%2C98.6%2C10.3%2C86%2C27.7c-6.2-4.8-13.8-7.4-21.7-7.4c-19.6%2C0-35.5%2C15.9-35.5%2C35.5c0%2C4.3%2C0.8%2C8.5%2C2.2%2C12.4%26%2310%3B%26%239%3B%26%239%3BC12.6%2C74.8%2C0%2C92.5%2C0%2C112.2c0%2C19.9%2C12.4%2C37.3%2C30.9%2C44c-0.8%2C4.1-1.2%2C8.4-1.2%2C12.7c0%2C36.8%2C29.9%2C66.7%2C66.7%2C66.7%26%2310%3B%26%239%3B%26%239%3Bc21.6%2C0%2C41.6-10.4%2C54.1-27.8c6.2%2C4.9%2C13.8%2C7.6%2C21.7%2C7.6c19.6%2C0%2C35.5-15.9%2C35.5-35.5c0-4.3-0.8-8.5-2.2-12.4%26%2310%3B%26%239%3B%26%239%3BC223.9%2C160.9%2C236.6%2C143.2%2C236.6%2C123.5z%20M91.6%2C34.8c10.9-15.9%2C28.9-25.4%2C48.1-25.4c32.2%2C0%2C58.4%2C26.2%2C58.4%2C58.4%26%2310%3B%26%239%3B%26%239%3Bc0%2C3.9-0.4%2C7.7-1.1%2C11.5l-52.2%2C45.8L93%2C101.5L82.9%2C79.9L91.6%2C34.8z%20M65.4%2C29c6.2%2C0%2C12.1%2C2%2C17%2C5.7l-7.8%2C40.3l-35.5-8.4%26%2310%3B%26%239%3B%26%239%3Bc-1.1-3.1-1.7-6.3-1.7-9.7C37.4%2C41.6%2C49.9%2C29%2C65.4%2C29z%20M9.1%2C112.3c0-16.7%2C11-31.9%2C26.9-37.2L75%2C84.4l9.1%2C19.5l-49.8%2C45%26%2310%3B%26%239%3B%26%239%3BC19.2%2C143.1%2C9.1%2C128.6%2C9.1%2C112.3z%20M145.2%2C200.9c-10.9%2C16.1-29%2C25.6-48.4%2C25.6c-32.3%2C0-58.6-26.3-58.6-58.5c0-4%2C0.4-7.9%2C1.1-11.7%26%2310%3B%26%239%3B%26%239%3Bl50.9-46l52%2C23.7l11.5%2C22L145.2%2C200.9z%20M171.2%2C206.6c-6.1%2C0-12-2-16.9-5.8l7.7-40.2l35.4%2C8.3c1.1%2C3.1%2C1.7%2C6.3%2C1.7%2C9.7%26%2310%3B%26%239%3B%26%239%3BC199.2%2C194.1%2C186.6%2C206.6%2C171.2%2C206.6z%20M200.5%2C160.5l-39-9.1l-10.4-19.8l51-44.7c15.1%2C5.7%2C25.2%2C20.2%2C25.2%2C36.5%26%2310%3B%26%239%3B%26%239%3BC227.4%2C140.1%2C216.4%2C155.3%2C200.5%2C160.5z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E	
------------

*Returns:* render



[float]
=== replace

Uses a regular expression to replace parts of a string.

*Accepts:* string

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_* (Aliases: `pattern`, `regex`)
|string
|The text or pattern of a JavaScript regular expression, for example, `"[aeiou]"`. 
You can use capture groups here.

|flags (Alias: `modifiers`)
|datatable
|Specify flags. See the
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp[RegExp documentation]
for reference (default: `g`).

|replacement
|string
|The replacement for the matching parts of string. Capture groups can be accessed 
by their index, for example $1 (default: `""`).
|===

*Returns:* string


[float]
=== revealImage

Configures an image reveal element.

*Accepts:* number

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|image
|string
|An image asset can be provided as a base64 dataurl, or passed in as a subexpression 
(see example below) 

|emptyImage
|string
|default: `null`

|origin
|string
|default: `bottom`
|===


Example value for the `image` argument, formatted as a base64 data URL:
[source, url]
------------
data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20viewBox%3D%22-3.948730230331421%20-1.7549896240234375%20245.25946044921875%20241.40370178222656%22%20width%3D%22245.25946044921875%22%20height%3D%22241.40370178222656%22%20style%3D%22enable-background%3Anew%200%200%20686.2%20235.7%3B%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cdefs%3E%0A%20%20%20%20%3Cstyle%20type%3D%22text%2Fcss%22%3E%0A%09.st0%7Bfill%3A%232D2D2D%3B%7D%0A%3C%2Fstyle%3E%0A%20%20%3C%2Fdefs%3E%0A%20%20%3Cg%20transform%3D%22matrix%281%2C%200%2C%200%2C%201%2C%200%2C%200%29%22%3E%0A%20%20%20%20%3Cg%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M329.4%2C160.3l4.7-0.5l0.3%2C9.6c-12.4%2C1.7-23%2C2.6-31.8%2C2.6c-11.7%2C0-20-3.4-24.9-10.2%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-4.9-6.8-7.3-17.4-7.3-31.7c0-28.6%2C11.4-42.9%2C34.1-42.9c11%2C0%2C19.2%2C3.1%2C24.6%2C9.2c5.4%2C6.1%2C8.1%2C15.8%2C8.1%2C28.9l-0.7%2C9.3h-53.8%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc0%2C9%2C1.6%2C15.7%2C4.9%2C20c3.3%2C4.3%2C8.9%2C6.5%2C17%2C6.5C312.8%2C161.2%2C321.1%2C160.9%2C329.4%2C160.3z%20M325%2C124.9c0-10-1.6-17.1-4.8-21.2%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-3.2-4.1-8.4-6.2-15.6-6.2c-7.2%2C0-12.7%2C2.2-16.3%2C6.5c-3.6%2C4.3-5.5%2C11.3-5.6%2C20.9H325z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M354.3%2C171.4V64h12.2v107.4H354.3z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M443.5%2C113.5v41.1c0%2C4.1%2C10.1%2C3.9%2C10.1%2C3.9l-0.6%2C10.8c-8.6%2C0-15.7%2C0.7-20-3.4c-9.8%2C4.3-19.5%2C6.1-29.3%2C6.1%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-7.5%2C0-13.2-2.1-17.1-6.4c-3.9-4.2-5.9-10.3-5.9-18.3c0-7.9%2C2-13.8%2C6-17.5c4-3.7%2C10.3-6.1%2C18.9-6.9l25.6-2.4v-7%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc0-5.5-1.2-9.5-3.6-11.9c-2.4-2.4-5.7-3.6-9.8-3.6l-32.1%2C0V87.2h31.3c9.2%2C0%2C15.9%2C2.1%2C20.1%2C6.4C441.4%2C97.8%2C443.5%2C104.5%2C443.5%2C113.5%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bz%20M393.3%2C146.7c0%2C10%2C4.1%2C15%2C12.4%2C15c7.4%2C0%2C14.7-1.2%2C21.8-3.7l3.7-1.3v-26.9l-24.1%2C2.3c-4.9%2C0.4-8.4%2C1.8-10.6%2C4.2%26%2310%3B%26%239%3B%26%239%3B%26%239%3BC394.4%2C138.7%2C393.3%2C142.2%2C393.3%2C146.7z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M491.2%2C98.2c-11.8%2C0-17.8%2C4.1-17.8%2C12.4c0%2C3.8%2C1.4%2C6.5%2C4.1%2C8.1c2.7%2C1.6%2C8.9%2C3.2%2C18.6%2C4.9%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc9.7%2C1.7%2C16.5%2C4%2C20.5%2C7.1c4%2C3%2C6%2C8.7%2C6%2C17.1c0%2C8.4-2.7%2C14.5-8.1%2C18.4c-5.4%2C3.9-13.2%2C5.9-23.6%2C5.9c-6.7%2C0-29.2-2.5-29.2-2.5%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bl0.7-10.6c12.9%2C1.2%2C22.3%2C2.2%2C28.6%2C2.2c6.3%2C0%2C11.1-1%2C14.4-3c3.3-2%2C5-5.4%2C5-10.1c0-4.7-1.4-7.9-4.2-9.6c-2.8-1.7-9-3.3-18.6-4.8%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-9.6-1.5-16.4-3.7-20.4-6.7c-4-2.9-6-8.4-6-16.3c0-7.9%2C2.8-13.8%2C8.4-17.6c5.6-3.8%2C12.6-5.7%2C20.9-5.7c6.6%2C0%2C29.6%2C1.7%2C29.6%2C1.7%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bv10.7C508.1%2C99%2C498.2%2C98.2%2C491.2%2C98.2z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M581.7%2C99.5h-25.9v39c0%2C9.3%2C0.7%2C15.5%2C2%2C18.4c1.4%2C2.9%2C4.6%2C4.4%2C9.7%2C4.4l14.5-1l0.8%2C10.1%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-7.3%2C1.2-12.8%2C1.8-16.6%2C1.8c-8.5%2C0-14.3-2.1-17.6-6.2c-3.3-4.1-4.9-12-4.9-23.6V99.5h-11.6V88.9h11.6V63.9h12.1v24.9h25.9V99.5z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M598.7%2C78.4V64.3h12.2v14.2H598.7z%20M598.7%2C171.4V88.9h12.2v82.5H598.7z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M663.8%2C87.2c3.6%2C0%2C9.7%2C0.7%2C18.3%2C2l3.9%2C0.5l-0.5%2C9.9c-8.7-1-15.1-1.5-19.2-1.5c-9.2%2C0-15.5%2C2.2-18.8%2C6.6%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-3.3%2C4.4-5%2C12.6-5%2C24.5c0%2C11.9%2C1.5%2C20.2%2C4.6%2C24.9c3.1%2C4.7%2C9.5%2C7%2C19.3%2C7l19.2-1.5l0.5%2C10.1c-10.1%2C1.5-17.7%2C2.3-22.7%2C2.3%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-12.7%2C0-21.5-3.3-26.3-9.8c-4.8-6.5-7.3-17.5-7.3-33c0-15.5%2C2.6-26.4%2C7.8-32.6C643%2C90.4%2C651.7%2C87.2%2C663.8%2C87.2z%22%2F%3E%0A%20%20%20%20%3C%2Fg%3E%0A%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M236.6%2C123.5c0-19.8-12.3-37.2-30.8-43.9c0.8-4.2%2C1.2-8.4%2C1.2-12.7C207%2C30%2C177%2C0%2C140.2%2C0%26%2310%3B%26%239%3B%26%239%3BC118.6%2C0%2C98.6%2C10.3%2C86%2C27.7c-6.2-4.8-13.8-7.4-21.7-7.4c-19.6%2C0-35.5%2C15.9-35.5%2C35.5c0%2C4.3%2C0.8%2C8.5%2C2.2%2C12.4%26%2310%3B%26%239%3B%26%239%3BC12.6%2C74.8%2C0%2C92.5%2C0%2C112.2c0%2C19.9%2C12.4%2C37.3%2C30.9%2C44c-0.8%2C4.1-1.2%2C8.4-1.2%2C12.7c0%2C36.8%2C29.9%2C66.7%2C66.7%2C66.7%26%2310%3B%26%239%3B%26%239%3Bc21.6%2C0%2C41.6-10.4%2C54.1-27.8c6.2%2C4.9%2C13.8%2C7.6%2C21.7%2C7.6c19.6%2C0%2C35.5-15.9%2C35.5-35.5c0-4.3-0.8-8.5-2.2-12.4%26%2310%3B%26%239%3B%26%239%3BC223.9%2C160.9%2C236.6%2C143.2%2C236.6%2C123.5z%20M91.6%2C34.8c10.9-15.9%2C28.9-25.4%2C48.1-25.4c32.2%2C0%2C58.4%2C26.2%2C58.4%2C58.4%26%2310%3B%26%239%3B%26%239%3Bc0%2C3.9-0.4%2C7.7-1.1%2C11.5l-52.2%2C45.8L93%2C101.5L82.9%2C79.9L91.6%2C34.8z%20M65.4%2C29c6.2%2C0%2C12.1%2C2%2C17%2C5.7l-7.8%2C40.3l-35.5-8.4%26%2310%3B%26%239%3B%26%239%3Bc-1.1-3.1-1.7-6.3-1.7-9.7C37.4%2C41.6%2C49.9%2C29%2C65.4%2C29z%20M9.1%2C112.3c0-16.7%2C11-31.9%2C26.9-37.2L75%2C84.4l9.1%2C19.5l-49.8%2C45%26%2310%3B%26%239%3B%26%239%3BC19.2%2C143.1%2C9.1%2C128.6%2C9.1%2C112.3z%20M145.2%2C200.9c-10.9%2C16.1-29%2C25.6-48.4%2C25.6c-32.3%2C0-58.6-26.3-58.6-58.5c0-4%2C0.4-7.9%2C1.1-11.7%26%2310%3B%26%239%3B%26%239%3Bl50.9-46l52%2C23.7l11.5%2C22L145.2%2C200.9z%20M171.2%2C206.6c-6.1%2C0-12-2-16.9-5.8l7.7-40.2l35.4%2C8.3c1.1%2C3.1%2C1.7%2C6.3%2C1.7%2C9.7%26%2310%3B%26%239%3B%26%239%3BC199.2%2C194.1%2C186.6%2C206.6%2C171.2%2C206.6z%20M200.5%2C160.5l-39-9.1l-10.4-19.8l51-44.7c15.1%2C5.7%2C25.2%2C20.2%2C25.2%2C36.5%26%2310%3B%26%239%3B%26%239%3BC227.4%2C140.1%2C216.4%2C155.3%2C200.5%2C160.5z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E	
------------

*Returns:* render


[float]
=== rounddate

Rounds milliseconds since epoch using a Moment.js formatting string; returns 
milliseconds since epoch.

*Accepts:* number

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_*
|string
|Moment.js Format with which to bucket. See the 
https://momentjs.com/docs/#/displaying/[MomentJS documentation]. 
For example, "YYYY-MM" rounds to the month. 
|===

*Returns:* number


[float]
=== rowCount

Returns the number of rows. Pairs with `ply` to get the count of unique column 
values, or combinations of unique column values.

*Accepts:* datatable

*Returns:* number

[float]
=== seriesStyle

Creates an object used for describing the properties of a series on a chart. 
You typically use this inside of a charting function.

*Accepts:* null

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|label*
|string
|The label of the line this style applies to, not the name you would like to give the line.

|color
|string
|The color to assign the line

|lines
|number
|The width of the line (default: `0`)

|bars
|number
|The width of bars (default: `0`)

|points
|number
|The size of points on line (default: `5`)

|fill
|number, boolean
|Designates if points should be filled (default: `false`)

|stack
|number
|Designates if the series should be stacked? This number is the stack "id"; series 
with the same stack id are stacked together.

|horizontalBars
|boolean
|Sets the orientation of bars in the chart to horizontal (default: `false`)
|===

*Returns:*  Depends on your input and arguments


[float]
=== shape

Creates a shape.

*Accepts:* null

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_ (Alias: `shape`)
|string
|Pick a shape (default: `square`)

|fill
|string
|Valid CSS color string (default: `black`)

|border (Alias `stroke`)
|number
|Valid CSS color string

|borderWidth (Alias: `strokeWidth`)
|number
|Thickness of the border (default: `0`)

|maintainAspect
|boolean
|Select `true` to maintain aspect ratio (default: `false`)
|===

*Returns:* shape


[float]
=== sort

Sorts a datatable on a column.

*Accepts:* datatable

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_* (Alias: `column`)
|string
|The column to sort on. If column is not specified, the datatable is sorted on 
the first column.

|reverse*
|boolean
|Reverse the sort order. If reverse is not specified, the datatable is sorted 
in ascending order.	
|===

*Returns:* datatable


[float]
=== staticColumn

Adds a column with a static value.

*Accepts:* datatable

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_* (Alias: `column`)
|string
|The name of the new column

|value
|string, number, boolean
|The value to insert in each column (default: is `null`). Tip: Use a sub-expression 
to rollup other columns into a static value. 	
|===

*Returns:* datatable


[float]
=== string

Outputs a string made of other strings. Mostly useful when combined with 
sub-expressions that output a string, or something castable to a string.

*Accepts:* Anything or nothing

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_*
|string
|One or more strings to join together; include spaces where needed	
|===

*Returns:* string


[float]
=== switch

Performs conditional logic with multiple conditions. See also the case function,
which builds a case to pass to the switch function.

*Accepts:* Anything or nothing

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_* (Alias: `case`)
|case
|The list of conditions to check

|default (Alias: `finally`)
|any
|The default case, if no cases match
|===

*Returns:* Depends on your input and arguments


[float]
=== table

Configures a data table element.

*Accepts:* datatable

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|font
|style
|Font style (default: `{font}`)

|paginate
|boolean
|Show pagination controls (default: `true`). If set to `false` only the first 
page is displayed.

|perPage
|number
|Show this many rows per page (default: `10`)

|showHeader
|boolean
|Show or hide the header row with titles for each column (default: `true`)
|===

*Returns:* render


[float]
=== tail

Gets the last N rows from the end of a datatable. See also, `head`.

*Accepts:* datatable

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_*
|case
|Return this many rows from the end of the datatable
|===

*Returns:* datatable


[float]
=== timefilter

Creates a time filter for querying a source.

*Accepts:* filter

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|column (Aliases: `field`, `c`)
|any
|The column or field to attach the filter to (default: `@timestamp`)

|from (Aliases: `f`, `start`)
|string
|Beginning of the range, in ISO8601 or {es} datemath format

|to (Aliases: `t`, `end`)
|string
|End of the range, in ISO8601 or {es} datemath format
|===

*Returns:* filter


[float]
=== timefilterControl

Configures a time filter control element.

*Accepts:* null

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|column (Aliases: `field`, `c`)
|any
|The column or field to attach the filter to

|compact
|any
|Show the time filter as a button that triggers a popover (default: `true`)
|===

*Returns:* render


[float]
=== to

Explicitly casts from one type to another.

*Accepts:* Anything or nothing

[cols="3*^<"]
|===
s|Argument
s|Type
s|Description

|_Unnamed_* (Alias: `type`)
|string
|A known type
|===

*Returns:* Depends on your input and arguments

