@thoughtspot/visual-embed-sdk 1.50.0 → 1.51.0
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/css-variables.d.ts +95 -0
- package/cjs/src/css-variables.d.ts.map +1 -1
- package/cjs/src/embed/app.d.ts +136 -15
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +59 -37
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +419 -149
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/conversation.d.ts +230 -1
- package/cjs/src/embed/conversation.d.ts.map +1 -1
- package/cjs/src/embed/conversation.js +30 -16
- package/cjs/src/embed/conversation.js.map +1 -1
- package/cjs/src/embed/conversation.spec.js +221 -17
- package/cjs/src/embed/conversation.spec.js.map +1 -1
- package/cjs/src/embed/events.spec.js +635 -0
- package/cjs/src/embed/events.spec.js.map +1 -1
- package/cjs/src/embed/host-events.spec.js +151 -0
- package/cjs/src/embed/host-events.spec.js.map +1 -1
- package/cjs/src/embed/hostEventClient/contracts.d.ts +51 -14
- package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/contracts.js +11 -1
- package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts +1 -0
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.js +9 -0
- package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js +218 -0
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
- package/cjs/src/embed/hostEventClient/utils.d.ts +2 -0
- package/cjs/src/embed/hostEventClient/utils.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/utils.js +32 -2
- package/cjs/src/embed/hostEventClient/utils.js.map +1 -1
- package/cjs/src/embed/hostEventClient/utils.spec.js +178 -0
- package/cjs/src/embed/hostEventClient/utils.spec.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +42 -1
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +26 -6
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +83 -2
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/spotter-utils.d.ts +8 -1
- package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
- package/cjs/src/embed/spotter-utils.js +14 -1
- package/cjs/src/embed/spotter-utils.js.map +1 -1
- package/cjs/src/embed/spotter-utils.spec.js +61 -0
- package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
- package/cjs/src/embed/spotter-viz-utils.d.ts +34 -0
- package/cjs/src/embed/spotter-viz-utils.d.ts.map +1 -1
- package/cjs/src/embed/spotter-viz-utils.js.map +1 -1
- package/cjs/src/embed/spotter-viz-utils.spec.js +17 -0
- package/cjs/src/embed/spotter-viz-utils.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +29 -7
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +146 -0
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/errors.d.ts +1 -0
- package/cjs/src/errors.d.ts.map +1 -1
- package/cjs/src/errors.js +1 -0
- package/cjs/src/errors.js.map +1 -1
- package/cjs/src/index.d.ts +2 -2
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js +3 -2
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/mixpanel-service.d.ts +4 -0
- package/cjs/src/mixpanel-service.d.ts.map +1 -1
- package/cjs/src/mixpanel-service.js +4 -0
- package/cjs/src/mixpanel-service.js.map +1 -1
- package/cjs/src/react/util.spec.js +251 -0
- package/cjs/src/react/util.spec.js.map +1 -1
- package/cjs/src/types.d.ts +573 -11
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +519 -2
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/processData.spec.js +93 -0
- package/cjs/src/utils/processData.spec.js.map +1 -1
- package/cjs/src/utils/processTrigger.spec.js +61 -0
- package/cjs/src/utils/processTrigger.spec.js.map +1 -1
- package/dist/{index-B5xoN6Cp.js → index-aBzH5ZwF.js} +1 -1
- package/dist/src/css-variables.d.ts +95 -0
- package/dist/src/css-variables.d.ts.map +1 -1
- package/dist/src/embed/app.d.ts +136 -15
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/conversation.d.ts +230 -1
- package/dist/src/embed/conversation.d.ts.map +1 -1
- package/dist/src/embed/hostEventClient/contracts.d.ts +51 -14
- package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
- package/dist/src/embed/hostEventClient/host-event-client.d.ts +1 -0
- package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/dist/src/embed/hostEventClient/utils.d.ts +2 -0
- package/dist/src/embed/hostEventClient/utils.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +42 -1
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/spotter-utils.d.ts +8 -1
- package/dist/src/embed/spotter-utils.d.ts.map +1 -1
- package/dist/src/embed/spotter-viz-utils.d.ts +34 -0
- package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/errors.d.ts +1 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/mixpanel-service.d.ts +4 -0
- package/dist/src/mixpanel-service.d.ts.map +1 -1
- package/dist/src/types.d.ts +573 -11
- package/dist/src/types.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +936 -142
- package/dist/tsembed-react.js +935 -141
- package/dist/tsembed.es.js +935 -142
- package/dist/tsembed.js +933 -140
- package/dist/visual-embed-sdk-react-full.d.ts +1147 -44
- package/dist/visual-embed-sdk-react.d.ts +1153 -46
- package/dist/visual-embed-sdk.d.ts +1161 -46
- package/lib/package.json +1 -1
- package/lib/src/css-variables.d.ts +95 -0
- package/lib/src/css-variables.d.ts.map +1 -1
- package/lib/src/embed/app.d.ts +136 -15
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +60 -38
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +420 -150
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/conversation.d.ts +230 -1
- package/lib/src/embed/conversation.d.ts.map +1 -1
- package/lib/src/embed/conversation.js +31 -17
- package/lib/src/embed/conversation.js.map +1 -1
- package/lib/src/embed/conversation.spec.js +222 -18
- package/lib/src/embed/conversation.spec.js.map +1 -1
- package/lib/src/embed/events.spec.js +635 -0
- package/lib/src/embed/events.spec.js.map +1 -1
- package/lib/src/embed/host-events.spec.js +152 -1
- package/lib/src/embed/host-events.spec.js.map +1 -1
- package/lib/src/embed/hostEventClient/contracts.d.ts +51 -14
- package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/contracts.js +10 -0
- package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.d.ts +1 -0
- package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.js +10 -1
- package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.spec.js +218 -0
- package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
- package/lib/src/embed/hostEventClient/utils.d.ts +2 -0
- package/lib/src/embed/hostEventClient/utils.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/utils.js +28 -1
- package/lib/src/embed/hostEventClient/utils.js.map +1 -1
- package/lib/src/embed/hostEventClient/utils.spec.js +179 -1
- package/lib/src/embed/hostEventClient/utils.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +42 -1
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +26 -6
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +83 -2
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/spotter-utils.d.ts +8 -1
- package/lib/src/embed/spotter-utils.d.ts.map +1 -1
- package/lib/src/embed/spotter-utils.js +12 -0
- package/lib/src/embed/spotter-utils.js.map +1 -1
- package/lib/src/embed/spotter-utils.spec.js +62 -1
- package/lib/src/embed/spotter-utils.spec.js.map +1 -1
- package/lib/src/embed/spotter-viz-utils.d.ts +34 -0
- package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -1
- package/lib/src/embed/spotter-viz-utils.js.map +1 -1
- package/lib/src/embed/spotter-viz-utils.spec.js +17 -0
- package/lib/src/embed/spotter-viz-utils.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +29 -7
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +146 -0
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/errors.d.ts +1 -0
- package/lib/src/errors.d.ts.map +1 -1
- package/lib/src/errors.js +1 -0
- package/lib/src/errors.js.map +1 -1
- package/lib/src/index.d.ts +2 -2
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +2 -2
- package/lib/src/index.js.map +1 -1
- package/lib/src/mixpanel-service.d.ts +4 -0
- package/lib/src/mixpanel-service.d.ts.map +1 -1
- package/lib/src/mixpanel-service.js +4 -0
- package/lib/src/mixpanel-service.js.map +1 -1
- package/lib/src/react/util.spec.js +251 -0
- package/lib/src/react/util.spec.js.map +1 -1
- package/lib/src/types.d.ts +573 -11
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +519 -2
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/processData.spec.js +93 -0
- package/lib/src/utils/processData.spec.js.map +1 -1
- package/lib/src/utils/processTrigger.spec.js +61 -0
- package/lib/src/utils/processTrigger.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +1161 -46
- package/package.json +1 -1
- package/src/css-variables.ts +118 -0
- package/src/embed/app.spec.ts +530 -183
- package/src/embed/app.ts +209 -66
- package/src/embed/conversation.spec.ts +275 -21
- package/src/embed/conversation.ts +262 -17
- package/src/embed/events.spec.ts +757 -1
- package/src/embed/host-events.spec.ts +194 -0
- package/src/embed/hostEventClient/contracts.ts +57 -14
- package/src/embed/hostEventClient/host-event-client.spec.ts +338 -0
- package/src/embed/hostEventClient/host-event-client.ts +16 -0
- package/src/embed/hostEventClient/utils.spec.ts +204 -0
- package/src/embed/hostEventClient/utils.ts +37 -10
- package/src/embed/liveboard.spec.ts +108 -2
- package/src/embed/liveboard.ts +82 -14
- package/src/embed/spotter-utils.spec.ts +68 -1
- package/src/embed/spotter-utils.ts +16 -1
- package/src/embed/spotter-viz-utils.spec.ts +17 -0
- package/src/embed/spotter-viz-utils.ts +34 -0
- package/src/embed/ts-embed.spec.ts +186 -0
- package/src/embed/ts-embed.ts +30 -4
- package/src/errors.ts +1 -0
- package/src/index.ts +3 -1
- package/src/mixpanel-service.ts +4 -0
- package/src/react/util.spec.tsx +255 -0
- package/src/types.ts +575 -8
- package/src/utils/processData.spec.ts +97 -0
- package/src/utils/processTrigger.spec.ts +91 -0
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import isUndefined from 'lodash/isUndefined';
|
|
2
|
-
import { ERROR_MESSAGE } from '../errors';
|
|
3
1
|
import { Param, BaseViewConfig, RuntimeFilter, RuntimeParameter, ErrorDetailsTypes, EmbedErrorCodes, DefaultAppInitData, VisualizationOverrides, SpotterFileUploadFileTypes } from '../types';
|
|
4
2
|
import { TsEmbed } from './ts-embed';
|
|
5
|
-
import { buildSpotterSidebarAppInitData } from './spotter-utils';
|
|
3
|
+
import { buildSpotterSidebarAppInitData, buildSpotterShareConversationAppInitData } from './spotter-utils';
|
|
6
4
|
import { getQueryParamString, getFilterQuery, getRuntimeParameters, setParamIfDefined } from '../utils';
|
|
7
5
|
|
|
8
6
|
/**
|
|
@@ -15,6 +13,47 @@ export interface SearchOptions {
|
|
|
15
13
|
searchQuery: string;
|
|
16
14
|
}
|
|
17
15
|
|
|
16
|
+
/**
|
|
17
|
+
* The query mode Spotter uses when answering a question.
|
|
18
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
19
|
+
*/
|
|
20
|
+
export enum SpotterQueryMode {
|
|
21
|
+
FAST_SEARCH = 'fastSearch',
|
|
22
|
+
RESEARCH = 'research',
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Configuration for the pin/unpin conversation feature in the Spotter sidebar.
|
|
27
|
+
* Grouped into one object because pin exposes several related settings
|
|
28
|
+
* (enable + label overrides), unlike single-item actions like rename or
|
|
29
|
+
* delete.
|
|
30
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
31
|
+
*/
|
|
32
|
+
export interface SpotterChatPinConfig {
|
|
33
|
+
/**
|
|
34
|
+
* Enables the pin/unpin conversation feature in embedded Spotter. Disabled
|
|
35
|
+
* by default — hosts must opt in. When off, the Pin/Unpin menu entry and
|
|
36
|
+
* the pin glyph are hidden and the PinSpotterConversation /
|
|
37
|
+
* UnpinSpotterConversation host events are no-ops. Native (non-embedded)
|
|
38
|
+
* Spotter is unaffected and ships pin enabled.
|
|
39
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
40
|
+
* @default false
|
|
41
|
+
*/
|
|
42
|
+
enabled?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Custom label text for the pin action in the conversation edit menu.
|
|
45
|
+
* Defaults to translated "Pin" text.
|
|
46
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
47
|
+
*/
|
|
48
|
+
pinLabel?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Custom label text for the unpin action in the conversation edit menu.
|
|
51
|
+
* Defaults to translated "Unpin" text.
|
|
52
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
53
|
+
*/
|
|
54
|
+
unpinLabel?: string;
|
|
55
|
+
}
|
|
56
|
+
|
|
18
57
|
/**
|
|
19
58
|
* Configuration for the Spotter sidebar.
|
|
20
59
|
* Can be used in SpotterEmbed and AppEmbed.
|
|
@@ -52,6 +91,12 @@ export interface SpotterSidebarViewConfig {
|
|
|
52
91
|
* @version SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl
|
|
53
92
|
*/
|
|
54
93
|
spotterChatDeleteLabel?: string;
|
|
94
|
+
/**
|
|
95
|
+
* Pin/unpin conversation feature config (enable + label overrides).
|
|
96
|
+
* Off by default in embed — hosts opt in via `enabled`.
|
|
97
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
98
|
+
*/
|
|
99
|
+
spotterChatPinConfig?: SpotterChatPinConfig;
|
|
55
100
|
/**
|
|
56
101
|
* Custom title text for the delete conversation confirmation modal.
|
|
57
102
|
* Defaults to translated "Delete chat" text.
|
|
@@ -103,6 +148,85 @@ export interface SpotterSidebarViewConfig {
|
|
|
103
148
|
spotterAnalystsLabel?: string;
|
|
104
149
|
}
|
|
105
150
|
|
|
151
|
+
/**
|
|
152
|
+
* Configuration for the Spotter conversation sharing feature.
|
|
153
|
+
* Can be used in SpotterEmbed and AppEmbed.
|
|
154
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
155
|
+
* @group Embed components
|
|
156
|
+
*/
|
|
157
|
+
export interface SpotterShareConversationConfig {
|
|
158
|
+
/**
|
|
159
|
+
* Enables sharing of the conversation.
|
|
160
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
161
|
+
* @default false
|
|
162
|
+
*/
|
|
163
|
+
enableShareConversation?: boolean;
|
|
164
|
+
/**
|
|
165
|
+
* Header Share button + sidebar Share item label.
|
|
166
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
167
|
+
* @default "Share"
|
|
168
|
+
*/
|
|
169
|
+
spotterShareLabel?: string;
|
|
170
|
+
/**
|
|
171
|
+
* Share modal title.
|
|
172
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
173
|
+
*/
|
|
174
|
+
spotterShareModalTitle?: string;
|
|
175
|
+
/**
|
|
176
|
+
* Modal confirm button label.
|
|
177
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
178
|
+
* @default "Share"
|
|
179
|
+
*/
|
|
180
|
+
spotterShareConfirmLabel?: string;
|
|
181
|
+
/**
|
|
182
|
+
* Modal cancel button label.
|
|
183
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
184
|
+
* @default "Cancel"
|
|
185
|
+
*/
|
|
186
|
+
spotterShareCancelLabel?: string;
|
|
187
|
+
/**
|
|
188
|
+
* "Add users or groups" label.
|
|
189
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
190
|
+
*/
|
|
191
|
+
spotterShareAddUsersLabel?: string;
|
|
192
|
+
/**
|
|
193
|
+
* Empty-state title ("No users added yet").
|
|
194
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
195
|
+
*/
|
|
196
|
+
spotterShareEmptyTitle?: string;
|
|
197
|
+
/**
|
|
198
|
+
* Empty-state subtitle ("Not shared with any user").
|
|
199
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
200
|
+
*/
|
|
201
|
+
spotterShareEmptySubtitle?: string;
|
|
202
|
+
/**
|
|
203
|
+
* "Include new messages since last shared version" checkbox label.
|
|
204
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
205
|
+
*/
|
|
206
|
+
spotterShareIncludeNewMessagesLabel?: string;
|
|
207
|
+
/**
|
|
208
|
+
* Footer note when the snapshot is current ("…up to the current moment…").
|
|
209
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
210
|
+
*/
|
|
211
|
+
spotterShareUpToCurrentLabel?: string;
|
|
212
|
+
/**
|
|
213
|
+
* Stale-snapshot info banner text ("All added users and groups will receive…").
|
|
214
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
215
|
+
*/
|
|
216
|
+
spotterShareStaleInfoLabel?: string;
|
|
217
|
+
/**
|
|
218
|
+
* Read-only shared-view data-access banner message.
|
|
219
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
220
|
+
*/
|
|
221
|
+
spotterSharedConversationBannerMessage?: string;
|
|
222
|
+
/**
|
|
223
|
+
* Read-only shared-view Exit button label.
|
|
224
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
225
|
+
* @default "Exit"
|
|
226
|
+
*/
|
|
227
|
+
spotterSharedConversationExitLabel?: string;
|
|
228
|
+
}
|
|
229
|
+
|
|
106
230
|
/**
|
|
107
231
|
* Configuration for customizing Spotter chat UI branding.
|
|
108
232
|
* @version SDK: 1.46.0 | ThoughtSpot: 26.4.0.cl
|
|
@@ -158,8 +282,27 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
|
|
|
158
282
|
/**
|
|
159
283
|
* The ID of the data source object. For example, Model, View, or Table. Spotter uses
|
|
160
284
|
* this object to query data and generate Answers.
|
|
285
|
+
* This field is optional. If not provided, Spotter loads using the
|
|
286
|
+
* previously selected user data source.
|
|
287
|
+
*/
|
|
288
|
+
worksheetId?: string;
|
|
289
|
+
/**
|
|
290
|
+
* The array of data source GUIDs to set on load. Spotter uses
|
|
291
|
+
* these GUIDs to query data and generate Answers.
|
|
292
|
+
* dataSources is preferred over worksheetId if both are provided.
|
|
293
|
+
* The feature is currently behind a feature flag.
|
|
294
|
+
*
|
|
295
|
+
* Supported embed types: `SpotterEmbed`
|
|
296
|
+
* @example
|
|
297
|
+
* ```js
|
|
298
|
+
* const embed = new SpotterEmbed('#tsEmbed', {
|
|
299
|
+
* // ...other embed view config
|
|
300
|
+
* dataSources: ['id-2345', 'id-2345'],
|
|
301
|
+
* });
|
|
302
|
+
* ```
|
|
303
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
161
304
|
*/
|
|
162
|
-
|
|
305
|
+
dataSources?: string[];
|
|
163
306
|
/**
|
|
164
307
|
* Ability to pass a starting search query to the conversation.
|
|
165
308
|
*/
|
|
@@ -319,6 +462,39 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
|
|
|
319
462
|
* ```
|
|
320
463
|
*/
|
|
321
464
|
updatedSpotterChatPrompt?: boolean;
|
|
465
|
+
/**
|
|
466
|
+
* showSpotterRadiance : Controls the radiance on the Spotter page.
|
|
467
|
+
*
|
|
468
|
+
* Supported embed types: `SpotterEmbed`
|
|
469
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
470
|
+
* @default false
|
|
471
|
+
* @example
|
|
472
|
+
* ```js
|
|
473
|
+
* const embed = new SpotterEmbed('#tsEmbed', {
|
|
474
|
+
* ... //other embed view config
|
|
475
|
+
* showSpotterRadiance : true,
|
|
476
|
+
* })
|
|
477
|
+
* ```
|
|
478
|
+
*/
|
|
479
|
+
showSpotterRadiance?: boolean;
|
|
480
|
+
/**
|
|
481
|
+
* Sets the default query mode when Spotter loads — Fast Search or
|
|
482
|
+
* Research Mode. Applies fresh on every new session for this embed
|
|
483
|
+
* instance only; it does not persist as a user preference and does
|
|
484
|
+
* not affect other embeds or native ThoughtSpot usage.
|
|
485
|
+
*
|
|
486
|
+
* Supported embed types: `SpotterEmbed`, `AppEmbed`
|
|
487
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
488
|
+
* @default SpotterQueryMode.FAST_SEARCH
|
|
489
|
+
* @example
|
|
490
|
+
* ```js
|
|
491
|
+
* const embed = new SpotterEmbed('#tsEmbed', {
|
|
492
|
+
* ... //other embed view config
|
|
493
|
+
* defaultQueryMode: SpotterQueryMode.RESEARCH,
|
|
494
|
+
* })
|
|
495
|
+
* ```
|
|
496
|
+
*/
|
|
497
|
+
defaultQueryMode?: SpotterQueryMode;
|
|
322
498
|
/**
|
|
323
499
|
* Enables the stop answer generation button in the Spotter embed UI,
|
|
324
500
|
* allowing users to interrupt an ongoing answer generation.
|
|
@@ -377,6 +553,59 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
|
|
|
377
553
|
* ```
|
|
378
554
|
*/
|
|
379
555
|
spotterChatConfig?: SpotterChatViewConfig;
|
|
556
|
+
/**
|
|
557
|
+
* Configuration for the Spotter conversation sharing feature.
|
|
558
|
+
*
|
|
559
|
+
* Supported embed types: `SpotterEmbed`, `AppEmbed`
|
|
560
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
561
|
+
* @example
|
|
562
|
+
* ```js
|
|
563
|
+
* const embed = new SpotterEmbed('#tsEmbed', {
|
|
564
|
+
* ... //other embed view config
|
|
565
|
+
* spotterShareConversationConfig: {
|
|
566
|
+
* enableShareConversation: true,
|
|
567
|
+
* },
|
|
568
|
+
* })
|
|
569
|
+
* ```
|
|
570
|
+
*/
|
|
571
|
+
spotterShareConversationConfig?: SpotterShareConversationConfig;
|
|
572
|
+
/**
|
|
573
|
+
* The ID of a shared Spotter conversation to open directly in the read-only
|
|
574
|
+
* reader view. Use this to land a share recipient in the shared conversation
|
|
575
|
+
* when they open a host-configured `CONVERSATION_URL` share link: read the
|
|
576
|
+
* `{conversation-id}` from your page URL and pass it here.
|
|
577
|
+
*
|
|
578
|
+
* Requires the Spotter conversation-sharing feature to be enabled
|
|
579
|
+
* (`spotterShareConversationConfig.enableShareConversation`). The recipient
|
|
580
|
+
* must be an authorized sharee — the server returns access-denied otherwise.
|
|
581
|
+
*
|
|
582
|
+
* Supported embed types: `SpotterEmbed`
|
|
583
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
584
|
+
* @example
|
|
585
|
+
* ```js
|
|
586
|
+
* const convId = new URLSearchParams(window.location.search).get('conversation-id');
|
|
587
|
+
* const embed = new SpotterEmbed('#tsEmbed', {
|
|
588
|
+
* ... //other embed view config
|
|
589
|
+
* sharedConversationId: convId,
|
|
590
|
+
* })
|
|
591
|
+
* ```
|
|
592
|
+
*/
|
|
593
|
+
sharedConversationId?: string;
|
|
594
|
+
/**
|
|
595
|
+
* updatedSpotterExperience : Controls the updated Spotter experience.
|
|
596
|
+
*
|
|
597
|
+
* Supported embed types: `SpotterEmbed`
|
|
598
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
599
|
+
* @default false
|
|
600
|
+
* @example
|
|
601
|
+
* ```js
|
|
602
|
+
* const embed = new SpotterEmbed('#tsEmbed', {
|
|
603
|
+
* ... //other embed view config
|
|
604
|
+
* updatedSpotterExperience : true,
|
|
605
|
+
* })
|
|
606
|
+
* ```
|
|
607
|
+
*/
|
|
608
|
+
updatedSpotterExperience?: boolean;
|
|
380
609
|
}
|
|
381
610
|
|
|
382
611
|
/**
|
|
@@ -395,6 +624,7 @@ export interface ConversationViewConfig extends SpotterEmbedViewConfig {}
|
|
|
395
624
|
export interface SpotterAppInitData extends DefaultAppInitData {
|
|
396
625
|
embedParams?: {
|
|
397
626
|
spotterSidebarConfig?: SpotterSidebarViewConfig;
|
|
627
|
+
spotterShareConversationConfig?: SpotterShareConversationConfig;
|
|
398
628
|
visualOverridesParams?: VisualizationOverrides | null;
|
|
399
629
|
};
|
|
400
630
|
}
|
|
@@ -439,16 +669,21 @@ export class SpotterEmbed extends TsEmbed {
|
|
|
439
669
|
*/
|
|
440
670
|
protected async getAppInitData(): Promise<SpotterAppInitData> {
|
|
441
671
|
const defaultAppInitData = await super.getAppInitData();
|
|
442
|
-
|
|
672
|
+
const sidebarInitData = buildSpotterSidebarAppInitData(
|
|
673
|
+
defaultAppInitData,
|
|
674
|
+
this.viewConfig,
|
|
675
|
+
this.handleError.bind(this),
|
|
676
|
+
);
|
|
677
|
+
return buildSpotterShareConversationAppInitData(sidebarInitData, this.viewConfig);
|
|
443
678
|
}
|
|
444
679
|
|
|
445
680
|
protected getEmbedParamsObject() {
|
|
446
681
|
const {
|
|
447
|
-
worksheetId,
|
|
448
682
|
searchOptions,
|
|
449
683
|
disableSourceSelection,
|
|
450
684
|
hideSourceSelection,
|
|
451
685
|
dataPanelV2,
|
|
686
|
+
updatedSpotterExperience,
|
|
452
687
|
showSpotterLimitations,
|
|
453
688
|
hideSampleQuestions,
|
|
454
689
|
runtimeFilters,
|
|
@@ -456,18 +691,12 @@ export class SpotterEmbed extends TsEmbed {
|
|
|
456
691
|
runtimeParameters,
|
|
457
692
|
excludeRuntimeParametersfromURL,
|
|
458
693
|
updatedSpotterChatPrompt,
|
|
694
|
+
showSpotterRadiance,
|
|
695
|
+
defaultQueryMode,
|
|
459
696
|
enableStopAnswerGenerationEmbed,
|
|
460
697
|
spotterChatConfig,
|
|
461
698
|
} = this.viewConfig;
|
|
462
699
|
|
|
463
|
-
if (!worksheetId) {
|
|
464
|
-
this.handleError({
|
|
465
|
-
errorType: ErrorDetailsTypes.VALIDATION_ERROR,
|
|
466
|
-
message: ERROR_MESSAGE.SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND,
|
|
467
|
-
code: EmbedErrorCodes.WORKSHEET_ID_NOT_FOUND,
|
|
468
|
-
error: ERROR_MESSAGE.SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND,
|
|
469
|
-
});
|
|
470
|
-
}
|
|
471
700
|
const queryParams = this.getBaseQueryParams();
|
|
472
701
|
queryParams[Param.SpotterEnabled] = true;
|
|
473
702
|
|
|
@@ -478,6 +707,8 @@ export class SpotterEmbed extends TsEmbed {
|
|
|
478
707
|
setParamIfDefined(queryParams, Param.ShowSpotterLimitations, showSpotterLimitations, true);
|
|
479
708
|
setParamIfDefined(queryParams, Param.HideSampleQuestions, hideSampleQuestions, true);
|
|
480
709
|
setParamIfDefined(queryParams, Param.UpdatedSpotterChatPrompt, updatedSpotterChatPrompt, true);
|
|
710
|
+
setParamIfDefined(queryParams, Param.ShowSpotterRadiance, showSpotterRadiance, true);
|
|
711
|
+
setParamIfDefined(queryParams, Param.DefaultQueryMode, defaultQueryMode);
|
|
481
712
|
setParamIfDefined(queryParams, Param.EnableStopAnswerGenerationEmbed, enableStopAnswerGenerationEmbed, true);
|
|
482
713
|
|
|
483
714
|
// Handle spotterChatConfig params
|
|
@@ -499,6 +730,8 @@ export class SpotterEmbed extends TsEmbed {
|
|
|
499
730
|
}
|
|
500
731
|
}
|
|
501
732
|
|
|
733
|
+
setParamIfDefined(queryParams, Param.UpdatedSpotterExperience, updatedSpotterExperience, true);
|
|
734
|
+
|
|
502
735
|
return queryParams;
|
|
503
736
|
}
|
|
504
737
|
|
|
@@ -510,8 +743,16 @@ export class SpotterEmbed extends TsEmbed {
|
|
|
510
743
|
excludeRuntimeFiltersfromURL,
|
|
511
744
|
runtimeParameters,
|
|
512
745
|
excludeRuntimeParametersfromURL,
|
|
746
|
+
sharedConversationId,
|
|
747
|
+
dataSources,
|
|
513
748
|
} = this.viewConfig;
|
|
514
|
-
|
|
749
|
+
// Deep-link into the read-only shared-conversation reader view when a
|
|
750
|
+
// shared conversation id is supplied (e.g. a recipient landing from a
|
|
751
|
+
// host-configured CONVERSATION_URL share link); otherwise the normal
|
|
752
|
+
// Spotter conversation surface.
|
|
753
|
+
const path = sharedConversationId
|
|
754
|
+
? `insights/conv-assist/s/${encodeURIComponent(sharedConversationId)}`
|
|
755
|
+
: 'insights/conv-assist';
|
|
515
756
|
const queryParams = this.getEmbedParamsObject();
|
|
516
757
|
|
|
517
758
|
let query = '';
|
|
@@ -531,8 +772,12 @@ export class SpotterEmbed extends TsEmbed {
|
|
|
531
772
|
}
|
|
532
773
|
|
|
533
774
|
const tsPostHashParams = this.getThoughtSpotPostUrlParams({
|
|
534
|
-
|
|
535
|
-
|
|
775
|
+
...(!(Array.isArray(dataSources) && dataSources.length > 0) && worksheetId
|
|
776
|
+
&& { worksheet: worksheetId }),
|
|
777
|
+
...(searchOptions?.searchQuery && { query: searchOptions.searchQuery }),
|
|
778
|
+
...(Array.isArray(dataSources)
|
|
779
|
+
&& dataSources.length > 0
|
|
780
|
+
&& { dataSources: JSON.stringify(dataSources) }),
|
|
536
781
|
});
|
|
537
782
|
return `${this.getEmbedBasePath(query)}/embed/${path}${tsPostHashParams}`;
|
|
538
783
|
}
|