@thoughtspot/visual-embed-sdk 1.28.0-alpha.1 → 1.28.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/auth.d.ts +16 -1
  3. package/cjs/src/auth.d.ts.map +1 -1
  4. package/cjs/src/auth.js +5 -1
  5. package/cjs/src/auth.js.map +1 -1
  6. package/cjs/src/auth.spec.d.ts.map +1 -1
  7. package/cjs/src/auth.spec.js +9 -0
  8. package/cjs/src/auth.spec.js.map +1 -1
  9. package/cjs/src/embed/app.d.ts +18 -4
  10. package/cjs/src/embed/app.d.ts.map +1 -1
  11. package/cjs/src/embed/app.js +2 -2
  12. package/cjs/src/embed/app.js.map +1 -1
  13. package/cjs/src/embed/app.spec.js +19 -1
  14. package/cjs/src/embed/app.spec.js.map +1 -1
  15. package/cjs/src/embed/base.d.ts.map +1 -1
  16. package/cjs/src/embed/base.js +0 -3
  17. package/cjs/src/embed/base.js.map +1 -1
  18. package/cjs/src/embed/embed.spec.js +0 -15
  19. package/cjs/src/embed/embed.spec.js.map +1 -1
  20. package/cjs/src/embed/liveboard.d.ts +7 -1
  21. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  22. package/cjs/src/embed/liveboard.js +2 -2
  23. package/cjs/src/embed/liveboard.js.map +1 -1
  24. package/cjs/src/embed/liveboard.spec.js +20 -1
  25. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  26. package/cjs/src/embed/pinboard.spec.js +20 -1
  27. package/cjs/src/embed/pinboard.spec.js.map +1 -1
  28. package/cjs/src/embed/sage.d.ts +1 -1
  29. package/cjs/src/embed/sage.d.ts.map +1 -1
  30. package/cjs/src/embed/sage.js +2 -2
  31. package/cjs/src/embed/sage.js.map +1 -1
  32. package/cjs/src/embed/search-bar.d.ts +1 -1
  33. package/cjs/src/embed/search-bar.d.ts.map +1 -1
  34. package/cjs/src/embed/search-bar.js +2 -2
  35. package/cjs/src/embed/search-bar.js.map +1 -1
  36. package/cjs/src/embed/search.d.ts +1 -1
  37. package/cjs/src/embed/search.d.ts.map +1 -1
  38. package/cjs/src/embed/search.js +3 -3
  39. package/cjs/src/embed/search.js.map +1 -1
  40. package/cjs/src/embed/search.spec.js +25 -1
  41. package/cjs/src/embed/search.spec.js.map +1 -1
  42. package/cjs/src/embed/ts-embed-trigger.spec.d.ts +2 -0
  43. package/cjs/src/embed/ts-embed-trigger.spec.d.ts.map +1 -0
  44. package/cjs/src/embed/ts-embed-trigger.spec.js +34 -0
  45. package/cjs/src/embed/ts-embed-trigger.spec.js.map +1 -0
  46. package/cjs/src/embed/ts-embed.d.ts +1 -1
  47. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  48. package/cjs/src/embed/ts-embed.js +14 -11
  49. package/cjs/src/embed/ts-embed.js.map +1 -1
  50. package/cjs/src/embed/ts-embed.spec.js +47 -17
  51. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  52. package/cjs/src/index.d.ts +2 -1
  53. package/cjs/src/index.d.ts.map +1 -1
  54. package/cjs/src/index.js +3 -1
  55. package/cjs/src/index.js.map +1 -1
  56. package/cjs/src/react/index.spec.js +1 -1
  57. package/cjs/src/react/index.spec.js.map +1 -1
  58. package/cjs/src/test/test-utils.d.ts +1 -0
  59. package/cjs/src/test/test-utils.d.ts.map +1 -1
  60. package/cjs/src/test/test-utils.js +10 -1
  61. package/cjs/src/test/test-utils.js.map +1 -1
  62. package/cjs/src/tokenizedFetch.d.ts +9 -0
  63. package/cjs/src/tokenizedFetch.d.ts.map +1 -1
  64. package/cjs/src/tokenizedFetch.js +9 -0
  65. package/cjs/src/tokenizedFetch.js.map +1 -1
  66. package/cjs/src/types.d.ts +178 -37
  67. package/cjs/src/types.d.ts.map +1 -1
  68. package/cjs/src/types.js +138 -21
  69. package/cjs/src/types.js.map +1 -1
  70. package/cjs/src/utils/authService/authService.d.ts.map +1 -1
  71. package/cjs/src/utils/authService/authService.js +9 -3
  72. package/cjs/src/utils/authService/authService.js.map +1 -1
  73. package/cjs/src/utils/authService/authService.spec.js +22 -0
  74. package/cjs/src/utils/authService/authService.spec.js.map +1 -1
  75. package/dist/src/auth.d.ts +16 -1
  76. package/dist/src/auth.d.ts.map +1 -1
  77. package/dist/src/auth.spec.d.ts.map +1 -1
  78. package/dist/src/embed/app.d.ts +18 -4
  79. package/dist/src/embed/app.d.ts.map +1 -1
  80. package/dist/src/embed/base.d.ts.map +1 -1
  81. package/dist/src/embed/liveboard.d.ts +7 -1
  82. package/dist/src/embed/liveboard.d.ts.map +1 -1
  83. package/dist/src/embed/sage.d.ts +1 -1
  84. package/dist/src/embed/sage.d.ts.map +1 -1
  85. package/dist/src/embed/search-bar.d.ts +1 -1
  86. package/dist/src/embed/search-bar.d.ts.map +1 -1
  87. package/dist/src/embed/search.d.ts +1 -1
  88. package/dist/src/embed/search.d.ts.map +1 -1
  89. package/dist/src/embed/ts-embed-trigger.spec.d.ts +2 -0
  90. package/dist/src/embed/ts-embed-trigger.spec.d.ts.map +1 -0
  91. package/dist/src/embed/ts-embed.d.ts +1 -1
  92. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  93. package/dist/src/index.d.ts +2 -1
  94. package/dist/src/index.d.ts.map +1 -1
  95. package/dist/src/test/test-utils.d.ts +1 -0
  96. package/dist/src/test/test-utils.d.ts.map +1 -1
  97. package/dist/src/tokenizedFetch.d.ts +9 -0
  98. package/dist/src/tokenizedFetch.d.ts.map +1 -1
  99. package/dist/src/types.d.ts +178 -37
  100. package/dist/src/types.d.ts.map +1 -1
  101. package/dist/src/utils/authService/authService.d.ts.map +1 -1
  102. package/dist/tsembed-react.es.js +186 -48
  103. package/dist/tsembed-react.js +186 -48
  104. package/dist/tsembed.es.js +187 -52
  105. package/dist/tsembed.js +187 -51
  106. package/dist/visual-embed-sdk-react-full.d.ts +235 -48
  107. package/dist/visual-embed-sdk-react.d.ts +235 -48
  108. package/dist/visual-embed-sdk.d.ts +235 -48
  109. package/lib/package.json +1 -1
  110. package/lib/src/auth.d.ts +16 -1
  111. package/lib/src/auth.d.ts.map +1 -1
  112. package/lib/src/auth.js +5 -1
  113. package/lib/src/auth.js.map +1 -1
  114. package/lib/src/auth.spec.d.ts.map +1 -1
  115. package/lib/src/auth.spec.js +9 -0
  116. package/lib/src/auth.spec.js.map +1 -1
  117. package/lib/src/embed/app.d.ts +18 -4
  118. package/lib/src/embed/app.d.ts.map +1 -1
  119. package/lib/src/embed/app.js +2 -2
  120. package/lib/src/embed/app.js.map +1 -1
  121. package/lib/src/embed/app.spec.js +19 -1
  122. package/lib/src/embed/app.spec.js.map +1 -1
  123. package/lib/src/embed/base.d.ts.map +1 -1
  124. package/lib/src/embed/base.js +0 -3
  125. package/lib/src/embed/base.js.map +1 -1
  126. package/lib/src/embed/embed.spec.js +2 -17
  127. package/lib/src/embed/embed.spec.js.map +1 -1
  128. package/lib/src/embed/liveboard.d.ts +7 -1
  129. package/lib/src/embed/liveboard.d.ts.map +1 -1
  130. package/lib/src/embed/liveboard.js +2 -2
  131. package/lib/src/embed/liveboard.js.map +1 -1
  132. package/lib/src/embed/liveboard.spec.js +20 -1
  133. package/lib/src/embed/liveboard.spec.js.map +1 -1
  134. package/lib/src/embed/pinboard.spec.js +20 -1
  135. package/lib/src/embed/pinboard.spec.js.map +1 -1
  136. package/lib/src/embed/sage.d.ts +1 -1
  137. package/lib/src/embed/sage.d.ts.map +1 -1
  138. package/lib/src/embed/sage.js +2 -2
  139. package/lib/src/embed/sage.js.map +1 -1
  140. package/lib/src/embed/search-bar.d.ts +1 -1
  141. package/lib/src/embed/search-bar.d.ts.map +1 -1
  142. package/lib/src/embed/search-bar.js +2 -2
  143. package/lib/src/embed/search-bar.js.map +1 -1
  144. package/lib/src/embed/search.d.ts +1 -1
  145. package/lib/src/embed/search.d.ts.map +1 -1
  146. package/lib/src/embed/search.js +3 -3
  147. package/lib/src/embed/search.js.map +1 -1
  148. package/lib/src/embed/search.spec.js +25 -1
  149. package/lib/src/embed/search.spec.js.map +1 -1
  150. package/lib/src/embed/ts-embed-trigger.spec.d.ts +2 -0
  151. package/lib/src/embed/ts-embed-trigger.spec.d.ts.map +1 -0
  152. package/lib/src/embed/ts-embed-trigger.spec.js +32 -0
  153. package/lib/src/embed/ts-embed-trigger.spec.js.map +1 -0
  154. package/lib/src/embed/ts-embed.d.ts +1 -1
  155. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  156. package/lib/src/embed/ts-embed.js +14 -11
  157. package/lib/src/embed/ts-embed.js.map +1 -1
  158. package/lib/src/embed/ts-embed.spec.js +41 -11
  159. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  160. package/lib/src/index.d.ts +2 -1
  161. package/lib/src/index.d.ts.map +1 -1
  162. package/lib/src/index.js +2 -1
  163. package/lib/src/index.js.map +1 -1
  164. package/lib/src/react/index.spec.js +1 -1
  165. package/lib/src/react/index.spec.js.map +1 -1
  166. package/lib/src/test/test-utils.d.ts +1 -0
  167. package/lib/src/test/test-utils.d.ts.map +1 -1
  168. package/lib/src/test/test-utils.js +8 -0
  169. package/lib/src/test/test-utils.js.map +1 -1
  170. package/lib/src/tokenizedFetch.d.ts +9 -0
  171. package/lib/src/tokenizedFetch.d.ts.map +1 -1
  172. package/lib/src/tokenizedFetch.js +9 -0
  173. package/lib/src/tokenizedFetch.js.map +1 -1
  174. package/lib/src/types.d.ts +178 -37
  175. package/lib/src/types.d.ts.map +1 -1
  176. package/lib/src/types.js +138 -21
  177. package/lib/src/types.js.map +1 -1
  178. package/lib/src/utils/authService/authService.d.ts.map +1 -1
  179. package/lib/src/utils/authService/authService.js +9 -3
  180. package/lib/src/utils/authService/authService.js.map +1 -1
  181. package/lib/src/utils/authService/authService.spec.js +22 -0
  182. package/lib/src/utils/authService/authService.spec.js.map +1 -1
  183. package/lib/src/visual-embed-sdk.d.ts +238 -48
  184. package/package.json +1 -1
  185. package/src/auth.spec.ts +10 -0
  186. package/src/auth.ts +21 -2
  187. package/src/embed/app.spec.ts +24 -1
  188. package/src/embed/app.ts +19 -5
  189. package/src/embed/base.ts +1 -5
  190. package/src/embed/embed.spec.ts +0 -18
  191. package/src/embed/liveboard.spec.ts +24 -1
  192. package/src/embed/liveboard.ts +8 -2
  193. package/src/embed/pinboard.spec.ts +24 -1
  194. package/src/embed/sage.ts +2 -2
  195. package/src/embed/search-bar.tsx +2 -2
  196. package/src/embed/search.spec.ts +29 -1
  197. package/src/embed/search.ts +3 -3
  198. package/src/embed/ts-embed-trigger.spec.ts +39 -0
  199. package/src/embed/ts-embed.spec.ts +49 -16
  200. package/src/embed/ts-embed.ts +21 -16
  201. package/src/index.ts +2 -0
  202. package/src/react/index.spec.tsx +1 -0
  203. package/src/test/test-utils.ts +9 -0
  204. package/src/tokenizedFetch.ts +9 -0
  205. package/src/types.ts +179 -34
  206. package/src/utils/authService/authService.spec.ts +27 -0
  207. package/src/utils/authService/authService.ts +14 -13
