@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.
Files changed (173) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/auth.d.ts +29 -4
  3. package/cjs/src/auth.d.ts.map +1 -1
  4. package/cjs/src/auth.js +29 -4
  5. package/cjs/src/auth.js.map +1 -1
  6. package/cjs/src/css-variables.d.ts +17 -17
  7. package/cjs/src/embed/app.d.ts +60 -32
  8. package/cjs/src/embed/app.d.ts.map +1 -1
  9. package/cjs/src/embed/app.js +10 -3
  10. package/cjs/src/embed/app.js.map +1 -1
  11. package/cjs/src/embed/app.spec.js +34 -1
  12. package/cjs/src/embed/app.spec.js.map +1 -1
  13. package/cjs/src/embed/base.d.ts +2 -2
  14. package/cjs/src/embed/base.js +2 -2
  15. package/cjs/src/embed/bodyless-conversation.d.ts +5 -5
  16. package/cjs/src/embed/bodyless-conversation.js +4 -4
  17. package/cjs/src/embed/conversation.d.ts +43 -30
  18. package/cjs/src/embed/conversation.d.ts.map +1 -1
  19. package/cjs/src/embed/conversation.js +10 -11
  20. package/cjs/src/embed/conversation.js.map +1 -1
  21. package/cjs/src/embed/conversation.spec.js +27 -0
  22. package/cjs/src/embed/conversation.spec.js.map +1 -1
  23. package/cjs/src/embed/liveboard.d.ts +40 -34
  24. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  25. package/cjs/src/embed/liveboard.js +1 -1
  26. package/cjs/src/embed/liveboard.js.map +1 -1
  27. package/cjs/src/embed/liveboard.spec.js +1 -1
  28. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  29. package/cjs/src/embed/sage.d.ts +5 -5
  30. package/cjs/src/embed/sage.js +1 -1
  31. package/cjs/src/embed/search-bar.d.ts +7 -7
  32. package/cjs/src/embed/search-bar.js +1 -1
  33. package/cjs/src/embed/search.d.ts +13 -12
  34. package/cjs/src/embed/search.d.ts.map +1 -1
  35. package/cjs/src/embed/search.js.map +1 -1
  36. package/cjs/src/embed/ts-embed.d.ts +3 -3
  37. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  38. package/cjs/src/embed/ts-embed.js +12 -6
  39. package/cjs/src/embed/ts-embed.js.map +1 -1
  40. package/cjs/src/embed/ts-embed.spec.js +35 -0
  41. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  42. package/cjs/src/react/index.d.ts +15 -15
  43. package/cjs/src/react/index.js +12 -12
  44. package/cjs/src/tokenizedFetch.d.ts +1 -1
  45. package/cjs/src/tokenizedFetch.js +1 -1
  46. package/cjs/src/types.d.ts +294 -255
  47. package/cjs/src/types.d.ts.map +1 -1
  48. package/cjs/src/types.js +206 -200
  49. package/cjs/src/types.js.map +1 -1
  50. package/cjs/src/utils/graphql/answerService/answerService.d.ts +4 -2
  51. package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  52. package/cjs/src/utils/graphql/answerService/answerService.js +6 -4
  53. package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -1
  54. package/cjs/src/utils/graphql/answerService/answerService.spec.js +55 -0
  55. package/cjs/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
  56. package/cjs/src/utils.d.ts +9 -0
  57. package/cjs/src/utils.d.ts.map +1 -1
  58. package/cjs/src/utils.js +10 -1
  59. package/cjs/src/utils.js.map +1 -1
  60. package/dist/{index-Vyh6Ha5f.js → index-DkizS4xM.js} +1 -1
  61. package/dist/src/auth.d.ts +29 -4
  62. package/dist/src/auth.d.ts.map +1 -1
  63. package/dist/src/css-variables.d.ts +17 -17
  64. package/dist/src/embed/app.d.ts +60 -32
  65. package/dist/src/embed/app.d.ts.map +1 -1
  66. package/dist/src/embed/base.d.ts +2 -2
  67. package/dist/src/embed/bodyless-conversation.d.ts +5 -5
  68. package/dist/src/embed/conversation.d.ts +43 -30
  69. package/dist/src/embed/conversation.d.ts.map +1 -1
  70. package/dist/src/embed/liveboard.d.ts +40 -34
  71. package/dist/src/embed/liveboard.d.ts.map +1 -1
  72. package/dist/src/embed/sage.d.ts +5 -5
  73. package/dist/src/embed/search-bar.d.ts +7 -7
  74. package/dist/src/embed/search.d.ts +13 -12
  75. package/dist/src/embed/search.d.ts.map +1 -1
  76. package/dist/src/embed/ts-embed.d.ts +3 -3
  77. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  78. package/dist/src/react/index.d.ts +15 -15
  79. package/dist/src/tokenizedFetch.d.ts +1 -1
  80. package/dist/src/types.d.ts +294 -255
  81. package/dist/src/types.d.ts.map +1 -1
  82. package/dist/src/utils/graphql/answerService/answerService.d.ts +4 -2
  83. package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  84. package/dist/src/utils.d.ts +9 -0
  85. package/dist/src/utils.d.ts.map +1 -1
  86. package/dist/tsembed-react.es.js +307 -275
  87. package/dist/tsembed-react.js +306 -274
  88. package/dist/tsembed.es.js +299 -267
  89. package/dist/tsembed.js +298 -266
  90. package/dist/visual-embed-sdk-react-full.d.ts +520 -409
  91. package/dist/visual-embed-sdk-react.d.ts +518 -407
  92. package/dist/visual-embed-sdk.d.ts +519 -408
  93. package/lib/package.json +1 -1
  94. package/lib/src/auth.d.ts +29 -4
  95. package/lib/src/auth.d.ts.map +1 -1
  96. package/lib/src/auth.js +29 -4
  97. package/lib/src/auth.js.map +1 -1
  98. package/lib/src/css-variables.d.ts +17 -17
  99. package/lib/src/embed/app.d.ts +60 -32
  100. package/lib/src/embed/app.d.ts.map +1 -1
  101. package/lib/src/embed/app.js +11 -4
  102. package/lib/src/embed/app.js.map +1 -1
  103. package/lib/src/embed/app.spec.js +34 -1
  104. package/lib/src/embed/app.spec.js.map +1 -1
  105. package/lib/src/embed/base.d.ts +2 -2
  106. package/lib/src/embed/base.js +2 -2
  107. package/lib/src/embed/bodyless-conversation.d.ts +5 -5
  108. package/lib/src/embed/bodyless-conversation.js +4 -4
  109. package/lib/src/embed/conversation.d.ts +43 -30
  110. package/lib/src/embed/conversation.d.ts.map +1 -1
  111. package/lib/src/embed/conversation.js +11 -11
  112. package/lib/src/embed/conversation.js.map +1 -1
  113. package/lib/src/embed/conversation.spec.js +27 -0
  114. package/lib/src/embed/conversation.spec.js.map +1 -1
  115. package/lib/src/embed/liveboard.d.ts +40 -34
  116. package/lib/src/embed/liveboard.d.ts.map +1 -1
  117. package/lib/src/embed/liveboard.js +1 -1
  118. package/lib/src/embed/liveboard.js.map +1 -1
  119. package/lib/src/embed/liveboard.spec.js +1 -1
  120. package/lib/src/embed/liveboard.spec.js.map +1 -1
  121. package/lib/src/embed/sage.d.ts +5 -5
  122. package/lib/src/embed/sage.js +1 -1
  123. package/lib/src/embed/search-bar.d.ts +7 -7
  124. package/lib/src/embed/search-bar.js +1 -1
  125. package/lib/src/embed/search.d.ts +13 -12
  126. package/lib/src/embed/search.d.ts.map +1 -1
  127. package/lib/src/embed/search.js.map +1 -1
  128. package/lib/src/embed/ts-embed.d.ts +3 -3
  129. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  130. package/lib/src/embed/ts-embed.js +12 -6
  131. package/lib/src/embed/ts-embed.js.map +1 -1
  132. package/lib/src/embed/ts-embed.spec.js +35 -0
  133. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  134. package/lib/src/react/index.d.ts +15 -15
  135. package/lib/src/react/index.js +12 -12
  136. package/lib/src/tokenizedFetch.d.ts +1 -1
  137. package/lib/src/tokenizedFetch.js +1 -1
  138. package/lib/src/types.d.ts +294 -255
  139. package/lib/src/types.d.ts.map +1 -1
  140. package/lib/src/types.js +206 -200
  141. package/lib/src/types.js.map +1 -1
  142. package/lib/src/utils/graphql/answerService/answerService.d.ts +4 -2
  143. package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  144. package/lib/src/utils/graphql/answerService/answerService.js +5 -3
  145. package/lib/src/utils/graphql/answerService/answerService.js.map +1 -1
  146. package/lib/src/utils/graphql/answerService/answerService.spec.js +55 -0
  147. package/lib/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
  148. package/lib/src/utils.d.ts +9 -0
  149. package/lib/src/utils.d.ts.map +1 -1
  150. package/lib/src/utils.js +8 -0
  151. package/lib/src/utils.js.map +1 -1
  152. package/package.json +1 -1
  153. package/src/auth.ts +29 -4
  154. package/src/css-variables.ts +17 -17
  155. package/src/embed/app.spec.ts +46 -1
  156. package/src/embed/app.ts +72 -35
  157. package/src/embed/base.ts +2 -2
  158. package/src/embed/bodyless-conversation.ts +5 -5
  159. package/src/embed/conversation.spec.ts +37 -0
  160. package/src/embed/conversation.ts +55 -38
  161. package/src/embed/liveboard.spec.ts +1 -1
  162. package/src/embed/liveboard.ts +40 -34
  163. package/src/embed/sage.ts +5 -5
  164. package/src/embed/search-bar.tsx +7 -7
  165. package/src/embed/search.ts +13 -12
  166. package/src/embed/ts-embed.spec.ts +42 -0
  167. package/src/embed/ts-embed.ts +11 -6
  168. package/src/react/index.tsx +15 -15
  169. package/src/tokenizedFetch.ts +1 -1
  170. package/src/types.ts +293 -254
  171. package/src/utils/graphql/answerService/answerService.spec.ts +62 -0
  172. package/src/utils/graphql/answerService/answerService.ts +6 -3
  173. 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: SDK: 1.23.0 | ThoughtSpot: 9.8.0.cl, 9.8.0.sw
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 Model.
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: SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.1-sw
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
@@ -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: SDK: 1.19.0, ThoughtSpot 9.0.0.cl, 9.0.1.sw
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: SDK: 1.24.0, ThoughtSpot 9.5.0.cl, 9.5.0.sw
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: SDK: 1.2.0 | ThoughtSpot: 9.4.0.sw
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: SDK: 1.35.7 | ThoughtSpot: 10.8.0.cl
84
+ * @version SDK: 1.35.7 | ThoughtSpot: 10.8.0.cl
85
85
  * @example
