@thoughtspot/visual-embed-sdk 1.46.1 → 1.46.2
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 -4
- package/cjs/src/auth.js.map +1 -1
- package/cjs/src/css-variables.d.ts +17 -17
- package/cjs/src/embed/app.d.ts +60 -32
- 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/base.d.ts +2 -2
- package/cjs/src/embed/base.js +2 -2
- 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/liveboard.d.ts +40 -34
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +1 -1
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +1 -1
- 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 -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/ts-embed.d.ts +3 -3
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +12 -6
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +35 -0
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/react/index.d.ts +15 -15
- package/cjs/src/react/index.js +12 -12
- package/cjs/src/tokenizedFetch.d.ts +1 -1
- package/cjs/src/tokenizedFetch.js +1 -1
- package/cjs/src/types.d.ts +294 -255
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +206 -200
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/graphql/answerService/answerService.d.ts +4 -2
- package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/cjs/src/utils/graphql/answerService/answerService.js +6 -4
- 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.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-DkizS4xM.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 +60 -32
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/base.d.ts +2 -2
- 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 +40 -34
- 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/react/index.d.ts +15 -15
- package/dist/src/tokenizedFetch.d.ts +1 -1
- package/dist/src/types.d.ts +294 -255
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/graphql/answerService/answerService.d.ts +4 -2
- 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 +307 -275
- package/dist/tsembed-react.js +306 -274
- package/dist/tsembed.es.js +299 -267
- package/dist/tsembed.js +298 -266
- package/dist/visual-embed-sdk-react-full.d.ts +520 -409
- package/dist/visual-embed-sdk-react.d.ts +518 -407
- package/dist/visual-embed-sdk.d.ts +519 -408
- 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 -4
- package/lib/src/auth.js.map +1 -1
- package/lib/src/css-variables.d.ts +17 -17
- package/lib/src/embed/app.d.ts +60 -32
- 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/base.d.ts +2 -2
- package/lib/src/embed/base.js +2 -2
- 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/liveboard.d.ts +40 -34
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +1 -1
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +1 -1
- 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 -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/ts-embed.d.ts +3 -3
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +12 -6
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +35 -0
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/react/index.d.ts +15 -15
- package/lib/src/react/index.js +12 -12
- package/lib/src/tokenizedFetch.d.ts +1 -1
- package/lib/src/tokenizedFetch.js +1 -1
- package/lib/src/types.d.ts +294 -255
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +206 -200
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/graphql/answerService/answerService.d.ts +4 -2
- package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/lib/src/utils/graphql/answerService/answerService.js +5 -3
- 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.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/package.json +1 -1
- package/src/auth.ts +29 -4
- package/src/css-variables.ts +17 -17
- package/src/embed/app.spec.ts +46 -1
- package/src/embed/app.ts +72 -35
- package/src/embed/base.ts +2 -2
- 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/liveboard.spec.ts +1 -1
- package/src/embed/liveboard.ts +40 -34
- package/src/embed/sage.ts +5 -5
- package/src/embed/search-bar.tsx +7 -7
- package/src/embed/search.ts +13 -12
- package/src/embed/ts-embed.spec.ts +42 -0
- package/src/embed/ts-embed.ts +11 -6
- package/src/react/index.tsx +15 -15
- package/src/tokenizedFetch.ts +1 -1
- package/src/types.ts +293 -254
- package/src/utils/graphql/answerService/answerService.spec.ts +62 -0
- package/src/utils/graphql/answerService/answerService.ts +6 -3
- package/src/utils.ts +14 -0
package/src/embed/sage.ts
CHANGED
|
@@ -30,7 +30,7 @@ export interface SearchOptions {
|
|
|
30
30
|
/**
|
|
31
31
|
* The configuration attributes for the embedded Natural language search view. Based on
|
|
32
32
|
* GPT and LLM.
|
|
33
|
-
* @version
|
|
33
|
+
* @version SDK: 1.23.0 | ThoughtSpot: 9.8.0.cl, 9.8.0.sw
|
|
34
34
|
*
|
|
35
35
|
* Note: This embed will be deprecated from SDK: 1.40.0 | ThoughtSpot: 10.13.0.cl
|
|
36
36
|
* @group Embed components
|
|
@@ -85,14 +85,14 @@ export interface SageViewConfig
|
|
|
85
85
|
hideAutocompleteSuggestions?: boolean;
|
|
86
86
|
/**
|
|
87
87
|
* Show or hide autocomplete suggestions for the search query string.
|
|
88
|
+
* You can use {@link hideAutocompleteSuggestions} instead.
|
|
88
89
|
* @deprecated
|
|
89
90
|
* Currently, the object suggestions will not be shown for Natural Language Search.
|
|
90
|
-
* You can use {@link hideAutocompleteSuggestions} instead.
|
|
91
91
|
*/
|
|
92
92
|
showObjectSuggestions?: boolean;
|
|
93
93
|
/**
|
|
94
94
|
* Show or hide sample questions.
|
|
95
|
-
* The sample questions are autogenerated based on the data
|
|
95
|
+
* The sample questions are autogenerated based on the data model
|
|
96
96
|
* selected for the search operation.
|
|
97
97
|
*
|
|
98
98
|
* Supported embed types: `SageEmbed`
|
|
@@ -122,6 +122,7 @@ export interface SageViewConfig
|
|
|
122
122
|
* the token string in the search bar.
|
|
123
123
|
*
|
|
124
124
|
* Supported embed types: `SageEmbed`
|
|
125
|
+
* @version SDK: 1.26.0 | ThoughtSpot: 9.8.0.cl, 9.8.0.sw
|
|
125
126
|
* @example
|
|
126
127
|
* ```js
|
|
127
128
|
* searchOptions: {
|
|
@@ -129,13 +130,12 @@ export interface SageViewConfig
|
|
|
129
130
|
* executeSearch: true,
|
|
130
131
|
* }
|
|
131
132
|
* ```
|
|
132
|
-
* @version SDK: 1.26.0 | ThoughtSpot: 9.8.0.cl, 9.8.0.sw
|
|
133
133
|
*/
|
|
134
134
|
searchOptions?: SearchOptions;
|
|
135
135
|
}
|
|
136
136
|
/**
|
|
137
137
|
* Embed ThoughtSpot LLM and GPT-based Natural Language Search component.
|
|
138
|
-
* @version
|
|
138
|
+
* @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.1-sw
|
|
139
139
|
*
|
|
140
140
|
* Note: This embed will be deprecated from SDK: 1.40.0 | ThoughtSpot: 10.13.0.cl
|
|
141
141
|
* @group Embed components
|
package/src/embed/search-bar.tsx
CHANGED
|
@@ -12,8 +12,8 @@ export interface SearchBarViewConfig extends BaseViewConfig, SearchLiveboardComm
|
|
|
12
12
|
* Only a single data source is supported currently.
|
|
13
13
|
*
|
|
14
14
|
* Supported embed types: `SearchBarEmbed`
|
|
15
|
+
* @version SDK: 1.1.0 | ThoughtSpot: 8.1.1-sw
|
|
15
16
|
* @deprecated Use `dataSource` instead
|
|
16
|
-
* @version: SDK: 1.1.0 | ThoughtSpot: 8.1.1-sw
|
|
17
17
|
* @example
|
|
18
18
|
* ```js
|
|
19
19
|
* const embed = new SearchBarEmbed('#tsEmbed', {
|
|
@@ -27,7 +27,7 @@ export interface SearchBarViewConfig extends BaseViewConfig, SearchLiveboardComm
|
|
|
27
27
|
* Pass the ID of the source to be selected.
|
|
28
28
|
*
|
|
29
29
|
* Supported embed types: `SearchBarEmbed`
|
|
30
|
-
* @version
|
|
30
|
+
* @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1.sw
|
|
31
31
|
* @example
|
|
32
32
|
* ```js
|
|
33
33
|
* const embed = new SearchBarEmbed('#tsEmbed', {
|
|
@@ -41,7 +41,7 @@ export interface SearchBarViewConfig extends BaseViewConfig, SearchLiveboardComm
|
|
|
41
41
|
* Boolean to define if the last selected data source should be used
|
|
42
42
|
*
|
|
43
43
|
* Supported embed types: `SearchBarEmbed`
|
|
44
|
-
* @version
|
|
44
|
+
* @version SDK: 1.24.0 | ThoughtSpot: 9.5.0.cl, 9.5.0.sw
|
|
45
45
|
* @example
|
|
46
46
|
* ```js
|
|
47
47
|
* const embed = new SearchBarEmbed('#tsEmbed', {
|
|
@@ -63,7 +63,7 @@ export interface SearchBarViewConfig extends BaseViewConfig, SearchLiveboardComm
|
|
|
63
63
|
* the token string in the search bar.
|
|
64
64
|
*
|
|
65
65
|
* Supported embed types: `SearchBarEmbed`
|
|
66
|
-
* @version
|
|
66
|
+
* @version SDK: 1.2.0 | ThoughtSpot: 9.4.0.sw
|
|
67
67
|
* @example
|
|
68
68
|
* ```js
|
|
69
69
|
* const embed = new SearchBarEmbed('#tsEmbed', {
|
|
@@ -81,10 +81,10 @@ export interface SearchBarViewConfig extends BaseViewConfig, SearchLiveboardComm
|
|
|
81
81
|
* If set to true, the search token string is not appended to the URL.
|
|
82
82
|
*
|
|
83
83
|
* Supported embed types: `SearchBarEmbed`
|
|
84
|
-
* @version
|
|
84
|
+
* @version SDK: 1.35.7 | ThoughtSpot: 10.8.0.cl
|
|
85
85
|
* @example
|
|
86
86
|
* ```js
|
|
87
|
-
* const embed = new
|
|
87
|
+
* const embed = new SearchBarEmbed('#tsEmbed', {
|
|
88
88
|
* searchOptions: {
|
|
89
89
|
* searchTokenString: '[quantity purchased] [region]',
|
|
90
90
|
* executeSearch: true,
|
|
@@ -102,7 +102,7 @@ export interface SearchAppInitData extends DefaultAppInitData {
|
|
|
102
102
|
|
|
103
103
|
/**
|
|
104
104
|
* Embed ThoughtSpot search bar
|
|
105
|
-
* @version
|
|
105
|
+
* @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1-sw
|
|
106
106
|
* @group Embed components
|
|
107
107
|
*/
|
|
108
108
|
export class SearchBarEmbed extends TsEmbed {
|
package/src/embed/search.ts
CHANGED
|
@@ -77,7 +77,7 @@ export interface SearchViewConfig
|
|
|
77
77
|
* but can be expanded manually.
|
|
78
78
|
*
|
|
79
79
|
* Supported embed types: `SearchEmbed`
|
|
80
|
-
* @version
|
|
80
|
+
* @version SDK: 1.1.0 | ThoughtSpot: 8.1.0.sw
|
|
81
81
|
* @example
|
|
82
82
|
* ```js
|
|
83
83
|
* const embed = new SearchEmbed('#tsEmbed', {
|
|
@@ -92,7 +92,7 @@ export interface SearchViewConfig
|
|
|
92
92
|
* but can be expanded manually.
|
|
93
93
|
*
|
|
94
94
|
* Supported embed types: `SearchEmbed`
|
|
95
|
-
* @version
|
|
95
|
+
* @version SDK: 1.34.0 | ThoughtSpot: 10.3.0.cl
|
|
96
96
|
* @example
|
|
97
97
|
* ```js
|
|
98
98
|
* const embed = new SearchEmbed('#tsEmbed', {
|
|
@@ -106,7 +106,7 @@ export interface SearchViewConfig
|
|
|
106
106
|
* Show or hide the data sources panel.
|
|
107
107
|
*
|
|
108
108
|
* Supported embed types: `SearchEmbed`
|
|
109
|
-
* @version
|
|
109
|
+
* @version SDK: 1.2.0 | ThoughtSpot: 9.1.0.sw
|
|
110
110
|
* @example
|
|
111
111
|
* ```js
|
|
112
112
|
* const embed = new SearchEmbed('#tsEmbed', {
|
|
@@ -122,7 +122,7 @@ export interface SearchViewConfig
|
|
|
122
122
|
* using raw answer data.
|
|
123
123
|
*
|
|
124
124
|
* Supported embed types: `SearchEmbed`
|
|
125
|
-
* @version
|
|
125
|
+
* @version SDK: 1.2.0 | ThoughtSpot: 9.1.0.sw
|
|
126
126
|
* @example
|
|
127
127
|
* ```js
|
|
128
128
|
* const embed = new SearchEmbed('#tsEmbed', {
|
|
@@ -151,7 +151,7 @@ export interface SearchViewConfig
|
|
|
151
151
|
* format for presenting search data.
|
|
152
152
|
*
|
|
153
153
|
* Supported embed types: `SearchEmbed`
|
|
154
|
-
* @version
|
|
154
|
+
* @version SDK: 1.1.0 | ThoughtSpot: 8.1.0.sw
|
|
155
155
|
* @example
|
|
156
156
|
* ```js
|
|
157
157
|
* const embed = new SearchEmbed('#tsEmbed', {
|
|
@@ -164,6 +164,7 @@ export interface SearchViewConfig
|
|
|
164
164
|
/**
|
|
165
165
|
* The array of data source GUIDs to set on load.
|
|
166
166
|
* Only a single data source is supported currently.
|
|
167
|
+
* Use {@link dataSource} instead.
|
|
167
168
|
* @deprecated Use `dataSource` instead.
|
|
168
169
|
*
|
|
169
170
|
* Supported embed types: `SearchEmbed`
|
|
@@ -177,10 +178,10 @@ export interface SearchViewConfig
|
|
|
177
178
|
*/
|
|
178
179
|
dataSources?: string[];
|
|
179
180
|
/**
|
|
180
|
-
* The
|
|
181
|
+
* The data source GUID to set on load.
|
|
181
182
|
*
|
|
182
183
|
* Supported embed types: `SearchEmbed`
|
|
183
|
-
* @version
|
|
184
|
+
* @version SDK: 1.19.0
|
|
184
185
|
* @example
|
|
185
186
|
* ```js
|
|
186
187
|
* const embed = new SearchEmbed('#tsEmbed', {
|
|
@@ -192,9 +193,9 @@ export interface SearchViewConfig
|
|
|
192
193
|
dataSource?: string;
|
|
193
194
|
/**
|
|
194
195
|
* The initial search query to load the answer with.
|
|
196
|
+
* Use {@link searchOptions} instead.
|
|
195
197
|
* @deprecated
|
|
196
198
|
*
|
|
197
|
-
* Use {@link searchOptions} instead.
|
|
198
199
|
*/
|
|
199
200
|
searchQuery?: string;
|
|
200
201
|
/**
|
|
@@ -223,7 +224,7 @@ export interface SearchViewConfig
|
|
|
223
224
|
* If set to true, the search token string is not appended to the URL.
|
|
224
225
|
*
|
|
225
226
|
* Supported embed types: `SearchEmbed`
|
|
226
|
-
* @version
|
|
227
|
+
* @version SDK: 1.35.7 | ThoughtSpot: 10.8.0.cl
|
|
227
228
|
* @example
|
|
228
229
|
* ```js
|
|
229
230
|
* const embed = new SearchEmbed('#tsEmbed', {
|
|
@@ -240,7 +241,7 @@ export interface SearchViewConfig
|
|
|
240
241
|
* The GUID of a saved answer to load initially.
|
|
241
242
|
*
|
|
242
243
|
* Supported embed types: `SearchEmbed`
|
|
243
|
-
* @version
|
|
244
|
+
* @version SDK: 1.1.0 | ThoughtSpot: 8.1.0.sw
|
|
244
245
|
* @example
|
|
245
246
|
* ```js
|
|
246
247
|
* const embed = new SearchEmbed('#tsEmbed', {
|
|
@@ -269,14 +270,14 @@ export interface SearchViewConfig
|
|
|
269
270
|
* Flag to set if last selected dataSource should be used
|
|
270
271
|
*
|
|
271
272
|
* Supported embed types: `SearchEmbed`
|
|
272
|
-
* @version
|
|
273
|
+
* @version SDK: 1.24.0
|
|
273
274
|
*/
|
|
274
275
|
useLastSelectedSources?: boolean;
|
|
275
276
|
/**
|
|
276
277
|
* To set the initial state of the search bar in case of saved-answers.
|
|
277
|
-
* @default false
|
|
278
278
|
* @version SDK: 1.32.0 | ThoughtSpot: 10.0.0.cl
|
|
279
279
|
* @deprecated Use {@link collapseSearchBar} instead
|
|
280
|
+
* @default false
|
|
280
281
|
*/
|
|
281
282
|
collapseSearchBarInitially?: boolean;
|
|
282
283
|
/**
|
|
@@ -2034,6 +2034,36 @@ describe('Unit test case for ts embed', () => {
|
|
|
2034
2034
|
+ `&locale=ja-JP${defaultParamsPost}#/home`,
|
|
2035
2035
|
);
|
|
2036
2036
|
});
|
|
2037
|
+
it('Sets both params when enableLinkOverridesV2 is set', async () => {
|
|
2038
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
2039
|
+
frameParams: {
|
|
2040
|
+
width: '100%',
|
|
2041
|
+
height: '100%',
|
|
2042
|
+
},
|
|
2043
|
+
liveboardId: 'test-lb',
|
|
2044
|
+
enableLinkOverridesV2: true,
|
|
2045
|
+
});
|
|
2046
|
+
await liveboardEmbed.render();
|
|
2047
|
+
expectUrlMatchesWithParams(
|
|
2048
|
+
getIFrameSrc(),
|
|
2049
|
+
`http://${thoughtSpotHost}/?embedApp=true&${defaultParamsForPinboardEmbed}&enableLinkOverridesV2=true&linkOverride=true${defaultParamsPost}#/embed/viz/test-lb`,
|
|
2050
|
+
);
|
|
2051
|
+
});
|
|
2052
|
+
it('Sets only linkOverride when enableLinkOverridesV2 is not set', async () => {
|
|
2053
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
2054
|
+
frameParams: {
|
|
2055
|
+
width: '100%',
|
|
2056
|
+
height: '100%',
|
|
2057
|
+
},
|
|
2058
|
+
liveboardId: 'test-lb',
|
|
2059
|
+
linkOverride: true,
|
|
2060
|
+
});
|
|
2061
|
+
await liveboardEmbed.render();
|
|
2062
|
+
expectUrlMatchesWithParams(
|
|
2063
|
+
getIFrameSrc(),
|
|
2064
|
+
`http://${thoughtSpotHost}/?embedApp=true&${defaultParamsForPinboardEmbed}&linkOverride=true${defaultParamsPost}#/embed/viz/test-lb`,
|
|
2065
|
+
);
|
|
2066
|
+
});
|
|
2037
2067
|
it('Sets the iconSprite url', async () => {
|
|
2038
2068
|
const appEmbed = new AppEmbed(getRootEl(), {
|
|
2039
2069
|
frameParams: {
|
|
@@ -4513,4 +4543,16 @@ describe('ShowPreRender with UpdateEmbedParams', () => {
|
|
|
4513
4543
|
|
|
4514
4544
|
handleErrorSpy.mockRestore();
|
|
4515
4545
|
});
|
|
4546
|
+
|
|
4547
|
+
test('should set allow "local-network-access" correctly on the iframe', async () => {
|
|
4548
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
4549
|
+
frameParams: { width: '100%', height: '100%' },
|
|
4550
|
+
});
|
|
4551
|
+
await appEmbed.render();
|
|
4552
|
+
const iframe = getIFrameEl();
|
|
4553
|
+
expect(iframe.allow).toContain('local-network-access');
|
|
4554
|
+
expect(iframe.allow).toContain('fullscreen');
|
|
4555
|
+
expect(iframe.allow).toContain('clipboard-read');
|
|
4556
|
+
expect(iframe.allow).toContain('clipboard-write');
|
|
4557
|
+
});
|
|
4516
4558
|
});
|
package/src/embed/ts-embed.ts
CHANGED
|
@@ -174,9 +174,9 @@ export class TsEmbed {
|
|
|
174
174
|
private isPreRendered: boolean;
|
|
175
175
|
|
|
176
176
|
/**
|
|
177
|
-
* Should we encode URL Query Params using base64 encoding which
|
|
177
|
+
* Should we encode URL Query Params using base64 encoding which ThoughtSpot
|
|
178
178
|
* will generate for embedding. This provides additional security to
|
|
179
|
-
*
|
|
179
|
+
* ThoughtSpot clusters against Cross site scripting attacks.
|
|
180
180
|
* @default false
|
|
181
181
|
*/
|
|
182
182
|
private shouldEncodeUrlQueryParams = false;
|
|
@@ -699,6 +699,7 @@ export class TsEmbed {
|
|
|
699
699
|
customizations,
|
|
700
700
|
contextMenuTrigger,
|
|
701
701
|
linkOverride,
|
|
702
|
+
enableLinkOverridesV2,
|
|
702
703
|
insertInToSlide,
|
|
703
704
|
disableRedirectionLinksInNewTab,
|
|
704
705
|
overrideOrgId,
|
|
@@ -786,8 +787,12 @@ export class TsEmbed {
|
|
|
786
787
|
if (locale !== undefined) {
|
|
787
788
|
queryParams[Param.Locale] = locale;
|
|
788
789
|
}
|
|
789
|
-
|
|
790
|
-
|
|
790
|
+
// TODO: Once V2 is stable, send both flags when
|
|
791
|
+
// linkOverride is true (remove the else-if).
|
|
792
|
+
if (enableLinkOverridesV2) {
|
|
793
|
+
queryParams[Param.EnableLinkOverridesV2] = true;
|
|
794
|
+
queryParams[Param.LinkOverride] = true;
|
|
795
|
+
} else if (linkOverride) {
|
|
791
796
|
queryParams[Param.LinkOverride] = linkOverride;
|
|
792
797
|
}
|
|
793
798
|
if (insertInToSlide) {
|
|
@@ -867,7 +872,7 @@ export class TsEmbed {
|
|
|
867
872
|
iFrame.mozallowfullscreen = true;
|
|
868
873
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
869
874
|
// @ts-ignore
|
|
870
|
-
iFrame.allow = 'clipboard-read; clipboard-write; fullscreen;';
|
|
875
|
+
iFrame.allow = 'clipboard-read; clipboard-write; fullscreen; local-network-access;';
|
|
871
876
|
|
|
872
877
|
const frameParams = this.viewConfig.frameParams;
|
|
873
878
|
const { height: frameHeight, width: frameWidth, ...restParams } = frameParams || {};
|
|
@@ -1751,7 +1756,7 @@ export class TsEmbed {
|
|
|
1751
1756
|
* Returns the answerService which can be used to make arbitrary graphql calls on top
|
|
1752
1757
|
* session.
|
|
1753
1758
|
* @param vizId [Optional] to get for a specific viz in case of a Liveboard.
|
|
1754
|
-
* @version SDK: 1.25.0
|
|
1759
|
+
* @version SDK: 1.25.0 | ThoughtSpot: 9.10.0
|
|
1755
1760
|
*/
|
|
1756
1761
|
public async getAnswerService(vizId?: string): Promise<AnswerService> {
|
|
1757
1762
|
const { session } = await this.trigger(HostEvent.GetAnswerSession, vizId ? { vizId } : {});
|
package/src/react/index.tsx
CHANGED
|
@@ -111,6 +111,9 @@ interface PreRenderProps {
|
|
|
111
111
|
* PreRender id to be used for PreRendering the embed.
|
|
112
112
|
* Use PreRender to render the embed in the background and then
|
|
113
113
|
* show or hide the rendered embed using showPreRender or hidePreRender respectively.
|
|
114
|
+
*
|
|
115
|
+
* Use PreRendered react component for pre rendering embed components.
|
|
116
|
+
* @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl
|
|
114
117
|
* @example
|
|
115
118
|
* ```js
|
|
116
119
|
* const embed = new LiveboardEmbed('#embed', {
|
|
@@ -119,8 +122,6 @@ interface PreRenderProps {
|
|
|
119
122
|
* });
|
|
120
123
|
* embed.showPreRender();
|
|
121
124
|
* ```
|
|
122
|
-
*
|
|
123
|
-
* Use PreRendered react component for pre rendering embed components.
|
|
124
125
|
* @example
|
|
125
126
|
* ```tsx
|
|
126
127
|
* function LandingPageComponent() {
|
|
@@ -131,7 +132,6 @@ interface PreRenderProps {
|
|
|
131
132
|
* return <LiveboardEmbed preRenderId="someId" liveboardId="libId" />
|
|
132
133
|
* }
|
|
133
134
|
* ```
|
|
134
|
-
* @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl
|
|
135
135
|
*/
|
|
136
136
|
preRenderId: string;
|
|
137
137
|
}
|
|
@@ -164,7 +164,7 @@ interface AppProps extends EmbedProps, AppViewConfig { }
|
|
|
164
164
|
* React component for Full app Embed.
|
|
165
165
|
* @example
|
|
166
166
|
* ```tsx
|
|
167
|
-
* function
|
|
167
|
+
* function App() {
|
|
168
168
|
* return <AppEmbed
|
|
169
169
|
* showPrimaryNavbar={false}
|
|
170
170
|
* pageId={Page.Liveboards}
|
|
@@ -176,9 +176,9 @@ interface AppProps extends EmbedProps, AppViewConfig { }
|
|
|
176
176
|
export const AppEmbed = componentFactory<typeof _AppEmbed, AppProps, AppViewConfig>(_AppEmbed);
|
|
177
177
|
|
|
178
178
|
/**
|
|
179
|
-
* React component for PreRendered
|
|
179
|
+
* React component for PreRendered App embed.
|
|
180
180
|
*
|
|
181
|
-
* PreRenderedAppEmbed will preRender the
|
|
181
|
+
* PreRenderedAppEmbed will preRender the AppEmbed and will be hidden by
|
|
182
182
|
* default.
|
|
183
183
|
*
|
|
184
184
|
* AppEmbed with preRenderId passed will call showPreRender on the embed.
|
|
@@ -231,7 +231,7 @@ export const PinboardEmbed = LiveboardEmbed;
|
|
|
231
231
|
* LiveboardEmbed with preRenderId passed will call showPreRender on the embed.
|
|
232
232
|
*
|
|
233
233
|
* If LiveboardEmbed is rendered before PreRenderedLiveboardEmbed is rendered it
|
|
234
|
-
* tries to preRender the LiveboardEmbed, so it is recommended to
|
|
234
|
+
* tries to preRender the LiveboardEmbed, so it is recommended to pass the
|
|
235
235
|
* liveboardId to both the components.
|
|
236
236
|
* @example
|
|
237
237
|
* ```tsx
|
|
@@ -273,7 +273,7 @@ export const SearchBarEmbed = componentFactory<
|
|
|
273
273
|
>(_SearchBarEmbed);
|
|
274
274
|
|
|
275
275
|
/**
|
|
276
|
-
* React component for PreRendered
|
|
276
|
+
* React component for PreRendered SearchBar embed.
|
|
277
277
|
*
|
|
278
278
|
* PreRenderedSearchBarEmbed will preRender the SearchBarEmbed and will be hidden by
|
|
279
279
|
* default.
|
|
@@ -315,9 +315,9 @@ export const SageEmbed = componentFactory<typeof _SageEmbed, SageEmbedProps, Sag
|
|
|
315
315
|
);
|
|
316
316
|
|
|
317
317
|
/**
|
|
318
|
-
* React component for PreRendered
|
|
318
|
+
* React component for PreRendered Sage embed.
|
|
319
319
|
*
|
|
320
|
-
* PreRenderedSageEmbed will preRender the
|
|
320
|
+
* PreRenderedSageEmbed will preRender the SageEmbed and will be hidden by
|
|
321
321
|
* default.
|
|
322
322
|
*
|
|
323
323
|
* SageEmbed with preRenderId passed will call showPreRender on the embed.
|
|
@@ -365,8 +365,8 @@ export const SpotterEmbed = componentFactory<
|
|
|
365
365
|
|
|
366
366
|
/**
|
|
367
367
|
* React component for LLM based conversation BI.
|
|
368
|
-
* @deprecated from SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
|
|
369
368
|
* Use {@link SpotterEmbed} instead
|
|
369
|
+
* @deprecated from SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
|
|
370
370
|
* @example
|
|
371
371
|
* ```tsx
|
|
372
372
|
* function Sage() {
|
|
@@ -410,6 +410,7 @@ type SpotterMessageProps = {
|
|
|
410
410
|
* This component renders a single message response from your ThoughtSpot conversation,
|
|
411
411
|
* showing charts, visualizations, or text responses based on the user's query.
|
|
412
412
|
*
|
|
413
|
+
* @version SDK: 1.39.0 | ThoughtSpot: 10.11.0.cl
|
|
413
414
|
* @example
|
|
414
415
|
* ```tsx
|
|
415
416
|
* const { sendMessage } = useSpotterAgent({ worksheetId: 'worksheetId' });
|
|
@@ -426,7 +427,6 @@ type SpotterMessageProps = {
|
|
|
426
427
|
* />
|
|
427
428
|
* }
|
|
428
429
|
* ```
|
|
429
|
-
* @version SDK: 1.39.0 | ThoughtSpot: 10.11.0.cl
|
|
430
430
|
*/
|
|
431
431
|
export const SpotterMessage = React.forwardRef<
|
|
432
432
|
React.ComponentRef<typeof ConversationMessage>,
|
|
@@ -449,7 +449,7 @@ export const SpotterMessage = React.forwardRef<
|
|
|
449
449
|
* PreRenderedConversationEmbed will preRender the SpotterEmbed and will be hidden by
|
|
450
450
|
* default.
|
|
451
451
|
*
|
|
452
|
-
*
|
|
452
|
+
* SpotterEmbed with preRenderId passed will call showPreRender on the embed.
|
|
453
453
|
* @example
|
|
454
454
|
* ```tsx
|
|
455
455
|
* function LandingPageComponent() {
|
|
@@ -500,6 +500,7 @@ export function useEmbedRef<T extends EmbedComponent>():
|
|
|
500
500
|
|
|
501
501
|
/**
|
|
502
502
|
*
|
|
503
|
+
* @version SDK: 1.36.2 | ThoughtSpot: *
|
|
503
504
|
* @param config - EmbedConfig
|
|
504
505
|
* @returns AuthEventEmitter
|
|
505
506
|
* @example
|
|
@@ -509,7 +510,6 @@ export function useEmbedRef<T extends EmbedComponent>():
|
|
|
509
510
|
* return <LiveboardEmbed ref={ref} liveboardId={<id>} />
|
|
510
511
|
* }
|
|
511
512
|
* ```
|
|
512
|
-
* @version SDK: 1.36.2 | ThoughtSpot: *
|
|
513
513
|
*/
|
|
514
514
|
export function useInit(config: EmbedConfig) {
|
|
515
515
|
const ref = useRef<AuthEventEmitter | null>(null);
|
|
@@ -527,6 +527,7 @@ export function useInit(config: EmbedConfig) {
|
|
|
527
527
|
* This hook provides a sendMessage function that allows you to send natural language
|
|
528
528
|
* queries to your data and get back AI-generated responses with visualizations.
|
|
529
529
|
*
|
|
530
|
+
* @version SDK: 1.39.0 | ThoughtSpot: 10.11.0.cl
|
|
530
531
|
* @param config - Configuration object containing worksheetId and other options
|
|
531
532
|
* @returns Object with sendMessage function that returns conversation results
|
|
532
533
|
* @example
|
|
@@ -544,7 +545,6 @@ export function useInit(config: EmbedConfig) {
|
|
|
544
545
|
* }
|
|
545
546
|
* };
|
|
546
547
|
* ```
|
|
547
|
-
* @version SDK: 1.39.0 | ThoughtSpot: 10.11.0.cl
|
|
548
548
|
*/
|
|
549
549
|
export function useSpotterAgent(config: SpotterAgentEmbedViewConfig) {
|
|
550
550
|
const serviceRef = useRef<_SpotterAgentEmbed | null>(null);
|