@@ -3,6 +3,15 @@ import { getEmbedConfig } from './embed/embedConfig';
3
3
 
4
4
  import { AuthType } from './types';
5
5
 
6
+ /**
7
+ * Fetch wrapper that adds the authentication token to the request.
8
+ * Use this to call the ThoughtSpot APIs when using the visual embed sdk.
9
+ *
10
+ * @param input
11
+ * @param init
12
+ * @version SDK: 1.28.0
13
+ * @group Global methods
14
+ */
6
15
  export const tokenizedFetch: typeof fetch = async (input, init): Promise<Response> => {
7
16
  const embedConfig = getEmbedConfig();
8
17
  if (embedConfig.authType !== AuthType.TrustedAuthTokenCookieless) {
package/src/types.ts CHANGED
@@ -145,6 +145,7 @@ export enum AuthType {
145
145
  * .then((response) => response.json())
146
146
  * .then((data) => data.token);
147
147
  * }
148
+ * });
148
149
  * ```
149
150
  */
150
151
  TrustedAuthToken = 'AuthServer',
@@ -179,15 +180,30 @@ export enum AuthType {
179
180
  }
180
181
 
181
182
  export enum HomeLeftNavItem {
182
- QueryBuilder = 'query-builder',
183
+ /**
184
+ * @version SDK: 1.27.9| ThoughtSpot: 9.12.0.cl
185
+ */
186
+ SearchData = 'search-data',
187
+ /**
188
+ * @version SDK: 1.27.9| ThoughtSpot: 9.12.0.cl
189
+ */
183
190
  Home = 'insights-home',
191
+ /**
192
+ * @version SDK: 1.27.9| ThoughtSpot: 9.12.0.cl
193
+ */
184
194
  Liveboards = 'liveboards',
195
+ /**
196
+ * @version SDK: 1.27.9| ThoughtSpot: 9.12.0.cl
197
+ */
185
198
  Answers = 'answers',
199
+ /**
200
+ * @version SDK: 1.27.9| ThoughtSpot: 9.12.0.cl
201
+ */
186
202
  MonitorSubscription = 'monitor-alerts',
203
+ /**
204
+ * @version SDK: 1.27.9| ThoughtSpot: 9.12.0.cl
205
+ */
187
206
  SpotIQAnalysis = 'spotiq-analysis',
188
- Tutorials = 'tutorials',
189
- Documentation = 'documentation',
190
- Community = 'community',
191
207
  }
192
208
  export type DOMSelector = string | HTMLElement;
193
209
 
@@ -246,6 +262,8 @@ export interface CustomStyles {
246
262
  /**
247
263
  * Configuration to define the customization on the Embedded
248
264
  * Thoughtspot components.
265
+ * You can customize styles, text strings, and icons.
266
+ * For more information, see https://developers.thoughtspot.com/docs/custom-css.
249
267
  *
250
268
  * @example
251
269
  * ```js