86
86
  * ```js
87
- * const embed = new SearchEmbed('#tsEmbed', {
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: SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1-sw
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 {
@@ -77,7 +77,7 @@ export interface SearchViewConfig
77
77
  * but can be expanded manually.
78
78
  *
79
79
  * Supported embed types: `SearchEmbed`
80
- * @version: SDK: 1.1.0 | ThoughtSpot: 8.1.0.sw
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: SDK: 1.34.0 | ThoughtSpot: 10.3.0.cl
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: SDK: 1.2.0 | ThoughtSpot: 9.1.0.sw
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: SDK: 1.2.0 | ThoughtSpot: 9.1.0.sw
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: SDK: 1.1.0 | ThoughtSpot: 8.1.0.sw
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 array of data source GUIDs to set on load.
181
+ * The data source GUID to set on load.
181
182
  *
182
183
  * Supported embed types: `SearchEmbed`
183
- * @version: SDK: 1.19.0
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: SDK: 1.35.7 | ThoughtSpot: 10.8.0.cl
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: SDK: 1.1.0 | ThoughtSpot: 8.1.0.sw
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: SDK: 1.24.0
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
  });
@@ -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 thoughtspot
177
+ * Should we encode URL Query Params using base64 encoding which ThoughtSpot
178
178
  * will generate for embedding. This provides additional security to
179
- * thoughtspot clusters against Cross site scripting attacks.
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
- if (linkOverride) {
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 / ThoughtSpot 9.10.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 } : {});
@@ -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 Search() {
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 Liveboard embed.
179
+ * React component for PreRendered App embed.
180
180
  *
181
- * PreRenderedAppEmbed will preRender the SearchBarEmbed and will be hidden by
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 use pass the
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 Liveboard embed.
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 Liveboard embed.
318
+ * React component for PreRendered Sage embed.
319
319
  *
320
- * PreRenderedSageEmbed will preRender the SearchBarEmbed and will be hidden by
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
- * SageEmbed with preRenderId passed will call showPreRender on the embed.
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);
@@ -14,7 +14,7 @@ import { AuthType } from './types';
14
14
  * tokenizedFetch("<TS_ORIGIN>/api/rest/2.0/auth/session/user", {
15
15
  * // .. fetch options ..
16
16
  * });
17
- *```
17
+ * ```
18
18
  * @version SDK: 1.28.0
19
19
  * @group Global methods
20
20
  */