@thoughtspot/visual-embed-sdk 1.41.0-pre-render-1 → 1.41.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -4
- package/cjs/package.json +3 -3
- package/cjs/src/authToken.d.ts +1 -0
- package/cjs/src/authToken.d.ts.map +1 -1
- package/cjs/src/authToken.js +13 -3
- package/cjs/src/authToken.js.map +1 -1
- package/cjs/src/authToken.spec.js +29 -0
- package/cjs/src/authToken.spec.js.map +1 -1
- package/cjs/src/css-variables.d.ts +2 -1
- package/cjs/src/css-variables.d.ts.map +1 -1
- package/cjs/src/embed/app.d.ts +22 -1
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +22 -1
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +70 -3
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/bodyless-conversation.d.ts +0 -1
- package/cjs/src/embed/bodyless-conversation.d.ts.map +1 -1
- package/cjs/src/embed/bodyless-conversation.js +3 -7
- package/cjs/src/embed/bodyless-conversation.js.map +1 -1
- package/cjs/src/embed/conversation.d.ts +2 -3
- package/cjs/src/embed/conversation.d.ts.map +1 -1
- package/cjs/src/embed/conversation.js +2 -7
- package/cjs/src/embed/conversation.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +32 -1
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +8 -25
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +96 -28
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/sage.d.ts +0 -1
- package/cjs/src/embed/sage.d.ts.map +1 -1
- package/cjs/src/embed/sage.js +6 -10
- package/cjs/src/embed/sage.js.map +1 -1
- package/cjs/src/embed/sage.spec.js +20 -10
- package/cjs/src/embed/sage.spec.js.map +1 -1
- package/cjs/src/embed/search-bar.d.ts +0 -1
- package/cjs/src/embed/search-bar.d.ts.map +1 -1
- package/cjs/src/embed/search-bar.js +7 -11
- package/cjs/src/embed/search-bar.js.map +1 -1
- package/cjs/src/embed/search.d.ts +0 -1
- package/cjs/src/embed/search.d.ts.map +1 -1
- package/cjs/src/embed/search.js +8 -7
- package/cjs/src/embed/search.js.map +1 -1
- package/cjs/src/embed/search.spec.js +10 -10
- package/cjs/src/embed/search.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts +5 -7
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +25 -22
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +122 -0
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/errors.d.ts +11 -0
- package/cjs/src/errors.d.ts.map +1 -1
- package/cjs/src/errors.js +12 -1
- package/cjs/src/errors.js.map +1 -1
- package/cjs/src/index.d.ts +2 -2
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js +3 -1
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/react/index.d.ts +1 -1
- package/cjs/src/react/index.d.ts.map +1 -1
- package/cjs/src/react/index.js +4 -2
- package/cjs/src/react/index.js.map +1 -1
- package/cjs/src/react/index.spec.js +1 -1
- package/cjs/src/react/index.spec.js.map +1 -1
- package/cjs/src/types.d.ts +163 -21
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +65 -22
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/custom-actions.d.ts +12 -0
- package/cjs/src/utils/custom-actions.d.ts.map +1 -0
- package/cjs/src/utils/custom-actions.js +180 -0
- package/cjs/src/utils/custom-actions.js.map +1 -0
- package/cjs/src/utils/custom-actions.spec.d.ts +2 -0
- package/cjs/src/utils/custom-actions.spec.d.ts.map +1 -0
- package/cjs/src/utils/custom-actions.spec.js +399 -0
- package/cjs/src/utils/custom-actions.spec.js.map +1 -0
- package/cjs/src/utils/processData.d.ts.map +1 -1
- package/cjs/src/utils/processData.js +10 -0
- package/cjs/src/utils/processData.js.map +1 -1
- package/cjs/src/utils/processData.spec.js +11 -0
- package/cjs/src/utils/processData.spec.js.map +1 -1
- package/cjs/src/utils.d.ts +21 -0
- package/cjs/src/utils.d.ts.map +1 -1
- package/cjs/src/utils.js +32 -1
- package/cjs/src/utils.js.map +1 -1
- package/cjs/src/utils.spec.js +38 -0
- package/cjs/src/utils.spec.js.map +1 -1
- package/dist/{index-CmEQfuE3.js → index-DQueHwfQ.js} +1 -1
- package/dist/src/authToken.d.ts +1 -0
- package/dist/src/authToken.d.ts.map +1 -1
- package/dist/src/css-variables.d.ts +2 -1
- package/dist/src/css-variables.d.ts.map +1 -1
- package/dist/src/embed/app.d.ts +22 -1
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/bodyless-conversation.d.ts +0 -1
- package/dist/src/embed/bodyless-conversation.d.ts.map +1 -1
- package/dist/src/embed/conversation.d.ts +2 -3
- package/dist/src/embed/conversation.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +32 -1
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/sage.d.ts +0 -1
- package/dist/src/embed/sage.d.ts.map +1 -1
- package/dist/src/embed/search-bar.d.ts +0 -1
- package/dist/src/embed/search-bar.d.ts.map +1 -1
- package/dist/src/embed/search.d.ts +0 -1
- package/dist/src/embed/search.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +5 -7
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/dist/src/errors.d.ts +11 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/react/index.d.ts +1 -1
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/types.d.ts +163 -21
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/custom-actions.d.ts +12 -0
- package/dist/src/utils/custom-actions.d.ts.map +1 -0
- package/dist/src/utils/custom-actions.spec.d.ts +2 -0
- package/dist/src/utils/custom-actions.spec.d.ts.map +1 -0
- package/dist/src/utils/processData.d.ts.map +1 -1
- package/dist/src/utils.d.ts +21 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +1773 -251
- package/dist/tsembed-react.js +1772 -250
- package/dist/tsembed.es.js +1771 -250
- package/dist/tsembed.js +1770 -249
- package/dist/visual-embed-sdk-react-full.d.ts +228 -39
- package/dist/visual-embed-sdk-react.d.ts +228 -39
- package/dist/visual-embed-sdk.d.ts +228 -39
- package/lib/package.json +3 -3
- package/lib/src/authToken.d.ts +1 -0
- package/lib/src/authToken.d.ts.map +1 -1
- package/lib/src/authToken.js +11 -2
- package/lib/src/authToken.js.map +1 -1
- package/lib/src/authToken.spec.js +30 -1
- package/lib/src/authToken.spec.js.map +1 -1
- package/lib/src/css-variables.d.ts +2 -1
- package/lib/src/css-variables.d.ts.map +1 -1
- package/lib/src/embed/app.d.ts +22 -1
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +22 -1
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +70 -3
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/bodyless-conversation.d.ts +0 -1
- package/lib/src/embed/bodyless-conversation.d.ts.map +1 -1
- package/lib/src/embed/bodyless-conversation.js +3 -7
- package/lib/src/embed/bodyless-conversation.js.map +1 -1
- package/lib/src/embed/conversation.d.ts +2 -3
- package/lib/src/embed/conversation.d.ts.map +1 -1
- package/lib/src/embed/conversation.js +2 -7
- package/lib/src/embed/conversation.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +32 -1
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +8 -25
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +96 -28
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/sage.d.ts +0 -1
- package/lib/src/embed/sage.d.ts.map +1 -1
- package/lib/src/embed/sage.js +6 -10
- package/lib/src/embed/sage.js.map +1 -1
- package/lib/src/embed/sage.spec.js +20 -10
- package/lib/src/embed/sage.spec.js.map +1 -1
- package/lib/src/embed/search-bar.d.ts +0 -1
- package/lib/src/embed/search-bar.d.ts.map +1 -1
- package/lib/src/embed/search-bar.js +7 -11
- package/lib/src/embed/search-bar.js.map +1 -1
- package/lib/src/embed/search.d.ts +0 -1
- package/lib/src/embed/search.d.ts.map +1 -1
- package/lib/src/embed/search.js +8 -7
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/search.spec.js +11 -11
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +5 -7
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +25 -22
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +123 -1
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/errors.d.ts +11 -0
- package/lib/src/errors.d.ts.map +1 -1
- package/lib/src/errors.js +11 -0
- package/lib/src/errors.js.map +1 -1
- package/lib/src/index.d.ts +2 -2
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +2 -2
- package/lib/src/index.js.map +1 -1
- package/lib/src/react/index.d.ts +1 -1
- package/lib/src/react/index.d.ts.map +1 -1
- package/lib/src/react/index.js +3 -2
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/react/index.spec.js +1 -1
- package/lib/src/react/index.spec.js.map +1 -1
- package/lib/src/types.d.ts +163 -21
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +64 -21
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/custom-actions.d.ts +12 -0
- package/lib/src/utils/custom-actions.d.ts.map +1 -0
- package/lib/src/utils/custom-actions.js +175 -0
- package/lib/src/utils/custom-actions.js.map +1 -0
- package/lib/src/utils/custom-actions.spec.d.ts +2 -0
- package/lib/src/utils/custom-actions.spec.d.ts.map +1 -0
- package/lib/src/utils/custom-actions.spec.js +397 -0
- package/lib/src/utils/custom-actions.spec.js.map +1 -0
- package/lib/src/utils/processData.d.ts.map +1 -1
- package/lib/src/utils/processData.js +10 -0
- package/lib/src/utils/processData.js.map +1 -1
- package/lib/src/utils/processData.spec.js +11 -0
- package/lib/src/utils/processData.spec.js.map +1 -1
- package/lib/src/utils.d.ts +21 -0
- package/lib/src/utils.d.ts.map +1 -1
- package/lib/src/utils.js +29 -0
- package/lib/src/utils.js.map +1 -1
- package/lib/src/utils.spec.js +39 -1
- package/lib/src/utils.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +229 -40
- package/package.json +3 -3
- package/src/authToken.spec.ts +48 -1
- package/src/authToken.ts +13 -2
- package/src/css-variables.ts +2 -1
- package/src/embed/app.spec.ts +99 -3
- package/src/embed/app.ts +44 -1
- package/src/embed/bodyless-conversation.ts +3 -8
- package/src/embed/conversation.ts +4 -19
- package/src/embed/liveboard.spec.ts +128 -30
- package/src/embed/liveboard.ts +66 -52
- package/src/embed/sage.spec.ts +24 -10
- package/src/embed/sage.ts +7 -12
- package/src/embed/search-bar.tsx +7 -14
- package/src/embed/search.spec.ts +13 -14
- package/src/embed/search.ts +8 -19
- package/src/embed/ts-embed.spec.ts +136 -2
- package/src/embed/ts-embed.ts +31 -28
- package/src/errors.ts +12 -0
- package/src/index.ts +4 -0
- package/src/react/index.spec.tsx +1 -1
- package/src/react/index.tsx +5 -2
- package/src/types.ts +225 -79
- package/src/utils/custom-actions.spec.ts +431 -0
- package/src/utils/custom-actions.ts +217 -0
- package/src/utils/processData.spec.ts +12 -0
- package/src/utils/processData.ts +10 -0
- package/src/utils.spec.ts +52 -0
- package/src/utils.ts +31 -0
- package/dist/index-BDlM0f0T.js +0 -7371
- package/dist/index-D1pyb7RG.js +0 -7371
- package/dist/index-DeFzsyFF.js +0 -7371
- package/dist/index-Dpf0rd6w.js +0 -7371
- package/dist/index-UuEbsISo.js +0 -7447
- package/dist/index-e3Uw3YFO.js +0 -7371
- package/dist/index-k7pkZMhx.js +0 -7371
|
@@ -12,7 +12,7 @@ import EventEmitter from 'eventemitter3';
|
|
|
12
12
|
* @summary ThoughtSpot Visual Embed SDK
|
|
13
13
|
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
14
14
|
*/
|
|
15
|
-
export { init, logout, prefetch, executeTML, exportTML, executeTMLInput, exportTMLInput, getEmbedConfig as getInitConfig, getSessionInfo, tokenizedFetch, getAnswerFromQuery, createLiveboardWithAnswers, SearchEmbed, SearchBarEmbed, PinboardEmbed, LiveboardEmbed, SageEmbed, AppEmbed, SpotterAgentEmbed, SpotterAgentEmbedViewConfig, BodylessConversationViewConfig, BodylessConversation, SpotterEmbed, SpotterEmbedViewConfig, ConversationViewConfig, ConversationEmbed, AuthFailureType, AuthStatus, AuthEvent, AuthEventEmitter, AnswerService, SessionInterface, UnderlyingDataPoint, Page, AuthType, RuntimeFilter, RuntimeFilterOp, EmbedEvent, HostEvent, DataSourceVisualMode, Action, ContextMenuTriggerOptions, EmbedConfig, SearchViewConfig, SearchBarViewConfig, LiveboardViewConfig, SageViewConfig, AppViewConfig, PrefetchFeatures, FrameParams, HomeLeftNavItem, HomepageModule, DOMSelector, MessageOptions, MessageCallback, MessagePayload, CustomisationsInterface, CustomStyles, customCssInterface, CustomCssVariables, RuntimeParameter, LogLevel, uploadMixpanelEvent, MIXPANEL_EVENT, HomePageSearchBarMode, PrimaryNavbarVersion, HomePage, ListPage, VizPoint, CustomActionPayload, UIPassthroughEvent, ListPageColumns, DataPanelCustomColumnGroupsAccordionState, };
|
|
15
|
+
export { init, logout, prefetch, executeTML, exportTML, executeTMLInput, exportTMLInput, getEmbedConfig as getInitConfig, getSessionInfo, tokenizedFetch, getAnswerFromQuery, createLiveboardWithAnswers, SearchEmbed, SearchBarEmbed, PinboardEmbed, LiveboardEmbed, SageEmbed, AppEmbed, SpotterAgentEmbed, SpotterAgentEmbedViewConfig, BodylessConversationViewConfig, BodylessConversation, SpotterEmbed, SpotterEmbedViewConfig, ConversationViewConfig, ConversationEmbed, AuthFailureType, AuthStatus, AuthEvent, AuthEventEmitter, AnswerService, SessionInterface, UnderlyingDataPoint, Page, AuthType, RuntimeFilter, RuntimeFilterOp, EmbedEvent, HostEvent, DataSourceVisualMode, Action, ContextMenuTriggerOptions, EmbedConfig, SearchViewConfig, SearchBarViewConfig, LiveboardViewConfig, SageViewConfig, AppViewConfig, PrefetchFeatures, FrameParams, HomeLeftNavItem, HomepageModule, DOMSelector, MessageOptions, MessageCallback, MessagePayload, CustomisationsInterface, CustomStyles, customCssInterface, CustomCssVariables, RuntimeParameter, LogLevel, uploadMixpanelEvent, MIXPANEL_EVENT, HomePageSearchBarMode, PrimaryNavbarVersion, HomePage, ListPage, VizPoint, CustomActionPayload, UIPassthroughEvent, ListPageColumns, DataPanelCustomColumnGroupsAccordionState, CustomActionsPosition, CustomActionTarget, };
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Copyright (c) 2022
|
|
@@ -104,7 +104,12 @@ export enum HomePage {
|
|
|
104
104
|
* Modular (v2) introduces the updated Modular Home Experience.
|
|
105
105
|
* It serves as the foundational version of the home page.
|
|
106
106
|
*/
|
|
107
|
-
Modular = "v2"
|
|
107
|
+
Modular = "v2",
|
|
108
|
+
/**
|
|
109
|
+
* ModularWithStylingChanges (v3) introduces Modular Home Experience
|
|
110
|
+
* with styling changes.
|
|
111
|
+
*/
|
|
112
|
+
ModularWithStylingChanges = "v3"
|
|
108
113
|
}
|
|
109
114
|
/**
|
|
110
115
|
* Define the version of the list page
|
|
@@ -525,6 +530,22 @@ export interface AppViewConfig extends AllEmbedViewConfig {
|
|
|
525
530
|
* ```
|
|
526
531
|
*/
|
|
527
532
|
isLiveboardStylingAndGroupingEnabled?: boolean;
|
|
533
|
+
/**
|
|
534
|
+
* This flag is used to enable/disable the png embedding of liveboard in scheduled mails
|
|
535
|
+
*
|
|
536
|
+
* Supported embed types: `AppEmbed`, `LiveboardEmbed`
|
|
537
|
+
* @type {boolean}
|
|
538
|
+
* @version SDK: 1.42.0 | ThoughtSpot: 10.14.0.cl
|
|
539
|
+
* @example
|
|
540
|
+
* ```js
|
|
541
|
+
* // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
|
|
542
|
+
* const embed = new <EmbedComponent>('#tsEmbed', {
|
|
543
|
+
* ... // other embed view config
|
|
544
|
+
* isPNGInScheduledEmailsEnabled: true,
|
|
545
|
+
* })
|
|
546
|
+
* ```
|
|
547
|
+
*/
|
|
548
|
+
isPNGInScheduledEmailsEnabled?: boolean;
|
|
528
549
|
/**
|
|
529
550
|
* This flag is used to enable the full height lazy load data.
|
|
530
551
|
*
|
|
@@ -1057,6 +1078,22 @@ export interface LiveboardViewConfig extends BaseViewConfig, LiveboardOtherViewC
|
|
|
1057
1078
|
* ```
|
|
1058
1079
|
*/
|
|
1059
1080
|
isLiveboardStylingAndGroupingEnabled?: boolean;
|
|
1081
|
+
/**
|
|
1082
|
+
* This flag is used to enable/disable the png embedding of liveboard in scheduled mails
|
|
1083
|
+
*
|
|
1084
|
+
* Supported embed types: `AppEmbed`, `LiveboardEmbed`
|
|
1085
|
+
* @type {boolean}
|
|
1086
|
+
* @version SDK: 1.42.0 | ThoughtSpot: 10.14.0.cl
|
|
1087
|
+
* @example
|
|
1088
|
+
* ```js
|
|
1089
|
+
* // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
|
|
1090
|
+
* const embed = new <EmbedComponent>('#tsEmbed', {
|
|
1091
|
+
* ... // other embed view config
|
|
1092
|
+
* isPNGInScheduledEmailsEnabled: true,
|
|
1093
|
+
* })
|
|
1094
|
+
* ```
|
|
1095
|
+
*/
|
|
1096
|
+
isPNGInScheduledEmailsEnabled?: boolean;
|
|
1060
1097
|
/**
|
|
1061
1098
|
* This flag is used to enable the full height lazy load data.
|
|
1062
1099
|
*
|
|
@@ -1097,6 +1134,22 @@ export interface LiveboardViewConfig extends BaseViewConfig, LiveboardOtherViewC
|
|
|
1097
1134
|
* @version SDK: 1.40.0 | ThoughtSpot:10.12.0.cl
|
|
1098
1135
|
*/
|
|
1099
1136
|
lazyLoadingMargin?: string;
|
|
1137
|
+
/**
|
|
1138
|
+
* showSpotterLimitations : show limitation text
|
|
1139
|
+
* of the spotter underneath the chat input.
|
|
1140
|
+
* default is false.
|
|
1141
|
+
*
|
|
1142
|
+
* @example
|
|
1143
|
+
* ```js
|
|
1144
|
+
* const embed = new LiveboardEmbed('#embed-container', {
|
|
1145
|
+
* // ...other options
|
|
1146
|
+
* showSpotterLimitations: true,
|
|
1147
|
+
* })
|
|
1148
|
+
* ```
|
|
1149
|
+
* @type {boolean}
|
|
1150
|
+
* @version SDK: 1.41.1 | ThoughtSpot: 10.5.0.cl
|
|
1151
|
+
*/
|
|
1152
|
+
showSpotterLimitations?: boolean;
|
|
1100
1153
|
}
|
|
1101
1154
|
/**
|
|
1102
1155
|
* Embed a ThoughtSpot Liveboard or visualization. When rendered it already
|
|
@@ -1121,7 +1174,6 @@ export class LiveboardEmbed extends V1Embed {
|
|
|
1121
1174
|
* embedded Liveboard or visualization.
|
|
1122
1175
|
*/
|
|
1123
1176
|
protected getEmbedParams(): string;
|
|
1124
|
-
protected getEmbedParamsObject(): any;
|
|
1125
1177
|
/**
|
|
1126
1178
|
* @hidden
|
|
1127
1179
|
* Internal state to track the current liveboard id.
|
|
@@ -1484,7 +1536,6 @@ export class SearchEmbed extends TsEmbed {
|
|
|
1484
1536
|
};
|
|
1485
1537
|
};
|
|
1486
1538
|
protected getAppInitData(): Promise<SearchAppInitData>;
|
|
1487
|
-
protected getEmbedParamsObject(): Record<any, any>;
|
|
1488
1539
|
protected getEmbedParams(): string;
|
|
1489
1540
|
/**
|
|
1490
1541
|
* Construct the URL of the embedded ThoughtSpot search to be
|
|
@@ -1606,7 +1657,6 @@ export class SearchBarEmbed extends TsEmbed {
|
|
|
1606
1657
|
protected viewConfig: SearchBarViewConfig;
|
|
1607
1658
|
protected embedComponentType: string;
|
|
1608
1659
|
constructor(domSelector: string, viewConfig: SearchBarViewConfig);
|
|
1609
|
-
protected getEmbedParamsObject(): Record<any, any>;
|
|
1610
1660
|
/**
|
|
1611
1661
|
* Render the embedded ThoughtSpot search
|
|
1612
1662
|
*/
|
|
@@ -1646,7 +1696,6 @@ export interface SpotterAgentMessageViewConfig extends SpotterAgentEmbedViewConf
|
|
|
1646
1696
|
export class ConversationMessage extends TsEmbed {
|
|
1647
1697
|
protected viewConfig: SpotterAgentMessageViewConfig;
|
|
1648
1698
|
constructor(container: HTMLElement, viewConfig: SpotterAgentMessageViewConfig);
|
|
1649
|
-
protected getEmbedParamsObject(): Record<any, any>;
|
|
1650
1699
|
getIframeSrc(): string;
|
|
1651
1700
|
render(): Promise<ConversationMessage>;
|
|
1652
1701
|
}
|
|
@@ -1780,8 +1829,8 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
|
|
|
1780
1829
|
* Flag to control Data panel experience
|
|
1781
1830
|
*
|
|
1782
1831
|
* Supported embed types: `SageEmbed`, `AppEmbed`, `SearchBarEmbed`, `LiveboardEmbed`, `SearchEmbed`
|
|
1783
|
-
* @default
|
|
1784
|
-
* @version SDK: 1.
|
|
1832
|
+
* @default true
|
|
1833
|
+
* @version SDK: 1.43.0 | ThoughtSpot Cloud: 10.14.0.cl
|
|
1785
1834
|
* @example
|
|
1786
1835
|
* ```js
|
|
1787
1836
|
* // Replace <EmbedComponent> with embed component name. For example, SageEmbed, AppEmbed, or SearchBarEmbed
|
|
@@ -1910,7 +1959,6 @@ export interface ConversationViewConfig extends SpotterEmbedViewConfig {
|
|
|
1910
1959
|
export class SpotterEmbed extends TsEmbed {
|
|
1911
1960
|
protected viewConfig: SpotterEmbedViewConfig;
|
|
1912
1961
|
constructor(container: HTMLElement, viewConfig: SpotterEmbedViewConfig);
|
|
1913
|
-
protected getEmbedParamsObject(): Record<any, any>;
|
|
1914
1962
|
getIframeSrc(): string;
|
|
1915
1963
|
render(): Promise<SpotterEmbed>;
|
|
1916
1964
|
}
|
|
@@ -2858,6 +2906,31 @@ export interface EmbedConfig {
|
|
|
2858
2906
|
* ```
|
|
2859
2907
|
*/
|
|
2860
2908
|
disableFullscreenPresentation?: boolean;
|
|
2909
|
+
/**
|
|
2910
|
+
* Custom Actions allows users to define interactive UI actions (like buttons or menu
|
|
2911
|
+
* items) that appear in ThoughtSpot's visualizations, answers, and Liveboards. These
|
|
2912
|
+
* actions enable users to trigger custom workflows — such as navigating to an
|
|
2913
|
+
* external app, calling an API, or opening a modal — based on the data context of
|
|
2914
|
+
* what they clicked can be used to trigger custom logic when the action is clicked.
|
|
2915
|
+
* @version SDK: 1.43.0 | ThoughtSpot: 10.14.0.cl
|
|
2916
|
+
* @example
|
|
2917
|
+
* ```js
|
|
2918
|
+
* import { CustomActionPosition, CustomActionTarget } from '@thoughtspot/visual-embed-sdk';
|
|
2919
|
+
* init({
|
|
2920
|
+
* ... // other embed config options
|
|
2921
|
+
* customActions: [
|
|
2922
|
+
* {
|
|
2923
|
+
* name: 'customAction',
|
|
2924
|
+
* id: 'customAction',
|
|
2925
|
+
* target: CustomActionTarget.VISUALIZATION,
|
|
2926
|
+
* position: CustomActionPosition.PRIMARY,
|
|
2927
|
+
* }
|
|
2928
|
+
* }
|
|
2929
|
+
* ]
|
|
2930
|
+
* })
|
|
2931
|
+
* ```
|
|
2932
|
+
*/
|
|
2933
|
+
customActions?: CustomAction[];
|
|
2861
2934
|
}
|
|
2862
2935
|
export interface LayoutConfig {
|
|
2863
2936
|
}
|
|
@@ -3218,6 +3291,34 @@ export interface BaseViewConfig {
|
|
|
3218
3291
|
* ```
|
|
3219
3292
|
*/
|
|
3220
3293
|
showAlerts?: boolean;
|
|
3294
|
+
/**
|
|
3295
|
+
* Custom Actions allows users to define interactive UI actions (like buttons or menu
|
|
3296
|
+
* items) that appear in ThoughtSpot's visualizations, answers, and Liveboards. These
|
|
3297
|
+
* actions enable users to trigger custom workflows — such as navigating to an
|
|
3298
|
+
* external app, calling an API, or opening a modal — based on the data context of
|
|
3299
|
+
* what they clicked can be used to trigger custom logic when the action is clicked.
|
|
3300
|
+
*
|
|
3301
|
+
* Supported embed types: `AppEmbed`, `LiveboardEmbed`, `SageEmbed`, `SearchEmbed`, `SpotterEmbed`
|
|
3302
|
+
* @version SDK: 1.43.0 | ThoughtSpot: 10.14.0.cl
|
|
3303
|
+
* @example
|
|
3304
|
+
* ```js
|
|
3305
|
+
* import { CustomActionPosition, CustomActionTarget } from '@thoughtspot/visual-embed-sdk';
|
|
3306
|
+
* // Use supported embed types such as AppEmbed or LiveboardEmbed
|
|
3307
|
+
* const embed = new LiveboardEmbed('#tsEmbed', {
|
|
3308
|
+
* ... // other embed config options
|
|
3309
|
+
* customActions: [
|
|
3310
|
+
* {
|
|
3311
|
+
* name: 'customAction',
|
|
3312
|
+
* id: 'customAction',
|
|
3313
|
+
* target: CustomActionTarget.VISUALIZATION,
|
|
3314
|
+
* position: CustomActionPosition.PRIMARY,
|
|
3315
|
+
* }
|
|
3316
|
+
* }
|
|
3317
|
+
* ]
|
|
3318
|
+
* })
|
|
3319
|
+
* ```
|
|
3320
|
+
*/
|
|
3321
|
+
customActions?: CustomAction[];
|
|
3221
3322
|
}
|
|
3222
3323
|
/**
|
|
3223
3324
|
* The configuration object for Home page embeds configs.
|
|
@@ -3227,7 +3328,8 @@ export interface HomePageConfig {
|
|
|
3227
3328
|
* Hide list page columns
|
|
3228
3329
|
* For example: hiddenListColumns = [ListPageColumns.Author]
|
|
3229
3330
|
*
|
|
3230
|
-
* **Note**: This option is available only in full app embedding
|
|
3331
|
+
* **Note**: This option is currently available only in full app embedding and requires importing the ListPageColumns enum.
|
|
3332
|
+
* At present, it can be used with Liveboard and Answer list pages, and starting with version 10.14.0.cl, it will also be supported for the Home page.
|
|
3231
3333
|
*
|
|
3232
3334
|
* Supported embed types: `AppEmbed`
|
|
3233
3335
|
* @version SDK: 1.38.0 | ThoughtSpot: 10.9.0.cl
|
|
@@ -3412,8 +3514,8 @@ export interface SearchLiveboardCommonViewConfig {
|
|
|
3412
3514
|
* Flag to control Data panel experience
|
|
3413
3515
|
*
|
|
3414
3516
|
* Supported embed types: `SageEmbed`, `AppEmbed`, `SearchBarEmbed`, `LiveboardEmbed`, `SearchEmbed`
|
|
3415
|
-
* @default
|
|
3416
|
-
* @version SDK: 1.
|
|
3517
|
+
* @default true
|
|
3518
|
+
* @version SDK: 1.43.0 | ThoughtSpot Cloud: 10.14.0.cl
|
|
3417
3519
|
* @example
|
|
3418
3520
|
* ```js
|
|
3419
3521
|
* // Replace <EmbedComponent> with embed component name. For example, SageEmbed, AppEmbed, or SearchBarEmbed
|
|
@@ -3543,7 +3645,8 @@ export interface LiveboardAppEmbedViewConfig {
|
|
|
3543
3645
|
*/
|
|
3544
3646
|
isLiveboardCompactHeaderEnabled?: boolean;
|
|
3545
3647
|
/**
|
|
3546
|
-
* This flag can be used to show or hide the Liveboard verified icon in the compact
|
|
3648
|
+
* This flag can be used to show or hide the Liveboard verified icon in the compact
|
|
3649
|
+
* header.
|
|
3547
3650
|
*
|
|
3548
3651
|
* Supported embed types: `AppEmbed`, `LiveboardEmbed`
|
|
3549
3652
|
* @version SDK: 1.35.0 | ThoughtSpot:10.4.0.cl
|
|
@@ -3561,6 +3664,8 @@ export interface LiveboardAppEmbedViewConfig {
|
|
|
3561
3664
|
/**
|
|
3562
3665
|
* This flag is used to enable/disable hide irrelevant filters in Liveboard tab
|
|
3563
3666
|
*
|
|
3667
|
+
* **Note**: This feature is supported only if compact header is enabled on your Liveboard. To enable compact header, use the `isLiveboardCompactHeaderEnabled` attribute.
|
|
3668
|
+
*
|
|
3564
3669
|
* Supported embed types: `AppEmbed`, `LiveboardEmbed`
|
|
3565
3670
|
* @version SDK: 1.36.0 | ThoughtSpot:10.6.0.cl
|
|
3566
3671
|
* @default false
|
|
@@ -3570,12 +3675,14 @@ export interface LiveboardAppEmbedViewConfig {
|
|
|
3570
3675
|
* const embed = new <EmbedComponent>('#tsEmbed', {
|
|
3571
3676
|
* ... // other embed view config
|
|
3572
3677
|
* hideIrrelevantChipsInLiveboardTabs: true,
|
|
3678
|
+
* isLiveboardCompactHeaderEnabled: true,
|
|
3573
3679
|
* })
|
|
3574
3680
|
* ```
|
|
3575
3681
|
*/
|
|
3576
3682
|
hideIrrelevantChipsInLiveboardTabs?: boolean;
|
|
3577
3683
|
/**
|
|
3578
|
-
* This flag can be used to show or hide the re-verify banner on the Liveboard
|
|
3684
|
+
* This flag can be used to show or hide the re-verify banner on the Liveboard
|
|
3685
|
+
* compact header
|
|
3579
3686
|
*
|
|
3580
3687
|
* Supported embed types: `AppEmbed`, `LiveboardEmbed`
|
|
3581
3688
|
* @version SDK: 1.35.0 | ThoughtSpot:10.4.0.cl
|
|
@@ -3622,6 +3729,21 @@ export interface LiveboardAppEmbedViewConfig {
|
|
|
3622
3729
|
* ```
|
|
3623
3730
|
*/
|
|
3624
3731
|
coverAndFilterOptionInPDF?: boolean;
|
|
3732
|
+
/**
|
|
3733
|
+
* This flag is used to enable or disable the XLSX/CSV download option for Liveboards.
|
|
3734
|
+
*
|
|
3735
|
+
* Supported embed types: `AppEmbed`, `LiveboardEmbed`
|
|
3736
|
+
* @version SDK: 1.41.0 | ThoughtSpot: 10.14.0.cl
|
|
3737
|
+
* @example
|
|
3738
|
+
* ```js
|
|
3739
|
+
* // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
|
|
3740
|
+
* const embed = new <EmbedComponent>('#tsEmbed', {
|
|
3741
|
+
* ... // other embed view config
|
|
3742
|
+
* liveboardXLSXCSVDownload: true,
|
|
3743
|
+
* })
|
|
3744
|
+
* ```
|
|
3745
|
+
*/
|
|
3746
|
+
liveboardXLSXCSVDownload?: boolean;
|
|
3625
3747
|
}
|
|
3626
3748
|
export interface AllEmbedViewConfig extends BaseViewConfig, SearchLiveboardCommonViewConfig, HomePageConfig, LiveboardAppEmbedViewConfig {
|
|
3627
3749
|
}
|
|
@@ -4509,6 +4631,11 @@ export enum EmbedEvent {
|
|
|
4509
4631
|
* @hidden
|
|
4510
4632
|
*/
|
|
4511
4633
|
APP_INIT = "appInit",
|
|
4634
|
+
/**
|
|
4635
|
+
* Internal event to clear the cached info
|
|
4636
|
+
* @hidden
|
|
4637
|
+
*/
|
|
4638
|
+
CLEAR_INFO_CACHE = "clearInfoCache",
|
|
4512
4639
|
/**
|
|
4513
4640
|
* Emitted when a user clicks **Show Liveboard details** on a Liveboard
|
|
4514
4641
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
@@ -4976,7 +5103,18 @@ export enum EmbedEvent {
|
|
|
4976
5103
|
* })
|
|
4977
5104
|
* ```
|
|
4978
5105
|
*/
|
|
4979
|
-
EmbedListenerReady = "EmbedListenerReady"
|
|
5106
|
+
EmbedListenerReady = "EmbedListenerReady",
|
|
5107
|
+
/**
|
|
5108
|
+
* Emitted when the organization is switched.
|
|
5109
|
+
* @example
|
|
5110
|
+
* ```js
|
|
5111
|
+
* appEmbed.on(EmbedEvent.OrgSwitched, (payload) => {
|
|
5112
|
+
* console.log('payload', payload);
|
|
5113
|
+
* })
|
|
5114
|
+
* ```
|
|
5115
|
+
* @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
|
|
5116
|
+
*/
|
|
5117
|
+
OrgSwitched = "orgSwitched"
|
|
4980
5118
|
}
|
|
4981
5119
|
/**
|
|
4982
5120
|
* Event types that can be triggered by the host application
|
|
@@ -5893,7 +6031,7 @@ export enum HostEvent {
|
|
|
5893
6031
|
* column: "Date",
|
|
5894
6032
|
* oper: 'EQ',
|
|
5895
6033
|
* values: ["2023-07-31"],
|
|
5896
|
-
*
|
|
6034
|
+
* type: "EXACT_DATE"
|
|
5897
6035
|
* }]
|
|
5898
6036
|
* });
|
|
5899
6037
|
* ```
|
|
@@ -6238,17 +6376,7 @@ export enum HostEvent {
|
|
|
6238
6376
|
* ```
|
|
6239
6377
|
* @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
|
|
6240
6378
|
*/
|
|
6241
|
-
AskSpotter = "AskSpotter"
|
|
6242
|
-
/**
|
|
6243
|
-
* @hidden
|
|
6244
|
-
* Triggers the update of the embed params.
|
|
6245
|
-
*
|
|
6246
|
-
* @example
|
|
6247
|
-
* ```js
|
|
6248
|
-
* liveboardEmbed.trigger(HostEvent.UpdateEmbedParams, viewConfig);
|
|
6249
|
-
* ```
|
|
6250
|
-
*/
|
|
6251
|
-
UpdateEmbedParams = "updateEmbedParams"
|
|
6379
|
+
AskSpotter = "AskSpotter"
|
|
6252
6380
|
}
|
|
6253
6381
|
/**
|
|
6254
6382
|
* The different visual modes that the data sources panel within
|
|
@@ -6344,6 +6472,7 @@ export enum Param {
|
|
|
6344
6472
|
Query = "query",
|
|
6345
6473
|
HideHomepageLeftNav = "hideHomepageLeftNav",
|
|
6346
6474
|
ModularHomeExperienceEnabled = "modularHomeExperience",
|
|
6475
|
+
HomepageVersion = "homepageVersion",
|
|
6347
6476
|
ListPageVersion = "listpageVersion",
|
|
6348
6477
|
PendoTrackingKey = "additionalPendoKey",
|
|
6349
6478
|
LiveboardHeaderSticky = "isLiveboardHeaderSticky",
|
|
@@ -6384,7 +6513,9 @@ export enum Param {
|
|
|
6384
6513
|
isSpotterAgentEmbed = "isSpotterAgentEmbed",
|
|
6385
6514
|
IsLiveboardStylingAndGroupingEnabled = "isLiveboardStylingAndGroupingEnabled",
|
|
6386
6515
|
IsLazyLoadingForEmbedEnabled = "isLazyLoadingForEmbedEnabled",
|
|
6387
|
-
RootMarginForLazyLoad = "rootMarginForLazyLoad"
|
|
6516
|
+
RootMarginForLazyLoad = "rootMarginForLazyLoad",
|
|
6517
|
+
LiveboardXLSXCSVDownload = "isLiveboardXLSXCSVDownloadEnabled",
|
|
6518
|
+
isPNGInScheduledEmailsEnabled = "isPNGInScheduledEmailsEnabled"
|
|
6388
6519
|
}
|
|
6389
6520
|
/**
|
|
6390
6521
|
* ThoughtSpot application pages include actions and menu commands
|
|
@@ -6956,7 +7087,7 @@ export enum Action {
|
|
|
6956
7087
|
* The Favorites icon (*) for Answers,
|
|
6957
7088
|
* Liveboard, and data objects like Worksheet, Model,
|
|
6958
7089
|
* Tables and Views.
|
|
6959
|
-
* Allows adding an object to the user
|
|
7090
|
+
* Allows adding an object to the user's favorites list.
|
|
6960
7091
|
* @example
|
|
6961
7092
|
* ```js
|
|
6962
7093
|
* disabledActions: [Action.AddToFavorites]
|
|
@@ -7664,7 +7795,30 @@ export enum Action {
|
|
|
7664
7795
|
* ```
|
|
7665
7796
|
* @version SDK: 1.41.0 | ThoughtSpot Cloud: 10.13.0.cl
|
|
7666
7797
|
*/
|
|
7667
|
-
SpotterTokenQuickEdit = "SpotterTokenQuickEdit"
|
|
7798
|
+
SpotterTokenQuickEdit = "SpotterTokenQuickEdit",
|
|
7799
|
+
/**
|
|
7800
|
+
* The **PNG screenshot in email** option in the schedule email dialog.
|
|
7801
|
+
* Includes a PNG screenshot in the notification email body.
|
|
7802
|
+
* @example
|
|
7803
|
+
* ```js
|
|
7804
|
+
* disabledActions: [Action.PngScreenshotInEmail]
|
|
7805
|
+
* ```
|
|
7806
|
+
* ```
|
|
7807
|
+
* @version SDK: 1.42.0 | ThoughtSpot Cloud: 10.14.0.cl
|
|
7808
|
+
*/
|
|
7809
|
+
PngScreenshotInEmail = "pngScreenshotInEmail",
|
|
7810
|
+
/**
|
|
7811
|
+
* The **Remove attachment** action in the schedule email dialog.
|
|
7812
|
+
* Removes an attachment from the email configuration.
|
|
7813
|
+
* @example
|
|
7814
|
+
* ```js
|
|
7815
|
+
* disabledActions: [Action.RemoveAttachment]
|
|
7816
|
+
* ```
|
|
7817
|
+
* ```
|
|
7818
|
+
* ```
|
|
7819
|
+
* @version SDK: 1.42.0 | ThoughtSpot Cloud: 10.14.0.cl
|
|
7820
|
+
*/
|
|
7821
|
+
RemoveAttachment = "removeAttachment"
|
|
7668
7822
|
}
|
|
7669
7823
|
export interface AnswerServiceType {
|
|
7670
7824
|
getAnswer?: (offset: number, batchSize: number) => any;
|
|
@@ -7725,6 +7879,41 @@ export interface CustomActionPayload {
|
|
|
7725
7879
|
session: SessionInterface;
|
|
7726
7880
|
vizId?: string;
|
|
7727
7881
|
}
|
|
7882
|
+
export interface CustomAction {
|
|
7883
|
+
name: string;
|
|
7884
|
+
id: string;
|
|
7885
|
+
position: CustomActionsPosition;
|
|
7886
|
+
target: CustomActionTarget;
|
|
7887
|
+
metadataIds?: {
|
|
7888
|
+
answerIds?: string[];
|
|
7889
|
+
liveboardIds?: string[];
|
|
7890
|
+
vizIds?: string[];
|
|
7891
|
+
};
|
|
7892
|
+
dataModelIds?: {
|
|
7893
|
+
modelIds?: string[];
|
|
7894
|
+
modelColumnNames?: string[];
|
|
7895
|
+
};
|
|
7896
|
+
orgIds?: string[];
|
|
7897
|
+
groupIds?: string[];
|
|
7898
|
+
}
|
|
7899
|
+
/**
|
|
7900
|
+
* Enum options to show custom actions at different
|
|
7901
|
+
* positions in the application.
|
|
7902
|
+
*/
|
|
7903
|
+
export enum CustomActionsPosition {
|
|
7904
|
+
PRIMARY = "PRIMARY",
|
|
7905
|
+
MENU = "MENU",
|
|
7906
|
+
CONTEXTMENU = "CONTEXTMENU"
|
|
7907
|
+
}
|
|
7908
|
+
/**
|
|
7909
|
+
* Enum options to mention the target of the custom action.
|
|
7910
|
+
*/
|
|
7911
|
+
export enum CustomActionTarget {
|
|
7912
|
+
LIVEBOARD = "LIVEBOARD",
|
|
7913
|
+
VIZ = "VIZ",
|
|
7914
|
+
ANSWER = "ANSWER",
|
|
7915
|
+
SPOTTER = "SPOTTER"
|
|
7916
|
+
}
|
|
7728
7917
|
/**
|
|
7729
7918
|
* Enum options to show or suppress Visual Embed SDK and
|
|
7730
7919
|
* ThoughtSpot application logs in the console output.
|
|
@@ -7819,6 +8008,7 @@ export interface DefaultAppInitData {
|
|
|
7819
8008
|
hiddenHomeLeftNavItems: string[];
|
|
7820
8009
|
customVariablesForThirdPartyTools: Record<string, any>;
|
|
7821
8010
|
hiddenListColumns: ListPageColumns[];
|
|
8011
|
+
customActions: CustomAction[];
|
|
7822
8012
|
}
|
|
7823
8013
|
|
|
7824
8014
|
/**
|
|
@@ -7846,7 +8036,8 @@ export interface CustomCssVariables {
|
|
|
7846
8036
|
* Font color of the text on toggle buttons such as
|
|
7847
8037
|
* **All**, **Answers**, and **Liveboards** on the Home page (Classic experience),
|
|
7848
8038
|
* the text color of the chart and table tiles on Home page (New modular Homepage
|
|
7849
|
-
* experience),
|
|
8039
|
+
* experience), title text on the AI-generated charts and tables, and object titles on
|
|
8040
|
+
* list pages such as *Liveboards* and *Answers*.
|
|
7850
8041
|
* The default color code is #2770EF.
|
|
7851
8042
|
*
|
|
7852
8043
|
*/
|
|
@@ -8671,7 +8862,6 @@ export class SageEmbed extends V1Embed {
|
|
|
8671
8862
|
*/
|
|
8672
8863
|
protected viewConfig: SageViewConfig;
|
|
8673
8864
|
constructor(domSelector: DOMSelector, viewConfig: SageViewConfig);
|
|
8674
|
-
protected getEmbedParamsObject(): Record<any, any>;
|
|
8675
8865
|
/**
|
|
8676
8866
|
* Constructs a map of parameters to be passed on to the
|
|
8677
8867
|
* embedded Eureka or Sage search page.
|
|
@@ -9127,6 +9317,7 @@ export type TriggerResponse<PayloadT, HostEventT extends HostEvent> = PayloadT e
|
|
|
9127
9317
|
* @param embedConfig
|
|
9128
9318
|
*/
|
|
9129
9319
|
export function getAuthenticationToken(embedConfig: EmbedConfig): Promise<string>;
|
|
9320
|
+
export const validateAuthToken: (embedConfig: EmbedConfig, authToken: string, suppressAlert?: boolean) => Promise<boolean>;
|
|
9130
9321
|
/**
|
|
9131
9322
|
* Resets the auth token and a new token will be fetched on the next request.
|
|
9132
9323
|
* @example
|
|
@@ -9212,7 +9403,6 @@ export class TsEmbed {
|
|
|
9212
9403
|
* @param query
|
|
9213
9404
|
*/
|
|
9214
9405
|
protected getEmbedBasePath(query: string): string;
|
|
9215
|
-
protected getUpdateEmbedParamsObject(): Record<any, any>;
|
|
9216
9406
|
/**
|
|
9217
9407
|
* Common query params set for all the embed modes.
|
|
9218
9408
|
* @param queryParams
|
|
@@ -9228,7 +9418,6 @@ export class TsEmbed {
|
|
|
9228
9418
|
*/
|
|
9229
9419
|
protected getV1EmbedBasePath(queryString: string): string;
|
|
9230
9420
|
protected getEmbedParams(): string;
|
|
9231
|
-
protected getEmbedParamsObject(): Record<any, any>;
|
|
9232
9421
|
protected getRootIframeSrc(): string;
|
|
9233
9422
|
protected createIframeEl(frameSrc: string): HTMLIFrameElement;
|
|
9234
9423
|
protected handleInsertionIntoDOM(child: string | Node): void;
|
|
@@ -9321,10 +9510,10 @@ export class TsEmbed {
|
|
|
9321
9510
|
*/
|
|
9322
9511
|
off(messageType: EmbedEvent, callback: MessageCallback): typeof TsEmbed.prototype;
|
|
9323
9512
|
/**
|
|
9324
|
-
|
|
9325
|
-
|
|
9326
|
-
|
|
9327
|
-
|
|
9513
|
+
* @hidden
|
|
9514
|
+
* Internal state to track if the embed container is loaded.
|
|
9515
|
+
* This is used to trigger events after the embed container is loaded.
|
|
9516
|
+
*/
|
|
9328
9517
|
isEmbedContainerLoaded: boolean;
|
|
9329
9518
|
protected getPreRenderObj<T extends TsEmbed>(): T;
|
|
9330
9519
|
/**
|
|
@@ -9361,7 +9550,7 @@ export class TsEmbed {
|
|
|
9361
9550
|
* Creates the preRender shell
|
|
9362
9551
|
* @param showPreRenderByDefault - Show the preRender after render, hidden by default
|
|
9363
9552
|
*/
|
|
9364
|
-
preRender(showPreRenderByDefault?: boolean): Promise<TsEmbed>;
|
|
9553
|
+
preRender(showPreRenderByDefault?: boolean, replaceExistingPreRender?: boolean): Promise<TsEmbed>;
|
|
9365
9554
|
/**
|
|
9366
9555
|
* Get the Post Url Params for THOUGHTSPOT from the current
|
|
9367
9556
|
* host app URL.
|
package/lib/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thoughtspot/visual-embed-sdk",
|
|
3
|
-
"version": "1.41.
|
|
3
|
+
"version": "1.41.1",
|
|
4
4
|
"description": "ThoughtSpot Embed SDK",
|
|
5
5
|
"module": "lib/src/index.js",
|
|
6
6
|
"main": "dist/tsembed.js",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"docgen": "typedoc --tsconfig tsconfig.json --theme typedoc-theme --json static/typedoc/typedoc.json --disableOutputCheck",
|
|
56
56
|
"test-sdk": "jest -c jest.config.sdk.js --runInBand",
|
|
57
57
|
"test": "npm run test-sdk",
|
|
58
|
-
"posttest": "cat ./coverage/sdk/lcov.info | coveralls",
|
|
58
|
+
"posttest": "cat ./coverage/sdk/lcov.info | npx coveralls-next",
|
|
59
59
|
"is-publish-allowed": "node scripts/is-publish-allowed.js",
|
|
60
60
|
"prepublishOnly": "npm run is-publish-allowed && npm run test && npm run tsc && npm run bundle-dts-file && npm run bundle-dts && npm run bundle-dts-react && npm run bundle-dts-react-full && npm run build",
|
|
61
61
|
"check-size": "npm run build && size-limit",
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
"babel-jest": "^26.6.3",
|
|
102
102
|
"babel-preset-gatsby": "^1.10.0",
|
|
103
103
|
"command-line-args": "^5.1.1",
|
|
104
|
-
"coveralls": "^
|
|
104
|
+
"coveralls-next": "^5.0.0",
|
|
105
105
|
"crypto": "^1.0.1",
|
|
106
106
|
"current-git-branch": "^1.1.0",
|
|
107
107
|
"dts-bundle": "^0.7.3",
|
package/lib/src/authToken.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { EmbedConfig } from './types';
|
|
|
4
4
|
* @param embedConfig
|
|
5
5
|
*/
|
|
6
6
|
export declare function getAuthenticationToken(embedConfig: EmbedConfig): Promise<string>;
|
|
7
|
+
export declare const validateAuthToken: (embedConfig: EmbedConfig, authToken: string, suppressAlert?: boolean) => Promise<boolean>;
|
|
7
8
|
/**
|
|
8
9
|
* Resets the auth token and a new token will be fetched on the next request.
|
|
9
10
|
* @example
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authToken.d.ts","sourceRoot":"","sources":["../../src/authToken.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAatC;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCtF;
|
|
1
|
+
{"version":3,"file":"authToken.d.ts","sourceRoot":"","sources":["../../src/authToken.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAatC;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCtF;AAED,eAAO,MAAM,iBAAiB,gBACb,WAAW,aACb,MAAM,kBACD,OAAO,KACxB,QAAQ,OAAO,CAiCjB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,QAAO,IAEvC,CAAC"}
|
package/lib/src/authToken.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ERROR_MESSAGE } from './errors';
|
|
2
|
-
import { getValueFromWindow, storeValueInWindow } from './utils';
|
|
2
|
+
import { getValueFromWindow, storeValueInWindow, formatTemplate } from './utils';
|
|
3
3
|
import { fetchAuthTokenService, verifyTokenService } from './utils/authService/authService';
|
|
4
4
|
import { logger } from './utils/logger';
|
|
5
5
|
const cacheAuthTokenKey = 'cachedAuthToken';
|
|
@@ -47,7 +47,16 @@ export async function getAuthenticationToken(embedConfig) {
|
|
|
47
47
|
storeAuthTokenInCache(authToken);
|
|
48
48
|
return authToken;
|
|
49
49
|
}
|
|
50
|
-
const validateAuthToken = async (embedConfig, authToken, suppressAlert) => {
|
|
50
|
+
export const validateAuthToken = async (embedConfig, authToken, suppressAlert) => {
|
|
51
|
+
// even if token verification is disabled, we will still validate
|
|
52
|
+
// that the token is a string before proceeding.
|
|
53
|
+
if (typeof authToken !== 'string') {
|
|
54
|
+
const errorMessage = formatTemplate(ERROR_MESSAGE.INVALID_TOKEN_TYPE_ERROR, {
|
|
55
|
+
invalidType: typeof authToken,
|
|
56
|
+
});
|
|
57
|
+
logger.error(errorMessage);
|
|
58
|
+
throw new Error(errorMessage);
|
|
59
|
+
}
|
|
51
60
|
const cachedAuthToken = getCacheAuthToken();
|
|
52
61
|
if (embedConfig.disableTokenVerification) {
|
|
53
62
|
logger.info('Token verification is disabled. Assuming token is valid.');
|
package/lib/src/authToken.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authToken.js","sourceRoot":"","sources":["../../src/authToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"authToken.js","sourceRoot":"","sources":["../../src/authToken.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import { getAuthenticationToken, resetCachedAuthToken } from './authToken';
|
|
1
|
+
import { getAuthenticationToken, resetCachedAuthToken, validateAuthToken } from './authToken';
|
|
2
2
|
import * as authServiceInstance from './utils/authService/authService';
|
|
3
|
+
import { formatTemplate } from './utils';
|
|
4
|
+
import { logger } from './utils/logger';
|
|
5
|
+
import { ERROR_MESSAGE } from './errors';
|
|
3
6
|
describe('AuthToken Unit tests', () => {
|
|
4
7
|
test('getAuthenticationToken: When verification is disabled', async () => {
|
|
5
8
|
jest.spyOn(authServiceInstance, 'verifyTokenService');
|
|
@@ -22,5 +25,31 @@ describe('AuthToken Unit tests', () => {
|
|
|
22
25
|
expect(token).toBe('abc2');
|
|
23
26
|
expect(authServiceInstance.verifyTokenService).toBeCalledWith('test', 'abc2');
|
|
24
27
|
});
|
|
28
|
+
test('validateAuthToken : When token is invalid by type number', async () => {
|
|
29
|
+
jest.spyOn(logger, 'error').mockImplementation(() => { });
|
|
30
|
+
const loggerSpy = jest.spyOn(logger, 'error');
|
|
31
|
+
const authToken = 123;
|
|
32
|
+
const errorMessage = formatTemplate(ERROR_MESSAGE.INVALID_TOKEN_TYPE_ERROR, {
|
|
33
|
+
invalidType: typeof authToken,
|
|
34
|
+
});
|
|
35
|
+
await expect(validateAuthToken({
|
|
36
|
+
thoughtSpotHost: 'test',
|
|
37
|
+
}, authToken)).rejects.toThrow(errorMessage);
|
|
38
|
+
expect(loggerSpy).toHaveBeenCalledWith(errorMessage);
|
|
39
|
+
loggerSpy.mockRestore();
|
|
40
|
+
});
|
|
41
|
+
test('validateAuthToken : When token is invalid by type object', async () => {
|
|
42
|
+
jest.spyOn(logger, 'error').mockImplementation(() => { });
|
|
43
|
+
const loggerSpy = jest.spyOn(logger, 'error');
|
|
44
|
+
const authToken = {};
|
|
45
|
+
const errorMessage = formatTemplate(ERROR_MESSAGE.INVALID_TOKEN_TYPE_ERROR, {
|
|
46
|
+
invalidType: typeof authToken,
|
|
47
|
+
});
|
|
48
|
+
await expect(validateAuthToken({
|
|
49
|
+
thoughtSpotHost: 'test',
|
|
50
|
+
}, authToken)).rejects.toThrow(errorMessage);
|
|
51
|
+
expect(loggerSpy).toHaveBeenCalledWith(errorMessage);
|
|
52
|
+
loggerSpy.mockRestore();
|
|
53
|
+
});
|
|
25
54
|
});
|
|
26
55
|
//# sourceMappingURL=authToken.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authToken.spec.js","sourceRoot":"","sources":["../../src/authToken.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"authToken.spec.js","sourceRoot":"","sources":["../../src/authToken.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,7 +23,8 @@ export interface CustomCssVariables {
|
|
|
23
23
|
* Font color of the text on toggle buttons such as
|
|
24
24
|
* **All**, **Answers**, and **Liveboards** on the Home page (Classic experience),
|
|
25
25
|
* the text color of the chart and table tiles on Home page (New modular Homepage
|
|
26
|
-
* experience),
|
|
26
|
+
* experience), title text on the AI-generated charts and tables, and object titles on
|
|
27
|
+
* list pages such as *Liveboards* and *Answers*.
|
|
27
28
|
* The default color code is #2770EF.
|
|
28
29
|
*
|
|
29
30
|
*/
|