---
schema_version: "1"
id: f9d94e296a20a1053238e18f10b2174ea3e9c7f517c0206a271c1ed5700b68cf
title: API Reference
collection: tableau
version: current
locale: en-us
portal_url: https://docs.salesforce.com/tableau/current/en-us/api/js_api/JavaScriptAPI/js_api_ref.md
canonical_url: https://help.tableau.com/current/api/js_api/en-us/JavaScriptAPI/js_api_ref.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 4f750dcdc8ddf9745622931ca5ebe339732080d62f09006537da33a60739e68d
description: Important changes for the Tableau JavaScript API
---
[Skip to main content](#main-content)

# API Reference

**Important changes for the Tableau JavaScript API**

As of February 2024, the Tableau JavaScript API is deprecated. Use the Embedding API v3 instead for embedding interactive views into web pages and applications. For guidance on embedding Tableau views, see the [Tableau Embedding API v3 Help](https://help.tableau.com/current/api/embedding_api/en-us/index.html).

This section describes classes and methods of the Tableau JavaScript API.

The JavaScript API files are located on the server (including Tableau Cloud and Tableau Public). There is no separate download. To use the JavaScript API, you just specify the URL to the JavaScript API file in your web page. For more information, see [Access the API](https://help.tableau.com/current/api/js_api/en-us/JavaScriptAPI/js_api_concepts_get_API.htm).

## Style and Conventions

Tableau's JavaScript API follows these JavaScript standards for formatting names:

- **Classes** use PascalCase (initial capital letter, with each subsequent word capitalized).
- **Namespaces, methods, parameters, and variables** use camelCase (initial lower-case letter, with each subsequent word capitalized).
- **Constants and enum values** use UPPERCASE; multi-word names use UPPERCASE\_UNDERSCORE\_DELIMITED.
- **Protected variables or method** start with an initial underscore ( \_ ) character, indicating that it should not be referenced by the programmer.

Tableau does not provide support for programs that customers create that use the Tableau JavaScript API. For help with your code, submit questions and ask for help on the Tableau developer community forums. Tableau does provide support for potential bugs in the Tableau JavaScript API code itself, and for unmodified sample code that isn't working.

## Top-Level Class Diagram

The following class diagram shows the relationships between the top-level classes, as well as the inheritance hierarchy for the `Sheet`, `Dashboard`, `Story` and `Worksheet` classes. Note that there's always a way to traverse back up the containment hierarchy with parent pointers. The exception of `VizManager`, because that's a static class and always accessible.

![](/tableau/current/en-us/api/js_api/en-us/Img/jsapi_toplevel.png)

## Asynchronous and Error Classes

### Promise Class

Represents a promise to return a value from an asynchronous method in the future. The Tableau JavaScript API implements the [Promises/A](http://wiki.commonjs.org/wiki/Promises/A) specification.

#### Methods

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Return Type
                    </p>
                        </td>
                        <td width="49%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>then(callback: Function, errback: Function)</b>
                                
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise</p>
                        </td>
                        <td width="49%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Creates a link in the asynchronous callable chain. The <code>callback</code> function is called on success. The <code>errback</code> function is called when there is an error. Both parameters are optional.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>always(callback: Function)</b>
                                
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise</p>
                        </td>
                        <td width="49%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Registers a callback that will be called when a promise is resolved or rejected. Shortcut for <code>then(callback, callback)</code>.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>otherwise(errback: Function)</b>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            Promise
                        </td>
                        <td width="49%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Registers a rejection handler. Shortcut for <code>then(null, errback)</code>.</td>
                    </tr>
                </tbody></table>

### TableauException Class

The `TableauException` class is not a real class, but simply adds an `id` field to the standard JavaScript `Error` object when an exception is thrown from within the API. This allows you to uniquely identify the error without having to parse the error string. It also allows you to add localized messages.

#### Constructor

There is no public constructor. The only way to get a reference to a `TableauException` object is within a `catch` block.

#### Fields

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="44%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>tableauSoftwareErrorCode</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>ErrorCode</p>
                        </td>
                        <td width="44%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Represents an <code>ErrorCode</code> enum value.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>message</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>string</p>
                        </td>
                        <td width="44%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>This is already defined on the standard <span class="CodeChar">Error</span> object, but the message will contain a
 description of the exception that the API code specifies.</p>
                        </td>
                    </tr>
                </tbody></table>

### ErrorCode Enum

Here's a list of the different exceptions that the API can throw:

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Value
                    </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>BROWSER_NOT_CAPABLE</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                browserNotCapable
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The browser is not capable of supporting the Tableau JavaScript API.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                 <b>DOWNLOAD_WORKBOOK_ NOT_ALLOWED</b>
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                downloadWorkbookNotAllowed
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The permissions on a workbook or a view do not allow downloading the workbook.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>FILTER_CANNOT_BE_ PERFORMED</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                filterCannotBePerformed
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>An error occurred while attempting to perform a filter operation.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>INDEX_OUT_OF_RANGE</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                indexOutOfRange
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Attempted to switch to a sheet by index that does not exist in the workbook.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>INTERNAL_ERROR</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                internalError
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>An error occurred within the Tableau JavaScript API. Contact Tableau Support.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>INVALID_AGGREGATION_ FIELD_NAME</b>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            invalidAggregationFieldName
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">An invalid aggregation was specified for the filter, such as setting a range filter to "SUM(Sales)" instead of "Sales".</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>INVALID_CUSTOM_VIEW_ NAME</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                invalidCustomViewName
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>An operation was attempted on a custom view that does not exist.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>INVALID_DATE_PARAMETER</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                invalidDateParameter
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>An invalid date was specified in a method that required a date parameter.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>INVALID_FILTER_ FIELDNAME</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                invalidFilterFieldName
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>A filter operation was attempted on a field that does not exist in the data source.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>INVALID_FILTER_ FIELDNAME_OR_VALUE</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                invalidFilterFieldNameOrValue
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Either a filter operation was attempted on a field that does not exist in the data source, or the value supplied in the filter operation is the wrong data type or format.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>INVALID_FILTER_ FIELDVALUE</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                invalidFilterFieldValue
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>A filter operation was attempted using a value that is the wrong data type or format.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>INVALID_PARAMETER</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                invalidParameter
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>A parameter is not the correct data type or format. The name of the parameter is specified in the <code>Error.message</code> field.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>INVALID_SELECTION_DATE</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                invalidSelectionDate
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>An invalid date value was specified in a <code>Sheet.selectMarksAsync()</code> call for a date field.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>INVALID_SELECTION_ FIELDNAME</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                invalidSelectionFieldName
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>A field was specified in a <code>Sheet.selectMarksAsync()</code> call that does not exist in the data source.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>INVALID_SELECTION_VALUE</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                invalidSelectionValue
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>An invalid value was specified in a <code>Sheet.selectMarksAsync()</code> call.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>INVALID_SIZE</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                invalidSize
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>A negative size was specified or the maxSize value is less than minSize in <code>Sheet.changeSizeAsync()</code>.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>INVALID_SIZE_BEHAVIOR_ ON_WORKSHEET</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                invalidSizeBehaviorOnWorksheet
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>A behavior other than <code>SheetSizeBehavior.AUTOMATIC</code> was specified in <code>Sheet.changeSizeAsync() </code>when the sheet is a Worksheet instance.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>INVALID_URL</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                invalidUrl
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The URL specified in the <code>Viz</code> class constructor is not valid.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>MISSING_MAX_SIZE</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                missingMaxSize
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The <code>maxSize</code> field is missing in <code>Sheet.changeSizeAsync()</code> when specifying <code>SheetSizeBehavior.ATMOST</code>.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>MISSING_MIN_SIZE</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                missingMinSize
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The <code>minSize</code> field is missing in <code>Sheet.changeSizeAsync() </code>when specifying <code>SheetSizeBehavior.ATLEAST</code>.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>MISSING_MINMAX_SIZE</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                missingMinMaxSize
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Either or both of the <code>minSize</code> or <code>maxSize</code> fields is missing in <code>Sheet.changeSizeAsync()</code> when specifying <code>SheetSizeBehavior.RANGE</code>.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>MISSING_RANGEN_FOR_ RELATIVE_DATE_FILTERS</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>missingRangeNForRelativeDateFilters </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The <code>rangeN </code>field is missing for a relative date filter of type <code>LASTN</code> or <code>NEXTN</code>.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>NO_URL_FOR_HIDDEN_ WORKSHEET</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                noUrlForHiddenWorksheet
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>An attempt was made to access <code>Sheet.getUrl()</code> on a hidden sheet. Hidden sheets do not have URLs.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>NO_URL_OR_PARENT_ ELEMENT_NOT_FOUND</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                noUrlOrParentElementNotFound
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>One or both of the <code>parentElement</code> or the URL parameters is not specified in the <code>Viz</code> constructor.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>NOT_ACTIVE_SHEET</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                notActiveSheet
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>An operation was attempted on a sheet that is not active or embedded within the active dashboard.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>NULL_OR_EMPTY_ PARAMETER</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                nullOrEmptyParameter
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>A required parameter was not specified, null, or an empty string/array.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>SERVER_ERROR</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                serverError
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>A general-purpose server error occurred. Details are contained in the <code>Error</code> object.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>SHEET_NOT_IN_WORKBOOK</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                sheetNotInWorkbook
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>An operation was attempted on a sheet that does not exist in the workbook.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>STALE_DATA_REFERENCE</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                staleDataReference
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>An operation is performed on a <code>CustomView</code> object that is no longer valid (it has been removed).</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>UNSUPPORTED_EVENT_ NAME</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                unsupportedEventName
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>An unknown event name was specified in the call to <code>Viz.addEventListener</code> or <code>Viz.removeEventListener</code>.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>VIZ_ALREADY_IN_MANAGER</b>
                                
                            </p>
                        </td>
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                vizAlreadyInManager
                            </p>
                        </td>
                        <td width="45%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>A <code>Viz</code> object has already been created as a child of the <code>parentElement</code> specified in the <code>Viz</code> constructor.</p>
                        </td>
                    </tr>
                </tbody></table>

## Viz Classes

### VizManager Class

Manages all of the `Viz` instances on the page. This is a static class, meaning that all properties and methods are static and there is only a single instance of the class.

This class can manage views that have been created using Tableau 8.0 or later. It cannot manage views created using earlier versions of Tableau.

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="22%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="17%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="22%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getVizs</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="17%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Viz[]</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Collection of  views on the
 hosting page.</p>
                        </td>
                    </tr>
                </tbody></table>

### Viz Class

Wraps an `iframe` element showing one or more sheets in a Tableau workbook. Contains all of the chrome surrounding the view.

#### Constructor

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Signature
                    </p>
                        </td>
                        <td width="59%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>Viz</b><b>(parentElement: domNode, url: string, options: VizCreateOptions)</b>
                                
                            </p>
                        </td>
                        <td width="59%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Creates a new Tableau <code>Viz</code> inside
 of the given HTML container, which is typically a <code>&lt;div&gt;</code>
  element. Each option as well as the options parameter is optional. If there is already a <code>Viz</code>
  associated with the <code>parentElement</code>,
 an exception is thrown. Before reusing the <code>parentElement</code> you must first call  <code>dispose()</code>.</p>
                        </td>
                    </tr>
                </tbody></table>

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="14%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p style="margin-bottom: 12.0pt;">
                                <b>getAreTabsHidden</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="14%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                bool
                            </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Indicates whether the tabs are displayed in the UI. It
 does not actually hide individual tabs.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p style="margin-bottom: 12.0pt;">
                                <b>getIsToolbarHidden</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="14%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                bool
                            </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Indicates whether the toolbar is displayed.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getIsHidden</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="14%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                bool
                            </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Indicates whether the visualization is displayed
 on the hosting page.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getParentElement</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="14%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>domNode</p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Returns the node that was specified in the constructor.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getUrl</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="14%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>string</p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The URL of the visualization, as specified
 in the constructor</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getWorkbook</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="14%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Workbook</p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>One <code>Workbook</code> is supported per visualization.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getAreAutomaticUpdatesPaused</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="14%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>bool</p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Indicates whether automatic updates are currently paused.</p>
                        </td>
                    </tr>
                </tbody></table>

#### Events

Events are added or removed via the following two calls.

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Return Type
                    </p>
                        </td>
                        <td width="49%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>addEventListener(</b>
                                    <br style="mc-tag-and-class: b;"><b> type: TableauEventName,</b>
                                    <br style="mc-tag-and-class: b;"><b> listener: Function)</b>
                                
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                None
                            </p>
                        </td>
                        <td width="49%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Adds an event listener to the specified event.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>removeEventListener</b><b>(<br> type: TableauEventName,<br> listener: Function)</b>
                                
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                None
                            </p>
                        </td>
                        <td width="49%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Removes an event listener from the specified event.</p>
                        </td>
                    </tr>
                </tbody></table>

#### Methods

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="8%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>show()<br>  hide()</b>
                                
                            </p>
                        </td>
                        <td width="8%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                None
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Shows or hides the <code>iframe</code> element hosting the visualization.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>dispose()</b>
                            </p>
                        </td>
                        <td width="8%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                None
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Cleans up any resources associated with the visualization, removes the visualization from the <code>VizManager</code> instance, and removes any DOM elements from
                    the <code>parentElement</code> object. In effect, this method restores the page to what it was before a <code>Viz</code> object was instantiated. <br><b>Note</b> Before you call this method, make sure you are done referencing any objects.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>pauseAutomaticUpdatesAsync</b><b>()<br>resumeAutomaticUpdatesAsync()<br>toggleAutomaticUpdatesAsync()</b>
                                
                            </p>
                        </td>
                        <td width="8%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                None
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Pauses or resumes layout updates. This is useful if you are resizing the visualization or performing multiple calls
                         that could affect the layout.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>revertAllAsync</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="8%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                None
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Equivalent to clicking on the Revert All toolbar button,
 which restores the workbook to its starting state.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>refreshDataAsync</b>
                                <b>()</b>
                            </p>
                        </td>
                        <td width="8%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                None
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Equivalent to clicking on the Refresh Data toolbar button.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                                    <b>showDownloadDialog()</b>
                        </td>
                        <td width="8%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            None
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Equivalent to clicking on <span class="uicontrol">Download</span> from the toolbar, which shows the Download dialog box allowing the user to select the type of download. </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>showDownloadWorkbookDialog</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="8%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                None
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Equivalent to clicking on <span class="uicontrol">Download &gt; Tableau Workbook</span> from the toolbar,
 which downloads a copy of the original workbook.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>showExportImageDialog</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="8%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                None
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Equivalent to clicking on <span class="uicontrol">Download &gt; Image</span> from the toolbar,
                         which creates a PNG file of the current visualization.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>showExportPDFDialog</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="8%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                None
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Equivalent to clicking on <span class="uicontrol">Download &gt; PDF</span> from the toolbar, which shows a dialog allowing the user to select options for downloading a PDF file.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <b>showExportPowerPointDialog</b><b>()</b>
                            
                        </td>
                        <td width="8%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            None
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Equivalent to clicking on <span class="uicontrol">Download &gt; PowerPoint</span> from the toolbar, which shows a dialog allowing the user to choose the sheets from the workbook or dashboard to download in a PowerPoint file.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <b>showExportDataDialog(
  worksheetInDashboard: Sheet or SheetInfo or string)</b>
                            
                        </td>
                        <td width="8%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            None 
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Shows the Export Data dialog, which is currently a popup window. The <code>worksheetInDashboard</code> parameter is optional. If not specified, the currently active <code>Worksheet </code>is used. If there is no currently active <code>Worksheet</code>, the method throws an exception.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>showExportCrossTabDialog(
  worksheetInDashboard: Sheet or SheetInfo or string)</b>
                        </td>
                        <td width="8%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            None
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Shows the Export CrossTab dialog. You can choose to download the crosstab data as a CSV file or to cancel the operation. The <code>worksheetInDashboard</code> parameter is optional. If not specified, the currently active <code>Worksheet</code> is used. If there is no currently active <code>Worksheet</code>, the method throws an exception.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>exportCrossTabToExcel(
				worksheetInDashboard: Sheet or SheetInfo or string)</b>
                        </td>
                        <td width="8%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">None</td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Downloads the crosstab data as an Excel file to the default location specified by the browser. The <code>worksheetInDashboard</code> parameter is optional. If not specified, the currently active <code>Worksheet</code> is used. If there is no currently active <code>Worksheet</code>, the method throws an exception.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>showShareDialog</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="8%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                None
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Equivalent to clicking on the Share toolbar button, which
                         displays a dialog allowing the user to share the visualization
                          by email or by embedding its HTML in a web page.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>setFrameSize</b><b>(width: int, height: int)</b>
                                
                            </p>
                        </td>
                        <td width="8%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                None
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Sets the size of the <code>iframe</code> element,
                     which causes the visualization to expand or collapse to fit
                     the <code>iframe</code> element if the visualization size (current sheet's size) is set to <code>AUTOMATIC</code>.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getCurrentUrlAsync</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="8%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                String
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the URL of the visualization asynchronously.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>redoAsync</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="8%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                None
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Redoes last action on a sheet, defaults to a single redo unless optional parameters is specified.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>undoAsync</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="8%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                None
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Undoes action on sheet, defaults to a single undo unless optional parameters is specified.</p>
                        </td>
                    </tr>
                </tbody></table>

### VizCreateOptions Record

Defines options that are specified in the `Viz` constructor.

#### Fields

<table class="table--plain">
                    <colgroup><col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1" style="width: 270px;">
                    <col class="TableStyle-TopNav-Column-Column1">
                    </colgroup><tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>disableUrlActionsPopups</b>
                            </p>
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>bool</p>
                        </td>
                        <td valign="top" width="48%" class="TableStyle-TopNav-BodyD-Column1-Body1">Indicates whether to suppress the execution of URL actions. This option does not prevent the URL action event from being raised. You can use this option to change what happens when a URL&nbsp;action occurs. If set to <code>true</code>and you create an event listener for the <code>URL_ACTION</code> event, you can use an event listener handler to customize the actions. For example, you can direct the URL&nbsp;to appear in an <code>iframe</code>on your web page. See <a href="#urlaction" class="xref">URL Action Example</a>. </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>hideTabs</b>
                            </p>
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>bool</p>
                        </td>
                        <td valign="top" width="48%" class="TableStyle-TopNav-BodyD-Column1-Body1">Indicates whether tabs are hidden or shown.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>hideToolbar</b>
                                
                            </p>
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>bool</p>
                        </td>
                        <td valign="top" width="48%" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p valign="top" width="48%">Indicates whether the toolbar is hidden or shown. </p>
                            <p valign="top" width="48%" class="note">The toolbar is always shown if the view is hosted on Tableau Public.  </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>instanceIdToClone</b>
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            string
                        </td>
                        <td valign="top" width="48%" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Specifies the ID of an existing instance to make a copy (clone) of. This is useful if the user wants to continue analysis of an existing
                    visualization without losing the state of the original. If the ID does not refer to an existing visualization, the cloned
                    version is derived from the original visualization.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>height</b>
                            </p>
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                string
                            </p>
                        </td>
                        <td valign="top" width="48%" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Can be any valid CSS size <span class="SpellE">specifier</span>. If not specified, defaults to the published height of the view.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>width</b>
                            </p>
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                string
                            </p>
                        </td>
                        <td valign="top" width="48%" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Can be any valid CSS size <span class="SpellE">specifier</span>. If not specified, defaults to the published width of the view.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>device</b>
                            </p>
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                string
                            </p>
                        </td>
                        <td valign="top" width="48%" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Specifies a device layout for a dashboard, if it exists. Values can be <code>default</code>, <code>desktop</code>, <code>tablet</code>, or <code>phone</code>. If not specified, defaults to loading a layout based on the smallest dimension of the hosting <code>iframe</code> element.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b style="font-style: italic;">"filter name"</b>
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            string
                        </td>
                        <td valign="top" width="48%" class="TableStyle-TopNav-BodyD-Column1-Body1">Apply a filter that you specify to the view when it is first rendered. For example, if you have an Academic Year filter and only want to display data for <span class="mc-variable Variables.CurrentYear variable">2022</span>, you might enter "Academic Year":&nbsp;"<span class="mc-variable Variables.CurrentYear variable">2022</span>". For more information, see <a href="https://help.tableau.com/current/api/js_api/en-us/JavaScriptAPI/js_api_concepts_filtering.htm" class="xref">Filtering</a>.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>onFirstInteractive</b>
                            </p>
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>callback(e: TableauEvent)</p>
                        </td>
                        <td valign="top" width="48%" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Callback function that is invoked when the <code>Viz</code> object first
 becomes interactive. This is only called once, but it’s guaranteed to be
 called. If the <code>Viz</code> object is already interactive, it will
 be called immediately, but on a separate "thread." </p>
                            <p class="note">If a listener has been attached to the <code>CUSTOM_VIEW_LOAD</code>&nbsp;event, that event is raised after the callback function specified for <code>onFirstInteractive</code> has been called.</p>
                            <p class="note">&nbsp;Custom views are not guaranteed to be loaded when the viz becomes interactive. Use the <code>getCustomViewsAsync</code> method to make sure that all the views are loaded before you call the <code>showCustomViewAsync</code> method.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>onFirstVizSizeKnown</b>
                            </p>
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>callback(e: VizResizeEvent)</p>
                        </td>
                        <td valign="top" width="48%" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Callback function that's invoked when the size of the <code>Viz</code> object is known. You can use this callback to
                        perform tasks such as resizing the elements surrounding the <code>Viz</code> object once the object's size
                        has been established.
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>toolbarPosition</b>
                            </p>
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>ApiToolbarPosition</p>
                        </td>
                        <td valign="top" width="48%" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Specifies the position of the toolbar, if it is shown. The values can be <code>ApiToolbarPosition.Top</code> or <code>ApiToolbarPosition.Bottom</code>.</p>
                        </td>
                    </tr>
                </tbody></table>

#### InitViz Example

The following example shows how the Viz object can be created in a initialization function. The initialization function can be called in your HTML page on page load. The Viz constructor takes three parameters: the div container on the hosting HTML page, the URL of the visualization on Tableau Server (includes Tableau Cloud and Tableau Public), and a set of options (see `VizCreateOptions`).

For information about creating the Viz object, see [Initialize the API](https://help.tableau.com/current/api/js_api/en-us/JavaScriptAPI/js_api_concepts_initializing.htm).

```

<script type="text/javascript">
    function initViz() {
	    var containerDiv = document.getElementById("vizContainer");
	    var url = "http://public.tableau.com/views/RegionalSampleWorkbook/Storms";
	    var options = {
                hideTabs: true,
                onFirstInteractive: function () {
                    console.log("Run this code when the viz has finished loading.");
                }
            };
        var viz = new tableau.Viz(containerDiv, url, options);
        // Create a viz object and embed it in the container div.
    }
</script>	
```

### ApiToolbarPosition Enum

#### Enumeration

<table class="table--plain">
                    <colgroup><col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    </colgroup><tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>TOP</b>
                            </p>
                        </td>
                        <td valign="top" width="48%" class="TableStyle-TopNav-BodyD-Column1-Body1">Positions the toolbar along the top of the visualization.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>BOTTOM</b>
                            </p>
                        </td>
                        <td valign="top" width="48%" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Positions the toolbar along the bottom of the visualization.</p>
                        </td>
                    </tr>
                </tbody></table>

### ToolbarState Class

Wraps the toolbar state. Using this class allows you to determine whether or not a toolbar button is enabled. See [Toolbar State Example](#Toolbar).

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p style="margin-bottom: 12.0pt;">
                                <b>getViz</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Viz
                            </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the <code>Viz</code> object associated with the toolbar.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>isButtonEnabled</b><b>(toolbarButtonName)</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>bool</p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets a value indicating whether the specified toolbar button is enabled. The supported buttons are defined in the <code>ToobarButtonName</code> enum. Currently, only <span class="uicontrol">Undo </span>and <span class="uicontrol">Redo </span>are supported. Checking this property with a toolbar button that is not supported  causes an InvalidToolbarButtonName error. </p>
                        </td>
                    </tr>
                </tbody></table>

### ToolbarButtonName Enum

#### Enumeration

<table class="table--plain">
                    <colgroup><col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    </colgroup><tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
					</p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
					</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>UNDO</b>
                            </p>
                        </td>
                        <td valign="top" width="48%" class="TableStyle-TopNav-BodyD-Column1-Body1">Specifies the <span class="uicontrol">Undo </span>button in the toolbar.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>REDO</b>
                            </p>
                        </td>
                        <td valign="top" width="48%" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Specifies the <span class="uicontrol">Redo </span>button in the toolbar.</p>
                        </td>
                    </tr>
                </tbody></table>

## Viz Event Classes

### TableauEventName Enum

Defines strings passed to the `Viz.addEventListener` and `Viz.removeEventListener` methods. The values of the enums are all lowercase strings with no underscores. For example, `CUSTOM_VIEW_LOAD` is `customviewload`. Either the fully-qualified enum (`tableau.TableauEventName.FILTER_CHANGE`) or the raw string (`filterchange`) is acceptable.

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Event Class Passed in the Callback
                    </p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>CUSTOM_MARK_CONTEXT_MENU</b>
                            </p>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                CustomMarkContextMenu
                            </p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Raised when a custom mark context menu item is selected.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>CUSTOM_VIEW_LOAD</b>
                            </p>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                CustomViewEvent
                            </p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p><span class="GramE">Raised</span> when a custom view has
 finished loading. This event is raised after the callback&nbsp;function for <code>onFirstInteractive</code> (if any) has been called.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>CUSTOM_VIEW_REMOVE</b>
                            </p>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                CustomViewEvent
                            </p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p><span class="GramE">Raised</span> when the user removes a
 custom view.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>CUSTOM_VIEW_SAVE</b>
                            </p>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                CustomViewEvent
                            </p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p><span class="GramE">Raised</span> when the user saves a new
 or existing custom view.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>CUSTOM_VIEW_SET_DEFAULT</b>
                            </p>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                CustomViewEvent
                            </p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Raised when a custom view has been made the default view
 for this visualization.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>FILTER_CHANGE</b>
                            </p>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                FilterEvent
                            </p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p><span class="GramE">Raised</span> when any filter has
 changed state. The <code>Viz</code> object may not be interactive yet.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>MARKS_SELECTION</b>
                            </p>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                MarksEvent
                            </p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p><span class="GramE">Raised</span> when marks are selected or
 deselected.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>PARAMETER_VALUE_CHANGE</b>
                            </p>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                ParameterEvent
                            </p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p><span class="GramE">Raised</span> when any parameter has
 changed state.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>STORY_POINT_SWITCH</b>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            StoryPointSwitchEvent
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Raised after a story point becomes active.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>TAB_SWITCH</b>
                            </p>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                TabSwitchEvent
                            </p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Raised after the tab switched, but the
  <code>Viz</code> object may not yet be interactive.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>TOOLBAR_STATE_CHANGE</b>
                            </p>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            ToolbarStateEvent
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Raised when the state of the specified toolbar button changes. See <a href="#toolbar_state_example">Toolbar State Example</a>. </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>URL_ACTION</b>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            UrlActionEvent
                </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Raised when a URL&nbsp;action occurs. See the <code>UrlActionEvent</code> class and the <a href="#urlaction" class="xref">URL Action Example</a>. </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>VIZ_RESIZE</b>
                            </p>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                VizResizeEvent
                            </p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Raised every time the frame size is calculated from the available size and the <code>Viz</code> object's published size.
                    </p>
                        </td>
                    </tr>
                </tbody></table>

### TableauEvent Class

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p style="margin-bottom: 12.0pt;">
                                <b>getViz</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Viz
                            </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the <code>Viz</code> object associated with the event.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getEventName</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>TableauEventName</p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the name of the event, which is a string, but is also
 one of the items in the <span class="SpellE">TableauEventName</span> <span class="SpellE">enum</span>.</p>
                        </td>
                    </tr>
                </tbody></table>

### CustomMarkContextMenu Class

#### Properties

<table class="table--plain">
                    <colgroup><col style="width: 413px;">
                    <col style="width: 297px;">
                    <col>
                    </colgroup><tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p style="margin-bottom: 12.0pt;">
                                <b>getContextMenuId</b><b>()</b>
                                
                            </p>
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                string
                            </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the <code>contextMenuId</code> used to identify the menu item associated with the event.</p>
                        </td>
                    </tr>
                </tbody></table>

### CustomViewEvent Class

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p style="margin-bottom: 12.0pt;">
                                <b>getViz</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Viz
                            </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the <span class="SpellE"><span class="CodeChar">Viz</span></span>
  object associated with the event.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getEventName</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>TableauEventName</p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the name of the event, which is a string, but is also
 one of the items in the <span class="SpellE">TableauEventName</span> <span class="SpellE">enum</span>.</p>
                        </td>
                    </tr>
                </tbody></table>

#### Methods

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="25%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Return Type
                    </p>
                        </td>
                        <td width="49%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getCustomViewAsync</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="25%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Promise&lt;CustomView&gt;
                            </p>
                        </td>
                        <td width="49%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the <span class="SpellE"><span class="CodeChar">CustomView</span></span>
  object associated with the event.</p>
                        </td>
                    </tr>
                </tbody></table>

### FilterEvent Class

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p style="margin-bottom: 12.0pt;">
                                <b>getViz</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Viz
                            </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the <code>Viz</code>
  object associated with the event.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getWorksheet</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Worksheet
                            </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the <code>Worksheet</code> object
 associated with the event.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getEventName</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>TableauEventName</p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the name of the event, which is a string, but is also
 one of the items in the <span class="SpellE">TableauEventName</span> <span class="SpellE">enum</span>.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getFieldName</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                string
                            </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the name of the field.</p>
                        </td>
                    </tr>
                </tbody></table>

#### Methods

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="18%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Return Type
                    </p>
                        </td>
                        <td width="56%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getFilterAsync</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="18%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Promise&lt;Filter&gt;
                            </p>
                        </td>
                        <td width="56%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the <span class="CodeChar">Filter</span> object
 associated with the event.</p>
                        </td>
                    </tr>
                </tbody></table>

### MarksEvent Class

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p style="margin-bottom: 12.0pt;">
                                <b>getViz</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Viz
                            </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the <code>Viz</code>
  object associated with the event.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getWorksheet</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Worksheet
                            </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the <code>Worksheet</code> object
 associated with the event.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getEventName</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>TableauEventName</p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the name of the event, which is a string, but is also
 one of the items in the <code>TableauEventName</code>  enum.</p>
                        </td>
                    </tr>
                </tbody></table>

#### Methods

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="25%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Return Type
                    </p>
                        </td>
                        <td width="49%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getMarksAsync</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="25%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise&lt;Mark[]&gt;</p>
                        </td>
                        <td width="49%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the selected marks on the <code>Worksheet</code>
  that triggered the event.</p>
                        </td>
                    </tr>
                </tbody></table>

### ParameterEvent Class

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p style="margin-bottom: 12.0pt;">
                                <b>getViz</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Viz
                            </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the <code>Viz</code>
  object associated with the event.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getEventName</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>TableauEventName</p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the name of the event, which is a string, but is also
 one of the items in the <code>TableauEventName</code>  enum.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getParameterName</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                string
                            </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the name of the parameter that changed.</p>
                        </td>
                    </tr>
                </tbody></table>

#### Methods

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="25%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Return Type
                    </p>
                        </td>
                        <td width="49%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="24%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getParameterAsync</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="25%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise&lt;Parameter&gt;</p>
                        </td>
                        <td width="49%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the <code>Parameter </code>object that
 triggered the event.</p>
                        </td>
                    </tr>
                </tbody></table>

### StoryPointSwitchEvent Class

Returned in the callback for the STORY\_POINT\_SWITCH event.

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>getViz()</b>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            Viz
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets the <code>Viz</code> object associated with the event.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>getEventName()</b>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            TableauEventName
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets the name of the event, which is a string, but is also one of the items in the TableauEventName enum. In this case, it is STORY_POINT_SWITCH.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>getOldStoryPointInfo()</b>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            StoryPointInfo
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets the <code>StoryPointInfo</code> that was active before the story point switch event occurred. The returned object reflects the state of the story point before the switch occurred. The returned object reflects the state of the story point after the switch occurred.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>getNewStoryPoint()</b>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            StoryPoint
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets the <code>StoryPoint</code> that is currently active.</td>
                    </tr>
                </tbody></table>

### TabSwitchEvent Class

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p style="margin-bottom: 12.0pt;">
                                <b>getViz</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Viz
                            </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the <code>Viz</code> object associated with the event.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getEventName</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>TableauEventName</p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the name of the event, which is a string, but is also one of the items in the <code>TableauEventName</code>  enum.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getOldSheetName</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                string
                            </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the name of the sheet that was active before the tab
 switch event occurred.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getNewSheetName</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                string
                            </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the name of the sheet that is currently active.</p>
                        </td>
                    </tr>
                </tbody></table>

### ToolbarStateEvent Class

An event class that can signal when a toolbar button or control becomes available or becomes unavailable.

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
					</p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
					</p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
					</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getToolbarState</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>ToolbarState</p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Returns the new ToolbarState.</p>
                        </td>
                    </tr>
                </tbody></table>

#### Toolbar State Example

The following example shows how a toolbar state change can be used to enable custom undo and redo buttons.  
Note that the toolbar is always shown if the view is hosted on Tableau Public.

```

<!DOCTYPE html>
<html>

<head>
<title>Undo and Redo</title>

<script type="text/javascript" src="https://public.tableau.com/javascripts/api/tableau-2.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"> </script>

<script type="text/javascript" >
var viz;
function initViz() {
    var containerDiv = document.getElementById("vizContainer"),
    url = "http://public.tableau.com/views/RegionalSampleWorkbook/Storms",
    options = {
        hideTabs: false,
        hideToolbar: true,
        onFirstInteractive: function () {
		    // Listen for toolbar events
            viz.addEventListener(tableau.TableauEventName.TOOLBAR_STATE_CHANGE, onToolbarStateChange);
        }
    };
	viz = new tableau.Viz(containerDiv, url, options);
}

function onToolbarStateChange(toolbarEvent) {
    // when event occurs, get state and update custom buttons
    var toolbarState = toolbarEvent.getToolbarState();
    updateToolbarState(toolbarState)
}

function updateToolbarState(toolbarState) {
    $('#undoButton').prop('disabled', !toolbarState.isButtonEnabled(tableau.ToolbarButtonName.UNDO));
    $('#redoButton').prop('disabled', !toolbarState.isButtonEnabled(tableau.ToolbarButtonName.REDO));
}


function redo() {
    viz.redoAsync().then(function(t) {
        console.log("redo");
	});
}

function undo() {
    viz.undoAsync().then(function(t) {
        console.log("undo");
	});
}

</script>
</head>

<body onload="initViz() ;">
    <div id="undoRedo">
    <button id="undoButton" onclick="undo()" class="btn" disabled>Undo</button>
    <button id="redoButton" onclick="redo()" class="btn" disabled>Redo</button>
    </div>
    <div id="vizContainer" style="width:800px; height:700px;"></div>
        <br />
</body>
</html>
			
```

### UrlActionEvent Class

An event class that can signal when a URL action occurs.

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
					</p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
					</p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
					</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getURL()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>String</p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Returns the URL object associated with event.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>getTarget()</b>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">String</td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Returns the target attribute associated with URL (for example, the identifier associated with a browser tab). </td>
                    </tr>
                </tbody></table>

#### URL Action Example

The following code snippet shows how you might add an event handler for a URL action to the `initViz()` method. You can be use the event handler to add custom functions to your web page, such as using the event to open the URL in a special `iframe` in your web page. To add the new functionality, you need to suppress the default URL action by setting `disableUrlActionsPopups` to `true`. Note that this is not a complete example of all the JavaScript and HTML code you need. You also need a workbook that has a URL action and Tableau Server running 2020.1 or later.

```

function initViz() {
    var containerDiv = document.getElementById("vizContainer"),
    url = "https://path-to-viz-with-url-action",
    options = {
        disableUrlActionsPopups: true,
	 hideTabs: true,
	 onFirstInteractive: function () {
	 viz.addEventListener(tableau.TableauEventName.URL_ACTION, urlActionEventHandler);
	 console.log("Run this code when the viz has finished loading.");
	},
    };
    viz = new tableau.Viz(containerDiv, url, options);
        // Create a viz object and embed it in the container div.


    function urlActionEventHandler(event) {
        // Provide an event handler for the URL action to add a new feature to the dashboard.
        console.log("URL: ", event.getUrl());
        console.log("Target: ", event.getTarget());
    }
}
```

### VizResizeEvent Class

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p style="margin-bottom: 12.0pt;">
                                <b>getViz</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Viz
                            </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the <code>Viz</code> object associated with the event.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getEventName()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>TableauEventName</p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the name of the event, which is a string, but is also one of the items in the <code>TableauEventName</code>  enum.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>GetAvailableSize()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            Size
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the sheetSize record for the current sheet. For more information, see <a href="#SheetSiz" class="xref">SheetSize Record</a>.</p>
                        </td>
                    </tr>
                </tbody></table>

## Workbook Classes

### Class Diagram

![](/tableau/current/en-us/api/js_api/en-us/Img/jsapi_workbookclass.png)

### Workbook Class

A Workbook has a collection of Sheets represented as tabs. It also has associated objects like `DataSources` and `CustomViews`.

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="59%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getViz</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Viz
                            </p>
                        </td>
                        <td width="59%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1"> Gets the <code>Viz</code> object that contains the workbook.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getActiveSheet</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Sheet
                            </p>
                        </td>
                        <td width="59%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the currently active sheet (the active tab)</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getActiveCustomView</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>CustomView</p>
                        </td>
                        <td width="59%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the currently active custom view,
  or null if no custom view is active.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getPublishedSheetsInfo</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                SheetInfo[]
                            </p>
                        </td>
                        <td width="59%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Note that this is synchronous, meaning that all of the sheets are expected when loaded. </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getName</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                string
                            </p>
                        </td>
                        <td width="59%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the name of the workbook saved to the server. Note
 that this is not necessarily the file name.</p>
                        </td>
                    </tr>
                </tbody></table>

#### Methods

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="39%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td valign="top" width="23%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Return Type
                    </p>
                        </td>
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="39%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>activateSheetAsync(sheetNameOrIndex: object)</b>
                        </td>
                        <td valign="top" width="23%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            Promise&lt;Sheet&gt;
                        </td>
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Activates the sheet, either by name or index, and returns a promise of the sheet that was activated.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="39%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>revertAllAsync</b><b>()</b>
                                
                            </p>
                        </td>
                        <td valign="top" width="23%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Promise
                            </p>
                        </td>
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Reverts the workbook to its last saved state.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="39%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getParametersAsync</b><b>()</b>
                                
                            </p>
                        </td>
                        <td valign="top" width="23%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise&lt;Parameter[]&gt;</p>
                        </td>
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Fetches the parameters for this workbook.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="39%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>changeParameterValueAsync</b><b>(<br>  name: string,<br>  value: object)</b>
                                
                            </p>
                        </td>
                        <td valign="top" width="23%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise&lt;Parameter&gt;</p>
                        </td>
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Changes the value of the parameter with the given name and returns the new <code>Parameter</code>. The value should be the same data type as the parameter and within the allowable range of values. It also needs to be the aliased value and not the raw value. For more information and examples, see <a href="#changeParameterValueAsync">changeParameterValueAsync() Additional Information</a></p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="39%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getCustomViewsAsync</b><b>()</b>
                                
                            </p>
                        </td>
                        <td valign="top" width="23%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise&lt;CustomView[]&gt;</p>
                        </td>
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1"> Gets the collection of <code>CustomView</code> objects associated with the workbook.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="39%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>showCustomViewAsync</b><b>(<br>  customViewName:
 string)</b>
                                
                            </p>
                        </td>
                        <td valign="top" width="23%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise&lt;CustomView&gt;</p>
                        </td>
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Changes the visualization to show the named saved state. </p>
                            <p><code>workbook.showCustomViewAsync("Awesome" ).then(function() { // do something });</code>
                            </p>
                            <p>To reset a custom view to the original view, pass in a null value for the <code>customViewName</code> parameter. <br></p>
                            <p><code>workbook.showCustomViewAsync().then(function() { // do something });</code>
                                <br>
                            </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="39%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>removeCustomViewAsync</b><b>(<br>  customViewName:
 string)</b>
                                
                            </p>
                        </td>
                        <td valign="top" width="23%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise&lt;CustomView&gt;</p>
                        </td>
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Removes the named custom view.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="39%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>rememberCustomViewAsync</b><b>(<br>  customViewName:
 string)</b>
                                
                            </p>
                        </td>
                        <td valign="top" width="23%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            Promise&lt;CustomView&gt;
                        </td>
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1"> Remembers the current state of the workbook by assigning a custom view name.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="39%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>setActiveCustomViewAsDefaultAsync</b><b>()</b>
                                
                            </p>
                        </td>
                        <td valign="top" width="23%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                None
                            </p>
                        </td>
                        <td width="36%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Sets the active custom view as the default.</p>
                        </td>
                    </tr>
                </tbody></table>

#### changeParameterValueAsync() Additional Information

The value parameter needs to meet the following conditions:

1. The data type should be the same underlying JavaScript type as is returned in `Parameter.getCurrentValue()`. For example, if `Parameter.getDataType()` is `FLOAT` or `INTEGER`, the value parameter should be a native JavaScript Number. The following table maps the ParameterDataType values to native JavaScript types.

<table class="table--plain"><colgroup><col class="TableStyle-TopNav-Column-Column1"> <col class="TableStyle-TopNav-Column-Column1"></colgroup><tbody><tr class="TableStyle-TopNav-Body-Body1"><th width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">ParameterDataType</th><th width="15%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Native JavaScript Type</th></tr><tr class="TableStyle-TopNav-Body-Body1"><td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">FLOAT</td><td width="15%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Number</td></tr><tr class="TableStyle-TopNav-Body-Body1"><td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">INTEGER</td><td width="15%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Number</td></tr><tr class="TableStyle-TopNav-Body-Body1"><td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">STRING</td><td width="15%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">String</td></tr><tr class="TableStyle-TopNav-Body-Body1"><td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">BOOLEAN</td><td width="15%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Boolean</td></tr><tr class="TableStyle-TopNav-Body-Body1"><td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">DATE</td><td width="15%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Date</td></tr><tr class="TableStyle-TopNav-Body-Body1"><td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">DATETIME</td><td width="15%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Date</td></tr></tbody></table>

When the parameter is a `FLOAT`, if the browser locale uses a decimal separator other than a decimal point (`.`), you should pass a string with the correct locale separator. For example, if the locale uses the comma as a separator, use `"3,5"` instead of the number, `3.5`, as in `viz.getWorkbook().changeParameterValueAsync("FLOAT_PARAM", "3,5")` .

7. If the parameter is restricted to a list of allowable values, the value should be one of those values. Querying `Parameter.getAllowableValuesType()` will indicate if the parameter values are restricted by returning `tableau.ParameterAllowableValuesType.LIST`.
8. If the parameter is restricted to a range of values, the value should be within the minimum and maximum values, inclusive. Querying `Parameter.getAllowableValuesType()` will indicate if the parameter values are restricted by returning `tableau.ParameterAllowableValuesType.RANGE`. The minimum and maximum values are returned via `Parameter.getMinValue()` and `Parameter.getMaxValue()`.
9. The value needs to be the aliased value, and not the raw value. To view the raw and aliased values, go to the Edit Parameter dialog box inTableau Desktop. In that dialog, use the values in the **Display As** column and not the **Value** column, as shown below.

![](/tableau/current/en-us/api/js_api/en-us/Img/jsapi_changeParameterValueAsync.png)

#### Examples

The following examples will help illustrate these concepts.

<table class="table--plain">
                    <colgroup><col class="TableStyle-TopNav-Column-Column1">
                    </colgroup><tbody>
                        <tr class="TableStyle-TopNav-Body-Body1">
                            <td class="TableStyle-TopNav-BodyA-Column1-Body1">
                                <p><code>// Change a parameter called "Product Type" to "Coffee" when the parameter is</code>
                                </p>
                                <p><code>// restricted to the following allowable values:</code>
                                </p>
                                <p><code>
// "Coffee", "Espresso", "Tea"</code>
                                </p>
                                <p><code>workbook.changeParameterValueAsync("Product Type", "Coffee");</code>
                                </p>
                                <p><code>


// Change a parameter called "Measure" to a value that is aliased, "Sale". This</code>
                                </p>
                                <p><code>
// example corresponds to the screen shot above.</code>
                                </p>
                                <p><code>workbook.changeParameterValueAsync("Measure", "Sale");</code>
                                </p>
                                <p><code>// Change a date parameter named "DateParam" to January 1, 2014 (UTC):</code>
                                </p>
                                <p><code>workbook.changeParameterValueAsync("DateParam", new Date(Date.UTC(2014, 0, 1)));</code> </p>
                            </td>
                        </tr>
                    </tbody>
                </table>

### DataSource Class

The `Workbook` contains one or more data sources. Each `Worksheet` will have a primary data source and can have multiple secondary data sources.

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getName</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>string</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The name of the <code>DataSource</code> as
 seen in the UI.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getIsPrimary</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>bool</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Indicates whether this <code>DataSource</code>
  is a primary or a secondary data source.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getFields</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Field[]</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets an array of <code>Fields</code> associated with the <code>DataSource</code>.</p>
                        </td>
                    </tr>
                </tbody></table>

### Field Class

A field contains information about what data source it belongs to, its role, and the type of aggregation it is.

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="22%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="53%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getName</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="22%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>string</p>
                        </td>
                        <td width="53%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the field name (i.e. caption).</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getAggregation</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="22%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>FieldAggregationType</p>
                        </td>
                        <td width="53%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the type of aggregation, which is one of the
 following values: <code>SUM</code>, <code>AVG</code>, <code>MIN</code>, <code>MAX</code>, <code>STDEV</code>,<code> STDEVP</code>, <code>VAR</code>, <code>VARP</code>, <code>COUNT</code>,
 <code>COUNTD</code>, <code>MEDIAN</code>, <code>ATTR</code>, <code>NONE</code>, <code>PERCENTILE</code>, <code>TRUNC_YEAR</code>, <code>TRUNC_QTR</code>, <code>TRUNC_MONTH</code>,
 <code>TRUNC_WEEK</code>, <code>TRUNC_DAY</code>, <code>TRUNC_HOUR</code>, <code>TRUNC_MINUTE</code>, <code>TRUNC_SECOND</code>, <code>QUART1</code>,
 <code>QUART3</code>, <code>SKEWNESS</code>, <code>KURTOSIS</code>, <code>INOUT</code>, <code>SUM_XSQR</code>, <code>USER</code></p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getDataSource</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="22%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>DataSource</p>
                        </td>
                        <td width="53%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the data source to which this field belongs.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getRole</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="22%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>FieldRoleType</p>
                        </td>
                        <td width="53%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>One of the following values: <code>DIMENSION</code>, <code>MEASURE</code>, <code>UKNOWN</code></p>
                        </td>
                    </tr>
                </tbody></table>

### CustomView Class

Represents a named snapshot of the workbook at a specific moment.

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getName</b><b>()<br>setName()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>string</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>User-friendly name for the custom view</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getAdvertised</b><b>()<br>setAdvertised()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>bool</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Indicates whether the custom view is public or private.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getDefault</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>bool</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets or sets whether this is the default custom view.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getOwnerName</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>string</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the user that created the custom view.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getUrl</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>string</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Unique URL to load this view again.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getWorkbook</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Workbook</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1"> Gets the <code>Workbook</code> to which this <code>CustomView</code> belongs.</td>
                    </tr>
                </tbody></table>

#### Methods

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="25%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Return Type
                    </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="25%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>saveAsync</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise&lt;CustomView&gt;</p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>After <code>saveAsync()</code> is called, the result of the <code>getUrl</code> method
 is no longer blank.</p>
                        </td>
                    </tr>
                </tbody></table>

## Sheet Classes

### Class Diagram

![](/tableau/current/en-us/api/js_api/en-us/Img/jsapi_sheetclass.png)

### SheetInfo Class

Contains information about a `WORKSHEET`, a `DASHBOARD`, or a `STORY` and no methods. Returned as part of `Workbook.getPublishedSheetsInfo()`.

#### Constructor

There is no public constructor. You can only get instances of this class from `Workbook.getPublishedSheetsInfo()`.

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>getName()</b>
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>string</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the name of the sheet.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getIndex</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>int</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the index of the sheet within the published tabs.
 Note that hidden tabs are still counted in the ordering, as long as they are
 published.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getIsActive</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>bool</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets a value indicating whether the sheet is the currently
 active <span class="GramE">sheet.</span>Due to a technical limitation, this will always return false if the object is a <code>Worksheet</code> instance that is part of a <code>Dashboard</code>.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getIsHidden</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>bool</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets a value indicating whether the sheet is hidden in the
  UI. Note that if the entire tab control is hidden,
 it does not affect the state of this flag. This sheet may still report that
 it is visible even when the tabs control is hidden.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getSheetType</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>SheetType</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the type of the sheet. <code>SheetType</code> is an enum
  with the following values: <code>WORKSHEET</code>, <code>DASHBOARD</code> and <code>STORY</code>.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getSize</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>SheetSize</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the size information that the author specified when
 publishing the workbook.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getUrl</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>string</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the URL for this sheet.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getWorkbook</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Workbook</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the <code>Workbook</code> to which this <code>Sheet </code>belongs.</p>
                        </td>
                    </tr>
                </tbody></table>

### Sheet Class

#### Constructor

There is no public constructor. You can only get instances of this class from `Workbook.getActiveSheet()`or `Dashboard.getObjects()`.

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getName</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>string</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the name of the sheet.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getIndex</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>int</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the index of the sheet within the published tabs.
 Note that hidden tabs are still counted in the ordering, as long as they are
 published.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getIsActive</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>bool</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets a value indicating whether the sheet is the currently
 active sheet.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getIsHidden</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>bool</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets a value indicating whether the sheet is hidden in the
  UI. Note that if the entire tab control is hidden,
 it does not affect the state of this flag. This sheet may still report that
 it is visible even when the tabs control is hidden.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getSheetType</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>SheetType</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the type of the sheet. <code>SheetType</code> is an enum
  with the following values: <code>WORKSHEET </code>, <code>DASHBOARD</code> and <code>STORY</code>.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>getSize</b><b>()</b>
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>SheetSize</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the size information that the author specified when
 publishing the workbook.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getUrl</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>string</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the URL for this sheet.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getWorkbook</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Workbook</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the <code>Workbook</code> to which this <code>Sheet</code> belongs.</p>
                        </td>
                    </tr>
                </tbody></table>

#### Methods

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Return Type
                    </p>
                        </td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>changeSizeAsync</b><b>(SheetSize)</b>
                                
                            </p>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise&lt;SheetSize&gt;</p>
                        </td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Sets the size information on a sheet. Note that if the
 sheet is a <code>Worksheet</code>, only <code>SheetSizeBehavior.AUTOMATIC</code> is allowed since you
 can’t actually set a <code>Worksheet</code> to a fixed size.</p>
                        </td>
                    </tr>
                </tbody></table>

#### SheetSize Record

Describes the way a Sheet should be sized.

#### Fields

<table class="table--plain">
                    <colgroup><col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    </colgroup><tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="18%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="18%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="57%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="18%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>behavior</b>
                            </p>
                        </td>
                        <td width="18%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>SheetSizeBehavior</p>
                        </td>
                        <td width="57%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Contains an enumeration value of one of the following:
 <code>AUTOMATIC</code>, <code>EXACTLY</code>, <code>RANGE</code>, <code>ATLEAST</code>, and <code>ATMOST</code>.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="18%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>maxSize</b>
                            </p>
                        </td>
                        <td width="18%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Size</p>
                        </td>
                        <td width="57%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>This is only defined when behavior is <code>RANGE</code> or <code>ATMOST</code>.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="18%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>minSize</b>
                            </p>
                        </td>
                        <td width="18%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                </p><p>Size</p>
                            <p></p>
                        </td>
                        <td width="57%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>This is only defined when behavior is <code>EXACTLY</code>, <code>RANGE</code>, or <code>ATLEAST</code>.</p>
                        </td>
                    </tr>
                </tbody></table>

### DataTable Class

When you call the `getSummaryDataAsync`, `getUnderlyingDataAsync`, or `getUnderlyingTableDataAsync` methods on a worksheet, Tableau Server returns a `DataTable` object.

#### Methods

<table class="table--plain">
                    <colgroup><col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    </colgroup><tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Return Type
                    </p>
                        </td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getName()</b>
                                
                            </p>
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>string</p>
                        </td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Either "Underlying Data Table"&nbsp;or "Summary&nbsp;Data Table".</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <b>getData()</b>
                            
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">array</td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">A two-dimensional array of data without the sheet or column metadata. The first array index is the row index and the second array index is the column index.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <b>getColumns()</b>
                            
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">array&lt;<code>Column</code>&gt;</td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">The column information, including the name, data type, and index. </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <b>getTotalRowCount()</b>
                            
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">int</td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">The number of rows in the returned data.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <b>getIsSummaryData()</b>
                            
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">bool</td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Whether the data is summary data or underlying data. Returns true for summary data.</td>
                    </tr>
                </tbody></table>

### LogicalTable Class

Represents a logical table in the worksheet. In Tableau 2020.2 and later, a data source can have multiple logical tables, and a logical table can contain one or more physical tables. When you call the `getUnderlyingTablesAsync` method on a worksheet, Tableau Server returns an array of `LogicalTable` objects corresponding to the measures referenced by the worksheet. To get the underlying data from the table, you use the id returned by `getTableId()`when you call the `getUnderlyingTableDataAsync()` method. For an example of how these methods are used, see the [Get Underlying Table Data Example](#gettabledata).  

#### Properties

<table class="table--plain">
                    <colgroup><col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    </colgroup><tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Return Type
                    </p>
                        </td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getTableId()</b>
                                
                            </p>
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>string</p>
                        </td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The identifier that uniquely identifies the logical table. You use the table identifier to get data when you call the <code>getUnderlyingTableDataAsync()</code> method.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <b>getCaption()</b>
                            
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">string</td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">The name of the logical table as it appears to users in Tableau 2020.2 and later. </td>
                    </tr>
                </tbody></table>

#### Get Underlying Table Data Example

To get data from worksheets in Tableau 2020.2 and later, you need to use the `getUnderlyingTablesAsync()` and `getUnderlyingTableDataAsync()` methods. The following example is based on the [Get Data](https://help.tableau.com/current/api/js_api/en-us/JavaScriptAPI/js_api_samples_get_data.htm) sample. In this example, a call is made to `getUnderlyingTablesAsync()`to get the tables in the data source used by the worksheet. In this case, the workbook contains a data source that was created prior to Tableau 2020.2, so it does not use multiple logical tables. The data source of the worksheet only contains one table, and we use that table id (`tables[0].getTableId()`) to access the underlying data in the call to `getUnderlyingTableDataAsync()`. These two methods replace the `getUnderlyingDataAysnc()` method to get the data in Tableau 2020.2 and later. These methods are available in the `tableau-2.5.0.min.js` library starting with Tableau 2020.2.

```

<!DOCTYPE html>
<html>
    <head>
      <title>getData() Basic Table Example</title>
      <!-- Tableau JavaScript library on Tableau 2020.2 and later -->
      <script type="text/javascript" src="https://public.tableau.com/javascripts/api/tableau-2.5.0.min.js"></script> -
      <script type="text/javascript">
      var viz, sheet, table;
      function initViz() {
          var containerDiv = document.getElementById("vizContainer"),
          url = "http://public.tableau.com/views/RegionalSampleWorkbook/Storms",
          options = {
            hideTabs: true,
     	     hideToolbar: true,
            onFirstInteractive: function () {
              document.getElementById('getData').disabled = false; // Enable our button
            }
	   };
          viz = new tableau.Viz(containerDiv, url, options);
	}

       function getUnderlyingData(){
         sheet = viz.getWorkbook().getActiveSheet().getWorksheets().get("Storm Map Sheet");
	       // If the active sheet is not a dashboard, then you can just enter:
	       // viz.getWorkbook().getActiveSheet();
         options = {
		maxRows: 10, // Max rows to return. Use 0 to return all rows
		ignoreAliases: false,
		ignoreSelection: true,
		includeAllColumns: false
	  };

	  sheet.getUnderlyingTablesAsync().then(tables => {
	        // Get the first logical table and use that
		return sheet.getUnderlyingTableDataAsync(tables[0].getTableId(), options).then(dataTable => {
    	          var tgt = document.getElementById("dataTarget");
                 tgt.innerHTML = "<h4>UnderlyingTableData:</h4><p>" + JSON.stringify(dataTable.getData()) + "</p>";
               });
         });
     }
 </script>
 </head>

 <body onload="initViz();">
     <div class="page-header">
        <h1>getData() Basic Example</h1>
          <p>Click the "Get Data" button to get underlying data for the viz.</p>
          <button id="getData" onclick="getUnderlyingData()" class="btn" disabled>Get Data</button>
        </div>
        <div id="vizContainer" style="width:600px; height:600px;"></div>
        <div id="dataTarget"></div>
    </body>
</html>

			
```

### Column Class

When you call the `getColumns` method on a `DataTable` object, Tableau Server returns an array of `Column` objects. For a particular object in the array, you can call the following methods:

#### Methods

<table class="table--plain">
                    <colgroup><col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    </colgroup><tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Return Type
                    </p>
                        </td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getFieldName()</b>
                                
                            </p>
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>string</p>
                        </td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The name of the column.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <b>getDataType()</b>
                            
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">string</td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">The data type of the column. Possible values are float, integer, string, boolean, date, and datetime.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <b>getIsReferenced()</b>
                            
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">bool</td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Whether the column data is referenced in the visualization.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <b>getIndex()</b>
                            
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">int</td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">The number of rows in the returned data.</td>
                    </tr>
                </tbody></table>

### Worksheet Class

Represents a worksheet tab in the workbook or a dashboard object. These are two separate concepts: a worksheet and a worksheet instance. However, for simplicity in the API, they are both combined into the `Worksheet` class.

#### Constructor

There is no public constructor. You can only get instances of this class from `Workbook.getPublishedSheetsInfo()` or `Dashboard.getObjects()`.

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="48%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getParentDashboard</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Dashboard</p>
                        </td>
                        <td width="48%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Returns the <code>Dashboard</code> object to which this <code>Worksheet</code> belongs (if it’s on a dashboard). Otherwise, it returns null.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="30%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>getParentStoryPoint()</b>
                        </td>
                        <td width="20%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            StoryPoint
                        </td>
                        <td width="48%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Returns the <code>StoryPoint</code> object to which this <code>Worksheet </code>belongs (if it’s on a story sheet). Otherwise, it returns null. If the <code>Worksheet </code>instance does not come from a call to <code>StoryPoint.getContainedSheet()</code>, it also returns null.</td>
                    </tr>
                </tbody></table>

#### Methods

<table class="table--plain">
                    <colgroup><col>
                    <col style="width: 224px;">
                    <col>
                    </colgroup><tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="35%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Return Type
                    </p>
                        </td>
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="35%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getDataSourcesAsync</b><b>()</b>
                                
                            </p>
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise&lt;DataSource[]&gt;</p>
                        </td>
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the primary and all of the secondary data sources for
 this worksheet. Note that by convention the primary data source should always
 be the first element.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="35%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <b>getSummaryDataAsync</b><b>(getSummaryDataOptions)</b>
                            
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">Promise&lt;<a href="#DataTable">DataTable</a>&gt;</td>
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets aggregated data for the fields used in the currently active sheet and returns it as an object. You can specify options with an optional parameter.&nbsp;This can only be called on sheets of the <code>WORKSHEET</code>&nbsp;type.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="35%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <b>getUnderlyingDataAsync</b><b>(getUnderlyingDataOptions)</b>
                            
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">Promise&lt;<a href="#DataTable">DataTable</a>&gt;</td>
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets data for all fields in the data source used by the currently active sheet and returns it as an object. You can specify options with an optional parameter. This can only be called on sheets of the <code>WORKSHEET</code>&nbsp;type. Available in Tableau 2020.1 and earlier. </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="35%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <b>getUnderlyingTablesAsync</b><b>()</b>
                            
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">Promise&lt;<a href="#LogicalTable">LogicalTable[]</a>&gt;</td>
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets the underlying logical tables used by the worksheet. The resulting logical tables are determined by the measures in the worksheet. If a worksheet's data source contains multiple logical tables and the worksheet contains only measures from one logical table, this method will return one logical table. This can only be called on sheets of the <code>WORKSHEET</code>&nbsp;type. Available in Tableau 2020.2 and later. See <a href="#LogicalTable">LogicalTable</a> and the <a href="#gettabledata" class="xref">Get Underlying Table Data Example</a>.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="35%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <b>getUnderlyingTableDataAsync</b><b>(tableID, getUnderlyingDataOptions)</b>
                            
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">Promise&lt;<a href="#DataTable">DataTable</a>&gt;</td>
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p width="40%" valign="top">Gets data for all fields in the specified logical table used by the currently active sheet and returns it as an object. You can specify options with an optional parameter. This can only be called on sheets of the <code>WORKSHEET</code>&nbsp;type.  Available in Tableau 2020.2 and later. See <a href="#DataTable">DataTable</a> and the <a href="#gettabledata" class="xref">Get Underlying Table Data Example</a>.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="35%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <b>AppendContextMenuAsync( targetMenu:&nbsp;ApiMenuType, config:&nbsp;ContextMenuOptions)</b>
                            
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">Promise&lt;string&gt;</td>
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p width="40%" valign="top">Appends a new menu item into the place specified by <i>targetMenu</i>. Currently, the only allowed location is <b>ApiMenuType.Ubertip</b> (the tooltip that appears when marks are selected). Use the <i>config</i> option to specify the name of the menu item (<a href="#ContextM" class="xref">ContextMenuOptions Class</a>). If successful, this method returns the <i>menuItemId</i> of the new menu item.</p>
                            <p><code>var config = { displayName: "myMenuItemName" };</code>
                            </p>
                            <p><code>menuId = worksheet.appendContextMenuAsync(tableauSoftware.MenuType.UBERTIP, config);</code>
                            </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="35%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>RemoveContextMenuAsync( targetMenu:&nbsp;ApiMenuType, menuItemId:&nbsp;string)</b>
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">Promise&lt;void&gt;</td>
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p width="40%" valign="top">Removes the menu item specified by <i>menuItemId</i> from the designated context menu. </p>
                            <p><code>worksheet.removeContextMenuAsync(tableauSoftware.MenuType.UBERTIP, menuId);</code>
                            </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="35%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p width="35%" valign="top"><b>ExecuteContextMenuAsync( targetMenu:&nbsp;ApiMenuType, menuItemId:&nbsp;string)</b>
                            </p>
                        </td>
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">Promise&lt;void&gt;</td>
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Executes the menu item specified by <i>menuItemId</i> from the designated context menu. You can use this method for testing the context menu item. </td>
                    </tr>
                </tbody></table>

Filtering methods are described in [Worksheet Class (Filtering)](#worksheet_class_filtering). Marks selection methods are described in [Worksheet Class (Selecting Marks)](#_Worksheet_Class_\(Selecting).

To use the `getSummaryDataAsync`, `getUnderlyingDataAsync`, `getUnderlyingTablesAsync`, or `getUnderlyingTableDataAsync` methods on a worksheet, you must have permission to download data for the worksheet in Tableau Server. Ensure that your Tableau Server user account has the Download Summary Data and Download Full Data permissions for the workbook that contains the worksheet you want to download data for.

#### getSummaryDataOptions Record

<table class="table--plain">
                    <colgroup><col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    </colgroup><tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">Value</td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            ignoreAliases
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">bool</td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Do not use aliases specified in the data source in Tableau. Default is false.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            ignoreSelection
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">bool</td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Only return data for the currently selected marks. Default is false.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            maxRows
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">int</td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The number of rows of data that you want to return. Enter 0 to return all rows. </p>
                        </td>
                    </tr>
                </tbody></table>

#### getUnderlyingDataOptions Record

<table class="table--plain">
                    <colgroup><col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    </colgroup><tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">Value</td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            ignoreAliases
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">bool</td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Do not use aliases specified in the data source in Tableau. Default is false.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            ignoreSelection
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">bool</td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Only return data for the currently selected marks. Default is false.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            includeAllColumns
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">bool</td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Return all the columns for the data source. Default is false. </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            maxRows
                        </td>
                        <td class="TableStyle-TopNav-BodyE-Column1-Body1">int</td>
                        <td width="46%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The number of rows of data that you want to return. Enter 0 to return all rows. </p>
                        </td>
                    </tr>
                </tbody></table>

### Dashboard Class

Contains a collection of `DashboardObject` instances and a notion of the active object.

#### Constructor

There is no constructor. You get an instance of this from `Workbook.getActiveSheet()`.

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="49%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getObjects</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>DashboardObject[]</p>
                        </td>
                        <td width="49%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the collection of objects.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getWorksheets</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Worksheet[]</p>
                        </td>
                        <td width="49%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the collection of worksheets contained in the
 dashboard. Note that this is a helper method and is equivalent to looping
 through <code>getObjects()
  </code>and collecting all of the <code>DashboardObject.Worksheet</code>
  pointers when <code>DashboardObject.getType() === tableau.DashboardObjectType.WORKSHEET</code>.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            getParentStoryPoint()
                        </td>
                        <td width="26%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            StoryPoint
                        </td>
                        <td width="49%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Returns the <code>StoryPoint </code>object to which this <code>Dashboard </code>belongs (if it’s on a story sheet). Otherwise, it returns null. If the <code>Dashboard </code>instance does not come from a call to <code>StoryPoint.getContainedSheet()</code>, it also returns null.</td>
                    </tr>
                </tbody></table>

### DashboardObject Class

Represents one of a series of different areas of the dashboard.

#### Constructor

There is no constructor. You get an instance of this from `Dashboard.getObjects()`.

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getObjectType</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>DashboardObjectType</p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets what the object represents, which is an <code>enum</code> with the following values: <code>BLANK</code>, <code>WORKSHEET</code>,
 <code>QUICK_FILTER</code>, <code>PARAMETER_CONTROL</code>, <code>PAGE_FILTER, LEGEND</code>, <code>TITLE</code>, <code>TEXT</code>, <code>IMAGE</code>, <code>WEB_PAGE</code>.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getDashboard</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Dashboard
                            </p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the <code>Dashboard</code> object that
 contains this object.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getWorksheet</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Worksheet
                            </p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>If <code>getType() </code>returns
 <code>WORKSHEET</code>, this contains a pointer to the <code>Worksheet</code>
  object.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getPosition</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Point
                            </p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the coordinates relative to the top-left corner of
 the dashboard of the object.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getSize</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Size</p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the size of the object.</p>
                        </td>
                    </tr>
                </tbody></table>

### Story Class

Contains a collection of StoryPoint instances and the ability to switch between them. Derives from the Sheet class.

#### Constructor

There is no constructor. You get an instance of this from `Workbook.getActiveSheet()`.

#### Properties (Derived from Sheet)

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>getName()</b>
                            </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>string</p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the name of the sheet.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>getIndex()</b>
                            </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>int</p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the index of the sheet within the published tabs. Note that hidden tabs are still counted in the ordering, as long as they are published.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>getIsActive()</b>
                            </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>bool</p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets a value indicating whether the sheet is the currently active sheet.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>getIsHidden()</b>
                            </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>bool</p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets a value indicating whether the sheet is hidden in the UI. Note that if the entire tab control is hidden, it does not affect the state of this flag. This sheet may still report that it is visible even when the tabs control is hidden.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>getSheetType()</b>
                            </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>SheetType</p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the type of the sheet, which should always be <code>tableau.SheetType.STORY</code>.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>getSize()</b>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            SheetSize
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets the size information that the author specified when publishing the workbook.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>getUrl()</b>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            string
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets the URL for this sheet.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>getWorkbook()</b>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            Workbook
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets the Workbook to which this Sheet belongs.</td>
                    </tr>
                </tbody></table>

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>getStoryPointsInfo()</b>
                            </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>StoryPointInfo[]</p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets an array (not a collection) of <code>StoryPointInfo</code> objects. Note that this is not a collection, since we don’t have a unique string key for a story point. We only need ordinal access to the story points (by index).</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>getActiveStoryPoint()</b>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            StoryPoint
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets the currently active story point.</td>
                    </tr>
                </tbody></table>

#### Methods (Derived from Sheet)

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>changeSizeAsync(size: SheetSize)</b>
                            </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise&lt;SheetSize&gt;</p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Sets the size information on a sheet.</p>
                        </td>
                    </tr>
                </tbody></table>

#### Methods

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>activateStoryPointAsync(index: int)</b>
                            </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise&lt;StoryPoint&gt;</p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Activates the story point at the specified index and returns a promise of the activated StoryPoint. Throws a <code>tableau.ErrorCode.INDEX_OUT_OF_RANGE</code> error if the index is less than zero or greater than or equal to the number of story points in the array.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>activateNextStoryPointAsync()</b>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            Promise&lt;StoryPoint&gt;
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Activates the next story point if there is one. If the current story point is the last one, then is stays active.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>activatePreviousStoryPointAsync()</b>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            Promise&lt;StoryPoint&gt;
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Activates the previous story point if there is one. If the current story point is the first one, then it stays active.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>revertStoryPointAsync(index: int)</b>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            Promise&lt;StoryPoint&gt;
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Reverts the story point at the specified index and returns a promise of the reverted StoryPoint. Throws a <code>tableau.ErrorCode.INDEX_OUT_OF_RANGE</code> error if the index is less than zero or greater than or equal to the number of story points in the array.</td>
                    </tr>
                </tbody></table>

### StoryPointInfo Class

Contains information about a `StoryPoint` with no methods. Returned as part of `Story.getStoryPointsInfo()`.

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>getIndex()</b>
                            </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>int</p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the zero-based index of this story point within the parent Story sheet.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>getCaption()</b>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            string
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets the content of the textual description for this story point.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>getIsActive()</b>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            Bool
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets a value indicating whether the story point is the currently active point in the story.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>getIsUpdated()</b>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            Bool
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets a value indicating whether the story point is updated, meaning that there are no changes from the last time the story point was “captured”.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>getParentStory()</b>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            Story
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets the Story object that contains the story point.</td>
                    </tr>
                </tbody></table>

### StoryPoint Class

A `StoryPoint` is a distinct snapshot within a `Story` sheet.

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>getIndex()</b>
                            </p>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>int</p>
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the zero-based index of this story point within the parent Story sheet.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>getCaption()</b>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            string
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets the content of the textual description for this story point.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>getIsActive()</b>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            Bool
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets a value indicating whether the story point is the currently active point in the story.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>getIsUpdated()</b>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            Bool
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets a value indicating whether the story point is updated, meaning that there are no changes from the last time the story point was “captured”.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>getContainedSheet()</b>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            Sheet
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets the sheet that this story point contains. This will be null if the story point does not have a contained sheet.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>getParentStory()</b>
                        </td>
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            Story
                        </td>
                        <td width="52%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets the Story object that contains this story point.</td>
                    </tr>
                </tbody></table>

## Parameter Classes

### Parameter Class

Contains information about a workbook parameter. To actually set a parameter’s value, call `workbook.changeParameterValueAsync()`.

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="29%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td valign="top" width="21%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="48%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="29%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getName</b><b>()</b>
                                
                            </p>
                        </td>
                        <td valign="top" width="21%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                string
                            </p>
                        </td>
                        <td width="48%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>A unique identifier for the parameter, as specified by the
 user.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="29%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getCurrentValue</b><b>()</b>
                                
                            </p>
                        </td>
                        <td valign="top" width="21%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                DataValue
                            </p>
                        </td>
                        <td width="48%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The current value of the parameter. </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="29%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getDataType</b><b>()</b>
                                
                            </p>
                        </td>
                        <td valign="top" width="21%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                ParameterDataType
                            </p>
                        </td>
                        <td width="48%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The data type of the parameter can be one of the following:
 <code>FLOAT</code>, <code>INTEGER</code>,<code> STRING</code>, <code>BOOLEAN</code>, <code>DATE</code>, <code>DATETIME</code>.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="29%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getAllowableValuesType</b><b>()</b>
                                
                            </p>
                        </td>
                        <td valign="top" width="21%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>ParameterAllowableValuesType</p>
                        </td>
                        <td width="48%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The type of allowable values that the parameter can
 accept. It can be one of the following enumeration items: <code>ALL</code>,<code> LIST</code>, <code>RANGE</code>.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="29%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getAllowableValues</b><b>()</b>
                                
                            </p>
                        </td>
                        <td valign="top" width="21%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                DataValue[]
                            </p>
                        </td>
                        <td width="48%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>If the parameter is restricted to a list of allowable
 values, this property contains the array of those values. Note that this is
 not a standard collection, but a JavaScript array.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="29%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getMinValue</b><b>()</b>
                                
                            </p>
                        </td>
                        <td valign="top" width="21%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                DataValue
                            </p>
                        </td>
                        <td width="48%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>If <code>getAllowableValuesType</code>
  is <code>RANGE</code>, this defines the minimum allowable value, inclusive. Otherwise it’s
 undefined/null.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="29%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getMaxValue</b><b>()</b>
                                
                            </p>
                        </td>
                        <td valign="top" width="21%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                DataValue
                            </p>
                        </td>
                        <td width="48%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>If <code>getAllowableValuesType</code>
  is <code>RANGE</code>, this defines the maximum allowable value, inclusive. Otherwise it’s
 undefined/null.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="29%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getStepSize</b><b>()</b>
                                
                            </p>
                        </td>
                        <td valign="top" width="21%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Number
                            </p>
                        </td>
                        <td width="48%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>If <code>getAllowableValuesType</code>
  is <code>RANGE</code>, this defines the step size used in the parameter UI control slider.
 Otherwise it’s undefined/null.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="29%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getDateStepPeriod</b><b>()</b>
                                
                            </p>
                        </td>
                        <td valign="top" width="21%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                PeriodType
                            </p>
                        </td>
                        <td width="48%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>If <code>getAllowableValuesType</code>
  is <code>RANGE</code> and <code>getDataType</code>
  is <code>DATE</code> or <code>DATETIME</code>, this defines the step date period used in the Parameter
 UI control slider. Otherwise it’s undefined/null.</p>
                        </td>
                    </tr>
                </tbody></table>

## Filtering

There is a difference between querying existing filter state and setting new or existing filters. Querying filters is done via `Worksheet.getFiltersAsync()`, which returns a collection of `Filter` classes used in the worksheet, or by using `Dashboard.getFiltersAsync()`, which returns a collection of `Filter` classes used in the dashboard. Setting filters is done via `Worksheet.applyFilterAsync` (and its variants) and `Dashboard.applyFilterAsync`. These are function calls that don't require you to instantiate a `Filter` class.

When you specify fields in a filter, you should use the caption as shown in the UI, not the database field name. For example, use **Container** (the caption) instead of **Product Container** (the actual field name). The exception is hierarchical filters, which use the full hierarchical name (for example, `[Product].[All Product].[Espresso]`). Captions can use the optional `[]` delimiters around names.

### Class Diagram

![](/tableau/current/en-us/api/js_api/en-us/Img/jsapi_filterclass.png)

### Dashboard Class (Filtering)

This methods are on the `Dashboard` class, but are listed here for convenience.

#### Methods

<table class="table--plain">
                    <colgroup><col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    </colgroup><tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="19%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Return Type
                    </p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>getFiltersAsync()</b>
                            </p>
                        </td>
                        <td width="19%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise&lt;Filter[]&gt;</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Fetches the collection of filters used on the dashboard.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>applyFilterAsync(</b>
                                    <br style="mc-tag-and-class: b;"><b>fieldName: string,</b>
                                    <br style="mc-tag-and-class: b;"><b>values: object[] or object,</b>
                                    <br style="mc-tag-and-class: b;"><b>updateType: FilterUpdateType,</b>
                                    <br style="mc-tag-and-class: b;"><b>options?: FilterOptions)</b>
                                
                            </p>
                        </td>
                        <td width="19%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise&lt;string&gt;</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Applies a simple categorical filter (non-date) to the dashboard. This method is similar to the method used for worksheets, but applies the filter to all the worksheets in the dashboard that have that same field. Note that the filter is ignored by a worksheet if the worksheet doesn't have the relevant field in its data source. The method eturns the <code>fieldName</code> that was filtered.<br>See the <a href="https://help.tableau.com/current/api/js_api/en-us/JavaScriptAPI/js_api_concepts.htm#Filterin">filtering examples</a> for more details on these functions. <br></p>
                            <p>For example:</p>
                            <p><code>dashboard.applyFilterAsync("Region", "Central", tableau.FilterUpdateType.REPLACE)</code>
                            </p>
                        </td>
                    </tr>
                </tbody></table>

### Worksheet Class (Filtering)

These methods are on the `Worksheet` class, but are listed here for convenience.

#### Methods

<table class="table--plain">
                    <colgroup><col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    </colgroup><tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="19%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Return Type
                    </p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>getFiltersAsync()</b>
                            </p>
                        </td>
                        <td width="19%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise&lt;Filter[]&gt;</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Fetches the collection of filters used on the sheet.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>applyFilterAsync(</b>
                                    <br style="mc-tag-and-class: b;"><b>fieldName: string,</b>
                                    <br style="mc-tag-and-class: b;"><b>values: object[] or object,</b>
                                    <br style="mc-tag-and-class: b;"><b>updateType: FilterUpdateType,</b>
                                    <br style="mc-tag-and-class: b;"><b>options?: FilterOptions)</b>
                                
                            </p>
                        </td>
                        <td width="19%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise&lt;string&gt;</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Applies a simple categorical filter (non-date). See the <a href="https://help.tableau.com/current/api/js_api/en-us/JavaScriptAPI/js_api_concepts.htm#Filterin">filtering examples</a> for more details on these functions. Returns the <code>fieldName</code> that was filtered.</p>
                            <p>For example:</p>
                            <p><code>worksheet.applyFilterAsync("Product Type", "Coffee", tableau.FilterUpdateType.REPLACE)</code>
                            </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>applyRangeFilterAsync(</b>
                                    <br style="mc-tag-and-class: b;"><b>fieldName: string,</b>
                                    <br style="mc-tag-and-class: b;"><b>range: RangeFilterOptions)</b>
                                
                            </p>
                        </td>
                        <td width="19%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise&lt;string&gt;</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Applies a quantitative filter to a field or to a date. If a range is specified that is outside of the domain min/max values, no error is raised and the command is allowed. Subsequent calls to <code>getFiltersAsync[]</code> will return these values even if they are outside of the bounds of the domain. This is equivalent to the behavior in Tableau when you use the Filter dialog box for dimensions and measures. </p>
                            <p>You can also specify NullOption values as part of the <a href="#RangeFil" class="xref">RangeFilterOptions Record</a> to include or exclude null values. <br></p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <b>applyRelativeDateFilterAsync(</b>
                                <br style="mc-tag-and-class: b;"><b>fieldName: string,</b>
                                <br style="mc-tag-and-class: b;"><b>options: RelativeDateFilterOptions)</b>
                            
                        </td>
                        <td width="19%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            Promise&lt;string&gt;
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Applies a relative date filter.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <b>applyHierarchicalFilterAsync(</b>
                                <br style="mc-tag-and-class: b;"><b>fieldName: string,</b>
                                <br style="mc-tag-and-class: b;"><b>values: object,</b>
                                <br style="mc-tag-and-class: b;"><b>options: HierarchicalFilterOptions)</b>
                            
                        </td>
                        <td width="19%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            Promise&lt;string&gt;
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Applies a hierarchical filter. The values parameter is either a single value, an array of values, or an object { levels: ["1", "2"] }.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>clearFilterAsync(fieldName: string)</b>
                        </td>
                        <td width="19%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            Promise&lt;string&gt;
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Clears the filter, no matter what kind of filter it is. Note that the filter is removed as long as no associated quick filter is showing for the field. If there is a quick filter showing, then the filter is kept, but it’s reset to the “All” state (effectually canceling the filter). For relative date filters, however, an error is returned since there is no “All” state for a relative date filter. To clear a relative date filter with a quick filter showing, you can call <code>applyRelativeDateFilter()</code> instead using a range that makes sense for the specific field.</td>
                    </tr>
                </tbody></table>

### FilterOptions Record

Passed into the `applyFilter` methods to control advanced filtering options.

#### Fields

<table class="table--plain">
                    <colgroup><col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    </colgroup><tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="29%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td valign="top" width="21%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="29%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>isExcludeMode</b>
                            </p>
                        </td>
                        <td valign="top" width="21%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                bool
                            </p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Determines whether the filter will apply in exclude mode
 or include mode. The default is include, which means that you use the fields
 as part of a filter. Exclude mode means that you include everything else
 except the specified fields.</p>
                        </td>
                    </tr>
                </tbody></table>

### RangeFilterOptions Record

Passed into the `applyRangeFilterAsync` method to control advanced filtering options. These options reflect the options for dimensions and measures as shown in the Filter dialog box in Tableau.

#### Fields

<table class="table--plain">
                    <colgroup><col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    <col class="TableStyle-TopNav-Column-Column1">
                    </colgroup><tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="29%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td valign="top" width="21%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="29%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>min</b>
                            </p>
                        </td>
                        <td valign="top" width="21%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>int</b> or <b>date</b></p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Minimum value for the range (inclusive). Optional. Leave
 blank if you want a &lt;= filter.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="29%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>max</b>
                            </p>
                        </td>
                        <td valign="top" width="21%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>int</b> or <b>date</b></p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Maximum value for the range (inclusive). Optional. Leave
 blank if you want a &gt;= filter.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="29%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>nullOption</b>
                            </p>
                        </td>
                        <td valign="top" width="21%" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                NullOption
                            </p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Specifies whether to include null values. The options are as follows. <br><br>To only include null values: <code>tableauSoftware.NullOption.NULL_VALUES</code></p>
                            <p> To only include non-null values:&nbsp; <code>tableauSoftware.NullOption.NON_NULL_VALUES</code></p>
                            <p>To include all values, null and non-null:<br> <code>tableauSoftware.NullOption.ALL_VALUES</code></p>
                        </td>
                    </tr>
                </tbody></table>

**Examples:**

```
worksheet.applyRangeFilterAsync("SUM(Sales)", {min: 2000, max: 4000});
```

```
worksheet.applyRangeFilterAsync("Date", {min: new Date(Date.UTC(2010, 3, 1)),
		max: new Date(Date.UTC(2010, 12, 31))});
```

```
worksheet.applyRangeFilterAsync("AVG(Verbosity)",
			{ min: "5.0", max: "10", nullOption: tableauSoftware.NullOption.ALL_VALUES });
```

```
worksheet.applyRangeFilterAsync("AVG(Verbosity)", {nullOption: tableauSoftware.NullOption.NON_NULL_VALUES });									
```

### RelativeDateFilterOptions Record

Passed into the `applyRelativeDateFilterAsync` method to control advanced filtering options.

#### Fields

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="19%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="19%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="19%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>anchorDate</b>
                            </p>
                        </td>
                        <td width="19%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Date
                            </p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The UTC date from which to filter.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="19%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>periodType</b>
                            </p>
                        </td>
                        <td width="19%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>PeriodType</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Year, quarter, month, etc.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="19%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>rangeType</b>
                            </p>
                        </td>
                        <td width="19%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>DateRangeType</p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p><code>LAST</code>, <code>LASTN</code>, <code>NEXT</code>, etc.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="19%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>rangeN</b>
                            </p>
                        </td>
                        <td width="19%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                int
                            </p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The number used when the <code>rangeType</code>
  is <code>LASTN</code> or <code>NEXTN</code>.</p>
                        </td>
                    </tr>
                </tbody></table>

### Filter Class

An abstract base class for all of the filter types.

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getWorksheet</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Worksheet</p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the parent worksheet</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getFilterType</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>FilterType</p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the type of the filter. See <a href="#_FilterType_Enum"><span class="SpellE">FilterType</span> <span class="SpellE">Enum</span></a> for the values in the enum.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getFieldName</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                string
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the name of the field being filtered. Note that this
 is the caption as shown in the UI and not the actual database field name.</p>
                        </td>
                    </tr>
                </tbody></table>

#### Methods

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="17%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Return Type
                    </p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getAppliedWorksheetsAsync</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="17%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise&lt;string[]&gt;</p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the list of worksheets that have the filter applied.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getFieldAsync</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="17%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Promise&lt;Field&gt;</p>
                        </td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the field that is currently being filtered.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <b>setAppliedWorksheetsAsync</b><b>(applyToWorksheets: string[] )</b>
                            
                        </td>
                        <td width="17%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">Promise&lt;string[]&gt;</td>
                        <td width="50%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Applies the filter to the specified list of worksheets. If the worksheet(s) do not exist or do not contain the field in their data sources, an exception is thrown. </td>
                    </tr>
                </tbody></table>

### NullOption Enum

An enumeration that indicates what to do with null values for a given filter or mark selection call.

#### **Enumeration**

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>NULL_VALUES</b>
                            </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Only include null values in the filter.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>NON_NULL_VALUES</b>
                            </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Only include non-null values in the filter.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>ALL_VALUES</b>
                            </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Include null and non-null values in the filter.</p>
                        </td>
                    </tr>
                </tbody></table>

### CategoricalFilter Class

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getIsExcludeMode()</b>
                                
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                bool
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets a value indicating whether the filter is exclude or include (default).</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getAppliedValues()</b>
                                
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>DataValue[]</p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the collection of values that are currently set on the
 filter. This is a native JavaScript array and not a keyed
 collection. If more than 5000 values are selected, only the first 200 are returned.  </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>getIsAllSelected()</b>
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            bool
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Gets a value indicating whether all values for the filter are selected. Returns true if all values in the filter are selected.</td>
                    </tr>
                </tbody></table>

### QuantitativeFilter Class

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getDomainMin</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                DataValue
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the minimum value as specified in the domain.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getDomainMax</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                DataValue
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the maximum value as specified in the domain.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getMin</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                DataValue
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the minimum value, inclusive, applied to the filter.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getMax</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                DataValue
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the maximum value, inclusive, applied to the filter.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="31%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getIncludeNullValues</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                bool
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Indicates whether null values are included in the filter.</p>
                        </td>
                    </tr>
                </tbody></table>

### RelativeDateFilter Class

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getPeriod</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                PeriodType
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The date period of the filter. See <a href="#_PeriodType_Enum"><span class="SpellE">PeriodType</span> <span class="SpellE">Enum</span></a> for the values in the enum.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getRange</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>DateRangeType</p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The range of the date filter (years, months, etc.). See <a href="#_DateRangeType_Enum"><span class="SpellE">DateRangeType</span> <span class="SpellE">Enum</span></a> for the values in the enum.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getRangeN</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>int</p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>When <code>getRange</code>
  returns <code>LASTN</code> or <code>NEXTN</code>, this is the N value (how many years, months, etc.).</p>
                        </td>
                    </tr>
                </tbody></table>

### DataValue Record

A DataValue contains both the raw and formatted value for a filter or parameter. Date values are always expressed in UTC dates.

#### Fields

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>value</b>
                        </td>
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            object
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Contains the raw native value as a JavaScript type, which is one of String, Number, Boolean, or Date</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="28%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>formattedValue</b>
                            </p>
                        </td>
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                string
                            </p>
                        </td>
                        <td width="54%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The value formatted according to the locale and the formatting applied to the field or parameter.</p>
                        </td>
                    </tr>
                </tbody></table>

### FilterType Enum

An enumeration of the valid types of filters that can be applied.

#### **Enumeration**

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>CATEGORICAL</b>
                            </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Categorical filters are used to filter to a set of values
 within the domain.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>QUANTITATIVE</b>
                            </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Quantitative filters are used to filter to a range of
 values from a continuous domain.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>HIERARCHICAL</b>
                            </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Hierarchical filters are used to filter to a set of values
 organized into a hierarchy within the domain.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>RELATIVE_DATE</b>
                            </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Relative date filters are used to filter a date/time
 domain to a range of values relative to a fixed point in time.</p>
                        </td>
                    </tr>
                </tbody></table>

### FilterUpdateType Enum

An enumeration of the valid types of filtering that can be done.

#### **Enumeration**

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>ALL</b>
                            </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Adds all values to the filter. Equivalent to checking the
 (All) value in a quick filter.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>REPLACE</b>
                            </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Replaces the current filter values with new ones specified
 in the call.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>ADD</b>
                            </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Adds the filter values as specified in the call to the
 current filter values. Equivalent to checking a value in a quick filter.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>REMOVE</b>
                            </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Removes the filter values as specified in the call from
 the current filter values. Equivalent to unchecking
  a value in a quick filter.</p>
                        </td>
                    </tr>
                </tbody></table>

### PeriodType Enum

An enumeration of a date period used in filters and in parameters.

#### **Enumeration**

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="100%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="100%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p><b>YEARS</b>
                            </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="100%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p><b>QUARTERS</b>
                            </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="100%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p><b>MONTHS</b>
                            </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="100%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p><b>WEEKS</b>
                            </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="100%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p><b>DAYS</b>
                            </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="100%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p><b>HOURS</b>
                            </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="100%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p><b>MINUTES</b>
                            </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="100%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p><b>SECONDS</b>
                            </p>
                        </td>
                    </tr>
                </tbody></table>

### DateRangeType Enum

An enumeration of the valid date ranges for a relative date filter.

#### **Enumeration**

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>LAST</b>
                            </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Refers to the last day, week, month, etc. of the date
 period.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>LASTN</b>
                            </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Refers to the last N days, weeks, months, etc. of the date
 period.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>NEXT</b>
                            </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Refers to the next day, week, month, etc. of the date
 period.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>NEXTN</b>
                            </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Refers to the next N days, weeks, months, etc. of the date
 period.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>CURRENT</b>
                            </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Refers to the current day, week, month, etc. of the date
 period.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>TODATE</b>
                            </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Refers to everything up to and including the current day,
 week, month, etc. of the date period.</p>
                        </td>
                    </tr>
                </tbody></table>

## Marks Selection

Selecting marks is almost identical to filtering. For filtering, you use one of the `Worksheet.applyFilterAsync()` methods. For selecting marks, you use `Worksheet.selectMarksAsync()`. The parameters for marks selection are almost identical to those used for filtering.This provides a very simple, easy to learn, and consistent way to accomplish the two most common use cases for the API: filtering and selection.

### Worksheet Class (Selecting Marks)

These methods are on the `Worksheet class`, but are shown here for convenience.

#### Methods

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="37%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Return Type
                    </p>
                        </td>
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="37%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>clearSelectedMarksAsync</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                void
                            </p>
                        </td>
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Clears the selection for this worksheet.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="37%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getSelectedMarksAsync</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Promise&lt;Mark[]&gt;
                            </p>
                        </td>
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets the collection of marks that are currently selected.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="37%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>selectMarksAsync</b><b>(<br> fieldName:
 string,<br> value: object or object[],<br> updateType:
  SelectionUpdateType)</b>
                                
                            </p>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                void
                            </p>
                        </td>
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Selects the marks and returns them. </p>
                            <p>For example, a single field (dimension) and value: </p>
                            <p>
                                <br><code>worksheet.selectMarksAsync("Product", "Mint",
                    tableau.SelectionUpdateType.REPLACE);</code>
                            </p>
                            <p>
                                <br>

					Or single field and multiple values:</p>
                            <p>
                                <br><code>worksheet.selectMarksAsync("Product", ["Chamomile", "Mint"], tableau.SelectionUpdateType.REPLACE);</code>
                            </p>
                            <p>Or select marks based upon range:</p>
                            <p>
                                <br><code>sheet.selectMarksAsync( {"College": [ "Business", "Engineering" ], "Total Score": { min:1600, max:2300 } }, tableau.SelectionUpdateType.REPLACE );</code>
                                <br>
                            </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="37%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>selectMarksAsync</b><b>(<br> fieldValuesMap:
 object,<br> updateType:
  SelectionUpdateType)</b>
                                
                            </p>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                void
                            </p>
                        </td>
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Allows selection based on this syntax for the first
 parameter:<br><code>  {</code><br style="mc-tag-and-class: code;"><code> "Field1": value,</code><br style="mc-tag-and-class: code;"><code> "Field2": [1, 2, 3]</code><br style="mc-tag-and-class: code;"><code>  }</code></p>
                            <p>For example, selecting by product and state. </p>
                            <p>
                                <br><code>worksheet.selectMarks({"Product": ["Caffe Latte", "Caffe Mocha"],"State": ["California","Florida"]},tableauSoftware.FilterUpdateType.ADD);</code>
                            </p>
                            <p>For more examples of how you can use this method, see <a href="https://help.tableau.com/current/api/js_api/en-us/JavaScriptAPI/js_api_concepts_selecting_marks.htm" class="xref">Selecting Marks</a> and the <a href="https://help.tableau.com/current/api/js_api/en-us/JavaScriptAPI/js_api_sample_select_marks.htm" class="xref">Select Marks</a> sample. <br></p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="37%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>selectMarksAsync</b><b>(<br> marks: Mark[],<br> updateType:
  SelectionUpdateType)</b>
                                
                            </p>
                        </td>
                        <td width="21%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                void
                            </p>
                        </td>
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p width="40%" valign="top">Selects an array of marks. See the <a href="#Mark" class="xref">Mark Class</a> and the following example.
                    </p>
                        </td>
                    </tr>
                </tbody></table>

**Example of selectMarksAsync using the Mark class:**

```
(function (marks) {
  // filter out only the Washington and Oregon marks
  var onlyWashingtonAndOregon = [];
  for (var i = 0, len = marks.length; i < len; i++) {
    var m = marks[i];
    var pair = m.getPairs().get("State");
    if (pair &&
      (pair.value === "Washington" || pair.value === "Oregon")) {
	    onlyWashingtonAndOregon.push(m);
    }
  }
  return worksheet.selectMarksAsync(
    onlyWashingtonAndOregon,
    tableau.SelectionUpdateType.REPLACE);
})
```

### Mark Class

A mark represents a single data point on the visualization. It is independent of the type of visualization (bar, line, pie, etc.).

#### Constructor

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Signature
                    </p>
                        </td>
                        <td width="59%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>Mark(pairs: Pair[])</b>
                            </p>
                        </td>
                        <td width="59%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Creates a new <code>Mark</code> with the specified pairs.</p>
                        </td>
                    </tr>
                </tbody></table>

#### Properties

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                <b>getPairs</b><b>()</b>
                                
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                Pair[]
                            </p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Gets a collection of field name/value pairs associated
 with the mark.</p>
                        </td>
                    </tr>
                </tbody></table>

### Pair Class

A pair contains a field name and a value (both the raw and formatted values).

#### Constructor

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Signature
                    </p>
                        </td>
                        <td width="59%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="40%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>Pair(fieldName: string, value: object)</b>
                            </p>
                        </td>
                        <td width="59%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Creates a new <code>Pair</code> with the specified field name/value pairing</p>
                        </td>
                    </tr>
                </tbody></table>

#### Fields

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>fieldName</b>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            string
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">The field name to which the value is applied.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1"><b>value</b>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            object
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">Contains the raw native value for the field as a JavaScript type, which is one of String, Number, Boolean, or Date.</td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="23%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>formattedValue</b>
                            </p>
                        </td>
                        <td width="15%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                string
                            </p>
                        </td>
                        <td width="60%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The value formatted according to the locale and the formatting applied to the field.</p>
                        </td>
                    </tr>
                </tbody></table>

### SelectionUpdateType Enum

An enumeration of the valid types of marks selection that can be done.

#### **Enumeration**

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>REPLACE</b>
                            </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Replaces the current marks values with new ones specified
 in the call.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>ADD</b>
                            </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Adds the values as specified in the call to the current
 selection. Equivalent to control-clicking in desktop.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="16%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>REMOVE</b>
                            </p>
                        </td>
                        <td width="83%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Removes the values as specified in the call from the
 current selection. Equivalent to control-clicking an already selected mark in
 desktop.</p>
                        </td>
                    </tr>
                </tbody></table>

## Other Classes

### Size Record

Represents a width and height in pixels. This is implemented as a plain JavaScript object (it’s not a class).

#### Fields

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>width</b>
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                int
                            </p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Expressed in pixel units.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>height</b>
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                int
                            </p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Expressed in pixel units.</p>
                        </td>
                    </tr>
                </tbody></table>

### Point Record

Represents an x/y coordinate in pixels. This is implemented as a plain JavaScript object (it’s not a class).

#### Fields

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>x</b>
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                int
                            </p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Expressed in pixel units.</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>y</b>
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                int
                            </p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Expressed in pixel units.</p>
                        </td>
                    </tr>
                </tbody></table>

### ContextMenuOptions Class

Represents the options for the menu item that appears in the custom context menu. You can use the context menu to run commands outside of Tableau.

Fields

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
                    </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
                    </p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
                    </p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>displayName</b>
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                string
                            </p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The name of the custom menu item as you want it to appear in Tableau.</p>
                        </td>
                    </tr>
                </tbody></table>

### ApiMenuType Enum

Represents the location of a context menu where users can add external menu items.

Fields

<table class="table--plain">
                    <tbody><tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Name
					</p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>Type
					</p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>Description
					</p>
                        </td>
                    </tr>
                    <tr class="TableStyle-TopNav-Body-Body1">
                        <td width="34%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p><b>Ubertip</b>
                            </p>
                        </td>
                        <td width="13%" valign="top" class="TableStyle-TopNav-BodyE-Column1-Body1">
                            <p>
                                string
                            </p>
                        </td>
                        <td width="51%" valign="top" class="TableStyle-TopNav-BodyD-Column1-Body1">
                            <p>The custom menu item will appear in the marks selection tooltip (also known as an "ubertip"). </p>
                        </td>
                    </tr>
                </tbody></table>