@thoughtspot/visual-embed-sdk 1.35.3 → 1.35.4
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.spec.js +12 -0
- package/cjs/src/auth.spec.js.map +1 -1
- package/cjs/src/authToken.spec.js +1 -1
- package/cjs/src/authToken.spec.js.map +1 -1
- package/cjs/src/embed/app.d.ts +1 -1
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +4 -3
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/base.d.ts +1 -1
- package/cjs/src/embed/base.js +1 -1
- package/cjs/src/embed/bodyless-conversation.spec.js +0 -1
- package/cjs/src/embed/bodyless-conversation.spec.js.map +1 -1
- package/cjs/src/embed/hostEventClient/contracts.d.ts +79 -0
- package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -0
- package/cjs/src/embed/hostEventClient/contracts.js +14 -0
- package/cjs/src/embed/hostEventClient/contracts.js.map +1 -0
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts +25 -0
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -0
- package/cjs/src/embed/hostEventClient/host-event-client.js +89 -0
- package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -0
- package/cjs/src/embed/hostEventClient/host-event-client.spec.d.ts +2 -0
- package/cjs/src/embed/hostEventClient/host-event-client.spec.d.ts.map +1 -0
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js +191 -0
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -0
- package/cjs/src/embed/liveboard.d.ts +10 -8
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +3 -3
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +34 -2
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/search.spec.js +11 -0
- package/cjs/src/embed/search.spec.js.map +1 -1
- package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.js +104 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.js.map +1 -0
- package/cjs/src/embed/ts-embed.d.ts +21 -4
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +30 -9
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +26 -1
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/hostEventsTypeMapping.d.ts +2 -0
- package/cjs/src/hostEventsTypeMapping.d.ts.map +1 -0
- package/cjs/src/hostEventsTypeMapping.js +4 -0
- package/cjs/src/hostEventsTypeMapping.js.map +1 -0
- package/cjs/src/index.d.ts +2 -1
- 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/all-types-export.d.ts +1 -1
- package/cjs/src/react/all-types-export.d.ts.map +1 -1
- package/cjs/src/react/all-types-export.js +2 -1
- package/cjs/src/react/all-types-export.js.map +1 -1
- package/cjs/src/types.d.ts +38 -23
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +31 -20
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/embedApi/contracts.d.ts +101 -0
- package/cjs/src/utils/embedApi/contracts.d.ts.map +1 -0
- package/cjs/src/utils/embedApi/contracts.js +17 -0
- package/cjs/src/utils/embedApi/contracts.js.map +1 -0
- package/cjs/src/utils/embedApi/embedApiClient.d.ts +12 -0
- package/cjs/src/utils/embedApi/embedApiClient.d.ts.map +1 -0
- package/cjs/src/utils/embedApi/embedApiClient.js +46 -0
- package/cjs/src/utils/embedApi/embedApiClient.js.map +1 -0
- package/cjs/src/utils/embedApi/processEmbedApi.d.ts +9 -0
- package/cjs/src/utils/embedApi/processEmbedApi.d.ts.map +1 -0
- package/cjs/src/utils/embedApi/processEmbedApi.js +18 -0
- package/cjs/src/utils/embedApi/processEmbedApi.js.map +1 -0
- package/dist/{index-BaGHDCpW.js → index-BBBimG1x.js} +1 -1
- package/dist/index-CENLvayL.js +7370 -0
- package/dist/index-CbltIawo.js +7370 -0
- package/dist/index-CoQfqaHj.js +7370 -0
- package/dist/index-CzwzS0P4.js +7370 -0
- package/dist/index-DFwi_pV_.js +7370 -0
- package/dist/index-DOIjN0N_.js +7370 -0
- package/dist/index-DYBx8SuE.js +7370 -0
- package/dist/index-DaLHJaLd.js +7370 -0
- package/dist/index-nWevLycs.js +7370 -0
- package/dist/src/embed/app.d.ts +1 -1
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/base.d.ts +1 -1
- package/dist/src/embed/hostEventClient/contracts.d.ts +79 -0
- package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -0
- package/dist/src/embed/hostEventClient/host-event-client.d.ts +25 -0
- package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -0
- package/dist/src/embed/hostEventClient/host-event-client.spec.d.ts +2 -0
- package/dist/src/embed/hostEventClient/host-event-client.spec.d.ts.map +1 -0
- package/dist/src/embed/liveboard.d.ts +10 -8
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
- package/dist/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
- package/dist/src/embed/ts-embed.d.ts +21 -4
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/dist/src/hostEventsTypeMapping.d.ts +2 -0
- package/dist/src/hostEventsTypeMapping.d.ts.map +1 -0
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/react/all-types-export.d.ts +1 -1
- package/dist/src/react/all-types-export.d.ts.map +1 -1
- package/dist/src/types.d.ts +38 -23
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/embedApi/contracts.d.ts +101 -0
- package/dist/src/utils/embedApi/contracts.d.ts.map +1 -0
- package/dist/src/utils/embedApi/embedApiClient.d.ts +12 -0
- package/dist/src/utils/embedApi/embedApiClient.d.ts.map +1 -0
- package/dist/src/utils/embedApi/processEmbedApi.d.ts +9 -0
- package/dist/src/utils/embedApi/processEmbedApi.d.ts.map +1 -0
- package/dist/tsembed-react.es.js +161 -37
- package/dist/tsembed-react.js +160 -36
- package/dist/tsembed.es.js +163 -39
- package/dist/tsembed.js +161 -37
- package/dist/visual-embed-sdk-react-full.d.ts +170 -38
- package/dist/visual-embed-sdk-react.d.ts +170 -38
- package/dist/visual-embed-sdk.d.ts +170 -38
- package/lib/package.json +1 -1
- package/lib/src/auth.spec.js +12 -0
- package/lib/src/auth.spec.js.map +1 -1
- package/lib/src/authToken.spec.js +1 -1
- package/lib/src/authToken.spec.js.map +1 -1
- package/lib/src/embed/app.d.ts +1 -1
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +4 -3
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/base.d.ts +1 -1
- package/lib/src/embed/base.js +1 -1
- package/lib/src/embed/bodyless-conversation.spec.js +0 -1
- package/lib/src/embed/bodyless-conversation.spec.js.map +1 -1
- package/lib/src/embed/hostEventClient/contracts.d.ts +79 -0
- package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -0
- package/lib/src/embed/hostEventClient/contracts.js +11 -0
- package/lib/src/embed/hostEventClient/contracts.js.map +1 -0
- package/lib/src/embed/hostEventClient/host-event-client.d.ts +25 -0
- package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -0
- package/lib/src/embed/hostEventClient/host-event-client.js +85 -0
- package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -0
- package/lib/src/embed/hostEventClient/host-event-client.spec.d.ts +2 -0
- package/lib/src/embed/hostEventClient/host-event-client.spec.d.ts.map +1 -0
- package/lib/src/embed/hostEventClient/host-event-client.spec.js +188 -0
- package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -0
- package/lib/src/embed/liveboard.d.ts +10 -8
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +3 -3
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +34 -2
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/search.spec.js +11 -0
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
- package/lib/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
- package/lib/src/embed/searchEmbed-basic-auth.spec.js +101 -0
- package/lib/src/embed/searchEmbed-basic-auth.spec.js.map +1 -0
- package/lib/src/embed/ts-embed.d.ts +21 -4
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +30 -9
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +28 -3
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/hostEventsTypeMapping.d.ts +2 -0
- package/lib/src/hostEventsTypeMapping.d.ts.map +1 -0
- package/lib/src/hostEventsTypeMapping.js +2 -0
- package/lib/src/hostEventsTypeMapping.js.map +1 -0
- package/lib/src/index.d.ts +2 -1
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +2 -1
- package/lib/src/index.js.map +1 -1
- package/lib/src/react/all-types-export.d.ts +1 -1
- package/lib/src/react/all-types-export.d.ts.map +1 -1
- package/lib/src/react/all-types-export.js +1 -1
- package/lib/src/react/all-types-export.js.map +1 -1
- package/lib/src/types.d.ts +38 -23
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +31 -20
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/embedApi/contracts.d.ts +101 -0
- package/lib/src/utils/embedApi/contracts.d.ts.map +1 -0
- package/lib/src/utils/embedApi/contracts.js +14 -0
- package/lib/src/utils/embedApi/contracts.js.map +1 -0
- package/lib/src/utils/embedApi/embedApiClient.d.ts +12 -0
- package/lib/src/utils/embedApi/embedApiClient.d.ts.map +1 -0
- package/lib/src/utils/embedApi/embedApiClient.js +42 -0
- package/lib/src/utils/embedApi/embedApiClient.js.map +1 -0
- package/lib/src/utils/embedApi/processEmbedApi.d.ts +9 -0
- package/lib/src/utils/embedApi/processEmbedApi.d.ts.map +1 -0
- package/lib/src/utils/embedApi/processEmbedApi.js +14 -0
- package/lib/src/utils/embedApi/processEmbedApi.js.map +1 -0
- package/lib/src/visual-embed-sdk.d.ts +181 -38
- package/package.json +1 -1
- package/src/auth.spec.ts +13 -0
- package/src/authToken.spec.ts +1 -1
- package/src/embed/app.ts +7 -4
- package/src/embed/base.ts +1 -1
- package/src/embed/bodyless-conversation.spec.ts +0 -1
- package/src/embed/hostEventClient/contracts.ts +105 -0
- package/src/embed/hostEventClient/host-event-client.spec.ts +254 -0
- package/src/embed/hostEventClient/host-event-client.ts +139 -0
- package/src/embed/liveboard.spec.ts +36 -2
- package/src/embed/liveboard.ts +13 -8
- package/src/embed/search.spec.ts +15 -0
- package/src/embed/ts-embed.spec.ts +40 -1
- package/src/embed/ts-embed.ts +57 -16
- package/src/index.ts +2 -0
- package/src/react/all-types-export.ts +1 -0
- package/src/types.ts +37 -22
package/src/embed/ts-embed.ts
CHANGED
|
@@ -9,6 +9,15 @@
|
|
|
9
9
|
import isEqual from 'lodash/isEqual';
|
|
10
10
|
import isEmpty from 'lodash/isEmpty';
|
|
11
11
|
import isObject from 'lodash/isObject';
|
|
12
|
+
import {
|
|
13
|
+
HostEventRequest,
|
|
14
|
+
HostEventResponse,
|
|
15
|
+
TriggerPayload,
|
|
16
|
+
TriggerResponse,
|
|
17
|
+
UIPassthroughArrayResponse,
|
|
18
|
+
UIPassthroughEvent,
|
|
19
|
+
UIPassthroughRequest,
|
|
20
|
+
} from './hostEventClient/contracts';
|
|
12
21
|
import { logger } from '../utils/logger';
|
|
13
22
|
import { getAuthenticationToken } from '../authToken';
|
|
14
23
|
import { AnswerService } from '../utils/graphql/answerService/answerService';
|
|
@@ -62,6 +71,7 @@ import {
|
|
|
62
71
|
import { AuthFailureType } from '../auth';
|
|
63
72
|
import { getEmbedConfig } from './embedConfig';
|
|
64
73
|
import { ERROR_MESSAGE } from '../errors';
|
|
74
|
+
import { HostEventClient } from './hostEventClient/host-event-client';
|
|
65
75
|
|
|
66
76
|
const { version } = pkgInfo;
|
|
67
77
|
|
|
@@ -77,7 +87,7 @@ const TS_EMBED_ID = '_thoughtspot-embed';
|
|
|
77
87
|
* We cannot rename v1 event types to maintain backward compatibility
|
|
78
88
|
* @internal
|
|
79
89
|
*/
|
|
80
|
-
const V1EventMap = {};
|
|
90
|
+
const V1EventMap: Record<string, any> = {};
|
|
81
91
|
|
|
82
92
|
/**
|
|
83
93
|
* Base class for embedding v2 experience
|
|
@@ -111,6 +121,15 @@ export class TsEmbed {
|
|
|
111
121
|
*/
|
|
112
122
|
protected iFrame: HTMLIFrameElement;
|
|
113
123
|
|
|
124
|
+
/**
|
|
125
|
+
* Setter for the iframe element
|
|
126
|
+
* @param {HTMLIFrameElement} iFrame HTMLIFrameElement
|
|
127
|
+
*/
|
|
128
|
+
protected setIframeElement(iFrame: HTMLIFrameElement): void {
|
|
129
|
+
this.iFrame = iFrame;
|
|
130
|
+
this.hostEventClient.setIframeElement(iFrame);
|
|
131
|
+
}
|
|
132
|
+
|
|
114
133
|
protected viewConfig: ViewConfig;
|
|
115
134
|
|
|
116
135
|
protected embedConfig: EmbedConfig;
|
|
@@ -121,8 +140,8 @@ export class TsEmbed {
|
|
|
121
140
|
protected thoughtSpotHost: string;
|
|
122
141
|
|
|
123
142
|
/*
|
|
124
|
-
|
|
125
|
-
|
|
143
|
+
* This is the base to access ThoughtSpot V2.
|
|
144
|
+
*/
|
|
126
145
|
protected thoughtSpotV2Base: string;
|
|
127
146
|
|
|
128
147
|
/**
|
|
@@ -159,6 +178,8 @@ export class TsEmbed {
|
|
|
159
178
|
|
|
160
179
|
private resizeObserver: ResizeObserver;
|
|
161
180
|
|
|
181
|
+
protected hostEventClient: HostEventClient;
|
|
182
|
+
|
|
162
183
|
constructor(domSelector: DOMSelector, viewConfig?: ViewConfig) {
|
|
163
184
|
this.el = getDOMNode(domSelector);
|
|
164
185
|
// TODO: handle error
|
|
@@ -180,6 +201,7 @@ export class TsEmbed {
|
|
|
180
201
|
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_EMBED_CREATE, {
|
|
181
202
|
...viewConfig,
|
|
182
203
|
});
|
|
204
|
+
this.hostEventClient = new HostEventClient(this.iFrame);
|
|
183
205
|
}
|
|
184
206
|
|
|
185
207
|
/**
|
|
@@ -241,7 +263,7 @@ export class TsEmbed {
|
|
|
241
263
|
return eventData;
|
|
242
264
|
}
|
|
243
265
|
|
|
244
|
-
private subscribedListeners = {};
|
|
266
|
+
private subscribedListeners: Record<string, any> = {};
|
|
245
267
|
|
|
246
268
|
/**
|
|
247
269
|
* Adds a global event listener to window for "message" events.
|
|
@@ -609,7 +631,7 @@ export class TsEmbed {
|
|
|
609
631
|
this.insertIntoDOM(child);
|
|
610
632
|
}
|
|
611
633
|
if (this.insertedDomEl instanceof Node) {
|
|
612
|
-
this.insertedDomEl[this.embedNodeKey] = this;
|
|
634
|
+
(this.insertedDomEl as any)[this.embedNodeKey] = this;
|
|
613
635
|
}
|
|
614
636
|
}
|
|
615
637
|
|
|
@@ -647,7 +669,7 @@ export class TsEmbed {
|
|
|
647
669
|
return;
|
|
648
670
|
}
|
|
649
671
|
|
|
650
|
-
this.
|
|
672
|
+
this.setIframeElement(this.iFrame || this.createIframeEl(url));
|
|
651
673
|
this.iFrame.addEventListener('load', () => {
|
|
652
674
|
nextInQueue();
|
|
653
675
|
const loadTimestamp = Date.now();
|
|
@@ -717,7 +739,7 @@ export class TsEmbed {
|
|
|
717
739
|
if (this.preRenderWrapper && this.preRenderChild) {
|
|
718
740
|
this.isPreRendered = true;
|
|
719
741
|
if (this.preRenderChild instanceof HTMLIFrameElement) {
|
|
720
|
-
this.
|
|
742
|
+
this.setIframeElement(this.preRenderChild);
|
|
721
743
|
}
|
|
722
744
|
this.insertedDomEl = this.preRenderWrapper;
|
|
723
745
|
this.isRendered = true;
|
|
@@ -766,7 +788,7 @@ export class TsEmbed {
|
|
|
766
788
|
this.preRenderWrapper = preRenderWrapper;
|
|
767
789
|
|
|
768
790
|
if (preRenderChild instanceof HTMLIFrameElement) {
|
|
769
|
-
this.
|
|
791
|
+
this.setIframeElement(preRenderChild);
|
|
770
792
|
}
|
|
771
793
|
this.insertedDomEl = preRenderWrapper;
|
|
772
794
|
|
|
@@ -983,10 +1005,14 @@ export class TsEmbed {
|
|
|
983
1005
|
|
|
984
1006
|
/**
|
|
985
1007
|
* Triggers an event to the embedded app
|
|
986
|
-
* @param messageType The event type
|
|
987
|
-
* @param data The payload to send with the message
|
|
1008
|
+
* @param {HostEvent} messageType The event type
|
|
1009
|
+
* @param {any} data The payload to send with the message
|
|
1010
|
+
* @returns A promise that resolves with the response from the embedded app
|
|
988
1011
|
*/
|
|
989
|
-
public trigger
|
|
1012
|
+
public async trigger<HostEventT extends HostEvent, PayloadT>(
|
|
1013
|
+
messageType: HostEventT,
|
|
1014
|
+
data?: TriggerPayload<PayloadT, HostEventT>,
|
|
1015
|
+
): Promise<TriggerResponse<PayloadT, HostEventT>> {
|
|
990
1016
|
uploadMixpanelEvent(`${MIXPANEL_EVENT.VISUAL_SDK_TRIGGER}-${messageType}`);
|
|
991
1017
|
|
|
992
1018
|
if (!this.isRendered) {
|
|
@@ -998,7 +1024,23 @@ export class TsEmbed {
|
|
|
998
1024
|
this.handleError('Host event type is undefined');
|
|
999
1025
|
return null;
|
|
1000
1026
|
}
|
|
1001
|
-
|
|
1027
|
+
|
|
1028
|
+
return this.hostEventClient.triggerHostEvent(messageType, data);
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
/**
|
|
1032
|
+
* Triggers an event to the embedded app, skipping the UI flow.
|
|
1033
|
+
* @param {UIPassthroughEvent} apiName - The name of the API to be triggered.
|
|
1034
|
+
* @param {UIPassthroughRequest} parameters - The parameters to be passed to the API.
|
|
1035
|
+
* @returns {Promise<UIPassthroughRequest>} - A promise that resolves with the response
|
|
1036
|
+
* from the embedded app.
|
|
1037
|
+
*/
|
|
1038
|
+
public async triggerUIPassThrough<UIPassthroughEventT extends UIPassthroughEvent>(
|
|
1039
|
+
apiName: UIPassthroughEventT,
|
|
1040
|
+
parameters: UIPassthroughRequest<UIPassthroughEventT>,
|
|
1041
|
+
): Promise<UIPassthroughArrayResponse<UIPassthroughEventT>> {
|
|
1042
|
+
const response = this.hostEventClient.triggerUIPassthroughApi(apiName, parameters);
|
|
1043
|
+
return response;
|
|
1002
1044
|
}
|
|
1003
1045
|
|
|
1004
1046
|
/**
|
|
@@ -1104,14 +1146,14 @@ export class TsEmbed {
|
|
|
1104
1146
|
|
|
1105
1147
|
private validatePreRenderViewConfig = (viewConfig: ViewConfig) => {
|
|
1106
1148
|
const preRenderAllowedKeys = ['preRenderId', 'vizId', 'liveboardId'];
|
|
1107
|
-
const preRenderedObject = this.insertedDomEl?.[this.embedNodeKey] as TsEmbed;
|
|
1149
|
+
const preRenderedObject = (this.insertedDomEl as any)?.[this.embedNodeKey] as TsEmbed;
|
|
1108
1150
|
if (!preRenderedObject) return;
|
|
1109
1151
|
if (viewConfig.preRenderId) {
|
|
1110
1152
|
const allOtherKeys = Object.keys(viewConfig).filter(
|
|
1111
1153
|
(key) => !preRenderAllowedKeys.includes(key) && !key.startsWith('on'),
|
|
1112
1154
|
);
|
|
1113
1155
|
|
|
1114
|
-
allOtherKeys.forEach((key) => {
|
|
1156
|
+
allOtherKeys.forEach((key: keyof ViewConfig) => {
|
|
1115
1157
|
if (
|
|
1116
1158
|
!isUndefined(viewConfig[key])
|
|
1117
1159
|
&& !isEqual(viewConfig[key], preRenderedObject.viewConfig[key])
|
|
@@ -1240,12 +1282,11 @@ export class TsEmbed {
|
|
|
1240
1282
|
/**
|
|
1241
1283
|
* Returns the answerService which can be used to make arbitrary graphql calls on top
|
|
1242
1284
|
* session.
|
|
1243
|
-
* @param vizId [Optional] to get for a specific viz in case of a
|
|
1285
|
+
* @param vizId [Optional] to get for a specific viz in case of a Liveboard.
|
|
1244
1286
|
* @version SDK: 1.25.0 / ThoughtSpot 9.10.0
|
|
1245
1287
|
*/
|
|
1246
1288
|
public async getAnswerService(vizId?: string): Promise<AnswerService> {
|
|
1247
1289
|
const { session } = await this.trigger(HostEvent.GetAnswerSession, vizId ? { vizId } : {});
|
|
1248
|
-
|
|
1249
1290
|
return new AnswerService(session, null, this.embedConfig.thoughtSpotHost);
|
|
1250
1291
|
}
|
|
1251
1292
|
}
|
package/src/index.ts
CHANGED
|
@@ -61,6 +61,7 @@ import { uploadMixpanelEvent, MIXPANEL_EVENT } from './mixpanel-service';
|
|
|
61
61
|
import { tokenizedFetch } from './tokenizedFetch';
|
|
62
62
|
import { getAnswerFromQuery } from './utils/graphql/nlsService/nls-answer-service';
|
|
63
63
|
import { createLiveboardWithAnswers } from './utils/liveboardService/liveboardService';
|
|
64
|
+
import { UIPassthroughEvent } from './embed/hostEventClient/contracts';
|
|
64
65
|
|
|
65
66
|
export {
|
|
66
67
|
init,
|
|
@@ -127,6 +128,7 @@ export {
|
|
|
127
128
|
HomePageSearchBarMode,
|
|
128
129
|
VizPoint,
|
|
129
130
|
CustomActionPayload,
|
|
131
|
+
UIPassthroughEvent,
|
|
130
132
|
};
|
|
131
133
|
|
|
132
134
|
export { resetCachedAuthToken } from './authToken';
|
package/src/types.ts
CHANGED
|
@@ -1088,8 +1088,12 @@ export interface ViewConfig {
|
|
|
1088
1088
|
*/
|
|
1089
1089
|
enableCustomColumnGroups?: boolean;
|
|
1090
1090
|
/**
|
|
1091
|
-
*
|
|
1092
|
-
* This
|
|
1091
|
+
* Overrides an Org context for embedding application users.
|
|
1092
|
+
* This parameter allows a user authenticated to one Org to view the
|
|
1093
|
+
* objects from another Org.
|
|
1094
|
+
* The `overrideOrgId` setting is honoured only if the
|
|
1095
|
+
* Per Org URL feature is enabled on your ThoughtSpot instance.
|
|
1096
|
+
*
|
|
1093
1097
|
* @example
|
|
1094
1098
|
* ```js
|
|
1095
1099
|
* const embed = new LiveboardEmbed('#embed', {
|
|
@@ -1714,8 +1718,8 @@ export enum EmbedEvent {
|
|
|
1714
1718
|
*
|
|
1715
1719
|
* **Note**: This event is deprecated in v1.21.0.
|
|
1716
1720
|
* To fire an event when a download action is initiated on a chart or table,
|
|
1717
|
-
* use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPDF`,
|
|
1718
|
-
* or `EmbedEvent.DownloadAsXLSX`
|
|
1721
|
+
* use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPDF`,
|
|
1722
|
+
* `EmbedEvent.DownloadAsCSV`, or `EmbedEvent.DownloadAsXLSX`
|
|
1719
1723
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
1720
1724
|
* @example
|
|
1721
1725
|
*```js
|
|
@@ -2365,7 +2369,7 @@ export enum HostEvent {
|
|
|
2365
2369
|
* @param - autoDrillDown - Optional. If true, the drill down will be
|
|
2366
2370
|
* done automatically on the most popular column.
|
|
2367
2371
|
* @param - vizId [TS >= 9.8.0] - Optional. The GUID of the visualization to drill
|
|
2368
|
-
* in case of a
|
|
2372
|
+
* in case of a Liveboard.
|
|
2369
2373
|
* @example
|
|
2370
2374
|
* ```js
|
|
2371
2375
|
* searchEmbed.on(EmbedEvent.VizPointDoubleClick, (payload) => {
|
|
@@ -2452,26 +2456,26 @@ export enum HostEvent {
|
|
|
2452
2456
|
*/
|
|
2453
2457
|
SetActiveTab = 'SetActiveTab',
|
|
2454
2458
|
/**
|
|
2455
|
-
*
|
|
2456
|
-
*
|
|
2457
|
-
* filters.
|
|
2459
|
+
* Updates the runtime filters applied on a Liveboard. The filter
|
|
2460
|
+
* attributes passed with this event are appended to the existing runtime
|
|
2461
|
+
* filters applied on a Liveboard.
|
|
2462
|
+
*
|
|
2458
2463
|
* Pass an array of runtime filters with the following attributes:
|
|
2459
2464
|
*
|
|
2460
|
-
* `columnName`
|
|
2461
|
-
* _String_. The name of the column to filter on.
|
|
2465
|
+
* `columnName` - _String_. The name of the column to filter on.
|
|
2462
2466
|
*
|
|
2463
|
-
* `operator`
|
|
2464
|
-
* Runtime filter operator to apply. For information,
|
|
2467
|
+
* `operator` - Runtime filter operator to apply. For more information,
|
|
2465
2468
|
* see link:https://developers.thoughtspot.com/docs/?pageid=runtime-filters#rtOperator[Developer Documentation].
|
|
2466
2469
|
*
|
|
2467
|
-
* `values`
|
|
2468
|
-
*
|
|
2469
|
-
*
|
|
2470
|
+
* `values` - List of operands. Some operators such as EQ and LE allow a
|
|
2471
|
+
* single value, whereas BW and IN accept multiple values.
|
|
2472
|
+
*
|
|
2473
|
+
* **Note**: `HostEvent.UpdateRuntimeFilters` is supported in `LiveboardEmbed`
|
|
2474
|
+
* and `AppEmbed` only. In full application embedding, this event updates
|
|
2475
|
+
* the runtime filters applied on the Liveboard and saved Answer objects.
|
|
2470
2476
|
*
|
|
2471
|
-
* **Note**: `HostEvent.UpdateRuntimeFilters` is not supported in
|
|
2472
|
-
* Search embedding (SearchEmbed) and Natural Language Search
|
|
2473
|
-
* embedding (SageEmbed).
|
|
2474
2477
|
* @param - {@link RuntimeFilter}[] an array of {@link RuntimeFilter} Types.
|
|
2478
|
+
*
|
|
2475
2479
|
* @example
|
|
2476
2480
|
* ```js
|
|
2477
2481
|
* liveboardEmbed.trigger(HostEvent.UpdateRuntimeFilters, [
|
|
@@ -3170,7 +3174,7 @@ export enum HostEvent {
|
|
|
3170
3174
|
*/
|
|
3171
3175
|
ResetLiveboardPersonalisedView = 'ResetLiveboardPersonalisedView',
|
|
3172
3176
|
/**
|
|
3173
|
-
* Triggers Update
|
|
3177
|
+
* Triggers an event to Update Parameter values for Answers and Liveboard
|
|
3174
3178
|
* @example
|
|
3175
3179
|
* ```js
|
|
3176
3180
|
* liveboardEmbed.trigger(HostEvent.UpdateParameters, [{
|
|
@@ -3192,13 +3196,23 @@ export enum HostEvent {
|
|
|
3192
3196
|
*/
|
|
3193
3197
|
GetParameters = 'GetParameters',
|
|
3194
3198
|
/**
|
|
3195
|
-
* Triggers update
|
|
3199
|
+
* Triggers an event to update a persoanlised view of a Liveboard
|
|
3196
3200
|
* ```js
|
|
3197
3201
|
* liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
|
|
3198
3202
|
* ```
|
|
3199
3203
|
* @version SDK: 1.36.0 | Thoughtspot: 10.6.0.cl
|
|
3200
3204
|
*/
|
|
3201
3205
|
UpdatePersonalisedView = 'UpdatePersonalisedView',
|
|
3206
|
+
/**
|
|
3207
|
+
* Triggers the action to get the current view of the liveboard
|
|
3208
|
+
* @version SDK: 1.36.0 | Thoughtspot: 10.6.0.cl
|
|
3209
|
+
*/
|
|
3210
|
+
SaveAnswer = 'saveAnswer',
|
|
3211
|
+
/**
|
|
3212
|
+
* EmbedApi
|
|
3213
|
+
* @hidden
|
|
3214
|
+
*/
|
|
3215
|
+
UIPassthrough = 'UiPassthrough',
|
|
3202
3216
|
}
|
|
3203
3217
|
|
|
3204
3218
|
/**
|
|
@@ -4179,7 +4193,7 @@ export enum Action {
|
|
|
4179
4193
|
*/
|
|
4180
4194
|
ModifySageAnswer = 'modifySageAnswer',
|
|
4181
4195
|
/**
|
|
4182
|
-
* The **Move to Tab** menu action on visualizations in
|
|
4196
|
+
* The **Move to Tab** menu action on visualizations in Liveboard edit mode.
|
|
4183
4197
|
* Allows moving a visualization to a different tab.
|
|
4184
4198
|
* @example
|
|
4185
4199
|
* ```js
|
|
@@ -4234,7 +4248,8 @@ export enum Action {
|
|
|
4234
4248
|
TML = 'tml',
|
|
4235
4249
|
|
|
4236
4250
|
/**
|
|
4237
|
-
* Action
|
|
4251
|
+
* Action ID for the create Liveboard option on the Liveboard list page
|
|
4252
|
+
* and Pin modal
|
|
4238
4253
|
* @example
|
|
4239
4254
|
* ```js
|
|
4240
4255
|
* hiddenAction: [Action.CreateLiveboard]
|