@jpmorganchase/perspective

Perspective.js

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
@jpmorganchase/perspective
7,447970.2.235 years ago6 years agoMinified + gzip package size for @jpmorganchase/perspective in KB

Readme

perspective

The main API module for Perspective.
* [~view](#module_perspective..view)
    * [new view()](#new_module_perspective..view_new)
    * [.get_config()](#module_perspective..view+get_config) ⇒ <code>object</code>
    * [.delete()](#module_perspective..view+delete)
    * [.schema()](#module_perspective..view+schema) ⇒ <code>Promise.<Object></code>
    * [.to_columns([options])](#module_perspective..view+to_columns) ⇒ <code>Promise.<Array></code>
    * [.to_json([options])](#module_perspective..view+to_json) ⇒ <code>Promise.<Array></code>
    * [.to_csv([options])](#module_perspective..view+to_csv) ⇒ <code>Promise.<string></code>
    * [.col_to_js_typed_array(column_name)](#module_perspective..view+col_to_js_typed_array) ⇒ <code>Promise.<TypedArray></code>
    * [.to_arrow([options])](#module_perspective..view+to_arrow) ⇒ <code>Promise.<TypedArray></code>
    * [.num_rows()](#module_perspective..view+num_rows) ⇒ <code>Promise.<number></code>
    * [.num_columns()](#module_perspective..view+num_columns) ⇒ <code>Promise.<number></code>
    * [.get_row_expanded()](#module_perspective..view+get_row_expanded) ⇒ <code>Promise.<bool></code>
    * [.expand()](#module_perspective..view+expand) ⇒ <code>Promise.<void></code>
    * [.collapse()](#module_perspective..view+collapse) ⇒ <code>Promise.<void></code>
    * [.set_depth()](#module_perspective..view+set_depth)
    * [.on_update(callback)](#module_perspective..view+on_update)
    * [.on_delete(callback)](#module_perspective..view+on_delete)
* [~table](#module_perspective..table)
    * [new table()](#new_module_perspective..table_new)
    * [.clear()](#module_perspective..table+clear)
    * [.replace()](#module_perspective..table+replace)
    * [.delete()](#module_perspective..table+delete)
    * [.on_delete(callback)](#module_perspective..table+on_delete)
    * [.size()](#module_perspective..table+size) ⇒ <code>Promise.<number></code>
    * [.schema(computed)](#module_perspective..table+schema) ⇒ <code>Promise.<Object></code>
    * [.computed_schema()](#module_perspective..table+computed_schema) ⇒ <code>Promise.<Object></code>
    * [.is_valid_filter([filter])](#module_perspective..table+is_valid_filter) ⇒ <code>boolean</code>
    * [.view([config])](#module_perspective..table+view) ⇒ <code>view</code>
    * [.update(data)](#module_perspective..table+update)
    * [.remove(data)](#module_perspective..table+remove)
    * [.add_computed(computed)](#module_perspective..table+add_computed)
    * [.columns(computed)](#module_perspective..table+columns) ⇒ <code>Array.<string></code>
    * [.column_metadata()](#module_perspective..table+column_metadata) ⇒ <code>Array.<object></code>

perspective~view

Kind: inner class of perspective
* [new view()](#new_module_perspective..view_new)
* [.get_config()](#module_perspective..view+get_config) ⇒ <code>object</code>
* [.delete()](#module_perspective..view+delete)
* [.schema()](#module_perspective..view+schema) ⇒ <code>Promise.<Object></code>
* [.to_columns([options])](#module_perspective..view+to_columns) ⇒ <code>Promise.<Array></code>
* [.to_json([options])](#module_perspective..view+to_json) ⇒ <code>Promise.<Array></code>
* [.to_csv([options])](#module_perspective..view+to_csv) ⇒ <code>Promise.<string></code>
* [.col_to_js_typed_array(column_name)](#module_perspective..view+col_to_js_typed_array) ⇒ <code>Promise.<TypedArray></code>
* [.to_arrow([options])](#module_perspective..view+to_arrow) ⇒ <code>Promise.<TypedArray></code>
* [.num_rows()](#module_perspective..view+num_rows) ⇒ <code>Promise.<number></code>
* [.num_columns()](#module_perspective..view+num_columns) ⇒ <code>Promise.<number></code>
* [.get_row_expanded()](#module_perspective..view+get_row_expanded) ⇒ <code>Promise.<bool></code>
* [.expand()](#module_perspective..view+expand) ⇒ <code>Promise.<void></code>
* [.collapse()](#module_perspective..view+collapse) ⇒ <code>Promise.<void></code>
* [.set_depth()](#module_perspective..view+set_depth)
* [.on_update(callback)](#module_perspective..view+on_update)
* [.on_delete(callback)](#module_perspective..view+on_delete)

new view()

A View object represents a specific transform (configuration or pivot, filter, sort, etc) configuration on an underlying table. A View receives all updates from the table from which it is derived, and can be serialized to JSON or trigger a callback when it is updated. View objects are immutable, and will remain in memory and actively process updates until its delete method is called.
Note This constructor is not public - Views are created by invoking the view method.
Example
// Returns a new View, pivoted in the row space by the "name" column.
table.view({row_pivots: ["name"]});

view.get\_config() ⇒ object

A copy of the config object passed to the table#view method which created this view.
Kind: instance method of view
Returns: object - Shared the same key/values properties as view

view.delete()

Delete this view and clean up all resources associated with it. View objects do not stop consuming resources or processing updates when they are garbage collected - you must call this method to reclaim these.
Kind: instance method of view

view.schema() ⇒ Promise.<Object>

The schema of this view. A schema is an Object, the keys of which are the columns of this view, and the values are their string type names. If this view is aggregated, theses will be the aggregated types; otherwise these types will be the same as the columns in the underlying table
Kind: instance method of view
Returns: Promise.<Object> - A Promise of this view's schema.

view.to\_columns(options) ⇒ Promise.<Array>

Serializes this view to JSON data in a column-oriented format.
Kind: instance method of view
Returns: Promise.<Array> - A Promise resolving to An array of Objects representing the rows of this view. If this view had a "rowpivots" config parameter supplied when constructed, each row Object will have a "ROWPATH" key, whose value specifies this row's aggregated path. If this view had a "columnpivots" config parameter supplied, the keys of this object will be comma-prepended with their comma-separated column paths.
Params
  • options Object - An optional configuration object.
- .start_row <code>number</code> - The starting row index from which
to serialize.
- .end_row <code>number</code> - The ending row index from which
to serialize.
- .start_col <code>number</code> - The starting column index from which
to serialize.
- .end_col <code>number</code> - The ending column index from which
to serialize.

view.to\_json(options) ⇒ Promise.<Array>

Serializes this view to JSON data in a row-oriented format.
Kind: instance method of view

Returns: Promise.<Array> - A Promise resolving to An array of Objects representing the rows of this view. If this view had a "rowpivots" config parameter supplied when constructed, each row Object will have a "ROWPATH" key, whose value specifies this row's aggregated path. If this view had a "columnpivots" config parameter supplied, the keys of this object will be comma-prepended with their comma-separated column paths.
Params
  • options Object - An optional configuration object.
- .start_row <code>number</code> - The starting row index from which
to serialize.
- .end_row <code>number</code> - The ending row index from which
to serialize.
- .start_col <code>number</code> - The starting column index from which
to serialize.
- .end_col <code>number</code> - The ending column index from which
to serialize.

view.to\_csv(options) ⇒ Promise.<string>

Serializes this view to CSV data in a standard format.
Kind: instance method of view

Returns: Promise.<string> - A Promise resolving to a string in CSV format representing the rows of this view. If this view had a "rowpivots" config parameter supplied when constructed, each row will have prepended those values specified by this row's aggregated path. If this view had a "columnpivots" config parameter supplied, the keys of this object will be comma-prepended with their comma-separated column paths.
Params
  • options Object - An optional configuration object.
- .start_row <code>number</code> - The starting row index from which
to serialize.
- .end_row <code>number</code> - The ending row index from which
to serialize.
- .start_col <code>number</code> - The starting column index from which
to serialize.
- .end_col <code>number</code> - The ending column index from which
to serialize.
- .config <code>Object</code> - A config object for the Papaparse [https://www.papaparse.com/docs#json-to-csv](https://www.papaparse.com/docs#json-to-csv)
config object.

view.col\_to\_js\_typed\_array(columnname) ⇒ Promise.<TypedArray>

Serializes a view column into a TypedArray.
Kind: instance method of view
Returns: Promise.<TypedArray> - A promise resolving to a TypedArray representing the data of the column as retrieved from the view - all pivots, aggregates, sorts, and filters have been applied onto the values inside the TypedArray. The TypedArray will be constructed based on data type - integers will resolve to Int8Array, Int16Array, or Int32Array. Floats resolve to Float32Array or Float64Array. If the column cannot be found, or is not of an integer/float type, the Promise returns undefined.
Params
  • columnname string - The name of the column to serialize.

view.to\_arrow(options) ⇒ Promise.<TypedArray>

Serializes a view to arrow.
Kind: instance method of view
Returns: Promise.<TypedArray> - A Table in the Apache Arrow format containing data from the view.
Params
  • options Object - An optional configuration object.
- .start_row <code>number</code> - The starting row index from which
to serialize.
- .end_row <code>number</code> - The ending row index from which
to serialize.
- .start_col <code>number</code> - The starting column index from which
to serialize.
- .end_col <code>number</code> - The ending column index from which
to serialize.

view.num\_rows() ⇒ Promise.<number>

The number of aggregated rows in this view. This is affected by the "rowpivots" configuration parameter supplied to this view's contructor.
Kind: instance method of view
Returns: Promise.<number> - The number of aggregated rows.

view.num\_columns() ⇒ Promise.<number>

The number of aggregated columns in this view. This is affected by the "columnpivots" configuration parameter supplied to this view's contructor.
Kind: instance method of view
Returns: Promise.<number> - The number of aggregated columns.

view.get\_row\_expanded() ⇒ Promise.<bool>

Whether this row at index idx is in an expanded or collapsed state.
Kind: instance method of view

Returns: Promise.<bool> - Whether this row is expanded.

view.expand() ⇒ Promise.<void>

Expands the row at index idx.
Kind: instance method of view

view.collapse() ⇒ Promise.<void>

Collapses the row at index idx.
Kind: instance method of view

view.set\_depth()

Set expansion depth of the pivot tree.
Kind: instance method of view

view.on\_update(callback)

Register a callback with this view. Whenever the view's underlying table emits an update, this callback will be invoked with the aggregated row deltas.
Kind: instance method of view
Params
  • callback function - A callback function invoked on update. The
parameter to this callback is dependent on the mode parameter:
- "none" (default): The callback is invoked without an argument.
- "rows": The callback is invoked with the changed rows.

view.on\_delete(callback)

Register a callback with this view. Whenever the view is deleted, this callback will be invoked.
Kind: instance method of view
Params
  • callback function - A callback function invoked on update. The
parameter to this callback shares a structure with the return type of
[to_json](#module_perspective..view+to_json).

perspective~table

Kind: inner class of perspective
* [new table()](#new_module_perspective..table_new)
* [.clear()](#module_perspective..table+clear)
* [.replace()](#module_perspective..table+replace)
* [.delete()](#module_perspective..table+delete)
* [.on_delete(callback)](#module_perspective..table+on_delete)
* [.size()](#module_perspective..table+size) ⇒ <code>Promise.<number></code>
* [.schema(computed)](#module_perspective..table+schema) ⇒ <code>Promise.<Object></code>
* [.computed_schema()](#module_perspective..table+computed_schema) ⇒ <code>Promise.<Object></code>
* [.is_valid_filter([filter])](#module_perspective..table+is_valid_filter) ⇒ <code>boolean</code>
* [.view([config])](#module_perspective..table+view) ⇒ <code>view</code>
* [.update(data)](#module_perspective..table+update)
* [.remove(data)](#module_perspective..table+remove)
* [.add_computed(computed)](#module_perspective..table+add_computed)
* [.columns(computed)](#module_perspective..table+columns) ⇒ <code>Array.<string></code>
* [.column_metadata()](#module_perspective..table+column_metadata) ⇒ <code>Array.<object></code>

new table()

A Table object is the basic data container in Perspective. Tables are typed - they have an immutable set of column names, and a known type for each.
Note This constructor is not public - Tables are created by invoking the table factory method, either on the perspective module object, or an a module:perspective~worker instance.

table.clear()

Remove all rows in this table while preserving the schema and construction options.
Kind: instance method of table

table.replace()

Replace all rows in this table the input data.
Kind: instance method of table

table.delete()

Delete this table and clean up all resources associated with it. Table objects do not stop consuming resources or processing updates when they are garbage collected - you must call this method to reclaim these.
Kind: instance method of table

table.on\_delete(callback)

Register a callback with this table. Whenever the view is deleted, this callback will be invoked.
Kind: instance method of table
Params
  • callback function - A callback function invoked on update. The
parameter to this callback shares a structure with the return type of
[module:perspective~table#to_json](module:perspective~table#to_json).

table.size() ⇒ Promise.<number>

The number of accumulated rows in this table. This is affected by the "index" configuration parameter supplied to this view's contructor - as rows will be overwritten when they share an idnex column.
Kind: instance method of table
Returns: Promise.<number> - The number of accumulated rows.

table.schema(computed) ⇒ Promise.<Object>

The schema of this table. A schema is an Object whose keys are the columns of this table, and whose values are their string type names.
Kind: instance method of table
Returns: Promise.<Object> - A Promise of this table's schema.
Params
  • computed boolean - Should computed columns be included?
(default false)

table.computed\_schema() ⇒ Promise.<Object>

The computed schema of this table. Returns a schema of only computed columns added by the user, the keys of which are computed columns and the values an Object containing the associated columnname, columntype, and computation.
Kind: instance method of table
Returns: Promise.<Object> - A Promise of this table's computed schema.

table.is\_valid\_filter(filter) ⇒ boolean

Determines whether a given filter is valid.
Kind: instance method of table
Returns: boolean - Whether the filter is valid
Params
  • filter Array.<string> - A filter configuration array to test

table.view(config) ⇒ view

Create a new view from this table with a specified configuration.
Kind: instance method of table
Returns: view - A new view object for the supplied configuration, bound to this table
Params
  • config Object - The configuration object for this view.
- [.row_pivots] <code>Array.<string></code> - An array of column names
to use as Row Pivots.
- [.column_pivots] <code>Array.<string></code> - An array of column names
to use as Column Pivots.
- [.columns] <code>Array.<Object></code> - An array of column names for the
output columns. If none are provided, all columns are output.
- [.aggregates] <code>Object</code> - An object, the keys of which are column
names, and their respective values ar ethe aggregates calculations to use when this view has row_pivots. A column provided to config.columns without an aggregate in this object, will use the default aggregate calculation for its type.
- [.filter] <code>Array.<Array.<string>></code> - An Array of Filter configurations to
apply. A filter configuration is an array of 3 elements: A column name, a supported filter comparison string (e.g. '===', '>'), and a value to compare.
- [.sort] <code>Array.<string></code> - An Array of Sort configurations to apply.
A sort configuration is an array of 2 elements: A column name, and a sort direction, which are: "none", "asc", "desc", "col asc", "col desc", "asc abs", "desc abs", "col asc abs", "col desc abs".
Example
var view = table.view({
     row_pivots: ['region'],
     columns: ["region"],
     aggregates: {"region": "dominant"},
     filter: [['client', 'contains', 'fred']],
     sort: [['value', 'asc']]
});

table.update(data)

Updates the rows of a table. Updated rows are pushed down to any derived view objects.
Kind: instance method of table
See: table
Params
  • data Object.<string, Array> | Array.<Object> | string - The input data
for this table. The supported input types mirror the constructor options, minus the ability to pass a schema (Object) as this table has already been constructed, thus its types are set in stone.

table.remove(data)

Removes the rows of a table. Removed rows are pushed down to any derived view objects.
Kind: instance method of table
See: table
Params
  • data Array.<Object> - An array of primary keys to remove.

table.add\_computed(computed)

Create a new table with the addition of new computed columns (defined as javascript functions)
Kind: instance method of table
Params
  • computed Computation - A computation specification object

table.columns(computed) ⇒ Array.<string>

The column names of this table.
Kind: instance method of table
Returns: Array.<string> - An array of column names for this table.
Params
  • computed boolean - Should computed columns be included?
(default false)

table.column\_metadata() ⇒ Array.<object>

Column metadata for this table.
If the column is computed, the computed property is an Object containing: - Array input_columns - String input_type - Object computation.
Otherwise, computed is undefined.
Kind: instance method of table
Returns: Array.<object> - An array of Objects containing metadata for each column.