@thoughtspot/visual-embed-sdk 1.46.1 → 1.46.3
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/cjs/package.json +1 -1
- package/cjs/src/auth.d.ts +29 -4
- package/cjs/src/auth.d.ts.map +1 -1
- package/cjs/src/auth.js +29 -7
- package/cjs/src/auth.js.map +1 -1
- package/cjs/src/auth.spec.js +1 -3
- package/cjs/src/auth.spec.js.map +1 -1
- package/cjs/src/authToken.js +0 -1
- package/cjs/src/authToken.js.map +1 -1
- package/cjs/src/authToken.spec.js +2 -1
- package/cjs/src/authToken.spec.js.map +1 -1
- package/cjs/src/css-variables.d.ts +17 -17
- package/cjs/src/embed/app.d.ts +62 -33
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +10 -3
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +34 -1
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/auto-frame-renderer.d.ts +41 -0
- package/cjs/src/embed/auto-frame-renderer.d.ts.map +1 -0
- package/cjs/src/embed/auto-frame-renderer.js +145 -0
- package/cjs/src/embed/auto-frame-renderer.js.map +1 -0
- package/cjs/src/embed/auto-frame-renderer.spec.d.ts +2 -0
- package/cjs/src/embed/auto-frame-renderer.spec.d.ts.map +1 -0
- package/cjs/src/embed/auto-frame-renderer.spec.js +195 -0
- package/cjs/src/embed/auto-frame-renderer.spec.js.map +1 -0
- package/cjs/src/embed/base.d.ts +2 -2
- package/cjs/src/embed/base.d.ts.map +1 -1
- package/cjs/src/embed/base.js +6 -9
- package/cjs/src/embed/base.js.map +1 -1
- package/cjs/src/embed/bodyless-conversation.d.ts +5 -5
- package/cjs/src/embed/bodyless-conversation.js +4 -4
- package/cjs/src/embed/conversation.d.ts +43 -30
- package/cjs/src/embed/conversation.d.ts.map +1 -1
- package/cjs/src/embed/conversation.js +10 -11
- package/cjs/src/embed/conversation.js.map +1 -1
- package/cjs/src/embed/conversation.spec.js +27 -0
- package/cjs/src/embed/conversation.spec.js.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.js +0 -2
- package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +42 -35
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +6 -4
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +5 -3
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/sage.d.ts +5 -5
- package/cjs/src/embed/sage.js +1 -2
- package/cjs/src/embed/sage.js.map +1 -1
- package/cjs/src/embed/search-bar.d.ts +7 -7
- package/cjs/src/embed/search-bar.js +1 -1
- package/cjs/src/embed/search.d.ts +13 -12
- package/cjs/src/embed/search.d.ts.map +1 -1
- package/cjs/src/embed/search.js.map +1 -1
- package/cjs/src/embed/search.spec.js +0 -2
- package/cjs/src/embed/search.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts +3 -3
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +15 -9
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +37 -1
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/index.d.ts +3 -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 +15 -15
- package/cjs/src/react/index.js +12 -13
- package/cjs/src/react/index.js.map +1 -1
- package/cjs/src/react/index.spec.js +6 -3
- package/cjs/src/react/index.spec.js.map +1 -1
- package/cjs/src/tokenizedFetch.d.ts +1 -1
- package/cjs/src/tokenizedFetch.js +1 -1
- package/cjs/src/types.d.ts +350 -287
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +240 -218
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/graphql/answerService/answerService.d.ts +9 -6
- package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/cjs/src/utils/graphql/answerService/answerService.js +13 -15
- package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -1
- package/cjs/src/utils/graphql/answerService/answerService.spec.js +55 -0
- package/cjs/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
- package/cjs/src/utils/graphql/preview-service.js +0 -1
- package/cjs/src/utils/graphql/preview-service.js.map +1 -1
- package/cjs/src/utils/processData.js +0 -5
- package/cjs/src/utils/processData.js.map +1 -1
- package/cjs/src/utils.d.ts +9 -0
- package/cjs/src/utils.d.ts.map +1 -1
- package/cjs/src/utils.js +10 -1
- package/cjs/src/utils.js.map +1 -1
- package/dist/{index-Vyh6Ha5f.js → index-DyX-x6uN.js} +1 -1
- package/dist/src/auth.d.ts +29 -4
- package/dist/src/auth.d.ts.map +1 -1
- package/dist/src/css-variables.d.ts +17 -17
- package/dist/src/embed/app.d.ts +62 -33
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/auto-frame-renderer.d.ts +41 -0
- package/dist/src/embed/auto-frame-renderer.d.ts.map +1 -0
- package/dist/src/embed/auto-frame-renderer.spec.d.ts +2 -0
- package/dist/src/embed/auto-frame-renderer.spec.d.ts.map +1 -0
- package/dist/src/embed/base.d.ts +2 -2
- package/dist/src/embed/base.d.ts.map +1 -1
- package/dist/src/embed/bodyless-conversation.d.ts +5 -5
- package/dist/src/embed/conversation.d.ts +43 -30
- package/dist/src/embed/conversation.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +42 -35
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/sage.d.ts +5 -5
- package/dist/src/embed/search-bar.d.ts +7 -7
- package/dist/src/embed/search.d.ts +13 -12
- package/dist/src/embed/search.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +3 -3
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/index.d.ts +3 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/react/index.d.ts +15 -15
- package/dist/src/tokenizedFetch.d.ts +1 -1
- package/dist/src/types.d.ts +350 -287
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/graphql/answerService/answerService.d.ts +9 -6
- package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/dist/src/utils.d.ts +9 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +359 -329
- package/dist/tsembed-react.js +358 -328
- package/dist/tsembed.es.js +490 -321
- package/dist/tsembed.js +489 -319
- package/dist/visual-embed-sdk-react-full.d.ts +574 -442
- package/dist/visual-embed-sdk-react.d.ts +572 -440
- package/dist/visual-embed-sdk.d.ts +622 -446
- package/lib/package.json +1 -1
- package/lib/src/auth.d.ts +29 -4
- package/lib/src/auth.d.ts.map +1 -1
- package/lib/src/auth.js +29 -7
- package/lib/src/auth.js.map +1 -1
- package/lib/src/auth.spec.js +1 -3
- package/lib/src/auth.spec.js.map +1 -1
- package/lib/src/authToken.js +0 -1
- package/lib/src/authToken.js.map +1 -1
- package/lib/src/authToken.spec.js +2 -1
- package/lib/src/authToken.spec.js.map +1 -1
- package/lib/src/css-variables.d.ts +17 -17
- package/lib/src/embed/app.d.ts +62 -33
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +11 -4
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +34 -1
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/auto-frame-renderer.d.ts +41 -0
- package/lib/src/embed/auto-frame-renderer.d.ts.map +1 -0
- package/lib/src/embed/auto-frame-renderer.js +141 -0
- package/lib/src/embed/auto-frame-renderer.js.map +1 -0
- package/lib/src/embed/auto-frame-renderer.spec.d.ts +2 -0
- package/lib/src/embed/auto-frame-renderer.spec.d.ts.map +1 -0
- package/lib/src/embed/auto-frame-renderer.spec.js +192 -0
- package/lib/src/embed/auto-frame-renderer.spec.js.map +1 -0
- package/lib/src/embed/base.d.ts +2 -2
- package/lib/src/embed/base.d.ts.map +1 -1
- package/lib/src/embed/base.js +6 -9
- package/lib/src/embed/base.js.map +1 -1
- package/lib/src/embed/bodyless-conversation.d.ts +5 -5
- package/lib/src/embed/bodyless-conversation.js +4 -4
- package/lib/src/embed/conversation.d.ts +43 -30
- package/lib/src/embed/conversation.d.ts.map +1 -1
- package/lib/src/embed/conversation.js +11 -11
- package/lib/src/embed/conversation.js.map +1 -1
- package/lib/src/embed/conversation.spec.js +27 -0
- package/lib/src/embed/conversation.spec.js.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.js +0 -2
- package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +42 -35
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +6 -4
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +5 -3
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/sage.d.ts +5 -5
- package/lib/src/embed/sage.js +1 -2
- package/lib/src/embed/sage.js.map +1 -1
- package/lib/src/embed/search-bar.d.ts +7 -7
- package/lib/src/embed/search-bar.js +1 -1
- package/lib/src/embed/search.d.ts +13 -12
- package/lib/src/embed/search.d.ts.map +1 -1
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/search.spec.js +0 -2
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +3 -3
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +15 -9
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +37 -1
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/index.d.ts +3 -2
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +1 -0
- package/lib/src/index.js.map +1 -1
- package/lib/src/react/index.d.ts +15 -15
- package/lib/src/react/index.js +12 -13
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/react/index.spec.js +6 -3
- package/lib/src/react/index.spec.js.map +1 -1
- package/lib/src/tokenizedFetch.d.ts +1 -1
- package/lib/src/tokenizedFetch.js +1 -1
- package/lib/src/types.d.ts +350 -287
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +240 -218
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/graphql/answerService/answerService.d.ts +9 -6
- package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/lib/src/utils/graphql/answerService/answerService.js +12 -14
- package/lib/src/utils/graphql/answerService/answerService.js.map +1 -1
- package/lib/src/utils/graphql/answerService/answerService.spec.js +55 -0
- package/lib/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
- package/lib/src/utils/graphql/preview-service.js +0 -1
- package/lib/src/utils/graphql/preview-service.js.map +1 -1
- package/lib/src/utils/processData.js +0 -5
- package/lib/src/utils/processData.js.map +1 -1
- package/lib/src/utils.d.ts +9 -0
- package/lib/src/utils.d.ts.map +1 -1
- package/lib/src/utils.js +8 -0
- package/lib/src/utils.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +11466 -0
- package/package.json +1 -1
- package/src/auth.spec.ts +1 -1
- package/src/auth.ts +32 -7
- package/src/authToken.spec.ts +2 -1
- package/src/authToken.ts +1 -1
- package/src/css-variables.ts +17 -17
- package/src/embed/app.spec.ts +46 -1
- package/src/embed/app.ts +74 -36
- package/src/embed/auto-frame-renderer.spec.ts +266 -0
- package/src/embed/auto-frame-renderer.ts +152 -0
- package/src/embed/base.spec.ts +1 -1
- package/src/embed/base.ts +9 -10
- package/src/embed/bodyless-conversation.ts +5 -5
- package/src/embed/conversation.spec.ts +37 -0
- package/src/embed/conversation.ts +55 -38
- package/src/embed/hostEventClient/host-event-client.ts +2 -2
- package/src/embed/liveboard.spec.ts +5 -3
- package/src/embed/liveboard.ts +47 -38
- package/src/embed/sage.ts +6 -6
- package/src/embed/search-bar.tsx +7 -7
- package/src/embed/search.spec.ts +2 -2
- package/src/embed/search.ts +13 -12
- package/src/embed/ts-embed.spec.ts +44 -1
- package/src/embed/ts-embed.ts +14 -9
- package/src/index.ts +3 -0
- package/src/react/index.spec.tsx +6 -3
- package/src/react/index.tsx +16 -16
- package/src/tokenizedFetch.ts +1 -1
- package/src/types.ts +350 -286
- package/src/utils/graphql/answerService/answerService.spec.ts +62 -0
- package/src/utils/graphql/answerService/answerService.ts +14 -10
- package/src/utils/graphql/preview-service.ts +1 -1
- package/src/utils/processData.ts +5 -5
- package/src/utils.ts +14 -0
package/dist/tsembed.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @thoughtspot/visual-embed-sdk version 1.46.
|
|
1
|
+
/* @thoughtspot/visual-embed-sdk version 1.46.3 */
|
|
2
2
|
'use client';
|
|
3
3
|
function _mergeNamespaces(n, m) {
|
|
4
4
|
m.forEach(function (e) {
|
|
@@ -23,7 +23,7 @@ function _mergeNamespaces(n, m) {
|
|
|
23
23
|
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
24
24
|
*/
|
|
25
25
|
/**
|
|
26
|
-
* The authentication mechanism for allowing access to
|
|
26
|
+
* The authentication mechanism for allowing access to
|
|
27
27
|
* the embedded app
|
|
28
28
|
* @group Authentication / Init
|
|
29
29
|
*/
|
|
@@ -49,6 +49,7 @@ var AuthType;
|
|
|
49
49
|
* To use this:
|
|
50
50
|
* Your SAML or OpenID provider must allow iframe redirects.
|
|
51
51
|
* For example, if you are using Okta as IdP, you can enable iframe embedding.
|
|
52
|
+
* @version SDK: 1.15.0 | ThoughtSpot: 8.8.0.cl
|
|
52
53
|
* @example
|
|
53
54
|
* ```js
|
|
54
55
|
* init({
|
|
@@ -56,18 +57,17 @@ var AuthType;
|
|
|
56
57
|
* authType: AuthType.EmbeddedSSO,
|
|
57
58
|
* });
|
|
58
59
|
* ```
|
|
59
|
-
* @version: SDK: 1.15.0 | ThoughtSpot: 8.8.0.cl
|
|
60
60
|
*/
|
|
61
61
|
AuthType["EmbeddedSSO"] = "EmbeddedSSO";
|
|
62
62
|
/**
|
|
63
|
-
* SSO using SAML
|
|
64
|
-
* @deprecated
|
|
63
|
+
* SSO using SAML, Use {@link SAMLRedirect} instead
|
|
64
|
+
* @deprecated This option is deprecated.
|
|
65
65
|
* @hidden
|
|
66
66
|
*/
|
|
67
67
|
AuthType["SSO"] = "SSO_SAML";
|
|
68
68
|
/**
|
|
69
|
-
* SSO using SAML
|
|
70
|
-
* @deprecated
|
|
69
|
+
* SSO using SAML, Use {@link SAMLRedirect} instead
|
|
70
|
+
* @deprecated This option is deprecated.
|
|
71
71
|
* @hidden
|
|
72
72
|
*/
|
|
73
73
|
AuthType["SAML"] = "SSO_SAML";
|
|
@@ -118,8 +118,9 @@ var AuthType;
|
|
|
118
118
|
AuthType["SAMLRedirect"] = "SSO_SAML";
|
|
119
119
|
/**
|
|
120
120
|
* SSO using OIDC
|
|
121
|
+
* SSO using OIDC, Use {@link OIDCRedirect} instead
|
|
122
|
+
* @deprecated This option is deprecated.
|
|
121
123
|
* @hidden
|
|
122
|
-
* @deprecated Use {@link OIDCRedirect} instead
|
|
123
124
|
*/
|
|
124
125
|
AuthType["OIDC"] = "SSO_OIDC";
|
|
125
126
|
/**
|
|
@@ -130,8 +131,9 @@ var AuthType;
|
|
|
130
131
|
AuthType["OIDCRedirect"] = "SSO_OIDC";
|
|
131
132
|
/**
|
|
132
133
|
* Trusted authentication server
|
|
134
|
+
* Use {@link TrustedAuth} instead
|
|
135
|
+
* @deprecated This option is deprecated.
|
|
133
136
|
* @hidden
|
|
134
|
-
* @deprecated Use {@link TrustedAuth} instead
|
|
135
137
|
*/
|
|
136
138
|
AuthType["AuthServer"] = "AuthServer";
|
|
137
139
|
/**
|
|
@@ -158,6 +160,7 @@ var AuthType;
|
|
|
158
160
|
* obtained from ThoughtSpot. This uses a cookieless authentication
|
|
159
161
|
* approach, recommended to bypass the third-party cookie-blocking restriction
|
|
160
162
|
* implemented by some browsers.
|
|
163
|
+
* @version SDK: 1.22.0 | ThoughtSpot: 9.3.0.cl, 9.5.1.sw
|
|
161
164
|
* @example
|
|
162
165
|
* ```js
|
|
163
166
|
* init({
|
|
@@ -168,8 +171,8 @@ var AuthType;
|
|
|
168
171
|
* .then((response) => response.json())
|
|
169
172
|
* .then((data) => data.token);
|
|
170
173
|
* }
|
|
174
|
+
* });
|
|
171
175
|
* ```
|
|
172
|
-
* @version SDK: 1.22.0| ThoughtSpot: 9.3.0.cl, 9.5.1.sw
|
|
173
176
|
*/
|
|
174
177
|
AuthType["TrustedAuthTokenCookieless"] = "AuthServerCookieless";
|
|
175
178
|
/**
|
|
@@ -190,43 +193,43 @@ var HomeLeftNavItem;
|
|
|
190
193
|
/**
|
|
191
194
|
* The *Search data* option in
|
|
192
195
|
* the *Insights* left navigation panel.
|
|
193
|
-
* @version SDK: 1.28.0| ThoughtSpot: 9.12.5.cl
|
|
196
|
+
* @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
|
|
194
197
|
*/
|
|
195
198
|
HomeLeftNavItem["SearchData"] = "search-data";
|
|
196
199
|
/**
|
|
197
200
|
* The *Home* menu option in
|
|
198
201
|
* the *Insights* left navigation panel.
|
|
199
|
-
* @version SDK: 1.28.0| ThoughtSpot: 9.12.5.cl
|
|
202
|
+
* @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
|
|
200
203
|
*/
|
|
201
204
|
HomeLeftNavItem["Home"] = "insights-home";
|
|
202
205
|
/**
|
|
203
206
|
* The *Liveboards* menu option in
|
|
204
207
|
* the *Insights* left navigation panel.
|
|
205
|
-
* @version SDK: 1.28.0| ThoughtSpot: 9.12.5.cl
|
|
208
|
+
* @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
|
|
206
209
|
*/
|
|
207
210
|
HomeLeftNavItem["Liveboards"] = "liveboards";
|
|
208
211
|
/**
|
|
209
212
|
* The *Answers* menu option in
|
|
210
213
|
* the *Insights* left navigation panel.
|
|
211
|
-
* @version SDK: 1.28.0| ThoughtSpot: 9.12.5.cl
|
|
214
|
+
* @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
|
|
212
215
|
*/
|
|
213
216
|
HomeLeftNavItem["Answers"] = "answers";
|
|
214
217
|
/**
|
|
215
218
|
* The *Monitor subscriptions* menu option in
|
|
216
219
|
* the *Insights* left navigation panel.
|
|
217
|
-
* @version SDK: 1.28.0| ThoughtSpot: 9.12.5.cl
|
|
220
|
+
* @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
|
|
218
221
|
*/
|
|
219
222
|
HomeLeftNavItem["MonitorSubscription"] = "monitor-alerts";
|
|
220
223
|
/**
|
|
221
224
|
* The *SpotIQ analysis* menu option in
|
|
222
225
|
* the *Insights* left navigation panel.
|
|
223
|
-
* @version SDK: 1.28.0| ThoughtSpot: 9.12.5.cl
|
|
226
|
+
* @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
|
|
224
227
|
*/
|
|
225
228
|
HomeLeftNavItem["SpotIQAnalysis"] = "spotiq-analysis";
|
|
226
229
|
/**
|
|
227
230
|
* The *Liveboard schedules* menu option in
|
|
228
231
|
* the *Insights* left navigation panel.
|
|
229
|
-
* @version SDK: 1.34.0| ThoughtSpot: 10.3.0.cl
|
|
232
|
+
* @version SDK: 1.34.0 | ThoughtSpot: 10.3.0.cl
|
|
230
233
|
*/
|
|
231
234
|
HomeLeftNavItem["LiveboardSchedules"] = "liveboard-schedules";
|
|
232
235
|
/**
|
|
@@ -332,7 +335,7 @@ var HomepageModule;
|
|
|
332
335
|
*/
|
|
333
336
|
HomepageModule["Search"] = "SEARCH";
|
|
334
337
|
/**
|
|
335
|
-
*
|
|
338
|
+
* KPI watchlist module
|
|
336
339
|
*/
|
|
337
340
|
HomepageModule["Watchlist"] = "WATCHLIST";
|
|
338
341
|
/**
|
|
@@ -364,7 +367,8 @@ var ListPageColumns;
|
|
|
364
367
|
*/
|
|
365
368
|
ListPageColumns["Favorites"] = "FAVOURITE";
|
|
366
369
|
/**
|
|
367
|
-
*
|
|
370
|
+
* Favourite Use {@link ListPageColumns.Favorites} instead.
|
|
371
|
+
* @deprecated This option is deprecated.
|
|
368
372
|
*/
|
|
369
373
|
ListPageColumns["Favourite"] = "FAVOURITE";
|
|
370
374
|
/**
|
|
@@ -432,13 +436,13 @@ var EmbedEvent;
|
|
|
432
436
|
/**
|
|
433
437
|
* Rendering has initialized.
|
|
434
438
|
* @example
|
|
435
|
-
|
|
439
|
+
* ```js
|
|
436
440
|
* liveboardEmbed.on(EmbedEvent.Init, showLoader)
|
|
437
441
|
* //show a loader
|
|
438
442
|
* function showLoader() {
|
|
439
443
|
* document.getElementById("loader");
|
|
440
444
|
* }
|
|
441
|
-
|
|
445
|
+
* ```
|
|
442
446
|
* @returns timestamp - The timestamp when the event was generated.
|
|
443
447
|
*/
|
|
444
448
|
EmbedEvent["Init"] = "init";
|
|
@@ -446,11 +450,11 @@ var EmbedEvent;
|
|
|
446
450
|
* Authentication has either succeeded or failed.
|
|
447
451
|
* @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 8.4.1.sw
|
|
448
452
|
* @example
|
|
449
|
-
|
|
453
|
+
* ```js
|
|
450
454
|
* appEmbed.on(EmbedEvent.AuthInit, payload => {
|
|
451
455
|
* console.log('AuthInit', payload);
|
|
452
456
|
* })
|
|
453
|
-
|
|
457
|
+
* ```
|
|
454
458
|
* @returns isLoggedIn - A Boolean specifying whether authentication was successful.
|
|
455
459
|
*/
|
|
456
460
|
EmbedEvent["AuthInit"] = "authInit";
|
|
@@ -459,13 +463,13 @@ var EmbedEvent;
|
|
|
459
463
|
* @returns timestamp - The timestamp when the event was generated.
|
|
460
464
|
* @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 8.4.1.sw
|
|
461
465
|
* @example
|
|
462
|
-
|
|
466
|
+
* ```js
|
|
463
467
|
* liveboardEmbed.on(EmbedEvent.Load, hideLoader)
|
|
464
468
|
* //hide loader
|
|
465
469
|
* function hideLoader() {
|
|
466
470
|
* document.getElementById("loader");
|
|
467
471
|
* }
|
|
468
|
-
|
|
472
|
+
* ```
|
|
469
473
|
*/
|
|
470
474
|
EmbedEvent["Load"] = "load";
|
|
471
475
|
/**
|
|
@@ -474,11 +478,11 @@ var EmbedEvent;
|
|
|
474
478
|
* @return data - Answer of Liveboard data
|
|
475
479
|
* @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 8.4.1.sw
|
|
476
480
|
* @example
|
|
477
|
-
|
|
481
|
+
* ```js
|
|
478
482
|
* liveboardEmbed.on(EmbedEvent.Data, payload => {
|
|
479
483
|
* console.log('data', payload);
|
|
480
484
|
* })
|
|
481
|
-
|
|
485
|
+
* ```
|
|
482
486
|
* @important
|
|
483
487
|
*/
|
|
484
488
|
EmbedEvent["Data"] = "data";
|
|
@@ -486,9 +490,9 @@ var EmbedEvent;
|
|
|
486
490
|
* Search query has been updated by the user.
|
|
487
491
|
* @version SDK: 1.4.0 | ThoughtSpot: ts7.sep.cl, 8.4.1.sw
|
|
488
492
|
* @example
|
|
489
|
-
|
|
493
|
+
* ```js
|
|
490
494
|
* searchEmbed.on(EmbedEvent.QueryChanged, payload => console.log('data', payload))
|
|
491
|
-
|
|
495
|
+
* ```
|
|
492
496
|
*/
|
|
493
497
|
EmbedEvent["QueryChanged"] = "queryChanged";
|
|
494
498
|
/**
|
|
@@ -498,7 +502,7 @@ var EmbedEvent;
|
|
|
498
502
|
* @returns drillDownColumns - The columns on which drill down was performed
|
|
499
503
|
* @returns nonFilteredColumns - The columns that were not filtered
|
|
500
504
|
* @example
|
|
501
|
-
|
|
505
|
+
* ```js
|
|
502
506
|
* searchEmbed.on(EmbedEvent.DrillDown, {
|
|
503
507
|
* points: {
|
|
504
508
|
* clickedPoint,
|
|
@@ -506,12 +510,12 @@ var EmbedEvent;
|
|
|
506
510
|
* },
|
|
507
511
|
* autoDrillDown: true,
|
|
508
512
|
* })
|
|
509
|
-
|
|
513
|
+
* ```
|
|
510
514
|
* In this example, `VizPointDoubleClick` event is used for
|
|
511
515
|
* triggering the `DrillDown` event when an area or specific
|
|
512
516
|
* data point on a table or chart is double-clicked.
|
|
513
517
|
* @example
|
|
514
|
-
|
|
518
|
+
* ```js
|
|
515
519
|
* searchEmbed.on(EmbedEvent.VizPointDoubleClick, (payload) => {
|
|
516
520
|
* console.log(payload);
|
|
517
521
|
* const clickedPoint = payload.data.clickedPoint;
|
|
@@ -525,7 +529,7 @@ var EmbedEvent;
|
|
|
525
529
|
* autoDrillDown: true,
|
|
526
530
|
* })
|
|
527
531
|
* })
|
|
528
|
-
|
|
532
|
+
* ```
|
|
529
533
|
*/
|
|
530
534
|
EmbedEvent["Drilldown"] = "drillDown";
|
|
531
535
|
/**
|
|
@@ -650,13 +654,13 @@ var EmbedEvent;
|
|
|
650
654
|
* The ThoughtSpot authentication session has expired.
|
|
651
655
|
* @version SDK: 1.4.0 | ThoughtSpot: ts7.sep.cl, 8.4.1.sw
|
|
652
656
|
* @example
|
|
653
|
-
|
|
657
|
+
* ```js
|
|
654
658
|
* appEmbed.on(EmbedEvent.AuthExpire, showAuthExpired)
|
|
655
659
|
* //show auth expired banner
|
|
656
660
|
* function showAuthExpired() {
|
|
657
661
|
* document.getElementById("authExpiredBanner");
|
|
658
662
|
* }
|
|
659
|
-
|
|
663
|
+
* ```
|
|
660
664
|
*/
|
|
661
665
|
EmbedEvent["AuthExpire"] = "ThoughtspotAuthExpired";
|
|
662
666
|
/**
|
|
@@ -691,22 +695,22 @@ var EmbedEvent;
|
|
|
691
695
|
* Applicable to `SearchBarEmbed` only.
|
|
692
696
|
* @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1.sw
|
|
693
697
|
* @example
|
|
694
|
-
|
|
698
|
+
* ```js
|
|
695
699
|
* searchbarEmbed.on(EmbedEvent.GetDataClick)
|
|
696
700
|
* .then(data => {
|
|
697
701
|
* console.log('Answer Data:', data);
|
|
698
702
|
* })
|
|
699
|
-
|
|
703
|
+
* ```
|
|
700
704
|
*/
|
|
701
705
|
EmbedEvent["GetDataClick"] = "getDataClick";
|
|
702
706
|
/**
|
|
703
707
|
* Detects the route change.
|
|
704
708
|
* @version SDK: 1.7.0 | ThoughtSpot: 8.0.0.cl, 8.4.1.sw
|
|
705
709
|
* @example
|
|
706
|
-
|
|
710
|
+
* ```js
|
|
707
711
|
* searchEmbed.on(EmbedEvent.RouteChange, payload =>
|
|
708
712
|
* console.log('data', payload))
|
|
709
|
-
|
|
713
|
+
* ```
|
|
710
714
|
*/
|
|
711
715
|
EmbedEvent["RouteChange"] = "ROUTE_CHANGE";
|
|
712
716
|
/**
|
|
@@ -716,12 +720,12 @@ var EmbedEvent;
|
|
|
716
720
|
EmbedEvent["V1Data"] = "exportVizDataToParent";
|
|
717
721
|
/**
|
|
718
722
|
* Emitted when the embed does not have cookie access. This happens
|
|
719
|
-
* when
|
|
720
|
-
*
|
|
723
|
+
* when third-party cookies are blocked by Safari or other
|
|
724
|
+
* web browsers. `NoCookieAccess` can trigger.
|
|
721
725
|
* @example
|
|
722
|
-
|
|
726
|
+
* ```js
|
|
723
727
|
* appEmbed.on(EmbedEvent.NoCookieAccess)
|
|
724
|
-
|
|
728
|
+
* ```
|
|
725
729
|
* @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1.sw
|
|
726
730
|
*/
|
|
727
731
|
EmbedEvent["NoCookieAccess"] = "noCookieAccess";
|
|
@@ -735,22 +739,22 @@ var EmbedEvent;
|
|
|
735
739
|
* Emitted when any modal is opened in the app
|
|
736
740
|
* @version SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
|
|
737
741
|
* @example
|
|
738
|
-
|
|
742
|
+
* ```js
|
|
739
743
|
* appEmbed.on(EmbedEvent.DialogOpen, payload => {
|
|
740
744
|
* console.log('dialog open', payload);
|
|
741
745
|
* })
|
|
742
|
-
|
|
746
|
+
* ```
|
|
743
747
|
*/
|
|
744
748
|
EmbedEvent["DialogOpen"] = "dialog-open";
|
|
745
749
|
/**
|
|
746
750
|
* Emitted when any modal is closed in the app
|
|
747
751
|
* @version SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
|
|
748
752
|
* @example
|
|
749
|
-
|
|
753
|
+
* ```js
|
|
750
754
|
* appEmbed.on(EmbedEvent.DialogClose, payload => {
|
|
751
755
|
* console.log('dialog close', payload);
|
|
752
756
|
* })
|
|
753
|
-
|
|
757
|
+
* ```
|
|
754
758
|
*/
|
|
755
759
|
EmbedEvent["DialogClose"] = "dialog-close";
|
|
756
760
|
/**
|
|
@@ -759,39 +763,39 @@ var EmbedEvent;
|
|
|
759
763
|
* other events on the rendered Liveboard.
|
|
760
764
|
* @version SDK: 1.9.1 | ThoughtSpot: 8.1.0.cl, 8.4.1.sw
|
|
761
765
|
* @example
|
|
762
|
-
|
|
766
|
+
* ```js
|
|
763
767
|
* liveboardEmbed.on(EmbedEvent.LiveboardRendered, payload => {
|
|
764
768
|
console.log('Liveboard is rendered', payload);
|
|
765
769
|
})
|
|
766
|
-
|
|
770
|
+
* ```
|
|
767
771
|
* The following example shows how to trigger
|
|
768
772
|
* `SetVisibleVizs` event using LiveboardRendered embed event:
|
|
769
773
|
* @example
|
|
770
|
-
|
|
774
|
+
* ```js
|
|
771
775
|
* const embedRef = useEmbedRef();
|
|
772
776
|
* const onLiveboardRendered = () => {
|
|
773
777
|
* embed.trigger(HostEvent.SetVisibleVizs, ['viz1', 'viz2']);
|
|
774
778
|
* };
|
|
775
|
-
|
|
779
|
+
* ```
|
|
776
780
|
*/
|
|
777
781
|
EmbedEvent["LiveboardRendered"] = "PinboardRendered";
|
|
778
782
|
/**
|
|
779
783
|
* Emits all events.
|
|
780
|
-
* @
|
|
784
|
+
* @version SDK: 1.10.0 | ThoughtSpot: 8.2.0.cl, 8.4.1.sw
|
|
781
785
|
* @example
|
|
782
|
-
|
|
786
|
+
* ```js
|
|
783
787
|
* appEmbed.on(EmbedEvent.ALL, payload => {
|
|
784
788
|
* console.log('Embed Events', payload)
|
|
785
789
|
* })
|
|
786
|
-
|
|
790
|
+
* ```
|
|
787
791
|
*/
|
|
788
792
|
EmbedEvent["ALL"] = "*";
|
|
789
793
|
/**
|
|
790
794
|
* Emitted when an Answer is saved in the app.
|
|
791
795
|
* Use start:true to subscribe to when save is initiated, or end:true to subscribe to when save is completed. Default is end:true.
|
|
792
|
-
* @
|
|
796
|
+
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
793
797
|
* @example
|
|
794
|
-
|
|
798
|
+
* ```js
|
|
795
799
|
* //Emit when action starts
|
|
796
800
|
* searchEmbed.on(EmbedEvent.Save, payload => {
|
|
797
801
|
* console.log('Save', payload)
|
|
@@ -802,7 +806,7 @@ var EmbedEvent;
|
|
|
802
806
|
* searchEmbed.on(EmbedEvent.Save, payload => {
|
|
803
807
|
* console.log('Save', payload)
|
|
804
808
|
* })
|
|
805
|
-
|
|
809
|
+
* ```
|
|
806
810
|
*/
|
|
807
811
|
EmbedEvent["Save"] = "save";
|
|
808
812
|
/**
|
|
@@ -814,106 +818,112 @@ var EmbedEvent;
|
|
|
814
818
|
* `EmbedEvent.DownloadAsCSV`, or `EmbedEvent.DownloadAsXLSX`
|
|
815
819
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
816
820
|
* @example
|
|
817
|
-
|
|
821
|
+
* ```js
|
|
818
822
|
* liveboardEmbed.on(EmbedEvent.Download, {
|
|
819
823
|
* vizId: '730496d6-6903-4601-937e-2c691821af3c'
|
|
820
824
|
* })
|
|
821
|
-
|
|
825
|
+
* ```
|
|
822
826
|
*/
|
|
823
827
|
EmbedEvent["Download"] = "download";
|
|
824
828
|
/**
|
|
825
829
|
* Emitted when the download action is triggered on an Answer.
|
|
826
|
-
* Use start:true to subscribe to when download is initiated, or end:true to
|
|
830
|
+
* Use start:true to subscribe to when download is initiated, or end:true to
|
|
831
|
+
* subscribe to when download is completed. Default is end:true.
|
|
827
832
|
* @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.4.0.sw
|
|
828
833
|
* @example
|
|
829
|
-
|
|
834
|
+
* ```js
|
|
830
835
|
* //emit when action starts
|
|
831
836
|
* searchEmbed.on(EmbedEvent.DownloadAsPng, payload => {
|
|
832
837
|
* console.log('download PNG', payload)}, {start: true })
|
|
833
838
|
* //emit when action ends
|
|
834
839
|
* searchEmbed.on(EmbedEvent.DownloadAsPng, payload => {
|
|
835
840
|
* console.log('download PNG', payload)})
|
|
836
|
-
|
|
841
|
+
* ```
|
|
837
842
|
*/
|
|
838
843
|
EmbedEvent["DownloadAsPng"] = "downloadAsPng";
|
|
839
844
|
/**
|
|
840
845
|
* Emitted when the Download as PDF action is triggered on an Answer
|
|
841
|
-
* Use start:true to subscribe to when download as PDF is initiated, or end:true to
|
|
846
|
+
* Use start:true to subscribe to when download as PDF is initiated, or end:true to
|
|
847
|
+
* subscribe to when download as PDF is completed. Default is end:true.
|
|
842
848
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
843
849
|
* @example
|
|
844
|
-
|
|
850
|
+
* ```js
|
|
845
851
|
* //emit when action starts
|
|
846
852
|
* searchEmbed.on(EmbedEvent.DownloadAsPdf, payload => {
|
|
847
853
|
* console.log('download PDF', payload)}, {start: true })
|
|
848
854
|
* //emit when action ends
|
|
849
855
|
* searchEmbed.on(EmbedEvent.DownloadAsPdf, payload => {
|
|
850
856
|
* console.log('download PDF', payload)})
|
|
851
|
-
|
|
857
|
+
* ```
|
|
852
858
|
*/
|
|
853
859
|
EmbedEvent["DownloadAsPdf"] = "downloadAsPdf";
|
|
854
860
|
/**
|
|
855
861
|
* Emitted when the Download as CSV action is triggered on an Answer.
|
|
856
|
-
* Use start:true to subscribe to when download as CSV is initiated, or end:true to
|
|
862
|
+
* Use start:true to subscribe to when download as CSV is initiated, or end:true to
|
|
863
|
+
* subscribe to when download as CSV is completed. Default is end:true.
|
|
857
864
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
858
865
|
* @example
|
|
859
|
-
|
|
866
|
+
* ```js
|
|
860
867
|
* //emit when action starts
|
|
861
868
|
* searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
|
|
862
869
|
* console.log('download CSV', payload)}, {start: true })
|
|
863
870
|
* //emit when action ends
|
|
864
871
|
* searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
|
|
865
872
|
* console.log('download CSV', payload)})
|
|
866
|
-
|
|
873
|
+
* ```
|
|
867
874
|
*/
|
|
868
875
|
EmbedEvent["DownloadAsCsv"] = "downloadAsCsv";
|
|
869
876
|
/**
|
|
870
877
|
* Emitted when the Download as XLSX action is triggered on an Answer.
|
|
871
|
-
* Use start:true to subscribe to when download as XLSX is initiated, or end:true to
|
|
878
|
+
* Use start:true to subscribe to when download as XLSX is initiated, or end:true to
|
|
879
|
+
* subscribe to when download as XLSX is completed. Default is end:true.
|
|
872
880
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
873
881
|
* @example
|
|
874
|
-
|
|
882
|
+
* ```js
|
|
875
883
|
* //emit when action starts
|
|
876
884
|
* searchEmbed.on(EmbedEvent.DownloadAsXlsx, payload => {
|
|
877
885
|
* console.log('download Xlsx', payload)}, { start: true })
|
|
878
886
|
* //emit when action ends
|
|
879
887
|
* searchEmbed.on(EmbedEvent.DownloadAsXlsx, payload => {
|
|
880
888
|
* console.log('download Xlsx', payload)})
|
|
881
|
-
|
|
889
|
+
* ```
|
|
882
890
|
*/
|
|
883
891
|
EmbedEvent["DownloadAsXlsx"] = "downloadAsXlsx";
|
|
884
892
|
/**
|
|
885
893
|
* Emitted when an Answer is deleted in the app
|
|
886
|
-
* Use start:true to subscribe to when delete is initiated, or end:true to subscribe
|
|
894
|
+
* Use start:true to subscribe to when delete is initiated, or end:true to subscribe
|
|
895
|
+
* to when delete is completed. Default is end:true.
|
|
887
896
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
888
897
|
* @example
|
|
889
|
-
|
|
898
|
+
* ```js
|
|
890
899
|
* //emit when action starts
|
|
891
900
|
* appEmbed.on(EmbedEvent.AnswerDelete, payload => {
|
|
892
901
|
* console.log('delete answer', payload)}, {start: true })
|
|
893
902
|
* //trigger when action is completed
|
|
894
903
|
* appEmbed.on(EmbedEvent.AnswerDelete, payload => {
|
|
895
904
|
* console.log('delete answer', payload)})
|
|
896
|
-
|
|
905
|
+
* ```
|
|
897
906
|
*/
|
|
898
907
|
EmbedEvent["AnswerDelete"] = "answerDelete";
|
|
899
908
|
/**
|
|
900
909
|
* Emitted when the AI Highlights action is triggered on a Liveboard
|
|
901
910
|
* @version SDK: 1.44.0 | ThoughtSpot: 10.15.0.cl
|
|
902
911
|
* @example
|
|
903
|
-
|
|
912
|
+
* ```js
|
|
904
913
|
* liveboardEmbed.on(EmbedEvent.AIHighlights, (payload) => {
|
|
905
914
|
* console.log('AI Highlights', payload);
|
|
906
915
|
* })
|
|
907
|
-
|
|
916
|
+
* ```
|
|
908
917
|
*/
|
|
909
918
|
EmbedEvent["AIHighlights"] = "AIHighlights";
|
|
910
919
|
/**
|
|
911
920
|
* Emitted when a user initiates the Pin action to
|
|
912
921
|
* add an Answer to a Liveboard.
|
|
913
|
-
* Use start:true to subscribe to when pin is initiated, or end:true to subscribe to
|
|
922
|
+
* Use start:true to subscribe to when pin is initiated, or end:true to subscribe to
|
|
923
|
+
* when pin is completed. Default is end:true.
|
|
914
924
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
915
925
|
* @example
|
|
916
|
-
|
|
926
|
+
* ```js
|
|
917
927
|
* //emit when action starts
|
|
918
928
|
* searchEmbed.on(EmbedEvent.Pin, payload => {
|
|
919
929
|
* console.log('pin', payload)
|
|
@@ -924,14 +934,14 @@ var EmbedEvent;
|
|
|
924
934
|
* searchEmbed.on(EmbedEvent.Pin, payload => {
|
|
925
935
|
* console.log('pin', payload)
|
|
926
936
|
* })
|
|
927
|
-
|
|
937
|
+
* ```
|
|
928
938
|
*/
|
|
929
939
|
EmbedEvent["Pin"] = "pin";
|
|
930
940
|
/**
|
|
931
941
|
* Emitted when SpotIQ analysis is triggered
|
|
932
942
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
933
943
|
* @example
|
|
934
|
-
|
|
944
|
+
* ```js
|
|
935
945
|
* //emit when action starts
|
|
936
946
|
* searchEmbed.on(EmbedEvent.SpotIQAnalyze, payload => {
|
|
937
947
|
* console.log('SpotIQAnalyze', payload)
|
|
@@ -942,14 +952,14 @@ var EmbedEvent;
|
|
|
942
952
|
* searchEmbed.on(EmbedEvent.SpotIQAnalyze, payload => {
|
|
943
953
|
* console.log('SpotIQ analyze', payload)
|
|
944
954
|
* })
|
|
945
|
-
|
|
955
|
+
* ```
|
|
946
956
|
*/
|
|
947
957
|
EmbedEvent["SpotIQAnalyze"] = "spotIQAnalyze";
|
|
948
958
|
/**
|
|
949
959
|
* Emitted when a user shares an object with another user or group
|
|
950
960
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
951
961
|
* @example
|
|
952
|
-
|
|
962
|
+
* ```js
|
|
953
963
|
* //emit when action starts
|
|
954
964
|
* searchEmbed.on(EmbedEvent.Share, payload => {
|
|
955
965
|
* console.log('Share', payload)
|
|
@@ -960,7 +970,7 @@ var EmbedEvent;
|
|
|
960
970
|
* searchEmbed.on(EmbedEvent.Share, payload => {
|
|
961
971
|
* console.log('Share', payload)
|
|
962
972
|
* })
|
|
963
|
-
|
|
973
|
+
* ```
|
|
964
974
|
*/
|
|
965
975
|
EmbedEvent["Share"] = "share";
|
|
966
976
|
/**
|
|
@@ -968,11 +978,11 @@ var EmbedEvent;
|
|
|
968
978
|
* data on a chart or table.
|
|
969
979
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
970
980
|
* @example
|
|
971
|
-
|
|
981
|
+
* ```js
|
|
972
982
|
* appEmbed.on(EmbedEvent.DrillInclude, payload => {
|
|
973
983
|
* console.log('Drill include', payload);
|
|
974
984
|
* })
|
|
975
|
-
|
|
985
|
+
* ```
|
|
976
986
|
*/
|
|
977
987
|
EmbedEvent["DrillInclude"] = "context-menu-item-include";
|
|
978
988
|
/**
|
|
@@ -980,22 +990,22 @@ var EmbedEvent;
|
|
|
980
990
|
* data on a chart or table
|
|
981
991
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
982
992
|
* @example
|
|
983
|
-
|
|
993
|
+
* ```js
|
|
984
994
|
* appEmbed.on(EmbedEvent.DrillExclude, payload => {
|
|
985
995
|
* console.log('Drill exclude', payload);
|
|
986
996
|
* })
|
|
987
|
-
|
|
997
|
+
* ```
|
|
988
998
|
*/
|
|
989
999
|
EmbedEvent["DrillExclude"] = "context-menu-item-exclude";
|
|
990
1000
|
/**
|
|
991
1001
|
* Emitted when a column value is copied in the embedded app.
|
|
992
1002
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
993
1003
|
* @example
|
|
994
|
-
|
|
995
|
-
*
|
|
1004
|
+
* ```js
|
|
1005
|
+
* searchEmbed.on(EmbedEvent.CopyToClipboard, payload => {
|
|
996
1006
|
* console.log('copy to clipboard', payload);
|
|
997
1007
|
* })
|
|
998
|
-
|
|
1008
|
+
* ```
|
|
999
1009
|
*/
|
|
1000
1010
|
EmbedEvent["CopyToClipboard"] = "context-menu-item-copy-to-clipboard";
|
|
1001
1011
|
/**
|
|
@@ -1003,10 +1013,10 @@ var EmbedEvent;
|
|
|
1003
1013
|
* embedded Liveboard.
|
|
1004
1014
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
1005
1015
|
* @example
|
|
1006
|
-
|
|
1016
|
+
* ```js
|
|
1007
1017
|
* liveboardEmbed.on(EmbedEvent.UpdateTML)
|
|
1008
1018
|
* })
|
|
1009
|
-
|
|
1019
|
+
* ```
|
|
1010
1020
|
*/
|
|
1011
1021
|
EmbedEvent["UpdateTML"] = "updateTSL";
|
|
1012
1022
|
/**
|
|
@@ -1014,75 +1024,77 @@ var EmbedEvent;
|
|
|
1014
1024
|
* on an embedded Liveboard.
|
|
1015
1025
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
1016
1026
|
* @example
|
|
1017
|
-
|
|
1027
|
+
* ```js
|
|
1018
1028
|
* appEmbed.on(EmbedEvent.EditTML, payload => {
|
|
1019
1029
|
* console.log('Edit TML', payload);
|
|
1020
1030
|
* })
|
|
1021
|
-
|
|
1031
|
+
* ```
|
|
1022
1032
|
*/
|
|
1023
1033
|
EmbedEvent["EditTML"] = "editTSL";
|
|
1024
1034
|
/**
|
|
1025
1035
|
* Emitted when the **Export TML** action is triggered on an
|
|
1026
1036
|
* an embedded object in the app
|
|
1027
|
-
* Use start:true to subscribe to when export is initiated, or end:true to subscribe
|
|
1037
|
+
* Use start:true to subscribe to when export is initiated, or end:true to subscribe
|
|
1038
|
+
* to when export is completed. Default is end:true.
|
|
1028
1039
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
1029
1040
|
* @example
|
|
1030
|
-
|
|
1041
|
+
* ```js
|
|
1031
1042
|
* //emit when action starts
|
|
1032
1043
|
* searchEmbed.on(EmbedEvent.ExportTML, payload => {
|
|
1033
1044
|
* console.log('Export TML', payload)}, { start: true })
|
|
1034
1045
|
* //emit when action ends
|
|
1035
1046
|
* searchEmbed.on(EmbedEvent.ExportTML, payload => {
|
|
1036
1047
|
* console.log('Export TML', payload)})
|
|
1037
|
-
|
|
1048
|
+
* ```
|
|
1038
1049
|
*/
|
|
1039
1050
|
EmbedEvent["ExportTML"] = "exportTSL";
|
|
1040
1051
|
/**
|
|
1041
1052
|
* Emitted when an Answer is saved as a View.
|
|
1042
1053
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
1043
1054
|
* @example
|
|
1044
|
-
|
|
1055
|
+
* ```js
|
|
1045
1056
|
* appEmbed.on(EmbedEvent.SaveAsView, payload => {
|
|
1046
1057
|
* console.log('View', payload);
|
|
1047
1058
|
* })
|
|
1048
|
-
|
|
1059
|
+
* ```
|
|
1049
1060
|
*/
|
|
1050
1061
|
EmbedEvent["SaveAsView"] = "saveAsView";
|
|
1051
1062
|
/**
|
|
1052
1063
|
* Emitted when the user creates a copy of an Answer.
|
|
1053
|
-
* Use start:true to subscribe to when copy and edit is initiated, or end:true to
|
|
1064
|
+
* Use start:true to subscribe to when copy and edit is initiated, or end:true to
|
|
1065
|
+
* subscribe to when copy and edit is completed. Default is end:true.
|
|
1054
1066
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
1055
1067
|
* @example
|
|
1056
|
-
|
|
1068
|
+
* ```js
|
|
1057
1069
|
* //emit when action starts
|
|
1058
1070
|
* appEmbed.on(EmbedEvent.CopyAEdit, payload => {
|
|
1059
1071
|
* console.log('Copy and edit', payload)}, {start: true })
|
|
1060
1072
|
* //emit when action ends
|
|
1061
1073
|
* appEmbed.on(EmbedEvent.CopyAEdit, payload => {
|
|
1062
1074
|
* console.log('Copy and edit', payload)})
|
|
1063
|
-
|
|
1075
|
+
* ```
|
|
1064
1076
|
*/
|
|
1065
1077
|
EmbedEvent["CopyAEdit"] = "copyAEdit";
|
|
1066
1078
|
/**
|
|
1067
1079
|
* Emitted when a user clicks *Show underlying data* on an Answer.
|
|
1068
1080
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
1069
1081
|
* @example
|
|
1070
|
-
|
|
1082
|
+
* ```js
|
|
1071
1083
|
* liveboardEmbed.on(EmbedEvent.ShowUnderlyingData, payload => {
|
|
1072
1084
|
* console.log('show data', payload);
|
|
1073
1085
|
* })
|
|
1074
|
-
|
|
1086
|
+
* ```
|
|
1075
1087
|
*/
|
|
1076
1088
|
EmbedEvent["ShowUnderlyingData"] = "showUnderlyingData";
|
|
1077
1089
|
/**
|
|
1078
1090
|
* Emitted when an Answer is switched to a chart or table view.
|
|
1079
1091
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
1080
1092
|
* @example
|
|
1081
|
-
|
|
1093
|
+
* ```js
|
|
1082
1094
|
* searchEmbed.on(EmbedEvent.AnswerChartSwitcher, payload => {
|
|
1083
1095
|
* console.log('switch view', payload);
|
|
1084
1096
|
* })
|
|
1085
|
-
|
|
1097
|
+
* ```
|
|
1086
1098
|
*/
|
|
1087
1099
|
EmbedEvent["AnswerChartSwitcher"] = "answerChartSwitcher";
|
|
1088
1100
|
/**
|
|
@@ -1099,118 +1111,118 @@ var EmbedEvent;
|
|
|
1099
1111
|
* Emitted when a user clicks **Show Liveboard details** on a Liveboard
|
|
1100
1112
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
1101
1113
|
* @example
|
|
1102
|
-
|
|
1114
|
+
* ```js
|
|
1103
1115
|
* liveboardEmbed.on(EmbedEvent.LiveboardInfo, payload => {
|
|
1104
1116
|
* console.log('Liveboard details', payload);
|
|
1105
1117
|
* })
|
|
1106
|
-
|
|
1118
|
+
* ```
|
|
1107
1119
|
*/
|
|
1108
1120
|
EmbedEvent["LiveboardInfo"] = "pinboardInfo";
|
|
1109
1121
|
/**
|
|
1110
1122
|
* Emitted when a user clicks on the Favorite icon on a Liveboard
|
|
1111
1123
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
1112
1124
|
* @example
|
|
1113
|
-
|
|
1125
|
+
* ```js
|
|
1114
1126
|
* liveboardEmbed.on(EmbedEvent.AddToFavorites, payload => {
|
|
1115
1127
|
* console.log('favorites', payload);
|
|
1116
1128
|
* })
|
|
1117
|
-
|
|
1129
|
+
* ```
|
|
1118
1130
|
*/
|
|
1119
1131
|
EmbedEvent["AddToFavorites"] = "addToFavorites";
|
|
1120
1132
|
/**
|
|
1121
1133
|
* Emitted when a user clicks **Schedule** on a Liveboard
|
|
1122
1134
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
1123
1135
|
* @example
|
|
1124
|
-
|
|
1136
|
+
* ```js
|
|
1125
1137
|
* liveboardEmbed.on(EmbedEvent.Schedule, payload => {
|
|
1126
|
-
* console.log(
|
|
1138
|
+
* console.log('Liveboard schedule', payload);
|
|
1127
1139
|
* })
|
|
1128
|
-
|
|
1140
|
+
* ```
|
|
1129
1141
|
*/
|
|
1130
1142
|
EmbedEvent["Schedule"] = "subscription";
|
|
1131
1143
|
/**
|
|
1132
1144
|
* Emitted when a user clicks **Edit** on a Liveboard or visualization
|
|
1133
1145
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
1134
1146
|
* @example
|
|
1135
|
-
|
|
1147
|
+
* ```js
|
|
1136
1148
|
* liveboardEmbed.on(EmbedEvent.Edit, payload => {
|
|
1137
|
-
* console.log(
|
|
1149
|
+
* console.log('Liveboard edit', payload);
|
|
1138
1150
|
* })
|
|
1139
|
-
|
|
1151
|
+
* ```
|
|
1140
1152
|
*/
|
|
1141
1153
|
EmbedEvent["Edit"] = "edit";
|
|
1142
1154
|
/**
|
|
1143
1155
|
* Emitted when a user clicks *Make a copy* on a Liveboard
|
|
1144
1156
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
1145
1157
|
* @example
|
|
1146
|
-
|
|
1158
|
+
* ```js
|
|
1147
1159
|
* liveboardEmbed.on(EmbedEvent.MakeACopy, payload => {
|
|
1148
|
-
* console.log(
|
|
1160
|
+
* console.log('Copy', payload);
|
|
1149
1161
|
* })
|
|
1150
|
-
|
|
1162
|
+
* ```
|
|
1151
1163
|
*/
|
|
1152
1164
|
EmbedEvent["MakeACopy"] = "makeACopy";
|
|
1153
1165
|
/**
|
|
1154
1166
|
* Emitted when a user clicks **Present** on a Liveboard or visualization
|
|
1155
1167
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
1156
1168
|
* @example
|
|
1157
|
-
|
|
1169
|
+
* ```js
|
|
1158
1170
|
* liveboardEmbed.on(EmbedEvent.Present)
|
|
1159
|
-
|
|
1171
|
+
* ```
|
|
1160
1172
|
* @example
|
|
1161
|
-
|
|
1173
|
+
* ```js
|
|
1162
1174
|
* liveboardEmbed.on(EmbedEvent.Present, {
|
|
1163
1175
|
* vizId: '730496d6-6903-4601-937e-2c691821af3c'})
|
|
1164
1176
|
* })
|
|
1165
|
-
|
|
1177
|
+
* ```
|
|
1166
1178
|
*/
|
|
1167
1179
|
EmbedEvent["Present"] = "present";
|
|
1168
1180
|
/**
|
|
1169
1181
|
* Emitted when a user clicks **Delete** on a visualization
|
|
1170
1182
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
1171
1183
|
* @example
|
|
1172
|
-
|
|
1184
|
+
* ```js
|
|
1173
1185
|
* liveboardEmbed.on(EmbedEvent.Delete,
|
|
1174
1186
|
* {vizId: '730496d6-6903-4601-937e-2c691821af3c'})
|
|
1175
|
-
|
|
1187
|
+
* ```
|
|
1176
1188
|
*/
|
|
1177
1189
|
EmbedEvent["Delete"] = "delete";
|
|
1178
1190
|
/**
|
|
1179
1191
|
* Emitted when a user clicks Manage schedules on a Liveboard
|
|
1180
1192
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
1181
1193
|
* @example
|
|
1182
|
-
|
|
1194
|
+
* ```js
|
|
1183
1195
|
* liveboardEmbed.on(EmbedEvent.SchedulesList)
|
|
1184
|
-
|
|
1196
|
+
* ```
|
|
1185
1197
|
*/
|
|
1186
1198
|
EmbedEvent["SchedulesList"] = "schedule-list";
|
|
1187
1199
|
/**
|
|
1188
1200
|
* Emitted when a user clicks **Cancel** in edit mode on a Liveboard
|
|
1189
1201
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
1190
1202
|
* @example
|
|
1191
|
-
|
|
1203
|
+
* ```js
|
|
1192
1204
|
* liveboardEmbed.on(EmbedEvent.Cancel)
|
|
1193
|
-
|
|
1205
|
+
* ```
|
|
1194
1206
|
*/
|
|
1195
1207
|
EmbedEvent["Cancel"] = "cancel";
|
|
1196
1208
|
/**
|
|
1197
1209
|
* Emitted when a user clicks **Explore** on a visualization
|
|
1198
1210
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
1199
1211
|
* @example
|
|
1200
|
-
|
|
1212
|
+
* ```js
|
|
1201
1213
|
* liveboardEmbed.on(EmbedEvent.Explore, {
|
|
1202
1214
|
* vizId: '730496d6-6903-4601-937e-2c691821af3c'})
|
|
1203
|
-
|
|
1215
|
+
* ```
|
|
1204
1216
|
*/
|
|
1205
1217
|
EmbedEvent["Explore"] = "explore";
|
|
1206
1218
|
/**
|
|
1207
1219
|
* Emitted when a user clicks **Copy link** action on a visualization.
|
|
1208
1220
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
1209
1221
|
* @example
|
|
1210
|
-
|
|
1222
|
+
* ```js
|
|
1211
1223
|
* liveboardEmbed.on(EmbedEvent.CopyLink, {
|
|
1212
1224
|
* vizId: '730496d6-6903-4601-937e-2c691821af3c'})
|
|
1213
|
-
|
|
1225
|
+
* ```
|
|
1214
1226
|
*/
|
|
1215
1227
|
EmbedEvent["CopyLink"] = "embedDocument";
|
|
1216
1228
|
/**
|
|
@@ -1218,21 +1230,21 @@ var EmbedEvent;
|
|
|
1218
1230
|
* visualization or Liveboard.
|
|
1219
1231
|
* @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.5.0.sw
|
|
1220
1232
|
* @example
|
|
1221
|
-
|
|
1233
|
+
* ```js
|
|
1222
1234
|
* liveboardEmbed.on(EmbedEvent.CrossFilterChanged, {
|
|
1223
1235
|
* vizId: '730496d6-6903-4601-937e-2c691821af3c'})
|
|
1224
|
-
|
|
1236
|
+
* ```
|
|
1225
1237
|
*/
|
|
1226
1238
|
EmbedEvent["CrossFilterChanged"] = "cross-filter-changed";
|
|
1227
1239
|
/**
|
|
1228
1240
|
* Emitted when a user right clicks on a visualization (chart or table)
|
|
1229
1241
|
* @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.5.0.sw
|
|
1230
1242
|
* @example
|
|
1231
|
-
|
|
1243
|
+
* ```js
|
|
1232
1244
|
* LiveboardEmbed.on(EmbedEvent.VizPointRightClick, payload => {
|
|
1233
1245
|
* console.log('VizPointClick', payload)
|
|
1234
1246
|
* })
|
|
1235
|
-
|
|
1247
|
+
* ```
|
|
1236
1248
|
*/
|
|
1237
1249
|
EmbedEvent["VizPointRightClick"] = "vizPointRightClick";
|
|
1238
1250
|
/**
|
|
@@ -1246,35 +1258,35 @@ var EmbedEvent;
|
|
|
1246
1258
|
* filter details.
|
|
1247
1259
|
* @example
|
|
1248
1260
|
*
|
|
1249
|
-
|
|
1261
|
+
* ```js
|
|
1250
1262
|
* LiveboardEmbed.on(EmbedEvent.FilterChanged, (payload) => {
|
|
1251
1263
|
* console.log('payload', payload);
|
|
1252
1264
|
* })
|
|
1253
|
-
*
|
|
1265
|
+
* ```
|
|
1254
1266
|
* @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.0.sw
|
|
1255
1267
|
*/
|
|
1256
1268
|
EmbedEvent["FilterChanged"] = "filterChanged";
|
|
1257
1269
|
/**
|
|
1258
1270
|
* Emitted when a user clicks the **Go** button to initiate
|
|
1259
1271
|
* a Natural Language Search query
|
|
1260
|
-
* @version SDK
|
|
1272
|
+
* @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl, 9.8.0.sw
|
|
1261
1273
|
*/
|
|
1262
1274
|
EmbedEvent["SageEmbedQuery"] = "sageEmbedQuery";
|
|
1263
1275
|
/**
|
|
1264
1276
|
* Emitted when a user selects a data source on the embedded
|
|
1265
1277
|
* Natural Language Search interface.
|
|
1266
1278
|
*
|
|
1267
|
-
* @version SDK
|
|
1279
|
+
* @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl, 9.8.0.sw
|
|
1268
1280
|
*/
|
|
1269
1281
|
EmbedEvent["SageWorksheetUpdated"] = "sageWorksheetUpdated";
|
|
1270
1282
|
/**
|
|
1271
1283
|
* Emitted when a user updates a connection on the **Data** page
|
|
1272
|
-
* @version SDK
|
|
1284
|
+
* @version SDK: 1.27.0 | ThoughtSpot: 9.8.0.cl, 9.8.0.sw
|
|
1273
1285
|
*/
|
|
1274
1286
|
EmbedEvent["UpdateConnection"] = "updateConnection";
|
|
1275
1287
|
/**
|
|
1276
1288
|
* Emitted when a user updates a connection on the **Data** page
|
|
1277
|
-
* @version SDK
|
|
1289
|
+
* @version SDK: 1.27.0 | ThoughtSpot: 9.8.0.cl, 9.8.0.sw
|
|
1278
1290
|
*/
|
|
1279
1291
|
EmbedEvent["CreateConnection"] = "createConnection";
|
|
1280
1292
|
/**
|
|
@@ -1284,7 +1296,7 @@ var EmbedEvent;
|
|
|
1284
1296
|
* @returns viewId: string
|
|
1285
1297
|
* @returns liveboardId: string
|
|
1286
1298
|
* @returns isPublic: boolean
|
|
1287
|
-
* @version SDK
|
|
1299
|
+
* @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl, 9.8.0.sw
|
|
1288
1300
|
*/
|
|
1289
1301
|
EmbedEvent["UpdatePersonalisedView"] = "updatePersonalisedView";
|
|
1290
1302
|
/**
|
|
@@ -1293,7 +1305,7 @@ var EmbedEvent;
|
|
|
1293
1305
|
* @returns viewId: string
|
|
1294
1306
|
* @returns liveboardId: string
|
|
1295
1307
|
* @returns isPublic: boolean
|
|
1296
|
-
* @version SDK
|
|
1308
|
+
* @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl, 9.8.0.sw
|
|
1297
1309
|
*/
|
|
1298
1310
|
EmbedEvent["SavePersonalisedView"] = "savePersonalisedView";
|
|
1299
1311
|
/**
|
|
@@ -1302,19 +1314,19 @@ var EmbedEvent;
|
|
|
1302
1314
|
* @returns viewId: string
|
|
1303
1315
|
* @returns liveboardId: string
|
|
1304
1316
|
* @returns isPublic: boolean
|
|
1305
|
-
* @version SDK
|
|
1317
|
+
* @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl, 9.8.0.sw
|
|
1306
1318
|
*/
|
|
1307
1319
|
EmbedEvent["ResetLiveboard"] = "resetLiveboard";
|
|
1308
1320
|
/**
|
|
1309
1321
|
* Emitted when a PersonalisedView is deleted.
|
|
1310
1322
|
* @returns views: string[]
|
|
1311
1323
|
* @returns liveboardId: string
|
|
1312
|
-
* @version SDK
|
|
1324
|
+
* @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl, 9.8.0.sw
|
|
1313
1325
|
*/
|
|
1314
1326
|
EmbedEvent["DeletePersonalisedView"] = "deletePersonalisedView";
|
|
1315
1327
|
/**
|
|
1316
1328
|
* Emitted when a user creates a Worksheet.
|
|
1317
|
-
* @version SDK
|
|
1329
|
+
* @version SDK: 1.27.0 | ThoughtSpot: 9.8.0.cl, 9.8.0.sw
|
|
1318
1330
|
*/
|
|
1319
1331
|
EmbedEvent["CreateWorksheet"] = "createWorksheet";
|
|
1320
1332
|
/**
|
|
@@ -1323,12 +1335,12 @@ var EmbedEvent;
|
|
|
1323
1335
|
* @returns viewId: string
|
|
1324
1336
|
* @returns liveboardId: string
|
|
1325
1337
|
* @returns isPublic: boolean
|
|
1326
|
-
* @version SDK
|
|
1338
|
+
* @version SDK: 1.29.0 | ThoughtSpot Cloud: 9.12.0.cl
|
|
1327
1339
|
*/
|
|
1328
1340
|
EmbedEvent["AskSageInit"] = "AskSageInit";
|
|
1329
1341
|
/**
|
|
1330
1342
|
* Emitted when a Liveboard or visualization is renamed.
|
|
1331
|
-
* @version SDK
|
|
1343
|
+
* @version SDK: 1.28.0 | ThoughtSpot: 9.10.5.cl, 10.1.0.sw
|
|
1332
1344
|
*/
|
|
1333
1345
|
EmbedEvent["Rename"] = "rename";
|
|
1334
1346
|
/**
|
|
@@ -1351,7 +1363,7 @@ var EmbedEvent;
|
|
|
1351
1363
|
* - `error` - Developers can customize the user-facing error message when `execute`
|
|
1352
1364
|
* is `false` by using the `error` parameters in `responder`.
|
|
1353
1365
|
* - `errorText` - The error message text shown to the user.
|
|
1354
|
-
* @version SDK
|
|
1366
|
+
* @version SDK: 1.29.0 | ThoughtSpot: 10.3.0.cl
|
|
1355
1367
|
* @example
|
|
1356
1368
|
*
|
|
1357
1369
|
* This example blocks search operation and returns a custom error message:
|
|
@@ -1403,8 +1415,8 @@ var EmbedEvent;
|
|
|
1403
1415
|
* liveboardEmbed.on(EmbedEvent.ParameterChanged, (payload) => {
|
|
1404
1416
|
* console.log('payload', payload);
|
|
1405
1417
|
* })
|
|
1406
|
-
|
|
1407
|
-
* @version SDK
|
|
1418
|
+
* ```
|
|
1419
|
+
* @version SDK: 1.29.0 | ThoughtSpot: 10.3.0.cl
|
|
1408
1420
|
*/
|
|
1409
1421
|
EmbedEvent["ParameterChanged"] = "parameterChanged";
|
|
1410
1422
|
/**
|
|
@@ -1459,24 +1471,24 @@ var EmbedEvent;
|
|
|
1459
1471
|
* liveboardEmbed.on(EmbedEvent.CreateLiveboard, (payload) => {
|
|
1460
1472
|
* console.log('payload', payload);
|
|
1461
1473
|
* })
|
|
1462
|
-
|
|
1463
|
-
* @version SDK
|
|
1474
|
+
* ```
|
|
1475
|
+
* @version SDK: 1.37.0 | ThoughtSpot: 10.8.0.cl
|
|
1464
1476
|
*/
|
|
1465
1477
|
EmbedEvent["CreateLiveboard"] = "createLiveboard";
|
|
1466
1478
|
/**
|
|
1467
1479
|
* Emitted when a user creates a Model.
|
|
1468
|
-
* @version SDK
|
|
1480
|
+
* @version SDK: 1.37.0 | ThoughtSpot: 10.8.0.cl
|
|
1469
1481
|
*/
|
|
1470
1482
|
EmbedEvent["CreateModel"] = "createModel";
|
|
1471
1483
|
/**
|
|
1472
1484
|
* @hidden
|
|
1473
1485
|
* Emitted when a user exits present mode.
|
|
1474
|
-
* @version SDK
|
|
1486
|
+
* @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
|
|
1475
1487
|
*/
|
|
1476
1488
|
EmbedEvent["ExitPresentMode"] = "exitPresentMode";
|
|
1477
1489
|
/**
|
|
1478
1490
|
* Emitted when a user requests the full height lazy load data.
|
|
1479
|
-
* @version SDK
|
|
1491
|
+
* @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
|
|
1480
1492
|
* @hidden
|
|
1481
1493
|
*/
|
|
1482
1494
|
EmbedEvent["RequestVisibleEmbedCoordinates"] = "requestVisibleEmbedCoordinates";
|
|
@@ -1487,7 +1499,7 @@ var EmbedEvent;
|
|
|
1487
1499
|
* spotterEmbed.on(EmbedEvent.SpotterData, (payload) => {
|
|
1488
1500
|
* console.log('payload', payload);
|
|
1489
1501
|
* })
|
|
1490
|
-
|
|
1502
|
+
* ```
|
|
1491
1503
|
* @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
|
|
1492
1504
|
*/
|
|
1493
1505
|
EmbedEvent["SpotterData"] = "SpotterData";
|
|
@@ -1498,7 +1510,7 @@ var EmbedEvent;
|
|
|
1498
1510
|
* spotterEmbed.on(EmbedEvent.PreviewSpotterData, (payload) => {
|
|
1499
1511
|
* console.log('payload', payload);
|
|
1500
1512
|
* })
|
|
1501
|
-
|
|
1513
|
+
* ```
|
|
1502
1514
|
* @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
|
|
1503
1515
|
*/
|
|
1504
1516
|
EmbedEvent["PreviewSpotterData"] = "PreviewSpotterData";
|
|
@@ -1509,7 +1521,7 @@ var EmbedEvent;
|
|
|
1509
1521
|
* spotterEmbed.on(EmbedEvent.AddToCoaching, (payload) => {
|
|
1510
1522
|
* console.log('payload', payload);
|
|
1511
1523
|
* })
|
|
1512
|
-
|
|
1524
|
+
* ```
|
|
1513
1525
|
* @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
|
|
1514
1526
|
*/
|
|
1515
1527
|
EmbedEvent["AddToCoaching"] = "addToCoaching";
|
|
@@ -1531,7 +1543,7 @@ var EmbedEvent;
|
|
|
1531
1543
|
* spotterEmbed.on(EmbedEvent.SpotterQueryTriggered, (payload) => {
|
|
1532
1544
|
* console.log('payload', payload);
|
|
1533
1545
|
* })
|
|
1534
|
-
|
|
1546
|
+
* ```
|
|
1535
1547
|
* @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
|
|
1536
1548
|
*/
|
|
1537
1549
|
EmbedEvent["SpotterQueryTriggered"] = "SpotterQueryTriggered";
|
|
@@ -1542,7 +1554,7 @@ var EmbedEvent;
|
|
|
1542
1554
|
* spotterEmbed.on(EmbedEvent.LastPromptEdited, (payload) => {
|
|
1543
1555
|
* console.log('payload', payload);
|
|
1544
1556
|
* })
|
|
1545
|
-
|
|
1557
|
+
* ```
|
|
1546
1558
|
* @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
|
|
1547
1559
|
*/
|
|
1548
1560
|
EmbedEvent["LastPromptEdited"] = "LastPromptEdited";
|
|
@@ -1553,18 +1565,18 @@ var EmbedEvent;
|
|
|
1553
1565
|
* spotterEmbed.on(EmbedEvent.LastPromptDeleted, (payload) => {
|
|
1554
1566
|
* console.log('payload', payload);
|
|
1555
1567
|
* })
|
|
1556
|
-
|
|
1568
|
+
* ```
|
|
1557
1569
|
* @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
|
|
1558
1570
|
*/
|
|
1559
1571
|
EmbedEvent["LastPromptDeleted"] = "LastPromptDeleted";
|
|
1560
1572
|
/**
|
|
1561
|
-
* Emitted when the
|
|
1573
|
+
* Emitted when the conversation is reset in Spotter embed.
|
|
1562
1574
|
* @example
|
|
1563
1575
|
* ```js
|
|
1564
1576
|
* spotterEmbed.on(EmbedEvent.ResetSpotterConversation, (payload) => {
|
|
1565
1577
|
* console.log('payload', payload);
|
|
1566
1578
|
* })
|
|
1567
|
-
|
|
1579
|
+
* ```
|
|
1568
1580
|
* @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
|
|
1569
1581
|
*/
|
|
1570
1582
|
EmbedEvent["ResetSpotterConversation"] = "ResetSpotterConversation";
|
|
@@ -1575,7 +1587,7 @@ var EmbedEvent;
|
|
|
1575
1587
|
* spotterEmbed.on(EmbedEvent.SpotterInit, (payload) => {
|
|
1576
1588
|
* console.log('payload', payload);
|
|
1577
1589
|
* })
|
|
1578
|
-
|
|
1590
|
+
* ```
|
|
1579
1591
|
* @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
|
|
1580
1592
|
*/
|
|
1581
1593
|
EmbedEvent["SpotterInit"] = "spotterInit";
|
|
@@ -1586,7 +1598,7 @@ var EmbedEvent;
|
|
|
1586
1598
|
* spotterEmbed.on(EmbedEvent.SpotterLoadComplete, (payload) => {
|
|
1587
1599
|
* console.log('payload', payload);
|
|
1588
1600
|
* })
|
|
1589
|
-
|
|
1601
|
+
* ```
|
|
1590
1602
|
* @version SDK: 1.44.0 | ThoughtSpot: 26.2.0.cl
|
|
1591
1603
|
*/
|
|
1592
1604
|
EmbedEvent["SpotterLoadComplete"] = "spotterLoadComplete";
|
|
@@ -1814,7 +1826,8 @@ var HostEvent;
|
|
|
1814
1826
|
* - `autoDrillDown`: Optional. If `true`, the drill down will be done automatically
|
|
1815
1827
|
* on the most popular column.
|
|
1816
1828
|
* - `vizId` (TS >= 9.8.0): Optional. The GUID of the visualization to drill in case
|
|
1817
|
-
* of a Liveboard. In Spotter embed, `vizId` refers to the Answer ID and is
|
|
1829
|
+
* of a Liveboard. In Spotter embed, `vizId` refers to the Answer ID and is
|
|
1830
|
+
* **required**.
|
|
1818
1831
|
* @example
|
|
1819
1832
|
* ```js
|
|
1820
1833
|
* searchEmbed.on(EmbedEvent.VizPointDoubleClick, (payload) => {
|
|
@@ -1941,7 +1954,7 @@ var HostEvent;
|
|
|
1941
1954
|
* ```js
|
|
1942
1955
|
* appEmbed.navigateToPage(-1)
|
|
1943
1956
|
* ```
|
|
1944
|
-
* @version SDK: 1.12.0 | ThoughtSpot 8.4.0.cl, 8.4.1.sw
|
|
1957
|
+
* @version SDK: 1.12.0 | ThoughtSpot: 8.4.0.cl, 8.4.1.sw
|
|
1945
1958
|
*/
|
|
1946
1959
|
HostEvent["Navigate"] = "Navigate";
|
|
1947
1960
|
/**
|
|
@@ -2010,7 +2023,8 @@ var HostEvent;
|
|
|
2010
2023
|
* the following parameters:
|
|
2011
2024
|
*
|
|
2012
2025
|
* @param - Includes the following keys:
|
|
2013
|
-
* - `vizId`: GUID of the saved Answer or Spotter visualization ID to pin to a
|
|
2026
|
+
* - `vizId`: GUID of the saved Answer or Spotter visualization ID to pin to a
|
|
2027
|
+
* Liveboard.
|
|
2014
2028
|
* Optional when pinning a new chart or table generated from a Search query.
|
|
2015
2029
|
* **Required** in Spotter Embed.
|
|
2016
2030
|
* - `liveboardId`: GUID of the Liveboard to pin an Answer. If there is no Liveboard,
|
|
@@ -2074,9 +2088,9 @@ var HostEvent;
|
|
|
2074
2088
|
* Trigger the **Show Liveboard details** action
|
|
2075
2089
|
* on an embedded Liveboard.
|
|
2076
2090
|
* @example
|
|
2077
|
-
|
|
2091
|
+
* ```js
|
|
2078
2092
|
* liveboardEmbed.trigger(HostEvent.LiveboardInfo)
|
|
2079
|
-
|
|
2093
|
+
* ```
|
|
2080
2094
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
2081
2095
|
*/
|
|
2082
2096
|
HostEvent["LiveboardInfo"] = "pinboardInfo";
|
|
@@ -2204,7 +2218,7 @@ var HostEvent;
|
|
|
2204
2218
|
* appEmbed.trigger(HostEvent.Remove)
|
|
2205
2219
|
* ```
|
|
2206
2220
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
2207
|
-
*
|
|
2221
|
+
* @example
|
|
2208
2222
|
* ```js
|
|
2209
2223
|
* liveboardEmbed.trigger(HostEvent.Remove)
|
|
2210
2224
|
* ```
|
|
@@ -2266,7 +2280,8 @@ var HostEvent;
|
|
|
2266
2280
|
* This event is not supported in visualization embed and search embed.
|
|
2267
2281
|
* @param - Object parameter. Includes the following keys:
|
|
2268
2282
|
* - `vizId`: To trigger the action for a specific visualization in Liveboard embed,
|
|
2269
|
-
* pass in `vizId` as a key. In Spotter embed, `vizId` refers to the Answer ID and
|
|
2283
|
+
* pass in `vizId` as a key. In Spotter embed, `vizId` refers to the Answer ID and
|
|
2284
|
+
* is **required**.
|
|
2270
2285
|
*
|
|
2271
2286
|
* @example
|
|
2272
2287
|
* ```js
|
|
@@ -2295,7 +2310,7 @@ var HostEvent;
|
|
|
2295
2310
|
* liveboardEmbed.trigger(HostEvent.CopyLink, {vizId: '730496d6-6903-4601-937e-2c691821af3c'})
|
|
2296
2311
|
* ```
|
|
2297
2312
|
* ```js
|
|
2298
|
-
* vizEmbed.trigger(
|
|
2313
|
+
* vizEmbed.trigger(HostEvent.CopyLink)
|
|
2299
2314
|
* ```
|
|
2300
2315
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
2301
2316
|
*/
|
|
@@ -2312,7 +2327,7 @@ var HostEvent;
|
|
|
2312
2327
|
* liveboardEmbed.trigger(HostEvent.Present, {vizId: '730496d6-6903-4601-937e-2c691821af3c'})
|
|
2313
2328
|
* ```
|
|
2314
2329
|
* ```js
|
|
2315
|
-
* vizEmbed.trigger(
|
|
2330
|
+
* vizEmbed.trigger(HostEvent.Present)
|
|
2316
2331
|
* ```
|
|
2317
2332
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
2318
2333
|
*/
|
|
@@ -2327,23 +2342,22 @@ var HostEvent;
|
|
|
2327
2342
|
* );
|
|
2328
2343
|
* })
|
|
2329
2344
|
* ```
|
|
2330
|
-
*
|
|
2345
|
+
* @example
|
|
2331
2346
|
* ```js
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
* spotterEmbed.trigger(HostEvent.GetTML, {
|
|
2347
|
+
* // You can use the Data event dispatched on each answer creation to get the vizId and use in GetTML host event.
|
|
2348
|
+
* let latestSpotterVizId = '';
|
|
2349
|
+
* spotterEmbed.on(EmbedEvent.Data, (payload) => {
|
|
2350
|
+
* latestSpotterVizId = payload.data.id;
|
|
2351
|
+
* });
|
|
2352
|
+
*
|
|
2353
|
+
* spotterEmbed.trigger(HostEvent.GetTML, {
|
|
2340
2354
|
* vizId: latestSpotterVizId
|
|
2341
2355
|
* }).then((tml) => {
|
|
2342
2356
|
* console.log(
|
|
2343
2357
|
* tml.answer.search_query // TML representation of the search query
|
|
2344
2358
|
* );
|
|
2345
2359
|
* })
|
|
2346
|
-
|
|
2360
|
+
* ```
|
|
2347
2361
|
* @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1.sw
|
|
2348
2362
|
* @important
|
|
2349
2363
|
*/
|
|
@@ -2407,6 +2421,11 @@ var HostEvent;
|
|
|
2407
2421
|
/**
|
|
2408
2422
|
* Trigger the **Download** action on charts in
|
|
2409
2423
|
* the embedded view.
|
|
2424
|
+
* Use {@link HostEvent.DownloadAsPng} instead.
|
|
2425
|
+
*
|
|
2426
|
+
* @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1.sw
|
|
2427
|
+
*
|
|
2428
|
+
* @deprecated from SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl ,9.4.1.sw
|
|
2410
2429
|
* @param - `vizId` refers to the Visualization ID in Spotter embed and is required in Spotter embed.
|
|
2411
2430
|
* @example
|
|
2412
2431
|
* ```js
|
|
@@ -2425,9 +2444,6 @@ var HostEvent;
|
|
|
2425
2444
|
*
|
|
2426
2445
|
* spotterEmbed.trigger(HostEvent.Download, { vizId: latestSpotterVizId });
|
|
2427
2446
|
* ```
|
|
2428
|
-
* @deprecated from SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl ,9.4.1.sw
|
|
2429
|
-
* Use {@link DownloadAsPng}
|
|
2430
|
-
* @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1.sw
|
|
2431
2447
|
*/
|
|
2432
2448
|
HostEvent["Download"] = "downloadAsPng";
|
|
2433
2449
|
/**
|
|
@@ -2634,8 +2650,9 @@ var HostEvent;
|
|
|
2634
2650
|
/**
|
|
2635
2651
|
* Update one or several filters applied on a Liveboard.
|
|
2636
2652
|
* @param - Includes the following keys:
|
|
2637
|
-
* - `filter`: A single filter object containing column name, filter operator, and
|
|
2638
|
-
* - `filters`: Multiple filter objects with column name, filter operator,
|
|
2653
|
+
* - `filter`: A single filter object containing column name, filter operator, and
|
|
2654
|
+
* values. - `filters`: Multiple filter objects with column name, filter operator,
|
|
2655
|
+
* and values for each.
|
|
2639
2656
|
*
|
|
2640
2657
|
* Each filter object must include the following attributes:
|
|
2641
2658
|
*
|
|
@@ -2865,8 +2882,8 @@ var HostEvent;
|
|
|
2865
2882
|
* liveboardEmbed.trigger(HostEvent.GetParameters).then((parameter) => {
|
|
2866
2883
|
* console.log('parameters', parameter);
|
|
2867
2884
|
* });
|
|
2868
|
-
|
|
2869
|
-
|
|
2885
|
+
* ```
|
|
2886
|
+
* ```js
|
|
2870
2887
|
* // You can use the Data event dispatched on each answer creation to get the vizId and use in GetParameters host event.
|
|
2871
2888
|
* let latestSpotterVizId = '';
|
|
2872
2889
|
* spotterEmbed.on(EmbedEvent.Data, (payload) => {
|
|
@@ -2874,7 +2891,7 @@ var HostEvent;
|
|
|
2874
2891
|
* });
|
|
2875
2892
|
*
|
|
2876
2893
|
* spotterEmbed.trigger(HostEvent.GetParameters, { vizId: latestSpotterVizId });
|
|
2877
|
-
|
|
2894
|
+
* ```
|
|
2878
2895
|
* @version SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl, 10.1.0.sw
|
|
2879
2896
|
*/
|
|
2880
2897
|
HostEvent["GetParameters"] = "GetParameters";
|
|
@@ -2891,7 +2908,7 @@ var HostEvent;
|
|
|
2891
2908
|
* Notify when info call is completed successfully
|
|
2892
2909
|
* ```js
|
|
2893
2910
|
* liveboardEmbed.trigger(HostEvent.InfoSuccess, data);
|
|
2894
|
-
|
|
2911
|
+
* ```
|
|
2895
2912
|
* @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
|
|
2896
2913
|
*/
|
|
2897
2914
|
HostEvent["InfoSuccess"] = "InfoSuccess";
|
|
@@ -2904,8 +2921,8 @@ var HostEvent;
|
|
|
2904
2921
|
* triggered with a modal to prompt users to
|
|
2905
2922
|
* add a name and description for the Answer.
|
|
2906
2923
|
* @param - Includes the following keys:
|
|
2907
|
-
* - `vizId`: Refers to the Answer ID in Spotter embed and is **required** in Spotter
|
|
2908
|
-
* - `name`: Optional. Name string for the Answer.
|
|
2924
|
+
* - `vizId`: Refers to the Answer ID in Spotter embed and is **required** in Spotter
|
|
2925
|
+
* embed. - `name`: Optional. Name string for the Answer.
|
|
2909
2926
|
* - `description`: Optional. Description text for the Answer.
|
|
2910
2927
|
* @example
|
|
2911
2928
|
* ```js
|
|
@@ -2994,7 +3011,7 @@ var HostEvent;
|
|
|
2994
3011
|
* ```js
|
|
2995
3012
|
* spotterEmbed.trigger(HostEvent.AddToCoaching, { vizId: '730496d6-6903-4601-937e-2c691821af3c' });
|
|
2996
3013
|
*
|
|
2997
|
-
|
|
3014
|
+
* ```
|
|
2998
3015
|
* @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
|
|
2999
3016
|
*/
|
|
3000
3017
|
HostEvent["AddToCoaching"] = "addToCoaching";
|
|
@@ -3036,7 +3053,7 @@ var HostEvent;
|
|
|
3036
3053
|
* });
|
|
3037
3054
|
*
|
|
3038
3055
|
* spotterEmbed.trigger(HostEvent.AnswerChartSwitcher, { vizId: latestSpotterVizId });
|
|
3039
|
-
|
|
3056
|
+
* ```
|
|
3040
3057
|
* @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
|
|
3041
3058
|
*/
|
|
3042
3059
|
HostEvent["AnswerChartSwitcher"] = "answerChartSwitcher";
|
|
@@ -3046,7 +3063,7 @@ var HostEvent;
|
|
|
3046
3063
|
* This is automatically triggered by the SDK when fullscreen mode is exited.
|
|
3047
3064
|
* ```js
|
|
3048
3065
|
* liveboardEmbed.trigger(HostEvent.ExitPresentMode);
|
|
3049
|
-
|
|
3066
|
+
* ```
|
|
3050
3067
|
* @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
|
|
3051
3068
|
*/
|
|
3052
3069
|
HostEvent["ExitPresentMode"] = "exitPresentMode";
|
|
@@ -3100,8 +3117,9 @@ var HostEvent;
|
|
|
3100
3117
|
/**
|
|
3101
3118
|
* Triggers a new conversation in Spotter embed.
|
|
3102
3119
|
*
|
|
3103
|
-
* This feature is available only when chat history is enabled on your ThoughtSpot
|
|
3104
|
-
* Contact your admin or ThoughtSpot Support to enable chat history on your
|
|
3120
|
+
* This feature is available only when chat history is enabled on your ThoughtSpot
|
|
3121
|
+
* instance. Contact your admin or ThoughtSpot Support to enable chat history on your
|
|
3122
|
+
* instance.
|
|
3105
3123
|
*
|
|
3106
3124
|
* @example
|
|
3107
3125
|
* ```js
|
|
@@ -3147,6 +3165,7 @@ var DataSourceVisualMode;
|
|
|
3147
3165
|
*/
|
|
3148
3166
|
var Param;
|
|
3149
3167
|
(function (Param) {
|
|
3168
|
+
Param["Tsmcp"] = "tsmcp";
|
|
3150
3169
|
Param["EmbedApp"] = "embedApp";
|
|
3151
3170
|
Param["DataSources"] = "dataSources";
|
|
3152
3171
|
Param["DataSourceMode"] = "dataSourceMode";
|
|
@@ -3196,6 +3215,7 @@ var Param;
|
|
|
3196
3215
|
// 'both' clicks in `contextMenuTrigger` configuration.
|
|
3197
3216
|
Param["ContextMenuTrigger"] = "contextMenuEnabledOnWhichClick";
|
|
3198
3217
|
Param["LinkOverride"] = "linkOverride";
|
|
3218
|
+
Param["EnableLinkOverridesV2"] = "enableLinkOverridesV2";
|
|
3199
3219
|
Param["blockNonEmbedFullAppAccess"] = "blockNonEmbedFullAppAccess";
|
|
3200
3220
|
Param["ShowInsertToSlide"] = "insertInToSlide";
|
|
3201
3221
|
Param["PrimaryNavHidden"] = "primaryNavHidden";
|
|
@@ -3290,6 +3310,7 @@ var Param;
|
|
|
3290
3310
|
Param["IsThisPeriodInDateFiltersEnabled"] = "isThisPeriodInDateFiltersEnabled";
|
|
3291
3311
|
Param["HideToolResponseCardBranding"] = "hideToolResponseCardBranding";
|
|
3292
3312
|
Param["ToolResponseCardBrandingLabel"] = "toolResponseCardBrandingLabel";
|
|
3313
|
+
Param["EnableHomepageAnnouncement"] = "enableHomepageAnnouncement";
|
|
3293
3314
|
})(Param || (Param = {}));
|
|
3294
3315
|
/**
|
|
3295
3316
|
* ThoughtSpot application pages include actions and menu commands
|
|
@@ -3449,14 +3470,14 @@ var Action;
|
|
|
3449
3470
|
* ```js
|
|
3450
3471
|
* disabledActions: [Action.CollapseDataPanel]
|
|
3451
3472
|
* ```
|
|
3452
|
-
* @version
|
|
3473
|
+
* @version SDK: 1.1.0 | ThoughtSpot Cloud: ts7.may.cl, 8.4.1.sw
|
|
3453
3474
|
*/
|
|
3454
3475
|
Action["CollapseDataSources"] = "collapseDataSources";
|
|
3455
3476
|
/**
|
|
3456
3477
|
* The **Collapse data panel** icon on the Search page.
|
|
3457
3478
|
* Collapses the data panel view.
|
|
3458
3479
|
*
|
|
3459
|
-
* @version
|
|
3480
|
+
* @version SDK: 1.34.0 | ThoughtSpot Cloud: 10.3.0.cl
|
|
3460
3481
|
*
|
|
3461
3482
|
* @example
|
|
3462
3483
|
* ```js
|
|
@@ -3903,13 +3924,12 @@ var Action;
|
|
|
3903
3924
|
*/
|
|
3904
3925
|
Action["CreateMonitor"] = "createMonitor";
|
|
3905
3926
|
/**
|
|
3906
|
-
* @
|
|
3907
|
-
*
|
|
3927
|
+
* @version SDK: 1.11.1 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
3928
|
+
* @deprecated This action is deprecated. It was used for reporting errors.
|
|
3908
3929
|
* @example
|
|
3909
3930
|
* ```js
|
|
3910
3931
|
* disabledActions: [Action.ReportError]
|
|
3911
3932
|
* ```
|
|
3912
|
-
* @version SDK: 1.11.1 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
3913
3933
|
*/
|
|
3914
3934
|
Action["ReportError"] = "reportError";
|
|
3915
3935
|
/**
|
|
@@ -3919,7 +3939,7 @@ var Action;
|
|
|
3919
3939
|
* ```js
|
|
3920
3940
|
* disabledActions: [Action.SyncToSheets]
|
|
3921
3941
|
* ```
|
|
3922
|
-
* @version SDK: 1.18.0| ThoughtSpot: 8.10.0.cl, 9.0.1.sw
|
|
3942
|
+
* @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1.sw
|
|
3923
3943
|
*/
|
|
3924
3944
|
Action["SyncToSheets"] = "sync-to-sheets";
|
|
3925
3945
|
/**
|
|
@@ -3930,7 +3950,7 @@ var Action;
|
|
|
3930
3950
|
* ```js
|
|
3931
3951
|
* disabledActions: [Action.SyncToOtherApps]
|
|
3932
3952
|
* ```
|
|
3933
|
-
* @version SDK: 1.18.0| ThoughtSpot: 8.10.0.cl, 9.0.1.sw
|
|
3953
|
+
* @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1.sw
|
|
3934
3954
|
*/
|
|
3935
3955
|
Action["SyncToOtherApps"] = "sync-to-other-apps";
|
|
3936
3956
|
/**
|
|
@@ -3940,7 +3960,7 @@ var Action;
|
|
|
3940
3960
|
* ```js
|
|
3941
3961
|
* disabledActions: [Action.ManagePipelines]
|
|
3942
3962
|
* ```
|
|
3943
|
-
* @version SDK: 1.18.0| ThoughtSpot: 8.10.0.cl, 9.0.1.sw
|
|
3963
|
+
* @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1.sw
|
|
3944
3964
|
*/
|
|
3945
3965
|
Action["ManagePipelines"] = "manage-pipeline";
|
|
3946
3966
|
/**
|
|
@@ -4252,7 +4272,7 @@ var Action;
|
|
|
4252
4272
|
* ```js
|
|
4253
4273
|
* disabledActions: [Action.PersonalisedViewsDropdown]
|
|
4254
4274
|
* ```
|
|
4255
|
-
* @version SDK
|
|
4275
|
+
* @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl, 10.1.0.sw
|
|
4256
4276
|
*/
|
|
4257
4277
|
Action["PersonalisedViewsDropdown"] = "personalisedViewsDropdown";
|
|
4258
4278
|
/**
|
|
@@ -4262,7 +4282,7 @@ var Action;
|
|
|
4262
4282
|
* ```js
|
|
4263
4283
|
* disabledActions: [Action.LiveboardUsers]
|
|
4264
4284
|
* ```
|
|
4265
|
-
* @version SDK
|
|
4285
|
+
* @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl, 10.1.0.sw
|
|
4266
4286
|
*/
|
|
4267
4287
|
Action["LiveboardUsers"] = "liveboardUsers";
|
|
4268
4288
|
/**
|
|
@@ -4280,7 +4300,7 @@ var Action;
|
|
|
4280
4300
|
* hiddenAction: [Action.TML] // hide all TML actions
|
|
4281
4301
|
* disabledActions: [Action.TML] // to disable all TML actions
|
|
4282
4302
|
* ```
|
|
4283
|
-
* @version SDK
|
|
4303
|
+
* @version SDK: 1.28.3 | ThoughtSpot: 9.12.0.cl, 10.1.0.sw
|
|
4284
4304
|
*/
|
|
4285
4305
|
Action["TML"] = "tml";
|
|
4286
4306
|
/**
|
|
@@ -4326,7 +4346,7 @@ var Action;
|
|
|
4326
4346
|
* ```js
|
|
4327
4347
|
* disabledActions: [Action.AddToWatchlist]
|
|
4328
4348
|
* ```
|
|
4329
|
-
* @version SDK
|
|
4349
|
+
* @version SDK: 1.27.9 | ThoughtSpot Cloud: 9.12.5.cl
|
|
4330
4350
|
*/
|
|
4331
4351
|
Action["AddToWatchlist"] = "addToWatchlist";
|
|
4332
4352
|
/**
|
|
@@ -4336,7 +4356,7 @@ var Action;
|
|
|
4336
4356
|
* ```js
|
|
4337
4357
|
* disabledActions: [Action.RemoveFromWatchlist]
|
|
4338
4358
|
* ```
|
|
4339
|
-
* @version SDK
|
|
4359
|
+
* @version SDK: 1.27.9 | ThoughtSpot: 9.12.5.cl
|
|
4340
4360
|
*/
|
|
4341
4361
|
Action["RemoveFromWatchlist"] = "removeFromWatchlist";
|
|
4342
4362
|
/**
|
|
@@ -4347,7 +4367,7 @@ var Action;
|
|
|
4347
4367
|
* ```js
|
|
4348
4368
|
* disabledActions: [Action.OrganiseFavourites]
|
|
4349
4369
|
* ```
|
|
4350
|
-
* @version SDK
|
|
4370
|
+
* @version SDK: 1.32.0 | ThoughtSpot: 10.0.0.cl
|
|
4351
4371
|
*/
|
|
4352
4372
|
Action["OrganiseFavourites"] = "organiseFavourites";
|
|
4353
4373
|
/**
|
|
@@ -4408,7 +4428,7 @@ var Action;
|
|
|
4408
4428
|
* ```js
|
|
4409
4429
|
* disabledActions: [Action.ManageTags]
|
|
4410
4430
|
* ```
|
|
4411
|
-
* @version SDK
|
|
4431
|
+
* @version SDK: 1.34.0 | ThoughtSpot Cloud: 10.3.0.cl
|
|
4412
4432
|
*/
|
|
4413
4433
|
Action["ManageTags"] = "manageTags";
|
|
4414
4434
|
/**
|
|
@@ -5040,7 +5060,9 @@ var ErrorDetailsTypes;
|
|
|
5040
5060
|
ErrorDetailsTypes["NETWORK"] = "NETWORK";
|
|
5041
5061
|
})(ErrorDetailsTypes || (ErrorDetailsTypes = {}));
|
|
5042
5062
|
/**
|
|
5043
|
-
* Error codes for identifying specific issues in embedded ThoughtSpot components. Use
|
|
5063
|
+
* Error codes for identifying specific issues in embedded ThoughtSpot components. Use
|
|
5064
|
+
* {@link EmbedErrorDetailsEvent} and {@link ErrorDetailsTypes} codes for precise error
|
|
5065
|
+
* handling and debugging.
|
|
5044
5066
|
*
|
|
5045
5067
|
* @version SDK: 1.44.2 | ThoughtSpot: 26.2.0.cl
|
|
5046
5068
|
* @group Error Handling
|
|
@@ -5408,7 +5430,7 @@ const getCssDimension = (value) => {
|
|
|
5408
5430
|
* @returns true if the value is a valid CSS margin value, false otherwise
|
|
5409
5431
|
*/
|
|
5410
5432
|
const isValidCssMargin = (value) => {
|
|
5411
|
-
if (isUndefined
|
|
5433
|
+
if (isUndefined(value)) {
|
|
5412
5434
|
return false;
|
|
5413
5435
|
}
|
|
5414
5436
|
if (typeof value !== 'string') {
|
|
@@ -5596,7 +5618,7 @@ const removeStyleProperties = (element, styleProperties) => {
|
|
|
5596
5618
|
element.style.removeProperty(styleProperty);
|
|
5597
5619
|
});
|
|
5598
5620
|
};
|
|
5599
|
-
const isUndefined
|
|
5621
|
+
const isUndefined = (value) => value === undefined;
|
|
5600
5622
|
// Return if the value is a string, double or boolean.
|
|
5601
5623
|
const getTypeFromValue = (value) => {
|
|
5602
5624
|
if (typeof value === 'string') {
|
|
@@ -5793,6 +5815,14 @@ const validateHttpUrl = (url) => {
|
|
|
5793
5815
|
return [false, error instanceof Error ? error : new Error(String(error))];
|
|
5794
5816
|
}
|
|
5795
5817
|
};
|
|
5818
|
+
/**
|
|
5819
|
+
* Resolves enablePastConversationsSidebar with
|
|
5820
|
+
* spotterSidebarConfig taking precedence over the
|
|
5821
|
+
* standalone flag.
|
|
5822
|
+
*/
|
|
5823
|
+
const resolveEnablePastConversationsSidebar = (params) => (params.spotterSidebarConfigValue !== undefined
|
|
5824
|
+
? params.spotterSidebarConfigValue
|
|
5825
|
+
: params.standaloneValue);
|
|
5796
5826
|
/**
|
|
5797
5827
|
* Sets a query parameter if the value is defined.
|
|
5798
5828
|
* @param queryParams - The query params object to modify
|
|
@@ -8275,7 +8305,6 @@ const validateAuthToken = async (embedConfig, authToken, suppressAlert) => {
|
|
|
8275
8305
|
}
|
|
8276
8306
|
if (cachedAuthToken && cachedAuthToken === authToken) {
|
|
8277
8307
|
if (!embedConfig.suppressErrorAlerts && !suppressAlert) {
|
|
8278
|
-
// eslint-disable-next-line no-alert
|
|
8279
8308
|
alert(ERROR_MESSAGE.DUPLICATE_TOKEN_ERR);
|
|
8280
8309
|
}
|
|
8281
8310
|
throw new Error(ERROR_MESSAGE.DUPLICATE_TOKEN_ERR);
|
|
@@ -8373,7 +8402,7 @@ const setEmbedConfig = (newConfig) => {
|
|
|
8373
8402
|
* tokenizedFetch("<TS_ORIGIN>/api/rest/2.0/auth/session/user", {
|
|
8374
8403
|
* // .. fetch options ..
|
|
8375
8404
|
* });
|
|
8376
|
-
|
|
8405
|
+
* ```
|
|
8377
8406
|
* @version SDK: 1.28.0
|
|
8378
8407
|
* @group Global methods
|
|
8379
8408
|
*/
|
|
@@ -8707,12 +8736,12 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
8707
8736
|
}`;
|
|
8708
8737
|
|
|
8709
8738
|
// import YAML from 'yaml';
|
|
8710
|
-
// eslint-disable-next-line no-shadow
|
|
8711
8739
|
var OperationType;
|
|
8712
8740
|
(function (OperationType) {
|
|
8713
8741
|
OperationType["GetChartWithData"] = "GetChartWithData";
|
|
8714
8742
|
OperationType["GetTableWithHeadlineData"] = "GetTableWithHeadlineData";
|
|
8715
8743
|
})(OperationType || (OperationType = {}));
|
|
8744
|
+
const DATA_TYPES = ['DATE', 'DATE_TIME', 'TIME'];
|
|
8716
8745
|
/**
|
|
8717
8746
|
* AnswerService provides a simple way to work with ThoughtSpot Answers.
|
|
8718
8747
|
*
|
|
@@ -8722,10 +8751,11 @@ var OperationType;
|
|
|
8722
8751
|
*
|
|
8723
8752
|
* You can use this service to:
|
|
8724
8753
|
*
|
|
8725
|
-
* - Add or remove columns from Answers (`addColumns`, `removeColumns`,
|
|
8726
|
-
* - Apply filters to Answers (`addFilter`)
|
|
8727
|
-
* - Get data from Answers in different formats (JSON, CSV, PNG) (`fetchData`,
|
|
8728
|
-
* - Get data for specific points in visualizations
|
|
8754
|
+
* - Add or remove columns from Answers (`addColumns`, `removeColumns`,
|
|
8755
|
+
* `addColumnsByName`) - Apply filters to Answers (`addFilter`)
|
|
8756
|
+
* - Get data from Answers in different formats (JSON, CSV, PNG) (`fetchData`,
|
|
8757
|
+
* `fetchCSVBlob`, `fetchPNGBlob`) - Get data for specific points in visualizations
|
|
8758
|
+
* (`getUnderlyingDataForPoint`)
|
|
8729
8759
|
* - Run custom queries (`executeQuery`)
|
|
8730
8760
|
* - Add visualizations to Liveboards (`addDisplayedVizToLiveboard`)
|
|
8731
8761
|
*
|
|
@@ -8758,7 +8788,7 @@ var OperationType;
|
|
|
8758
8788
|
* });
|
|
8759
8789
|
* ```
|
|
8760
8790
|
*
|
|
8761
|
-
* @version SDK: 1.25.0| ThoughtSpot: 9.10.0.cl
|
|
8791
|
+
* @version SDK: 1.25.0 | ThoughtSpot: 9.10.0.cl
|
|
8762
8792
|
* @group Events
|
|
8763
8793
|
*/
|
|
8764
8794
|
class AnswerService {
|
|
@@ -8819,6 +8849,7 @@ class AnswerService {
|
|
|
8819
8849
|
* ]);
|
|
8820
8850
|
* console.log(await service.fetchData());
|
|
8821
8851
|
* });
|
|
8852
|
+
* ```
|
|
8822
8853
|
*/
|
|
8823
8854
|
async addColumnsByName(columnNames) {
|
|
8824
8855
|
const sourceDetail = await this.getSourceDetail();
|
|
@@ -8949,7 +8980,7 @@ class AnswerService {
|
|
|
8949
8980
|
* const data = await underlying.fetchData(0, 100);
|
|
8950
8981
|
* })
|
|
8951
8982
|
* ```
|
|
8952
|
-
* @version SDK: 1.25.0| ThoughtSpot: 9.10.0.cl
|
|
8983
|
+
* @version SDK: 1.25.0 | ThoughtSpot: 9.10.0.cl
|
|
8953
8984
|
*/
|
|
8954
8985
|
async getUnderlyingDataForPoint(outputColumnNames, selectedPoints) {
|
|
8955
8986
|
if (!selectedPoints && !this.selectedPoints) {
|
|
@@ -9017,7 +9048,7 @@ class AnswerService {
|
|
|
9017
9048
|
async getTML() {
|
|
9018
9049
|
const { object } = await this.executeQuery(getAnswerTML, {});
|
|
9019
9050
|
const edoc = object[0].edoc;
|
|
9020
|
-
const YAML = await import('./index-
|
|
9051
|
+
const YAML = await import('./index-DyX-x6uN.js');
|
|
9021
9052
|
const parsedDoc = YAML.parse(edoc);
|
|
9022
9053
|
return {
|
|
9023
9054
|
answer: {
|
|
@@ -9068,7 +9099,7 @@ function getSelectedPointsForUnderlyingDataQuery(selectedPoints) {
|
|
|
9068
9099
|
const dataType = colVal.column.dataType;
|
|
9069
9100
|
colVal.column.id;
|
|
9070
9101
|
let dataValue;
|
|
9071
|
-
if (dataType
|
|
9102
|
+
if (DATA_TYPES.includes(dataType)) {
|
|
9072
9103
|
if (Number.isFinite(colVal.value)) {
|
|
9073
9104
|
dataValue = [{
|
|
9074
9105
|
epochRange: {
|
|
@@ -9106,13 +9137,9 @@ function getSelectedPointsForUnderlyingDataQuery(selectedPoints) {
|
|
|
9106
9137
|
*/
|
|
9107
9138
|
function getDisplayedViz(visualizations, displayMode) {
|
|
9108
9139
|
if (displayMode === 'CHART_MODE') {
|
|
9109
|
-
return visualizations.find(
|
|
9110
|
-
// eslint-disable-next-line no-underscore-dangle
|
|
9111
|
-
(viz) => viz.__typename === 'ChartViz');
|
|
9140
|
+
return visualizations.find((viz) => viz.__typename === 'ChartViz');
|
|
9112
9141
|
}
|
|
9113
|
-
return visualizations.find(
|
|
9114
|
-
// eslint-disable-next-line no-underscore-dangle
|
|
9115
|
-
(viz) => viz.__typename === 'TableViz');
|
|
9142
|
+
return visualizations.find((viz) => viz.__typename === 'TableViz');
|
|
9116
9143
|
}
|
|
9117
9144
|
|
|
9118
9145
|
/** Built-in value references. */
|
|
@@ -17459,11 +17486,8 @@ function resetAllCachedServices() {
|
|
|
17459
17486
|
resetCachedPreauthInfo();
|
|
17460
17487
|
}
|
|
17461
17488
|
|
|
17462
|
-
// eslint-disable-next-line import/no-mutable-exports
|
|
17463
17489
|
let loggedInStatus = false;
|
|
17464
|
-
// eslint-disable-next-line import/no-mutable-exports
|
|
17465
17490
|
let samlAuthWindow = null;
|
|
17466
|
-
// eslint-disable-next-line import/no-mutable-exports
|
|
17467
17491
|
let samlCompletionPromise = null;
|
|
17468
17492
|
let releaseVersion = '';
|
|
17469
17493
|
const SSO_REDIRECTION_MARKER_GUID = '5e16222e-ef02-43e9-9fbd-24226bf3ce5b';
|
|
@@ -17521,20 +17545,45 @@ var AuthFailureType;
|
|
|
17521
17545
|
var AuthStatus;
|
|
17522
17546
|
(function (AuthStatus) {
|
|
17523
17547
|
/**
|
|
17524
|
-
* Emits when the SDK fails to authenticate
|
|
17548
|
+
* Emits when the SDK fails to authenticate.
|
|
17525
17549
|
*/
|
|
17526
17550
|
AuthStatus["FAILURE"] = "FAILURE";
|
|
17527
17551
|
/**
|
|
17528
|
-
* Emits when the SDK
|
|
17552
|
+
* Emits when the SDK authentication step completes
|
|
17553
|
+
* successfully (e.g., token exchange, cookie set).
|
|
17554
|
+
* This fires before any iframe is rendered. Use
|
|
17555
|
+
* this to know that auth passed and it is safe to
|
|
17556
|
+
* proceed with rendering. The callback receives no
|
|
17557
|
+
* arguments.
|
|
17558
|
+
* @example
|
|
17559
|
+
* ```js
|
|
17560
|
+
* const authEE = init({ ... });
|
|
17561
|
+
* authEE.on(AuthStatus.SDK_SUCCESS, () => {
|
|
17562
|
+
* // Auth done, iframe not loaded yet
|
|
17563
|
+
* });
|
|
17564
|
+
* ```
|
|
17529
17565
|
*/
|
|
17530
17566
|
AuthStatus["SDK_SUCCESS"] = "SDK_SUCCESS";
|
|
17531
17567
|
/**
|
|
17532
17568
|
* @hidden
|
|
17533
|
-
* Emits when iframe is loaded and session
|
|
17569
|
+
* Emits when iframe is loaded and session
|
|
17570
|
+
* information is available.
|
|
17534
17571
|
*/
|
|
17535
17572
|
AuthStatus["SESSION_INFO_SUCCESS"] = "SESSION_INFO_SUCCESS";
|
|
17536
17573
|
/**
|
|
17537
|
-
* Emits when the app
|
|
17574
|
+
* Emits when the ThoughtSpot app inside the
|
|
17575
|
+
* embedded iframe confirms its session is active.
|
|
17576
|
+
* This fires after the iframe loads and sends back an `AuthInit` event.
|
|
17577
|
+
* @param sessionInfo Information about the user session, with details like `userGUID`.
|
|
17578
|
+
* @see EmbedEvent.AuthInit
|
|
17579
|
+
* @example
|
|
17580
|
+
* ```js
|
|
17581
|
+
* const authEE = init({ ... });
|
|
17582
|
+
* authEE.on(AuthStatus.SUCCESS, (sessionInfo) => {
|
|
17583
|
+
* // App is loaded and authenticated
|
|
17584
|
+
* console.log(sessionInfo.userGUID);
|
|
17585
|
+
* });
|
|
17586
|
+
* ```
|
|
17538
17587
|
*/
|
|
17539
17588
|
AuthStatus["SUCCESS"] = "SUCCESS";
|
|
17540
17589
|
/**
|
|
@@ -17993,8 +18042,6 @@ function processTrigger(iFrame, messageType, thoughtSpotHost, data, context) {
|
|
|
17993
18042
|
});
|
|
17994
18043
|
}
|
|
17995
18044
|
|
|
17996
|
-
/* eslint-disable camelcase */
|
|
17997
|
-
/* eslint-disable import/no-mutable-exports */
|
|
17998
18045
|
/**
|
|
17999
18046
|
* Copyright (c) 2022
|
|
18000
18047
|
*
|
|
@@ -18050,7 +18097,6 @@ const hostUrlToFeatureUrl = {
|
|
|
18050
18097
|
const prefetch = (url, prefetchFeatures, additionalFlags) => {
|
|
18051
18098
|
var _a;
|
|
18052
18099
|
if (url === '') {
|
|
18053
|
-
// eslint-disable-next-line no-console
|
|
18054
18100
|
logger$3.warn('The prefetch method does not have a valid URL');
|
|
18055
18101
|
}
|
|
18056
18102
|
else {
|
|
@@ -18070,9 +18116,9 @@ const prefetch = (url, prefetchFeatures, additionalFlags) => {
|
|
|
18070
18116
|
iFrame.style.width = '0';
|
|
18071
18117
|
iFrame.style.height = '0';
|
|
18072
18118
|
iFrame.style.border = '0';
|
|
18073
|
-
// Make it 'fixed' to keep it in a different stacking
|
|
18074
|
-
//
|
|
18075
|
-
//
|
|
18119
|
+
// Make it 'fixed' to keep it in a different stacking
|
|
18120
|
+
// context. This should solve the focus behaviours inside
|
|
18121
|
+
// the iframe from interfering with main body.
|
|
18076
18122
|
iFrame.style.position = 'fixed';
|
|
18077
18123
|
// Push it out of viewport.
|
|
18078
18124
|
iFrame.style.top = '100vh';
|
|
@@ -18221,7 +18267,7 @@ const renderInQueue = (fn) => {
|
|
|
18221
18267
|
return renderQueue;
|
|
18222
18268
|
}
|
|
18223
18269
|
// Sending an empty function to keep it consistent with the above usage.
|
|
18224
|
-
return fn(() => { });
|
|
18270
|
+
return fn(() => { });
|
|
18225
18271
|
};
|
|
18226
18272
|
/**
|
|
18227
18273
|
* Imports TML representation of the metadata objects into ThoughtSpot.
|
|
@@ -18242,7 +18288,7 @@ const renderInQueue = (fn) => {
|
|
|
18242
18288
|
* }).catch(error => {
|
|
18243
18289
|
* console.error(error);
|
|
18244
18290
|
* });
|
|
18245
|
-
|
|
18291
|
+
* ```
|
|
18246
18292
|
* @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
|
|
18247
18293
|
* @group Global methods
|
|
18248
18294
|
*/
|
|
@@ -18345,9 +18391,9 @@ const exportTML = async (data) => {
|
|
|
18345
18391
|
};
|
|
18346
18392
|
/**
|
|
18347
18393
|
* Reloads the ThoughtSpot iframe.
|
|
18394
|
+
* @version SDK: 1.43.1
|
|
18348
18395
|
* @param iFrame
|
|
18349
18396
|
* @group Global methods
|
|
18350
|
-
* @version SDK: 1.43.1
|
|
18351
18397
|
*/
|
|
18352
18398
|
const reloadIframe = (iFrame) => {
|
|
18353
18399
|
if (!iFrame) {
|
|
@@ -18414,10 +18460,8 @@ function processNoCookieAccess(e, containerEl) {
|
|
|
18414
18460
|
const { loginFailedMessage, suppressNoCookieAccessAlert, ignoreNoCookieAccess, suppressErrorAlerts, } = getEmbedConfig();
|
|
18415
18461
|
if (!ignoreNoCookieAccess) {
|
|
18416
18462
|
if (!suppressNoCookieAccessAlert && !suppressErrorAlerts) {
|
|
18417
|
-
// eslint-disable-next-line no-alert
|
|
18418
18463
|
alert(ERROR_MESSAGE.THIRD_PARTY_COOKIE_BLOCKED_ALERT);
|
|
18419
18464
|
}
|
|
18420
|
-
// eslint-disable-next-line no-param-reassign
|
|
18421
18465
|
containerEl.innerHTML = loginFailedMessage;
|
|
18422
18466
|
}
|
|
18423
18467
|
notifyAuthFailure(AuthFailureType.NO_COOKIE_ACCESS);
|
|
@@ -18435,12 +18479,10 @@ function processAuthFailure(e, containerEl) {
|
|
|
18435
18479
|
const isTrustedAuth = authType === AuthType.TrustedAuthToken || authType === AuthType.TrustedAuthTokenCookieless;
|
|
18436
18480
|
const isEmbeddedSSOInfoFailure = isEmbeddedSSO && ((_a = e === null || e === void 0 ? void 0 : e.data) === null || _a === void 0 ? void 0 : _a.type) === AuthFailureType.UNAUTHENTICATED_FAILURE;
|
|
18437
18481
|
if (autoLogin && isTrustedAuth) {
|
|
18438
|
-
// eslint-disable-next-line no-param-reassign
|
|
18439
18482
|
containerEl.innerHTML = loginFailedMessage;
|
|
18440
18483
|
notifyAuthFailure(AuthFailureType.IDLE_SESSION_TIMEOUT);
|
|
18441
18484
|
}
|
|
18442
18485
|
else if (authType !== AuthType.None && !disableLoginFailurePage && !isEmbeddedSSOInfoFailure) {
|
|
18443
|
-
// eslint-disable-next-line no-param-reassign
|
|
18444
18486
|
containerEl.innerHTML = loginFailedMessage;
|
|
18445
18487
|
notifyAuthFailure(AuthFailureType.OTHER);
|
|
18446
18488
|
}
|
|
@@ -18454,7 +18496,6 @@ function processAuthFailure(e, containerEl) {
|
|
|
18454
18496
|
*/
|
|
18455
18497
|
function processAuthLogout(e, containerEl) {
|
|
18456
18498
|
const { loginFailedMessage } = getEmbedConfig();
|
|
18457
|
-
// eslint-disable-next-line no-param-reassign
|
|
18458
18499
|
containerEl.innerHTML = loginFailedMessage;
|
|
18459
18500
|
resetCachedAuthToken();
|
|
18460
18501
|
disableAutoLogin();
|
|
@@ -18488,7 +18529,7 @@ function processEventData(type, eventData, thoughtSpotHost, containerEl) {
|
|
|
18488
18529
|
return eventData;
|
|
18489
18530
|
}
|
|
18490
18531
|
|
|
18491
|
-
var name="@thoughtspot/visual-embed-sdk";var version$1="1.46.
|
|
18532
|
+
var name="@thoughtspot/visual-embed-sdk";var version$1="1.46.3";var description="ThoughtSpot Embed SDK";var module="lib/src/index.js";var main="dist/tsembed.js";var types="lib/src/index.d.ts";var files=["dist/**","lib/**","src/**","cjs/**"];var exports={".":{"import":"./lib/src/index.js",require:"./cjs/src/index.js",types:"./lib/src/index.d.ts"},"./react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"},"./lib/src/react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"}};var typesVersions={"*":{react:["./lib/src/react/all-types-export.d.ts"]}};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p tsconfig.build.json --incremental false; tsc -p tsconfig.build.json --incremental false --module commonjs --outDir cjs","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts-file":"dts-bundle-generator --config ./dts-config/dts-bundle-file.config.js","bundle-dts":"dts-bundle-generator --config ./dts-config/dts-bundle.config.js","bundle-dts-react":"dts-bundle-generator --config ./dts-config/dts-bundle-react.config.js","bundle-dts-react-full":"dts-bundle-generator --config ./dts-config/dts-bundle-react-full.config.js",build:"rollup -c",watch:"rollup -cw",docgen:"typedoc --tsconfig tsconfig.build.json --theme typedoc-theme --json static/typedoc/typedoc.json --disableOutputCheck","test-sdk":"jest -c jest.config.sdk.js --runInBand",test:"npm run test-sdk",posttest:"cat ./coverage/sdk/lcov.info | npx coveralls-next || echo 'Warning: Coveralls upload failed but not breaking the build.'","is-publish-allowed":"node scripts/is-publish-allowed.js",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","check-size":"npm run build && size-limit","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest",dev:"vite -c vite.local.config.ts"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={classnames:"^2.3.1",eventemitter3:"^4.0.7",lodash:"^4.17.23","mixpanel-browser":"2.47.0","ts-deepmerge":"^6.0.2",tslib:"^2.5.3","use-deep-compare-effect":"^1.8.1",yaml:"^2.5.1"};var devDependencies={"@mdx-js/mdx":"^1.6.22","@mdx-js/react":"^1.6.22","@react-icons/all-files":"^4.1.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^11.2.1","@rollup/plugin-replace":"^5.0.2","@size-limit/preset-big-lib":"^11.2.0","@testing-library/dom":"^7.31.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^11.2.7","@testing-library/user-event":"^13.1.8","@types/jest":"^30.0.0","@types/lodash":"^4.17.0","@types/mixpanel-browser":"^2.35.6","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^8.28.0","@typescript-eslint/parser":"^8.28.0",ajv:"^8.17.1",asciidoctor:"^2.2.1","babel-jest":"^30.2.0","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1","coveralls-next":"^5.0.0",crypto:"^1.0.1","current-git-branch":"^1.1.0","dts-bundle-generator":"^9.5.1",eslint:"^9.23.0","eslint-config-airbnb-base":"^15.0.0","eslint-config-prettier":"^10.1.1","eslint-import-resolver-typescript":"^4.2.5","eslint-plugin-comment-length":"2.2.1","eslint-plugin-import":"^2.31.0","eslint-plugin-jsdoc":"^50.6.9","eslint-plugin-prettier":"^5.2.5","eslint-plugin-react":"^7.37.5","eslint-plugin-react-hooks":"^5.2.0","fs-extra":"^10.0.0","gh-pages":"6.3.0",globals:"^16.0.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^2.0.0",jest:"^30.2.0","jest-environment-jsdom":"^29.7.0","jest-fetch-mock":"^3.0.3",jsdom:"^17.0.0",prettier:"2.1.2",react:"^16.14.0","react-dom":"^16.14.0","react-resizable":"^1.11.0","react-resize-detector":"^6.6.0","react-test-renderer":"^17.0.2","react-use-flexsearch":"^0.1.1",rollup:"4.24.0","rollup-plugin-typescript2":"0.27.3","ts-jest":"^29.4.6","ts-loader":"8.0.4",typedoc:"0.21.6","typedoc-plugin-toc-group":"thoughtspot/typedoc-plugin-toc-group",typescript:"^4.9.4","typescript-eslint":"^8.29.1","url-search-params-polyfill":"^8.1.0",util:"^0.12.4",vite:"^6.3.5"};var author="ThoughtSpot";var email="support@thoughtspot.com";var license="ThoughtSpot Development Tools End User License Agreement";var directories={lib:"lib"};var repository={type:"git",url:"git+https://github.com/thoughtspot/visual-embed-sdk.git"};var publishConfig={registry:"https://registry.npmjs.org"};var keywords=["thoughtspot","everywhere","embedded","embed","sdk","analytics"];var bugs={url:"https://github.com/thoughtspot/visual-embed-sdk/issues"};var homepage="https://github.com/thoughtspot/visual-embed-sdk#readme";var globals={window:{}};var pkgInfo = {name:name,version:version$1,description:description,module:module,main:main,types:types,files:files,exports:exports,typesVersions:typesVersions,"size-limit":[{path:"dist/tsembed.es.js",limit:"32 kB"}],scripts:scripts,peerDependencies:peerDependencies,dependencies:dependencies,devDependencies:devDependencies,author:author,email:email,license:license,directories:directories,repository:repository,publishConfig:publishConfig,keywords:keywords,bugs:bugs,homepage:homepage,globals:globals};
|
|
18492
18533
|
|
|
18493
18534
|
class HostEventClient {
|
|
18494
18535
|
constructor(iFrame) {
|
|
@@ -18512,14 +18553,12 @@ class HostEventClient {
|
|
|
18512
18553
|
const response = (_b = (_a = (await this.triggerUIPassthroughApi(apiName, parameters, context))) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.call(_a, (r) => r.error || r.value)[0];
|
|
18513
18554
|
if (!response) {
|
|
18514
18555
|
const error = `No answer found${parameters.vizId ? ` for vizId: ${parameters.vizId}` : ''}.`;
|
|
18515
|
-
// eslint-disable-next-line no-throw-literal
|
|
18516
18556
|
throw { error };
|
|
18517
18557
|
}
|
|
18518
18558
|
const errors = response.error
|
|
18519
18559
|
|| ((_c = response.value) === null || _c === void 0 ? void 0 : _c.errors)
|
|
18520
18560
|
|| ((_d = response.value) === null || _d === void 0 ? void 0 : _d.error);
|
|
18521
18561
|
if (errors) {
|
|
18522
|
-
// eslint-disable-next-line no-throw-literal
|
|
18523
18562
|
throw { error: response.error };
|
|
18524
18563
|
}
|
|
18525
18564
|
return { ...response.value };
|
|
@@ -18794,9 +18833,9 @@ class TsEmbed {
|
|
|
18794
18833
|
this.embedNodeKey = '__tsEmbed';
|
|
18795
18834
|
this.isAppInitialized = false;
|
|
18796
18835
|
/**
|
|
18797
|
-
* Should we encode URL Query Params using base64 encoding which
|
|
18836
|
+
* Should we encode URL Query Params using base64 encoding which ThoughtSpot
|
|
18798
18837
|
* will generate for embedding. This provides additional security to
|
|
18799
|
-
*
|
|
18838
|
+
* ThoughtSpot clusters against Cross site scripting attacks.
|
|
18800
18839
|
* @default false
|
|
18801
18840
|
*/
|
|
18802
18841
|
this.shouldEncodeUrlQueryParams = false;
|
|
@@ -18861,7 +18900,8 @@ class TsEmbed {
|
|
|
18861
18900
|
*/
|
|
18862
18901
|
this.updateAuthToken = async (_, responder) => {
|
|
18863
18902
|
const { authType, autoLogin: autoLoginConfig } = this.embedConfig;
|
|
18864
|
-
// Default autoLogin: true for cookieless if undefined/null, otherwise
|
|
18903
|
+
// Default autoLogin: true for cookieless if undefined/null, otherwise
|
|
18904
|
+
// false
|
|
18865
18905
|
const autoLogin = autoLoginConfig !== null && autoLoginConfig !== void 0 ? autoLoginConfig : (authType === AuthType.TrustedAuthTokenCookieless);
|
|
18866
18906
|
try {
|
|
18867
18907
|
await this.refreshAuthTokenForCookieless(responder, EmbedEvent.AuthExpire, false);
|
|
@@ -18972,7 +19012,7 @@ class TsEmbed {
|
|
|
18972
19012
|
if (viewConfig.preRenderId) {
|
|
18973
19013
|
const allOtherKeys = Object.keys(viewConfig).filter((key) => !preRenderAllowedKeys.includes(key) && !key.startsWith('on'));
|
|
18974
19014
|
allOtherKeys.forEach((key) => {
|
|
18975
|
-
if (!isUndefined
|
|
19015
|
+
if (!isUndefined(viewConfig[key])
|
|
18976
19016
|
&& !isEqual_1(viewConfig[key], preRenderedObject.viewConfig[key])) {
|
|
18977
19017
|
logger$3.warn(`${viewConfig.embedComponentType || 'Component'} was pre-rendered with `
|
|
18978
19018
|
+ `"${key}" as "${JSON.stringify(preRenderedObject.viewConfig[key])}" `
|
|
@@ -19308,7 +19348,7 @@ class TsEmbed {
|
|
|
19308
19348
|
if (this.embedConfig.currencyFormat) {
|
|
19309
19349
|
queryParams[Param.CurrencyFormat] = this.embedConfig.currencyFormat;
|
|
19310
19350
|
}
|
|
19311
|
-
const { disabledActions, disabledActionReason, hiddenActions, visibleActions, hiddenTabs, visibleTabs, showAlerts, additionalFlags: additionalFlagsFromView, locale, customizations, contextMenuTrigger, linkOverride, insertInToSlide, disableRedirectionLinksInNewTab, overrideOrgId, exposeTranslationIDs, primaryAction, } = this.viewConfig;
|
|
19351
|
+
const { disabledActions, disabledActionReason, hiddenActions, visibleActions, hiddenTabs, visibleTabs, showAlerts, additionalFlags: additionalFlagsFromView, locale, customizations, contextMenuTrigger, linkOverride, enableLinkOverridesV2, insertInToSlide, disableRedirectionLinksInNewTab, overrideOrgId, exposeTranslationIDs, primaryAction, } = this.viewConfig;
|
|
19312
19352
|
const { additionalFlags: additionalFlagsFromInit } = this.embedConfig;
|
|
19313
19353
|
const additionalFlags = {
|
|
19314
19354
|
...additionalFlagsFromInit,
|
|
@@ -19384,7 +19424,13 @@ class TsEmbed {
|
|
|
19384
19424
|
if (locale !== undefined) {
|
|
19385
19425
|
queryParams[Param.Locale] = locale;
|
|
19386
19426
|
}
|
|
19387
|
-
|
|
19427
|
+
// TODO: Once V2 is stable, send both flags when
|
|
19428
|
+
// linkOverride is true (remove the else-if).
|
|
19429
|
+
if (enableLinkOverridesV2) {
|
|
19430
|
+
queryParams[Param.EnableLinkOverridesV2] = true;
|
|
19431
|
+
queryParams[Param.LinkOverride] = true;
|
|
19432
|
+
}
|
|
19433
|
+
else if (linkOverride) {
|
|
19388
19434
|
queryParams[Param.LinkOverride] = linkOverride;
|
|
19389
19435
|
}
|
|
19390
19436
|
if (insertInToSlide) {
|
|
@@ -19452,7 +19498,7 @@ class TsEmbed {
|
|
|
19452
19498
|
iFrame.mozallowfullscreen = true;
|
|
19453
19499
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
19454
19500
|
// @ts-ignore
|
|
19455
|
-
iFrame.allow = 'clipboard-read; clipboard-write; fullscreen;';
|
|
19501
|
+
iFrame.allow = 'clipboard-read; clipboard-write; fullscreen; local-network-access;';
|
|
19456
19502
|
const frameParams = this.viewConfig.frameParams;
|
|
19457
19503
|
const { height: frameHeight, width: frameWidth, ...restParams } = frameParams || {};
|
|
19458
19504
|
const width = getCssDimension(frameWidth || DEFAULT_EMBED_WIDTH);
|
|
@@ -20154,7 +20200,7 @@ class TsEmbed {
|
|
|
20154
20200
|
* Returns the answerService which can be used to make arbitrary graphql calls on top
|
|
20155
20201
|
* session.
|
|
20156
20202
|
* @param vizId [Optional] to get for a specific viz in case of a Liveboard.
|
|
20157
|
-
* @version SDK: 1.25.0
|
|
20203
|
+
* @version SDK: 1.25.0 | ThoughtSpot: 9.10.0
|
|
20158
20204
|
*/
|
|
20159
20205
|
async getAnswerService(vizId) {
|
|
20160
20206
|
const { session } = await this.trigger(HostEvent.GetAnswerSession, vizId ? { vizId } : {});
|
|
@@ -20454,7 +20500,7 @@ class AppEmbed extends V1Embed {
|
|
|
20454
20500
|
* embedded Liveboard or visualization.
|
|
20455
20501
|
*/
|
|
20456
20502
|
getEmbedParams() {
|
|
20457
|
-
const { tag, hideTagFilterChips, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, hideHamburger, hideObjectSearch, hideNotification, hideApplicationSwitcher, hideOrgSwitcher, enableSearchAssist, fullHeight, dataPanelV2 = true, hideLiveboardHeader = false, showLiveboardTitle = true, showLiveboardDescription = true, showMaskedFilterChip = false, isLiveboardMasterpiecesEnabled = false, hideHomepageLeftNav = false, modularHomeExperience = false, isLiveboardHeaderSticky = true, enableAskSage, collapseSearchBarInitially = false, enable2ColumnLayout, enableCustomColumnGroups = false, dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState$1.EXPAND_ALL, collapseSearchBar = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs = false, isEnhancedFilterInteractivityEnabled = false, homePageSearchBarMode, isUnifiedSearchExperienceEnabled = true, enablePendoHelp = true, discoveryExperience, coverAndFilterOptionInPDF = false, isLiveboardStylingAndGroupingEnabled, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled = false, isGranularXLSXCSVSchedulesEnabled = false, isCentralizedLiveboardFilterUXEnabled = false, isLinkParametersEnabled, updatedSpotterChatPrompt, spotterSidebarConfig, spotterChatConfig, minimumHeight, isThisPeriodInDateFiltersEnabled, } = this.viewConfig;
|
|
20503
|
+
const { tag, hideTagFilterChips, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, hideHamburger, hideObjectSearch, hideNotification, hideApplicationSwitcher, hideOrgSwitcher, enableSearchAssist, fullHeight, dataPanelV2 = true, hideLiveboardHeader = false, showLiveboardTitle = true, showLiveboardDescription = true, showMaskedFilterChip = false, isLiveboardMasterpiecesEnabled = false, hideHomepageLeftNav = false, modularHomeExperience = false, isLiveboardHeaderSticky = true, enableAskSage, collapseSearchBarInitially = false, enable2ColumnLayout, enableCustomColumnGroups = false, dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState$1.EXPAND_ALL, collapseSearchBar = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs = false, isEnhancedFilterInteractivityEnabled = false, homePageSearchBarMode, isUnifiedSearchExperienceEnabled = true, enablePendoHelp = true, discoveryExperience, coverAndFilterOptionInPDF = false, isLiveboardStylingAndGroupingEnabled, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled = false, isGranularXLSXCSVSchedulesEnabled = false, isCentralizedLiveboardFilterUXEnabled = false, isLinkParametersEnabled, updatedSpotterChatPrompt, spotterSidebarConfig, spotterChatConfig, minimumHeight, isThisPeriodInDateFiltersEnabled, enableHomepageAnnouncement, } = this.viewConfig;
|
|
20458
20504
|
let params = {};
|
|
20459
20505
|
params[Param.PrimaryNavHidden] = !showPrimaryNavbar;
|
|
20460
20506
|
params[Param.HideProfleAndHelp] = !!disableProfileAndHelp;
|
|
@@ -20475,13 +20521,17 @@ class AppEmbed extends V1Embed {
|
|
|
20475
20521
|
params[Param.IsUnifiedSearchExperienceEnabled] = isUnifiedSearchExperienceEnabled;
|
|
20476
20522
|
params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
|
|
20477
20523
|
params = this.getBaseQueryParams(params);
|
|
20478
|
-
if (!isUndefined
|
|
20524
|
+
if (!isUndefined(updatedSpotterChatPrompt)) {
|
|
20479
20525
|
params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
|
|
20480
20526
|
}
|
|
20527
|
+
const resolvedEnablePastConversationsSidebar = resolveEnablePastConversationsSidebar({
|
|
20528
|
+
spotterSidebarConfigValue: spotterSidebarConfig === null || spotterSidebarConfig === void 0 ? void 0 : spotterSidebarConfig.enablePastConversationsSidebar,
|
|
20529
|
+
standaloneValue: this.viewConfig.enablePastConversationsSidebar,
|
|
20530
|
+
});
|
|
20531
|
+
setParamIfDefined(params, Param.EnablePastConversationsSidebar, resolvedEnablePastConversationsSidebar, true);
|
|
20481
20532
|
// Handle spotterSidebarConfig params
|
|
20482
20533
|
if (spotterSidebarConfig) {
|
|
20483
|
-
const {
|
|
20484
|
-
setParamIfDefined(params, Param.EnablePastConversationsSidebar, enablePastConversationsSidebar, true);
|
|
20534
|
+
const { spotterSidebarTitle, spotterSidebarDefaultExpanded, spotterChatRenameLabel, spotterChatDeleteLabel, spotterDeleteConversationModalTitle, spotterPastConversationAlertMessage, spotterDocumentationUrl, spotterBestPracticesLabel, spotterConversationsBatchSize, spotterNewChatButtonTitle, } = spotterSidebarConfig;
|
|
20485
20535
|
setParamIfDefined(params, Param.SpotterSidebarDefaultExpanded, spotterSidebarDefaultExpanded, true);
|
|
20486
20536
|
setParamIfDefined(params, Param.SpotterSidebarTitle, spotterSidebarTitle);
|
|
20487
20537
|
setParamIfDefined(params, Param.SpotterChatRenameLabel, spotterChatRenameLabel);
|
|
@@ -20579,6 +20629,9 @@ class AppEmbed extends V1Embed {
|
|
|
20579
20629
|
if (isThisPeriodInDateFiltersEnabled !== undefined) {
|
|
20580
20630
|
params[Param.IsThisPeriodInDateFiltersEnabled] = isThisPeriodInDateFiltersEnabled;
|
|
20581
20631
|
}
|
|
20632
|
+
if (enableHomepageAnnouncement !== undefined) {
|
|
20633
|
+
params[Param.EnableHomepageAnnouncement] = enableHomepageAnnouncement;
|
|
20634
|
+
}
|
|
20582
20635
|
this.defaultHeight = minimumHeight || this.defaultHeight;
|
|
20583
20636
|
params[Param.DataPanelV2Enabled] = dataPanelV2;
|
|
20584
20637
|
params[Param.HideHomepageLeftNav] = hideHomepageLeftNav;
|
|
@@ -20753,7 +20806,6 @@ class AppEmbed extends V1Embed {
|
|
|
20753
20806
|
}
|
|
20754
20807
|
}
|
|
20755
20808
|
|
|
20756
|
-
/* eslint-disable quotes */
|
|
20757
20809
|
const getPreviewQuery = `
|
|
20758
20810
|
query GetEurekaVizSnapshots(
|
|
20759
20811
|
$vizId: String!, $liveboardId: String!) {
|
|
@@ -20837,6 +20889,7 @@ const addPreviewStylesIfNotPresent = () => {
|
|
|
20837
20889
|
* Embed a ThoughtSpot Liveboard or visualization. When rendered it already
|
|
20838
20890
|
* waits for the authentication to complete, so you need not wait for
|
|
20839
20891
|
* `AuthStatus.SUCCESS`.
|
|
20892
|
+
* @group Embed components
|
|
20840
20893
|
* @example
|
|
20841
20894
|
* ```js
|
|
20842
20895
|
* import { .. } from '@thoughtspot/visual-embed-sdk';
|
|
@@ -20846,7 +20899,6 @@ const addPreviewStylesIfNotPresent = () => {
|
|
|
20846
20899
|
* // .. other params here.
|
|
20847
20900
|
* })
|
|
20848
20901
|
* ```
|
|
20849
|
-
* @group Embed components
|
|
20850
20902
|
*/
|
|
20851
20903
|
class LiveboardEmbed extends V1Embed {
|
|
20852
20904
|
constructor(domSelector, viewConfig) {
|
|
@@ -20954,7 +21006,7 @@ class LiveboardEmbed extends V1Embed {
|
|
|
20954
21006
|
if (preventLiveboardFilterRemoval) {
|
|
20955
21007
|
params[Param.preventLiveboardFilterRemoval] = true;
|
|
20956
21008
|
}
|
|
20957
|
-
if (!isUndefined
|
|
21009
|
+
if (!isUndefined(updatedSpotterChatPrompt)) {
|
|
20958
21010
|
params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
|
|
20959
21011
|
}
|
|
20960
21012
|
if (visibleVizs) {
|
|
@@ -21039,8 +21091,9 @@ class LiveboardEmbed extends V1Embed {
|
|
|
21039
21091
|
return params;
|
|
21040
21092
|
}
|
|
21041
21093
|
getIframeSuffixSrc(liveboardId, vizId, activeTabId, personalizedViewId) {
|
|
21042
|
-
// Extract view from liveboardId if passed along with it (legacy
|
|
21043
|
-
// View must be appended as query param at the end, not
|
|
21094
|
+
// Extract view from liveboardId if passed along with it (legacy
|
|
21095
|
+
// approach) View must be appended as query param at the end, not
|
|
21096
|
+
// embedded in path
|
|
21044
21097
|
let liveboardGuid = liveboardId;
|
|
21045
21098
|
let legacyViewId;
|
|
21046
21099
|
if (liveboardId === null || liveboardId === void 0 ? void 0 : liveboardId.includes('?')) {
|
|
@@ -21049,7 +21102,8 @@ class LiveboardEmbed extends V1Embed {
|
|
|
21049
21102
|
const params = new URLSearchParams(query);
|
|
21050
21103
|
legacyViewId = params.get('view') || undefined;
|
|
21051
21104
|
}
|
|
21052
|
-
// personalizedViewId takes precedence over legacyViewId (when passed
|
|
21105
|
+
// personalizedViewId takes precedence over legacyViewId (when passed
|
|
21106
|
+
// as part of liveboardId)
|
|
21053
21107
|
const effectiveViewId = personalizedViewId || legacyViewId;
|
|
21054
21108
|
let suffix = `/embed/viz/${liveboardGuid}`;
|
|
21055
21109
|
if (activeTabId) {
|
|
@@ -21133,7 +21187,7 @@ class LiveboardEmbed extends V1Embed {
|
|
|
21133
21187
|
});
|
|
21134
21188
|
}
|
|
21135
21189
|
async handleRenderForPrerender() {
|
|
21136
|
-
if (isUndefined
|
|
21190
|
+
if (isUndefined(this.viewConfig.liveboardId)) {
|
|
21137
21191
|
return this.prerenderGeneric();
|
|
21138
21192
|
}
|
|
21139
21193
|
return super.handleRenderForPrerender();
|
|
@@ -21419,7 +21473,7 @@ class SearchEmbed extends TsEmbed {
|
|
|
21419
21473
|
|
|
21420
21474
|
/**
|
|
21421
21475
|
* Embed ThoughtSpot search bar
|
|
21422
|
-
* @version
|
|
21476
|
+
* @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1-sw
|
|
21423
21477
|
* @group Embed components
|
|
21424
21478
|
*/
|
|
21425
21479
|
class SearchBarEmbed extends TsEmbed {
|
|
@@ -21920,6 +21974,8 @@ class ConversationMessage extends TsEmbed {
|
|
|
21920
21974
|
/**
|
|
21921
21975
|
* Create a conversation embed, which can be integrated inside
|
|
21922
21976
|
* chatbots or other conversational interfaces.
|
|
21977
|
+
* @version SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
|
|
21978
|
+
* @group Embed components
|
|
21923
21979
|
* @example
|
|
21924
21980
|
* ```js
|
|
21925
21981
|
* import { SpotterAgentEmbed } from '@thoughtspot/visual-embed-sdk';
|
|
@@ -21933,8 +21989,6 @@ class ConversationMessage extends TsEmbed {
|
|
|
21933
21989
|
* // append the container to the DOM
|
|
21934
21990
|
* document.body.appendChild(container); // or to any other element
|
|
21935
21991
|
* ```
|
|
21936
|
-
* @group Embed components
|
|
21937
|
-
* @version SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
|
|
21938
21992
|
*/
|
|
21939
21993
|
class SpotterAgentEmbed {
|
|
21940
21994
|
constructor(viewConfig) {
|
|
@@ -21988,8 +22042,9 @@ class SpotterAgentEmbed {
|
|
|
21988
22042
|
/**
|
|
21989
22043
|
* Create a conversation embed, which can be integrated inside
|
|
21990
22044
|
* chatbots or other conversational interfaces.
|
|
21991
|
-
* @deprecated from SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
|
|
21992
22045
|
* Use {@link SpotterAgentEmbed} instead
|
|
22046
|
+
* @deprecated from SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
|
|
22047
|
+
* @group Embed components
|
|
21993
22048
|
* @example
|
|
21994
22049
|
* ```js
|
|
21995
22050
|
* import { SpotterAgentEmbed } from '@thoughtspot/visual-embed-sdk';
|
|
@@ -22003,7 +22058,6 @@ class SpotterAgentEmbed {
|
|
|
22003
22058
|
* // append the container to the DOM
|
|
22004
22059
|
* document.body.appendChild(container); // or to any other element
|
|
22005
22060
|
* ```
|
|
22006
|
-
* @group Embed components
|
|
22007
22061
|
*/
|
|
22008
22062
|
class BodylessConversation extends SpotterAgentEmbed {
|
|
22009
22063
|
constructor(viewConfig) {
|
|
@@ -22011,31 +22065,9 @@ class BodylessConversation extends SpotterAgentEmbed {
|
|
|
22011
22065
|
}
|
|
22012
22066
|
}
|
|
22013
22067
|
|
|
22014
|
-
/**
|
|
22015
|
-
* Checks if `value` is `undefined`.
|
|
22016
|
-
*
|
|
22017
|
-
* @static
|
|
22018
|
-
* @since 0.1.0
|
|
22019
|
-
* @memberOf _
|
|
22020
|
-
* @category Lang
|
|
22021
|
-
* @param {*} value The value to check.
|
|
22022
|
-
* @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
|
|
22023
|
-
* @example
|
|
22024
|
-
*
|
|
22025
|
-
* _.isUndefined(void 0);
|
|
22026
|
-
* // => true
|
|
22027
|
-
*
|
|
22028
|
-
* _.isUndefined(null);
|
|
22029
|
-
* // => false
|
|
22030
|
-
*/
|
|
22031
|
-
function isUndefined(value) {
|
|
22032
|
-
return value === undefined;
|
|
22033
|
-
}
|
|
22034
|
-
|
|
22035
|
-
var isUndefined_1 = isUndefined;
|
|
22036
|
-
|
|
22037
22068
|
/**
|
|
22038
22069
|
* Embed ThoughtSpot AI Conversation.
|
|
22070
|
+
* @version SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
|
|
22039
22071
|
* @group Embed components
|
|
22040
22072
|
* @example
|
|
22041
22073
|
* ```js
|
|
@@ -22047,7 +22079,6 @@ var isUndefined_1 = isUndefined;
|
|
|
22047
22079
|
* });
|
|
22048
22080
|
* conversation.render();
|
|
22049
22081
|
* ```
|
|
22050
|
-
* @version SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
|
|
22051
22082
|
*/
|
|
22052
22083
|
class SpotterEmbed extends TsEmbed {
|
|
22053
22084
|
constructor(container, viewConfig) {
|
|
@@ -22063,7 +22094,11 @@ class SpotterEmbed extends TsEmbed {
|
|
|
22063
22094
|
getEmbedParamsObject() {
|
|
22064
22095
|
const { worksheetId, searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, spotterSidebarConfig, spotterChatConfig, } = this.viewConfig;
|
|
22065
22096
|
// Extract sidebar config properties
|
|
22066
|
-
const { enablePastConversationsSidebar, spotterSidebarTitle, spotterSidebarDefaultExpanded, spotterChatRenameLabel, spotterChatDeleteLabel, spotterDeleteConversationModalTitle, spotterPastConversationAlertMessage, spotterDocumentationUrl, spotterBestPracticesLabel, spotterConversationsBatchSize, spotterNewChatButtonTitle, } = spotterSidebarConfig || {};
|
|
22097
|
+
const { enablePastConversationsSidebar: sidebarEnablePastConversationsSidebar, spotterSidebarTitle, spotterSidebarDefaultExpanded, spotterChatRenameLabel, spotterChatDeleteLabel, spotterDeleteConversationModalTitle, spotterPastConversationAlertMessage, spotterDocumentationUrl, spotterBestPracticesLabel, spotterConversationsBatchSize, spotterNewChatButtonTitle, } = spotterSidebarConfig || {};
|
|
22098
|
+
const resolvedEnablePastConversationsSidebar = resolveEnablePastConversationsSidebar({
|
|
22099
|
+
spotterSidebarConfigValue: sidebarEnablePastConversationsSidebar,
|
|
22100
|
+
standaloneValue: this.viewConfig.enablePastConversationsSidebar,
|
|
22101
|
+
});
|
|
22067
22102
|
if (!worksheetId) {
|
|
22068
22103
|
this.handleError({
|
|
22069
22104
|
errorType: ErrorDetailsTypes.VALIDATION_ERROR,
|
|
@@ -22081,6 +22116,7 @@ class SpotterEmbed extends TsEmbed {
|
|
|
22081
22116
|
setParamIfDefined(queryParams, Param.ShowSpotterLimitations, showSpotterLimitations, true);
|
|
22082
22117
|
setParamIfDefined(queryParams, Param.HideSampleQuestions, hideSampleQuestions, true);
|
|
22083
22118
|
setParamIfDefined(queryParams, Param.UpdatedSpotterChatPrompt, updatedSpotterChatPrompt, true);
|
|
22119
|
+
setParamIfDefined(queryParams, Param.EnablePastConversationsSidebar, resolvedEnablePastConversationsSidebar, true);
|
|
22084
22120
|
setParamIfDefined(queryParams, Param.SpotterSidebarDefaultExpanded, spotterSidebarDefaultExpanded, true);
|
|
22085
22121
|
// String params
|
|
22086
22122
|
setParamIfDefined(queryParams, Param.SpotterSidebarTitle, spotterSidebarTitle);
|
|
@@ -22115,13 +22151,9 @@ class SpotterEmbed extends TsEmbed {
|
|
|
22115
22151
|
return queryParams;
|
|
22116
22152
|
}
|
|
22117
22153
|
getIframeSrc() {
|
|
22118
|
-
const { worksheetId, searchOptions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL,
|
|
22154
|
+
const { worksheetId, searchOptions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, } = this.viewConfig;
|
|
22119
22155
|
const path = 'insights/conv-assist';
|
|
22120
22156
|
const queryParams = this.getEmbedParamsObject();
|
|
22121
|
-
const enablePastConversationsSidebar = spotterSidebarConfig === null || spotterSidebarConfig === void 0 ? void 0 : spotterSidebarConfig.enablePastConversationsSidebar;
|
|
22122
|
-
if (!isUndefined_1(enablePastConversationsSidebar)) {
|
|
22123
|
-
queryParams[Param.EnablePastConversationsSidebar] = !!enablePastConversationsSidebar;
|
|
22124
|
-
}
|
|
22125
22157
|
let query = '';
|
|
22126
22158
|
const queryParamsString = getQueryParamString(queryParams, true);
|
|
22127
22159
|
if (queryParamsString) {
|
|
@@ -22150,8 +22182,9 @@ class SpotterEmbed extends TsEmbed {
|
|
|
22150
22182
|
}
|
|
22151
22183
|
/**
|
|
22152
22184
|
* Embed ThoughtSpot AI Conversation.
|
|
22153
|
-
* @deprecated from SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
|
|
22154
22185
|
* Use {@link SpotterEmbed} instead
|
|
22186
|
+
* @version SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
|
|
22187
|
+
* @deprecated from SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
|
|
22155
22188
|
* @group Embed components
|
|
22156
22189
|
* @example
|
|
22157
22190
|
* ```js
|
|
@@ -22163,7 +22196,6 @@ class SpotterEmbed extends TsEmbed {
|
|
|
22163
22196
|
* });
|
|
22164
22197
|
* conversation.render();
|
|
22165
22198
|
* ```
|
|
22166
|
-
* @version SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
|
|
22167
22199
|
*/
|
|
22168
22200
|
class ConversationEmbed extends SpotterEmbed {
|
|
22169
22201
|
constructor(container, viewConfig) {
|
|
@@ -22187,13 +22219,12 @@ class ConversationEmbed extends SpotterEmbed {
|
|
|
22187
22219
|
*/
|
|
22188
22220
|
/**
|
|
22189
22221
|
* Embed ThoughtSpot LLM and GPT-based Natural Language Search component.
|
|
22190
|
-
* @version
|
|
22222
|
+
* @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.1-sw
|
|
22191
22223
|
*
|
|
22192
22224
|
* Note: This embed will be deprecated from SDK: 1.40.0 | ThoughtSpot: 10.13.0.cl
|
|
22193
22225
|
* @group Embed components
|
|
22194
22226
|
*/
|
|
22195
22227
|
class SageEmbed extends V1Embed {
|
|
22196
|
-
// eslint-disable-next-line no-useless-constructor
|
|
22197
22228
|
constructor(domSelector, viewConfig) {
|
|
22198
22229
|
viewConfig.embedComponentType = 'SageEmbed';
|
|
22199
22230
|
super(domSelector, viewConfig);
|
|
@@ -22782,4 +22813,142 @@ const createLiveboardWithAnswers = async (answers, name) => {
|
|
|
22782
22813
|
return result;
|
|
22783
22814
|
};
|
|
22784
22815
|
|
|
22785
|
-
|
|
22816
|
+
/**
|
|
22817
|
+
* Starts an automatic renderer that watches the DOM for iframes containing
|
|
22818
|
+
* the `tsmcp=true` query parameter and replaces them with fully configured
|
|
22819
|
+
* ThoughtSpot embed iframes. The query parameter is automatically added by
|
|
22820
|
+
* the ThoughtSpot MCP server.
|
|
22821
|
+
*
|
|
22822
|
+
* A {@link MutationObserver} is set up on `document.body` to detect both
|
|
22823
|
+
* directly added iframes and iframes nested within added container elements.
|
|
22824
|
+
* Each matching iframe is replaced in-place with a new ThoughtSpot embed
|
|
22825
|
+
* iframe that merges the original iframe's query parameters with the SDK
|
|
22826
|
+
* embed parameters.
|
|
22827
|
+
*
|
|
22828
|
+
* Call {@link MutationObserver.disconnect | observer.disconnect()} on the
|
|
22829
|
+
* returned observer to stop monitoring the DOM.
|
|
22830
|
+
*
|
|
22831
|
+
* @param viewConfig - Optional configuration for the auto-rendered embeds.
|
|
22832
|
+
* Accepts all properties from {@link AutoMCPFrameRendererViewConfig}.
|
|
22833
|
+
* Defaults to an empty config.
|
|
22834
|
+
* @returns A {@link MutationObserver} instance that is actively observing
|
|
22835
|
+
* `document.body`. Disconnect it when monitoring is no longer needed.
|
|
22836
|
+
*
|
|
22837
|
+
* @example
|
|
22838
|
+
* ```js
|
|
22839
|
+
* import { startAutoMCPFrameRenderer } from '@thoughtspot/visual-embed-sdk';
|
|
22840
|
+
*
|
|
22841
|
+
* // Start watching the DOM for tsmcp iframes
|
|
22842
|
+
* const observer = startAutoMCPFrameRenderer({
|
|
22843
|
+
* // optional view config overrides
|
|
22844
|
+
* });
|
|
22845
|
+
*
|
|
22846
|
+
* // Later, stop watching
|
|
22847
|
+
* observer.disconnect();
|
|
22848
|
+
* ```
|
|
22849
|
+
*
|
|
22850
|
+
* @example
|
|
22851
|
+
* Detailed example of how to use the auto-frame renderer:
|
|
22852
|
+
* [Python React Agent Simple UI](https://github.com/thoughtspot/developer-examples/tree/main/mcp/python-react-agent-simple-ui)
|
|
22853
|
+
*/
|
|
22854
|
+
function startAutoMCPFrameRenderer(viewConfig = {}) {
|
|
22855
|
+
const replaceWithMCPIframe = (iframe) => {
|
|
22856
|
+
const autoMCPFrameRenderer = new AutoFrameRenderer(viewConfig);
|
|
22857
|
+
autoMCPFrameRenderer.replaceIframe(iframe);
|
|
22858
|
+
};
|
|
22859
|
+
const observer = new MutationObserver((mutations) => {
|
|
22860
|
+
for (const mutation of mutations) {
|
|
22861
|
+
for (const node of Array.from(mutation.addedNodes)) {
|
|
22862
|
+
if (node instanceof HTMLIFrameElement && isTSMCPIframe(node)) {
|
|
22863
|
+
replaceWithMCPIframe(node);
|
|
22864
|
+
}
|
|
22865
|
+
if (node instanceof HTMLElement) {
|
|
22866
|
+
node.querySelectorAll('iframe').forEach((iframe) => {
|
|
22867
|
+
if (isTSMCPIframe(iframe)) {
|
|
22868
|
+
replaceWithMCPIframe(iframe);
|
|
22869
|
+
}
|
|
22870
|
+
});
|
|
22871
|
+
}
|
|
22872
|
+
}
|
|
22873
|
+
}
|
|
22874
|
+
});
|
|
22875
|
+
observer.observe(document.body, { childList: true, subtree: true });
|
|
22876
|
+
return observer;
|
|
22877
|
+
}
|
|
22878
|
+
function isTSMCPIframe(iframe) {
|
|
22879
|
+
try {
|
|
22880
|
+
const url = new URL(iframe.src);
|
|
22881
|
+
return url.searchParams.get(Param.Tsmcp) === 'true';
|
|
22882
|
+
}
|
|
22883
|
+
catch (e) {
|
|
22884
|
+
// The iframe src might not be a valid URL (e.g., 'about:blank').
|
|
22885
|
+
return false;
|
|
22886
|
+
}
|
|
22887
|
+
}
|
|
22888
|
+
/**
|
|
22889
|
+
* Embed component that automatically replaces a plain iframe with a
|
|
22890
|
+
* ThoughtSpot embed iframe. It merges the SDK's embed parameters with
|
|
22891
|
+
* the original iframe's query parameters (stripping the `tsmcp` marker)
|
|
22892
|
+
* and swaps the original iframe element in the DOM.
|
|
22893
|
+
*
|
|
22894
|
+
* This class is used internally by {@link startAutoMCPFrameRenderer} and
|
|
22895
|
+
* is not intended to be instantiated directly.
|
|
22896
|
+
*/
|
|
22897
|
+
class AutoFrameRenderer extends TsEmbed {
|
|
22898
|
+
constructor(viewConfig) {
|
|
22899
|
+
viewConfig.embedComponentType = 'auto-frame-renderer';
|
|
22900
|
+
const container = document.createElement('div');
|
|
22901
|
+
super(container, viewConfig);
|
|
22902
|
+
this.viewConfig = viewConfig;
|
|
22903
|
+
}
|
|
22904
|
+
/**
|
|
22905
|
+
* Builds the final iframe `src` by merging the SDK embed parameters
|
|
22906
|
+
* with the query parameters already present on the source iframe URL.
|
|
22907
|
+
* The `tsmcp` marker param is removed so it does not propagate to the
|
|
22908
|
+
* ThoughtSpot application.
|
|
22909
|
+
*
|
|
22910
|
+
* @param sourceSrc - The original iframe's `src` URL string.
|
|
22911
|
+
* @returns The constructed URL to use for the ThoughtSpot embed iframe.
|
|
22912
|
+
*/
|
|
22913
|
+
getMCPIframeSrc(sourceSrc) {
|
|
22914
|
+
const queryParams = this.getEmbedParamsObject();
|
|
22915
|
+
const sourceURL = new URL(sourceSrc);
|
|
22916
|
+
const existingQueryParams = sourceURL.searchParams;
|
|
22917
|
+
const existingQueryParamsObject = Object.fromEntries(existingQueryParams);
|
|
22918
|
+
delete existingQueryParamsObject[Param.Tsmcp];
|
|
22919
|
+
const mergedQueryParams = { ...queryParams, ...existingQueryParamsObject };
|
|
22920
|
+
const mergedQueryParamsString = getQueryParamString(mergedQueryParams);
|
|
22921
|
+
const frameSrc = `${this.getEmbedBasePath(mergedQueryParamsString)}${sourceURL.hash.replace('#', '')}`;
|
|
22922
|
+
return frameSrc;
|
|
22923
|
+
}
|
|
22924
|
+
/**
|
|
22925
|
+
* Overrides the base insertion behavior so the new embed iframe
|
|
22926
|
+
* replaces the original iframe in-place rather than being appended
|
|
22927
|
+
* to a container element. Falls back to the default behavior when
|
|
22928
|
+
* no iframe has been set for replacement.
|
|
22929
|
+
*/
|
|
22930
|
+
handleInsertionIntoDOM(child) {
|
|
22931
|
+
if (this.frameToReplace) {
|
|
22932
|
+
this.frameToReplace.replaceWith(child);
|
|
22933
|
+
}
|
|
22934
|
+
else {
|
|
22935
|
+
super.handleInsertionIntoDOM(child);
|
|
22936
|
+
}
|
|
22937
|
+
}
|
|
22938
|
+
/**
|
|
22939
|
+
* Replaces the given iframe with a new ThoughtSpot embed iframe.
|
|
22940
|
+
*
|
|
22941
|
+
* The original iframe's `src` is used to derive the embed URL, and
|
|
22942
|
+
* once the new iframe is rendered it takes the original's place in
|
|
22943
|
+
* the DOM tree.
|
|
22944
|
+
*
|
|
22945
|
+
* @param iframe - The existing `<iframe>` element to replace.
|
|
22946
|
+
*/
|
|
22947
|
+
async replaceIframe(iframe) {
|
|
22948
|
+
this.frameToReplace = iframe;
|
|
22949
|
+
const src = this.getMCPIframeSrc(iframe.src);
|
|
22950
|
+
await this.renderIFrame(src);
|
|
22951
|
+
}
|
|
22952
|
+
}
|
|
22953
|
+
|
|
22954
|
+
export { Action, AnswerService, AppEmbed, AuthEvent, AuthFailureType, AuthStatus, AuthType, BodylessConversation, ContextMenuTriggerOptions, ContextType, ConversationEmbed, CustomActionTarget, CustomActionsPosition, DataPanelCustomColumnGroupsAccordionState$1 as DataPanelCustomColumnGroupsAccordionState, DataSourceVisualMode, EmbedErrorCodes, EmbedEvent, ErrorDetailsTypes, HomeLeftNavItem, HomePage, HomePageSearchBarMode, HomepageModule, HostEvent, InterceptedApiType, ListPage, ListPageColumns, LiveboardEmbed, LogLevel, MIXPANEL_EVENT, Page, PinboardEmbed, PrefetchFeatures, PrimaryNavbarVersion, RuntimeFilterOp, SageEmbed, SearchBarEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, UIPassthroughEvent, createLiveboardWithAnswers, executeTML, exportTML, getAnswerFromQuery, getEmbedConfig as getInitConfig, getSessionInfo, init, logout, prefetch, reloadIframe, resetCachedAuthToken, startAutoMCPFrameRenderer, tokenizedFetch, uploadMixpanelEvent };
|