LiveboardViewConfig
- Index
- Properties
- activeTabId
- additionalFlags
- collapseSearchBar
- contextMenuTrigger
- coverAndFilterOptionInPDF
- customActions
- customizations
- dataPanelV2
- defaultHeight
- disableRedirectionLinksInNewTab
- disabledActionReason
- disabledActions
- doNotTrackPreRenderSize
- enable2ColumnLayout
- enableAskSage
- enableCustomColumnGroups
- enableV2Shell_experimental
- enableVizTransformations
- excludeRuntimeFiltersfromURL
- excludeRuntimeParametersfromURL
- exposeTranslationIDs
- frameParams
- fullHeight
- hiddenActions
- hiddenTabs
- hideIrrelevantChipsInLiveboardTabs
- hideLiveboardHeader
- hideTabPanel
- insertAsSibling
- interceptTimeout
- interceptUrls
- isCentralizedLiveboardFilterUXEnabled
- isEnhancedFilterInteractivityEnabled
- isGranularXLSXCSVSchedulesEnabled
- isLinkParametersEnabled
- isLiveboardCompactHeaderEnabled
- isLiveboardHeaderSticky
- isLiveboardMasterpiecesEnabled
- isLiveboardStylingAndGroupingEnabled
- isLiveboardXLSXCSVDownloadEnabled
- isOnBeforeGetVizDataInterceptEnabled
- isPNGInScheduledEmailsEnabled
- isThisPeriodInDateFiltersEnabled
- lazyLoadingForFullHeight
- lazyLoadingMargin
- linkOverride
- liveboardId
- liveboardV2
- locale
- minimumHeight
- overrideOrgId
- personalizedViewId
- preRenderId
- preventLiveboardFilterRemoval
- primaryAction
- refreshAuthTokenOnNearExpiry
- runtimeFilters
- runtimeParameters
- shouldBypassPayloadValidation
- showAlerts
- showLiveboardDescription
- showLiveboardReverifyBanner
- showLiveboardTitle
- showLiveboardVerifiedBadge
- showMaskedFilterChip
- showPreviewLoader
- showSpotterLimitations
- spotterChatConfig
- updatedSpotterChatPrompt
- useHostEventsV2
- visibleActions
- visibleTabs
- visibleVizs
- vizId
The configuration for the embedded Liveboard or visualization page view.
Index🔗
Properties🔗
activeTabId🔗
activeTabId: string
Optional
Set a Liveboard tab as an active tab. Specify the tab ID.
Supported embed types: LiveboardEmbed
Version : SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1-sw
const embed = new LiveboardEmbed('#tsEmbed', {
... //other embed view config
activeTabId:'id-1234',
})
additionalFlags🔗
additionalFlags: {[key: string ] : string | number | boolean}
Optional
This is an object (key/val) of override flags which will be applied to the internal embedded object. This can be used to add any URL flag. If the same flags are passed in init, they will be overridden by the values here. Warning: This option is for advanced use only and is used internally to control embed behavior in non-regular ways. We do not publish the list of supported keys and values associated with each.
Supported embed types: AppEmbed, LiveboardEmbed, SageEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed
Index Signature Parameters
Version : SDK: 1.9.0 | ThoughtSpot: 8.1.0.cl, 8.4.1.sw
// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
additionalFlags: {
flag1: 'value1',
flag2: 'value2'
},
});
collapseSearchBar🔗
collapseSearchBar: boolean
Optional
To set the initial state of the search bar in case of saved Answers.
Supported embed types: SageEmbed, AppEmbed, SearchBarEmbed
Version : SDK: 1.34.0 | ThoughtSpot: 10.3.0.cl
default : true
// Replace <EmbedComponent> with embed component name. For example, SageEmbed, AppEmbed, or SearchBarEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
collapseSearchBar: true,
});
contextMenuTrigger🔗
contextMenuTrigger: ContextMenuTriggerOptions
Optional
flag to set ContextMenu Trigger to either left or right click.
Supported embed types: AppEmbed, SageEmbed, SearchEmbed
Version : SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SageEmbed, or SearchEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
contextMenuTrigger:ContextMenuTriggerOptions.LEFT_CLICK || RIGHT_CLICK,
})
coverAndFilterOptionInPDF🔗
coverAndFilterOptionInPDF: boolean
Optional
This flag is used to show or hide checkboxes for including or excluding the cover and filters pages in the Liveboard PDF.
Supported embed types: AppEmbed, LiveboardEmbed
Version : SDK: 1.40.0 | ThoughtSpot: 10.8.0.cl
// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
coverAndFilterOptionInPDF: false,
})
customActions🔗
customActions: CustomAction[]
Optional
Custom Actions allows users to define interactive UI actions (like buttons or menu items) that appear in ThoughtSpot’s visualizations, answers, and Liveboards. These actions enable users to trigger custom workflows — such as navigating to an external app, calling an API, or opening a modal — based on the data context of what they clicked can be used to trigger custom logic when the action is clicked.
Supported embed types: AppEmbed, LiveboardEmbed, SageEmbed, SearchEmbed, SpotterEmbed
Version : SDK: 1.43.0 | ThoughtSpot: 10.14.0.cl
import {
CustomActionPayload,
CustomActionsPosition,
CustomActionTarget,
} from '@thoughtspot/visual-embed-sdk';
// Use supported embed types such as AppEmbed or LiveboardEmbed
const embed = new LiveboardEmbed('#tsEmbed', {
... // other embed config options
customActions: [
{
// Unique identifier for the custom action
id: 'my-custom-action',
// Display name shown to users in the UI
name: 'My Custom Action',
// Where the action appears in the UI
// PRIMARY: Shows as a primary button (e.g., in the toolbar)
// MENU: Shows in the "More" menu (three dots menu)
// CONTEXTMENU: Shows in the right-click context menu
position: CustomActionsPosition.PRIMARY,
// What type of content this action applies to
// ANSWER: Available on answer pages
target: CustomActionTarget.ANSWER,
// Optional: Restrict where this action appears based on data models
// dataModelIds: {
// // Restrict to specific data models
// modelIds: ['model-id-1', 'model-id-2'],
// // Restrict to specific columns within models
// modelColumnNames: ['model-id::column-name']
// },
// Optional: Restrict where this action appears based on metadata
// metadataIds: {
// // Restrict to specific answers
// answerIds: ['answer-id-1', 'answer-id-2'],
// },
// // Restrict to specific groups (for group-based access control)
// groupIds: ['group-id-1', 'group-id-2'],
// // Restrict to specific organizations (for multi-org deployments)
// orgIds: ['org-id-1', 'org-id-2'],
}
],
})
// to trigger a custom flow on custom action click listen to Custom action embed event
embed.on(EmbedEvent.CustomAction, (payload: CustomActionPayload) => {
console.log('Custom Action event:', payload);
})
import {
CustomActionsPosition,
CustomActionTarget,
} from '@thoughtspot/visual-embed-sdk';
const embed = new LiveboardEmbed('#tsEmbed', {
... // other embed config options
customActions: [
{
// Unique identifier for the custom action
id: 'my-custom-action',
// Display name shown to users in the UI
name: 'My Custom Action',
// Where the action appears in the UI
// MENU: Shows in the "More" menu (three dots menu)
// CONTEXTMENU: Shows in the right-click context menu
position: CustomActionsPosition.MENU,
// What type of content this action applies to
// SPOTTER: Available in Spotter (AI-powered search)
target: CustomActionTarget.SPOTTER,
// Optional: Restrict where this action appears based on data models
// dataModelIds: {
// // Restrict to specific data models
// modelIds: ['model-id-1', 'model-id-2'],
// },
// // Restrict to specific groups (for group-based access control)
// groupIds: ['group-id-1'],
// // Restrict to specific organizations (for multi-org deployments)
// orgIds: ['org-id-1'],
}
],
})
import {
CustomActionsPosition,
CustomActionTarget,
} from '@thoughtspot/visual-embed-sdk';
const embed = new LiveboardEmbed('#tsEmbed', {
... // other embed config options
customActions: [
{
// Unique identifier for the custom action
id: 'my-liveboard-custom-action',
// Display name shown to users in the UI
name: 'My Liveboard Custom Action',
// Where the action appears in the UI
// PRIMARY: Shows as a primary button (e.g., in the toolbar)
// MENU: Shows in the "More" menu (three dots menu)
position: CustomActionsPosition.PRIMARY,
// What type of content this action applies to
// LIVEBOARD: Available on liveboard pages
target: CustomActionTarget.LIVEBOARD,
// Optional: Restrict where this action appears based on metadata
// metadataIds: {
// // Restrict to specific liveboards
// liveboardIds: ['liveboard-id-1', 'liveboard-id-2'],
// },
// // Restrict to specific groups (for group-based access control)
// groupIds: ['group-id-1', 'group-id-2'],
// // Restrict to specific organizations (for multi-org deployments)
// orgIds: ['org-id-1', 'org-id-2'],
},
{
// Unique identifier for the custom action
id: 'my-viz-custom-action',
// Display name shown to users in the UI
name: 'My Viz Custom Action',
// Where the action appears in the UI
// PRIMARY: Shows as a primary button (e.g., in the toolbar)
// MENU: Shows in the "More" menu (three dots menu)
// CONTEXTMENU: Shows in the right-click context menu
position: CustomActionsPosition.PRIMARY,
// What type of content this action applies to
// VIZ: Available on individual visualizations
target: CustomActionTarget.VIZ,
// Optional: Restrict where this action appears based on metadata
// metadataIds: {
// // Restrict to specific answers
// answerIds: ['answer-id-1', 'answer-id-2'],
// // Restrict to specific liveboard. If liveboardId is
// // passed, custom actions will appear on all vizzes of liveboard
// liveboardIds: ['liveboard-id-1'],
// // Restrict to specific vizIds
// vizIds: ['viz-id-1']
// },
// dataModelIds: {
// // Restrict to specific data models
// modelIds: ['model-id-1', 'model-id-2'],
// // Restrict to specific columns within models
// modelColumnNames: ['model-id::column-name']
// },
// // Restrict to specific groups (for group-based access control)
// groupIds: ['group-id-1', 'group-id-2'],
// // Restrict to specific organizations (for multi-org deployments)
// orgIds: ['org-id-1', 'org-id-2'],
}
],
})
customizations🔗
customizations: CustomisationsInterface
Optional
Dynamic CSSUrl and customCSS to be injected in the loaded application.
You would also need to set style-src in the CSP settings.
Version : SDK: 1.17.2 | ThoughtSpot: 8.4.1.sw, 8.4.0.cl
default : ''
dataPanelV2🔗
dataPanelV2: boolean
Optional
Flag to control Data panel experience
Supported embed types: SageEmbed, AppEmbed, SearchBarEmbed, LiveboardEmbed, SearchEmbed
Deprecated : from SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
default : true
// Replace <EmbedComponent> with embed component name. For example, SageEmbed, AppEmbed, or SearchBarEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
dataPanelV2: true,
})
defaultHeight🔗
defaultHeight: number
Optional
This is the minimum height (in pixels) for a full-height Liveboard. Setting this height helps resolve issues with empty Liveboards and other screens navigable from a Liveboard.
Supported embed types: LiveboardEmbed
Version : SDK: 1.5.0 | ThoughtSpot: ts7.oct.cl, 7.2.1
Deprecated : Use minimumHeight instead.
default : 500
const embed = new LiveboardEmbed('#embed', {
... // other liveboard view config
fullHeight: true,
defaultHeight: 600,
});
disableRedirectionLinksInNewTab🔗
disableRedirectionLinksInNewTab: boolean
Optional
This flag can be used to disable links inside the embedded app, and disable redirection of links in a new tab.
Supported embed types: AppEmbed, LiveboardEmbed, SageEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed
Version : SDK: 1.32.1 | ThoughtSpot: 10.3.0.cl
// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
disableRedirectionLinksInNewTab: true,
});
disabledActionReason🔗
disabledActionReason: string
Optional
The tooltip to display for disabled actions.
Supported embed types: AppEmbed, LiveboardEmbed, SageEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed
Version : SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
disabledActions: [Action.Download, Action.Save],
disabledActionReason: "Reason for disabling",
});
disabledActions🔗
disabledActions: Action[]
Optional
The list of actions to disable from the primary menu, more menu (…​), and the contextual menu. These actions will be disabled for the user. Use this to disable actions.
Supported embed types: AppEmbed, LiveboardEmbed, SageEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed
Version : SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
disabledActions: [Action.Download, Action.Save],
});
doNotTrackPreRenderSize🔗
doNotTrackPreRenderSize: boolean
Optional
Determines if the PreRender component should dynamically track the size of its embedding element and adjust its own size accordingly. Enabling this option allows the PreRender component to automatically adapt its dimensions based on changes to the size of the embedding element.
Version : SDK: 1.24.0 | ThoughtSpot: 9.4.0.cl, 9.4.0.sw
default : false
// Disable tracking PreRender size in the configuration
const config = {
doNotTrackPreRenderSize: true,
};
// Instantiate an object with the configuration
const myComponent = new MyComponent(config);
enable2ColumnLayout🔗
enable2ColumnLayout: boolean
Optional
This attribute can be used to enable the two-column layout on an embedded Liveboard
Supported embed types: AppEmbed, LiveboardEmbed
Version : SDK: 1.32.0 | ThoughtSpot: 10.1.0.cl
default : false
// Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
enable2ColumnLayout: true,
})
enableAskSage🔗
enableAskSage: boolean
Optional
enable or disable ask sage
Supported embed types: AppEmbed, LiveboardEmbed
Version : SDK: 1.29.0 | ThoughtSpot: 9.12.0.cl
default : false
// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SpotterEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
enableAskSage:true,
})
enableCustomColumnGroups🔗
enableCustomColumnGroups: boolean
Optional
To enable custom column groups in data panel v2
Supported embed types: SageEmbed, SearchBarEmbed, LiveboardEmbed, SearchEmbed
Version : SDK: 1.32.0 | ThoughtSpot: 10.0.0.cl, 10.1.0.sw
default : false
// Replace <EmbedComponent> with embed component name. For example, SageEmbed, SearchBarEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
enableCustomColumnGroups: true,
});
enableV2Shell_experimental🔗
enableV2Shell_experimental: boolean
Optional
Enable the V2 shell. This can provide performance benefits due to a lighter-weight shell.
Supported embed types: AppEmbed, LiveboardEmbed, SageEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed
Version : SDK: 1.31.2 | ThoughtSpot: 10.0.0.cl
// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
enableV2Shell_experimental: true,
});
enableVizTransformations🔗
enableVizTransformations: boolean
Optional
If set to true, the context menu in visualizations will be enabled.
Version : SDK: 1.1.0 | ThoughtSpot: 8.1.0.sw
Deprecated : this option is deprecated.
const embed = new LiveboardEmbed('#tsEmbed', {
... //other embed view config
enableVizTransformations:true,
})
excludeRuntimeFiltersfromURL🔗
excludeRuntimeFiltersfromURL: boolean
Optional
Boolean to exclude runtimeFilters in the URL By default it is true, this flag removes runtime filters from the URL (default behavior from SDK 1.45.0). when set to false, runtime filters will be included in the URL (default behavior before SDK 1.45.0).
Irrespective of this flag, runtime filters ( if passed ) will be applied to the embedded view.
Version : SDK: 1.24.0 | ThoughtSpot: 9.5.0.cl
default : true
excludeRuntimeParametersfromURL🔗
excludeRuntimeParametersfromURL: boolean
Optional
Boolean to exclude runtimeParameters from the URL when set to true, this flag removes runtime parameters from the URL (default behavior from SDK 1.45.0). when set to false, runtime parameters will be included in the URL (default behavior before SDK 1.45.0).
Irrespective of this flag, runtime parameters (if passed) will be applied to the embedded view.
Version : SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl
default : true
exposeTranslationIDs🔗
exposeTranslationIDs: boolean
Optional
This flag can be used to expose translation IDs on the embedded app.
Version : SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
default : false
frameParams🔗
frameParams: FrameParams
Optional
The width and height dimensions to render an embedded object inside your app. Specify the values in pixels or percentage.
Supported embed types: AppEmbed, LiveboardEmbed, SageEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SearchBarEmbed
Version : SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1
// Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
const embed = new <EmbedComponent>('#tsEmbed', {
... // other embed view config
frameParams: {
width: '500px' | '50%',
height: '400px' | '60%',
},
})
fullHeight🔗
fullHeight: boolean
Optional
If set to true, the embedded object container dynamically resizes according to the height of the Liveboard.
Note: Using fullHeight loads all visualizations on the
Liveboard simultaneously, which results in multiple warehouse
queries and potentially a longer wait for the topmost
visualizations to display on the screen.
Setting fullHeight to false fetches visualizations
incrementally as users scroll the page to view the charts and tables.
Supported embed types: LiveboardEmbed
Version : SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1
const embed = new LiveboardEmbed('#embed', {
... // other liveboard view config
fullHeight: true,
});