@@ -260,7 +278,12 @@ export interface CustomStyles {
260
278
  * },
261
279
  * content: {
262
280
  * strings: {
263
- * 'LIVEBOARDS': 'Dashboards'
281
+ * 'LIVEBOARDS': 'Dashboards',
282
+ * 'ANSWERS': 'Visualizations',
283
+ * 'Edit': 'Modify',
284
+ * 'Show underlying data': 'Show source data',
285
+ * 'SpotIQ': 'Insights',
286
+ * 'Monitor': 'Alerts',
264
287
  * }
265
288
  * },
266
289
  * iconSpriteUrl: 'https://my-custom-icon-sprite.svg'
@@ -293,12 +316,6 @@ export interface EmbedConfig {
293
316
  * The ThoughtSpot cluster hostname or IP address.
294
317
  */
295
318
  thoughtSpotHost: string;
296
- /**
297
- * If true, all the iframe links will have /v2 added automatically.
298
- * If false, all the iframe links will have /v1 added automatically.
299
- * If undefined, nothing will be added
300
- */
301
- enableReactShell?: boolean | undefined;
302
319
  /**
303
320
  * The authentication mechanism to use.
304
321
  */
@@ -561,6 +578,12 @@ export interface EmbedConfig {
561
578
  * @version SDK: 1.26.7 | ThoughtSpot: 9.10.0.cl
562
579
  */
563
580
  logLevel?: LogLevel;
581
+ /**
582
+ * Disables the Mixpanel tracking from the SDK.
583
+ *
584
+ * @version SDK: 1.27.9
585
+ */
586
+ disableSDKTracking?: boolean;
564
587
  }
565
588
 
566
589
  // eslint-disable-next-line @typescript-eslint/no-empty-interface
@@ -740,9 +763,14 @@ export interface ViewConfig {
740
763
  usePrerenderedIfAvailable?: boolean;
741
764
  /**
742
765
  * Boolean to exclude runtimeFilters in the URL
766
+ * By default it is true, this flag removes runtime filters from the URL
767
+ * when set to false, runtime filters will be included in the URL.
743
768
  *
744
- * @default false
745
- * @hidden
769
+ * Irrespective of this flag, runtime filters ( if passed ) will be applied to the
770
+ * embedded view.
771
+ *
772
+ * @default true
773
+ * @version SDK: 1.24.0 | ThoughtSpot: 9.5.0.cl
746
774
  */
747
775
  excludeRuntimeFiltersfromURL?: boolean;
748
776
  /**
@@ -764,16 +792,24 @@ export interface ViewConfig {
764
792
  hiddenTabs?: string[];
765
793
  /**
766
794
  * Hide the home page modules
767
- * eg: hiddenHomepageModules = [HomepageModule.MyLibrary]
795
+ * For example: hiddenHomepageModules = [HomepageModule.MyLibrary]
768
796
  *
769
- * @version SDK: 1.27.0 | Thoughtspot: 9.8.0.cl
797
+ * **Note**: This option does not apply to the classic homepage.
798
+ * To access the updated modular homepage, set
799
+ * `modularHomeExperience` to `true` (available in Early Access from 9.12 forward).
800
+ *
801
+ * @version SDK: 1.27.9 | Thoughtspot: 9.12.0.cl
770
802
  */
771
803
  hiddenHomepageModules?: HomepageModule[];
772
804
  /**
773
805
  * reordering the home page modules
774
806
  * eg: reorderedHomepageModules = [HomepageModule.MyLibrary, HomepageModule.Watchlist]
775
807
  *
776
- * @version SDK: 1.28.0 | Thoughtspot: 9.9.0.cl
808
+ * **Note**: This option does not apply to the classic homepage.
809
+ * To access the updated modular homepage, set
810
+ * `modularHomeExperience` to `true` (available in Early Access from 9.12.0.cl onwards).
811
+ *
812
+ * @version SDK: 1.27.9| Thoughtspot: 9.12.0.cl
777
813
  */
778
814
  reorderedHomepageModules?: HomepageModule[];
779
815
  /**
@@ -800,7 +836,11 @@ export interface ViewConfig {
800
836
  * hiddenHomeLeftNavItems = [HomeLeftNavItem.Home]
801
837
  * ```
802
838
  *
803
- * @version SDK: 1.27.0 | Thoughtspot: 9.10.0.cl
839
+ * **Note**: This option does not apply to the classic homepage.
840
+ * To access the updated modular homepage, set
841
+ * `modularHomeExperience` to `true` (available in Early Access from 9.12 forward).
842
+ *
843
+ * @version SDK: 1.27.9 | Thoughtspot: 9.12.0.cl
804
844
  */
805
845
  hiddenHomeLeftNavItems?: HomeLeftNavItem[];
806
846
  /**
@@ -991,6 +1031,10 @@ export enum HomepageModule {
991
1031
  MyLibrary = 'MY_LIBRARY',
992
1032
  /**
993
1033
  * Trending list
1034
+ *
1035
+ * **Note**: This option does not apply to the classic homepage.
1036
+ * To access the updated modular homepage, set
1037
+ * `modularHomeExperience` to `true` (available in Early Access from 9.12.0.cl onwards).
994
1038
  */
995
1039
  Trending = 'TRENDING',
996
1040
  /**
@@ -1132,7 +1176,7 @@ export enum EmbedEvent {
1132
1176
  * @returns nonFilteredColumns - The columns that were not filtered
1133
1177
  * @example
1134
1178
  *```js
1135
- * searchEmbed.trigger(HostEvent.DrillDown, {
1179
+ * searchEmbed.trigger(EmbedEvent.DrillDown, {
1136
1180
  * points: {
1137
1181
  * clickedPoint,
1138
1182
  * selectedPoints: selectedPoint
@@ -1224,7 +1268,7 @@ export enum EmbedEvent {
1224
1268
  * @important
1225
1269
  * @example
1226
1270
  * ```js
1227
- * embed.on(ThoughtSpotEmbed.Event.VizPointClick, ({data}) => {
1271
+ * embed.on(EmbedEvent.VizPointClick, ({data}) => {
1228
1272
  * console.log(
1229
1273
  * data.vizId, // viz id
1230
1274
  * data.clickedPoint.selectedAttributes[0].value,
@@ -1237,15 +1281,41 @@ export enum EmbedEvent {
1237
1281
  */
1238
1282
  VizPointClick = 'vizPointClick',
1239
1283
  /**
1240
- * An error has occurred.
1284
+ * An error has occurred. This event is fired for the following error types:
1285
+ *
1286
+ * API - API call failure error.
1287
+ *
1288
+ * FULLSCREEN - Error when presenting a Liveboard or visualization in full screen mode.
1289
+ *
1290
+ * SINGLE_VALUE_FILTER - Error due to multiple values in the single value filter.
1291
+ *
1292
+ * NON_EXIST_FILTER - Error due to a non-existent filter.
1293
+ *
1294
+ * INVALID_DATE_VALUE - Invalid date value error.
1295
+ *
1296
+ * INVALID_OPERATOR - Use of invalid operator during filter application.
1297
+ *
1298
+ * For more information, see [Developer Documentation](https://developers.thoughtspot.com/docs/events-app-integration#errorType)
1241
1299
  *
1242
1300
  * @returns error - An error object or message
1243
1301
  * @example
1244
1302
  * ```js
1245
- * SearchEmbed.on(EmbedEvent.Error, showErrorMsg)
1246
- * //show error messaage
1247
- * function showErrorMsg() {
1248
- * document.getElementById("error");
1303
+ * // API error
1304
+ * SearchEmbed.on(EmbedEvent.Error, (error) => {
1305
+ * console.log(error);
1306
+ * // { type: "Error", data: { errorType: "API", error: { message: '...', error: '...' } } }
1307
+ * });
1308
+ * ```
1309
+ * @example
1310
+ * ```js
1311
+ * // Fullscreen error (Errors during presenting of a liveboard)
1312
+ * LiveboardEmbed.on(EmbedEvent.Error, (error) => {
1313
+ * console.log(error);
1314
+ * // { type: "Error", data: { errorType: "FULLSCREEN", error: {
1315
+ * // message: "Fullscreen API is not enabled",
1316
+ * // stack: "..."
1317
+ * // } }}
1318
+ * })
1249
1319
  * ```
1250
1320
  */
1251
1321
  Error = 'Error',
@@ -1791,7 +1861,7 @@ export enum EmbedEvent {
1791
1861
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
1792
1862
  * @example
1793
1863
  *```js
1794
- * liveboardEmbed.trigger(HostEvent.Delete,
1864
+ * liveboardEmbed.trigger(EmbedEvent.Delete,
1795
1865
  * {vizId: '730496d6-6903-4601-937e-2c691821af3c'})
1796
1866
  *```
1797
1867
  */
@@ -1802,7 +1872,7 @@ export enum EmbedEvent {
1802
1872
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
1803
1873
  * @example
1804
1874
  *```js
1805
- * liveboardEmbed.trigger(HostEvent.SchedulesList)
1875
+ * liveboardEmbed.trigger(EmbedEvent.SchedulesList)
1806
1876
  *```
1807
1877
  */
1808
1878
  SchedulesList = 'schedule-list',
@@ -1812,7 +1882,7 @@ export enum EmbedEvent {
1812
1882
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
1813
1883
  * @example
1814
1884
  *```js
1815
- * liveboardEmbed.trigger(HostEvent.Cancel)
1885
+ * liveboardEmbed.trigger(EmbedEvent.Cancel)
1816
1886
  *```
1817
1887
  */
1818
1888
  Cancel = 'cancel',
@@ -1822,7 +1892,7 @@ export enum EmbedEvent {
1822
1892
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
1823
1893
  * @example
1824
1894
  *```js
1825
- * liveboardEmbed.trigger(HostEvent.Explore, {
1895
+ * liveboardEmbed.trigger(EmbedEvent.Explore, {
1826
1896
  * vizId: '730496d6-6903-4601-937e-2c691821af3c'})
1827
1897
  *```
1828
1898
  */
@@ -1833,7 +1903,7 @@ export enum EmbedEvent {
1833
1903
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
1834
1904
  * @example
1835
1905
  *```js
1836
- * liveboardEmbed.trigger(HostEvent.CopyLink, {
1906
+ * liveboardEmbed.trigger(EmbedEvent.CopyLink, {
1837
1907
  * vizId: '730496d6-6903-4601-937e-2c691821af3c'})
1838
1908
  *```
1839
1909
  */
@@ -1955,7 +2025,7 @@ export enum EmbedEvent {
1955
2025
  /**
1956
2026
  * Emitted when a LB/viz is renamed
1957
2027
  *
1958
- * @version SDK : 1.28.0 | ThoughtSpot: 9.11.0.cl
2028
+ * @version SDK : 1.28.0 | ThoughtSpot: 9.10.5.cl
1959
2029
  */
1960
2030
  Rename = 'rename',
1961
2031
  }
@@ -2104,10 +2174,13 @@ export enum HostEvent {
2104
2174
  * _String_. The name of the column to filter on.
2105
2175
  * `operator`
2106
2176
  * Runtime filter operator to apply. For information,
2107
- * see [Runtime filter operators](https://developers.thoughtspot.com/docs/?pageid=runtime-filters#rtOperator).
2177
+ * see https://developers.thoughtspot.com/docs/?pageid=runtime-filters#rtOperator.
2108
2178
  * `values`
2109
2179
  * List of operands. Some operators such as EQ, LE allow a single value, whereas
2110
2180
  * operators such as BW and IN accept multiple operands.
2181
+ * **Note**: `HostEvent.UpdateRuntimeFilters` is not supported in
2182
+ * Search embedding (SearchEmbed) and Natural Language Search
2183
+ * embedding (SageEmbed).
2111
2184
  *
2112
2185
  * @param - {@link RuntimeFilter}[] an array of {@link RuntimeFilter} Types.
2113
2186
  * @example
@@ -2630,22 +2703,24 @@ export enum HostEvent {
2630
2703
  */
2631
2704
  ResetSearch = 'resetSearch',
2632
2705
  /**
2633
- * @hidden
2706
+ *
2634
2707
  * Get the currents visible and runtime filters applied on a Liveboard
2708
+ *
2635
2709
  * @example
2636
2710
  * liveboardEmbed.trigger(HostEvent.GetFilters)
2637
2711
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
2638
2712
  */
2639
2713
  GetFilters = 'getFilters',
2640
2714
  /**
2641
- * @hidden
2715
+ *
2642
2716
  * Update the visible filters on the Liveboard.
2717
+ *
2643
2718
  * @param - filter: filter object containing column name and filter operation and values
2644
2719
  * @example
2645
2720
  *
2646
2721
  * ```js
2647
2722
  * liveboardEmbed.trigger(HostEvent.UpdateFilters, {
2648
- * filter: { column: 'column name', oper: 'in', values: [1,2,3], is_mandatory: false }
2723
+ * filter: { column: 'column name', oper: 'IN', values: [1,2,3], is_mandatory: false }
2649
2724
  * })
2650
2725
  * ```
2651
2726
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
@@ -2732,6 +2807,32 @@ export enum HostEvent {
2732
2807
  * @version SDK: 1.29.0 | Thoughtspot: 9.12.0.cl
2733
2808
  */
2734
2809
  AskSage = 'AskSage',
2810
+ /**
2811
+ * Trigger UpdateCrossFilter for Liveboard
2812
+ *
2813
+ * @example
2814
+ * ```js
2815
+ * liveboardEmbed.trigger(HostEvent.UpdateCrossFilter, {
2816
+ * vizId: 'b535c760-8bbe-4e6f-bb26-af56b4129a1e',
2817
+ * conditions: [
2818
+ * { columnName: 'Category', values: ['mfgr#12','mfgr#14'] },
2819
+ * { columnName: 'color', values: ['mint','hot'] },
2820
+ * ],
2821
+ * });
2822
+ * ```
2823
+ * @version SDK: 1.29.0 | Thoughtspot: 10.0.0.cl
2824
+ */
2825
+ UpdateCrossFilter = 'UpdateCrossFilter',
2826
+ /**
2827
+ * Trigger ResetLiveboardPersonalisedView for Liveboard
2828
+ *
2829
+ * @example
2830
+ * ```js
2831
+ * liveboardEmbed.trigger(HostEvent.ResetLiveboardPersonalisedView);
2832
+ * ```
2833
+ * @version SDK: 1.29.0 | Thoughtspot: 10.1.0.cl
2834
+ */
2835
+ ResetLiveboardPersonalisedView = 'ResetLiveboardPersonalisedView',
2735
2836
  }
2736
2837
 
2737
2838
  /**
@@ -3707,6 +3808,50 @@ export enum Action {
3707
3808
  * @version SDK: 1.29.0 | Thoughtspot: 9.12.0.cl
3708
3809
  */
3709
3810
  AskAi = 'AskAi',
3811
+
3812
+ /**
3813
+ * The **Add KPI to Watchlist** action on Home page watchlist.
3814
+ *
3815
+ * @example
3816
+ * ```js
3817
+ * disabledActions: [Action.AddToWatchlist]
3818
+ * ```
3819
+ * @version SDK : 1.27.9 | Thoughtspot: 9.12.5.cl
3820
+ */
3821
+ AddToWatchlist = 'addToWatchlist',
3822
+
3823
+ /**
3824
+ * The **Remove from watchlist** menu action on KPI watchlist.
3825
+ *
3826
+ * @example
3827
+ * ```js
3828
+ * disabledActions: [Action.RemoveFromWatchlist]
3829
+ * ```
3830
+ * @version SDK : 1.27.9 | Thoughtspot: 9.12.5.cl
3831
+ */
3832
+ RemoveFromWatchlist = 'removeFromWatchlist',
3833
+
3834
+ /**
3835
+ * The **Copy KPI Link** menu action on KPI watchlist.
3836
+ *
3837
+ * @example
3838
+ * ```js
3839
+ * disabledActions: [Action.CopyKpiLink]
3840
+ * ```
3841
+ * @version SDK : 1.27.9 | Thoughtspot: 9.12.5.cl
3842
+ */
3843
+ CopyKpiLink = 'copyKpiLink',
3844
+
3845
+ /**
3846
+ * Action ID for AI Highlights button
3847
+ *
3848
+ * @example
3849
+ * ```js
3850
+ * hiddenAction: [Action.AIHighlights]
3851
+ * ```
3852
+ * @version SDK: 1.27.10 | Thoughtspot: 9.12.5.cl
3853
+ */
3854
+ AIHighlights = 'AIHighlights',
3710
3855
  }
3711
3856
 
3712
3857
  export interface AnswerServiceType {
@@ -53,6 +53,18 @@ describe('Unit test for authService', () => {
53
53
  );
54
54
  });
55
55
 
56
+ test('fetchAuthService without username', async () => {
57
+ global.fetch = jest.fn(() => Promise.resolve({ success: true, ok: true }));
58
+ await fetchAuthService(thoughtSpotHost, undefined, authToken);
59
+ expect(fetch).toBeCalledWith(
60
+ `${thoughtSpotHost}${EndPoints.TOKEN_LOGIN}?auth_token=${authToken}`,
61
+ {
62
+ credentials: 'include',
63
+ redirect: 'manual',
64
+ },
65
+ );
66
+ });
67
+
56
68
  test('fetchAuthPostService', async () => {
57
69
  global.fetch = jest.fn(() => Promise.resolve({ success: true, ok: true }));
58
70
  await fetchAuthPostService(thoughtSpotHost, username, authToken);
@@ -68,6 +80,21 @@ describe('Unit test for authService', () => {
68
80
  });
69
81
  });
70
82
 
83
+ test('fetchAuthPostService without username', async () => {
84
+ global.fetch = jest.fn(() => Promise.resolve({ success: true, ok: true }));
85
+ await fetchAuthPostService(thoughtSpotHost, undefined, authToken);
86
+ expect(fetch).toBeCalledWith(`${thoughtSpotHost}${EndPoints.TOKEN_LOGIN}`, {
87
+ method: 'POST',
88
+ credentials: 'include',
89
+ redirect: 'manual',
90
+ body: 'auth_token=token',
91
+ headers: {
92
+ 'content-type': 'application/x-www-form-urlencoded',
93
+ 'x-requested-by': 'ThoughtSpot',
94
+ },
95
+ });
96
+ });
97
+
71
98
  test('fetchBasicAuthService called with manual redirect', async () => {
72
99
  global.fetch = jest.fn(() => Promise.resolve({ success: true, ok: true }));
73
100
  await fetchBasicAuthService(thoughtSpotHost, username, password);
@@ -47,7 +47,7 @@ export async function verifyTokenService(
47
47
  });
48
48
  return res.ok;
49
49
  } catch (e) {
50
- logger.error(`Token Verification Service failed : ${e.message}`);
50
+ logger.warn(`Token Verification Service failed : ${e.message}`);
51
51
  }
52
52
 
53
53
  return false;
@@ -72,15 +72,15 @@ export async function fetchAuthService(
72
72
  username: string,
73
73
  authToken: string,
74
74
  ): Promise<any> {
75
- return failureLoggedFetch(
76
- `${thoughtSpotHost}${EndPoints.TOKEN_LOGIN}?username=${username}&auth_token=${authToken}`,
77
- {
78
- credentials: 'include',
79
- // We do not want to follow the redirect, as it starts giving a CORS
80
- // error
81
- redirect: 'manual',
82
- },
83
- );
75
+ const fetchUrlParams = username
76
+ ? `username=${username}&auth_token=${authToken}`
77
+ : `auth_token=${authToken}`;
78
+ return failureLoggedFetch(`${thoughtSpotHost}${EndPoints.TOKEN_LOGIN}?${fetchUrlParams}`, {
79
+ credentials: 'include',
80
+ // We do not want to follow the redirect, as it starts giving a CORS
81
+ // error
82
+ redirect: 'manual',
83
+ });
84
84
  }
85
85
 
86
86
  /**
@@ -94,15 +94,16 @@ export async function fetchAuthPostService(
94
94
  username: string,
95
95
  authToken: string,
96
96
  ): Promise<any> {
97
+ const bodyPrams = username
98
+ ? `username=${encodeURIComponent(username)}&auth_token=${encodeURIComponent(authToken)}`
99
+ : `auth_token=${encodeURIComponent(authToken)}`;
97
100
  return failureLoggedFetch(`${thoughtSpotHost}${EndPoints.TOKEN_LOGIN}`, {
98
101
  method: 'POST',
99
102
  headers: {
100
103
  'content-type': 'application/x-www-form-urlencoded',
101
104
  'x-requested-by': 'ThoughtSpot',
102
105
  },
103
- body: `username=${encodeURIComponent(username)}&auth_token=${encodeURIComponent(
104
- authToken,
105
- )}`,
106
+ body: bodyPrams,
106
107
  credentials: 'include',
107
108
  // We do not want to follow the redirect, as it starts giving a CORS
108
109
  // error