@thoughtspot/visual-embed-sdk 1.27.0-logger → 1.27.8

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 (167) hide show
  1. package/README.md +3 -3
  2. package/cjs/package.json +1 -1
  3. package/cjs/src/auth.d.ts.map +1 -1
  4. package/cjs/src/auth.js +2 -2
  5. package/cjs/src/auth.js.map +1 -1
  6. package/cjs/src/embed/app.d.ts +8 -2
  7. package/cjs/src/embed/app.d.ts.map +1 -1
  8. package/cjs/src/embed/app.js +5 -2
  9. package/cjs/src/embed/app.js.map +1 -1
  10. package/cjs/src/embed/app.spec.js +10 -0
  11. package/cjs/src/embed/app.spec.js.map +1 -1
  12. package/cjs/src/embed/base.d.ts +1 -1
  13. package/cjs/src/embed/base.d.ts.map +1 -1
  14. package/cjs/src/embed/base.js +5 -5
  15. package/cjs/src/embed/base.js.map +1 -1
  16. package/cjs/src/embed/base.spec.js +1 -1
  17. package/cjs/src/embed/base.spec.js.map +1 -1
  18. package/cjs/src/embed/liveboard.d.ts +7 -1
  19. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  20. package/cjs/src/embed/liveboard.js +5 -2
  21. package/cjs/src/embed/liveboard.js.map +1 -1
  22. package/cjs/src/embed/liveboard.spec.js +2 -1
  23. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  24. package/cjs/src/embed/sage.d.ts +1 -2
  25. package/cjs/src/embed/sage.d.ts.map +1 -1
  26. package/cjs/src/embed/sage.js +7 -6
  27. package/cjs/src/embed/sage.js.map +1 -1
  28. package/cjs/src/embed/sage.spec.js +3 -3
  29. package/cjs/src/embed/sage.spec.js.map +1 -1
  30. package/cjs/src/embed/search.d.ts +6 -3
  31. package/cjs/src/embed/search.d.ts.map +1 -1
  32. package/cjs/src/embed/search.js +9 -9
  33. package/cjs/src/embed/search.js.map +1 -1
  34. package/cjs/src/embed/ts-embed.d.ts +2 -2
  35. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  36. package/cjs/src/embed/ts-embed.js +10 -9
  37. package/cjs/src/embed/ts-embed.js.map +1 -1
  38. package/cjs/src/embed/ts-embed.spec.js +14 -8
  39. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  40. package/cjs/src/react/index.d.ts +1 -1
  41. package/cjs/src/react/index.d.ts.map +1 -1
  42. package/cjs/src/react/index.js +2 -1
  43. package/cjs/src/react/index.js.map +1 -1
  44. package/cjs/src/react/index.spec.js +12 -0
  45. package/cjs/src/react/index.spec.js.map +1 -1
  46. package/cjs/src/types.d.ts +136 -56
  47. package/cjs/src/types.d.ts.map +1 -1
  48. package/cjs/src/types.js +123 -50
  49. package/cjs/src/types.js.map +1 -1
  50. package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  51. package/cjs/src/utils/graphql/answerService/answerService.js +1 -1
  52. package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -1
  53. package/cjs/src/utils/graphql/answerService/answerService.spec.js +2 -0
  54. package/cjs/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
  55. package/cjs/src/utils/logger.d.ts.map +1 -1
  56. package/cjs/src/utils/logger.js +5 -3
  57. package/cjs/src/utils/logger.js.map +1 -1
  58. package/cjs/src/utils/logger.spec.js +36 -0
  59. package/cjs/src/utils/logger.spec.js.map +1 -1
  60. package/dist/src/auth.d.ts.map +1 -1
  61. package/dist/src/embed/app.d.ts +8 -2
  62. package/dist/src/embed/app.d.ts.map +1 -1
  63. package/dist/src/embed/base.d.ts +1 -1
  64. package/dist/src/embed/base.d.ts.map +1 -1
  65. package/dist/src/embed/liveboard.d.ts +7 -1
  66. package/dist/src/embed/liveboard.d.ts.map +1 -1
  67. package/dist/src/embed/sage.d.ts +1 -2
  68. package/dist/src/embed/sage.d.ts.map +1 -1
  69. package/dist/src/embed/search.d.ts +6 -3
  70. package/dist/src/embed/search.d.ts.map +1 -1
  71. package/dist/src/embed/ts-embed.d.ts +2 -2
  72. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  73. package/dist/src/react/index.d.ts +1 -1
  74. package/dist/src/react/index.d.ts.map +1 -1
  75. package/dist/src/types.d.ts +136 -56
  76. package/dist/src/types.d.ts.map +1 -1
  77. package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  78. package/dist/src/utils/logger.d.ts.map +1 -1
  79. package/dist/tsembed-react.es.js +6791 -23886
  80. package/dist/tsembed-react.js +6806 -23902
  81. package/dist/tsembed.es.js +12043 -29138
  82. package/dist/tsembed.js +15362 -32457
  83. package/dist/visual-embed-sdk-react-full.d.ts +176 -61
  84. package/dist/visual-embed-sdk-react.d.ts +176 -61
  85. package/dist/visual-embed-sdk.d.ts +176 -61
  86. package/lib/package.json +1 -1
  87. package/lib/src/auth.d.ts.map +1 -1
  88. package/lib/src/auth.js +3 -3
  89. package/lib/src/auth.js.map +1 -1
  90. package/lib/src/embed/app.d.ts +8 -2
  91. package/lib/src/embed/app.d.ts.map +1 -1
  92. package/lib/src/embed/app.js +5 -2
  93. package/lib/src/embed/app.js.map +1 -1
  94. package/lib/src/embed/app.spec.js +10 -0
  95. package/lib/src/embed/app.spec.js.map +1 -1
  96. package/lib/src/embed/base.d.ts +1 -1
  97. package/lib/src/embed/base.d.ts.map +1 -1
  98. package/lib/src/embed/base.js +5 -5
  99. package/lib/src/embed/base.js.map +1 -1
  100. package/lib/src/embed/base.spec.js +2 -2
  101. package/lib/src/embed/base.spec.js.map +1 -1
  102. package/lib/src/embed/liveboard.d.ts +7 -1
  103. package/lib/src/embed/liveboard.d.ts.map +1 -1
  104. package/lib/src/embed/liveboard.js +5 -2
  105. package/lib/src/embed/liveboard.js.map +1 -1
  106. package/lib/src/embed/liveboard.spec.js +2 -1
  107. package/lib/src/embed/liveboard.spec.js.map +1 -1
  108. package/lib/src/embed/sage.d.ts +1 -2
  109. package/lib/src/embed/sage.d.ts.map +1 -1
  110. package/lib/src/embed/sage.js +7 -6
  111. package/lib/src/embed/sage.js.map +1 -1
  112. package/lib/src/embed/sage.spec.js +3 -3
  113. package/lib/src/embed/sage.spec.js.map +1 -1
  114. package/lib/src/embed/search.d.ts +6 -3
  115. package/lib/src/embed/search.d.ts.map +1 -1
  116. package/lib/src/embed/search.js +10 -10
  117. package/lib/src/embed/search.js.map +1 -1
  118. package/lib/src/embed/ts-embed.d.ts +2 -2
  119. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  120. package/lib/src/embed/ts-embed.js +13 -12
  121. package/lib/src/embed/ts-embed.js.map +1 -1
  122. package/lib/src/embed/ts-embed.spec.js +14 -8
  123. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  124. package/lib/src/react/index.d.ts +1 -1
  125. package/lib/src/react/index.d.ts.map +1 -1
  126. package/lib/src/react/index.js +1 -1
  127. package/lib/src/react/index.js.map +1 -1
  128. package/lib/src/react/index.spec.js +12 -0
  129. package/lib/src/react/index.spec.js.map +1 -1
  130. package/lib/src/types.d.ts +136 -56
  131. package/lib/src/types.d.ts.map +1 -1
  132. package/lib/src/types.js +123 -50
  133. package/lib/src/types.js.map +1 -1
  134. package/lib/src/utils/authService/authService.spec.js +1 -1
  135. package/lib/src/utils/authService/authService.spec.js.map +1 -1
  136. package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  137. package/lib/src/utils/graphql/answerService/answerService.js +1 -1
  138. package/lib/src/utils/graphql/answerService/answerService.js.map +1 -1
  139. package/lib/src/utils/graphql/answerService/answerService.spec.js +2 -0
  140. package/lib/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
  141. package/lib/src/utils/logger.d.ts.map +1 -1
  142. package/lib/src/utils/logger.js +2 -1
  143. package/lib/src/utils/logger.js.map +1 -1
  144. package/lib/src/utils/logger.spec.js +36 -0
  145. package/lib/src/utils/logger.spec.js.map +1 -1
  146. package/lib/src/visual-embed-sdk.d.ts +179 -64
  147. package/package.json +1 -1
  148. package/src/auth.ts +6 -6
  149. package/src/embed/app.spec.ts +15 -0
  150. package/src/embed/app.ts +14 -3
  151. package/src/embed/base.spec.ts +3 -3
  152. package/src/embed/base.ts +12 -12
  153. package/src/embed/liveboard.spec.ts +2 -1
  154. package/src/embed/liveboard.ts +16 -6
  155. package/src/embed/sage.spec.ts +3 -3
  156. package/src/embed/sage.ts +8 -9
  157. package/src/embed/search.ts +15 -11
  158. package/src/embed/ts-embed.spec.ts +25 -19
  159. package/src/embed/ts-embed.ts +39 -41
  160. package/src/react/index.spec.tsx +29 -0
  161. package/src/react/index.tsx +1 -0
  162. package/src/types.ts +141 -58
  163. package/src/utils/authService/authService.spec.ts +4 -4
  164. package/src/utils/graphql/answerService/answerService.spec.ts +2 -0
  165. package/src/utils/graphql/answerService/answerService.ts +3 -1
  166. package/src/utils/logger.spec.ts +41 -0
  167. package/src/utils/logger.ts +2 -1
@@ -199,6 +199,35 @@ describe('React Components', () => {
199
199
  ).toBe(true);
200
200
  expect(containerSibling.querySelector('div')).toBe(null);
201
201
  });
202
+
203
+ it('Should have the correct container element', async () => {
204
+ const { container } = render(
205
+ <LiveboardEmbed liveboardId="abcd" className="def" />,
206
+ );
207
+
208
+ await waitFor(() => getIFrameEl(container));
209
+ expect(container.querySelector('div')).not.toBe(null);
210
+ expect(
211
+ container.querySelector('div').classList.contains('def'),
212
+ ).toBe(true);
213
+
214
+ const { container: containerSibling } = render(
215
+ <LiveboardEmbed
216
+ liveboardId="abcd"
217
+ className="def"
218
+ insertAsSibling={true}
219
+ />,
220
+ );
221
+ await waitFor(() => getIFrameEl(containerSibling));
222
+ expect(containerSibling.querySelector('span')).not.toBe(null);
223
+ expect(containerSibling.querySelector('span').style.position).toBe(
224
+ 'absolute',
225
+ );
226
+ expect(
227
+ getIFrameEl(containerSibling).classList.contains('def'),
228
+ ).toBe(true);
229
+ expect(containerSibling.querySelector('div')).toBe(null);
230
+ });
202
231
  });
203
232
 
204
233
  describe('SearchBarEmbed', () => {
@@ -380,4 +380,5 @@ export {
380
380
  FrameParams,
381
381
  HomeLeftNavItem,
382
382
  HomepageModule,
383
+ LogLevel,
383
384
  } from '../index';
package/src/types.ts CHANGED
@@ -470,6 +470,7 @@ export interface EmbedConfig {
470
470
  * @version SDK: 1.12.0 | ThoughtSpot: 8.4.0.cl, 8.4.1.sw*
471
471
  */
472
472
  suppressSearchEmbedBetaWarning?: boolean;
473
+
473
474
  /**
474
475
  * Hide `beta` alert warning message for SageEmbed.
475
476
  *
@@ -549,8 +550,8 @@ export interface EmbedConfig {
549
550
 
550
551
  /**
551
552
  * Log level for the SDK.
552
- * @default LogLevel.ERROR
553
553
  *
554
+ * @default LogLevel.ERROR
554
555
  * @example
555
556
  * ```js
556
557
  * init({
@@ -558,7 +559,7 @@ export interface EmbedConfig {
558
559
  * logLevel: LogLevel.SILENT
559
560
  * })
560
561
  * ```
561
- * @version SDK: 1.26.3 | ThoughtSpot: 9.10.0.cl
562
+ * @version SDK: 1.26.7 | ThoughtSpot: 9.10.0.cl
562
563
  */
563
564
  logLevel?: LogLevel;
564
565
  }
@@ -799,6 +800,7 @@ export interface ViewConfig {
799
800
  * ```js
800
801
  * hiddenHomeLeftNavItems = [HomeLeftNavItem.Home]
801
802
  * ```
803
+ *
802
804
  * @version SDK: 1.27.0 | Thoughtspot: 9.10.0.cl
803
805
  */
804
806
  hiddenHomeLeftNavItems?: HomeLeftNavItem[];
@@ -837,6 +839,12 @@ export interface ViewConfig {
837
839
  * const myComponent = new MyComponent(config);
838
840
  */
839
841
  doNotTrackPreRenderSize?: boolean;
842
+ /**
843
+ * For internal tracking of the embed component type.
844
+ *
845
+ * @hidden
846
+ */
847
+ embedComponentType?: string;
840
848
  }
841
849
 
842
850
  /**
@@ -1051,6 +1059,7 @@ export interface RuntimeParameter {
1051
1059
  export enum EmbedEvent {
1052
1060
  /**
1053
1061
  * Rendering has initialized.
1062
+ *
1054
1063
  * @example
1055
1064
  *```js
1056
1065
  * liveboardEmbed.on(EmbedEvent.Init, showLoader)
@@ -1059,7 +1068,6 @@ export enum EmbedEvent {
1059
1068
  * document.getElementById("loader");
1060
1069
  * }
1061
1070
  *```
1062
- *
1063
1071
  * @returns timestamp - The timestamp when the event was generated.
1064
1072
  */
1065
1073
  Init = 'init',
@@ -1072,12 +1080,12 @@ export enum EmbedEvent {
1072
1080
  * console.log('AuthInit', payload);
1073
1081
  * })
1074
1082
  *```
1075
- *
1076
1083
  * @returns isLoggedIn - A Boolean specifying whether authentication was successful.
1077
1084
  */
1078
1085
  AuthInit = 'authInit',
1079
1086
  /**
1080
1087
  * The embed object container has loaded.
1088
+ *
1081
1089
  * @returns timestamp - The timestamp when the event was generated.
1082
1090
  * @example
1083
1091
  *```js
@@ -1091,6 +1099,7 @@ export enum EmbedEvent {
1091
1099
  Load = 'load',
1092
1100
  /**
1093
1101
  * Data pertaining to answer or Liveboard is received
1102
+ *
1094
1103
  * @return data - The answer or Liveboard data
1095
1104
  * @example
1096
1105
  *```js
@@ -1114,7 +1123,6 @@ export enum EmbedEvent {
1114
1123
  *```js
1115
1124
  * searchEmbed.on(EmbedEvent.QueryChanged, payload => console.log('data', payload))
1116
1125
  *```
1117
- *
1118
1126
  */
1119
1127
  QueryChanged = 'queryChanged',
1120
1128
  /**
@@ -1123,7 +1131,6 @@ export enum EmbedEvent {
1123
1131
  * @returns additionalFilters - Any additional filters applied
1124
1132
  * @returns drillDownColumns - The columns on which drill down was performed
1125
1133
  * @returns nonFilteredColumns - The columns that were not filtered
1126
- *
1127
1134
  * @example
1128
1135
  *```js
1129
1136
  * searchEmbed.trigger(HostEvent.DrillDown, {
@@ -1137,7 +1144,6 @@ export enum EmbedEvent {
1137
1144
  * In this example, `VizPointDoubleClick` event is used for
1138
1145
  * triggering the `DrillDown` event when an area or specific
1139
1146
  * data point on a table or chart is double-clicked.
1140
- *
1141
1147
  * @example
1142
1148
  *```js
1143
1149
  * searchEmbed.on(EmbedEvent.VizPointDoubleClick, (payload) => {
@@ -1154,34 +1160,31 @@ export enum EmbedEvent {
1154
1160
  * })
1155
1161
  * })
1156
1162
  *```
1157
- *
1158
1163
  */
1159
1164
  Drilldown = 'drillDown',
1160
1165
  /**
1161
1166
  * One or more data sources have been selected.
1162
- * @returns dataSourceIds - the list of data sources
1163
1167
  *
1168
+ * @returns dataSourceIds - the list of data sources
1164
1169
  * @example
1165
1170
  * ```js
1166
1171
  * searchEmbed.on(EmbedEvent.DataSourceSelected, payload => {
1167
1172
  * console.log('DataSourceSelected', payload);
1168
1173
  * })
1169
1174
  * ```
1170
- *
1171
1175
  */
1172
1176
  DataSourceSelected = 'dataSourceSelected',
1173
1177
  /**
1174
1178
  * One or more data columns have been selected.
1179
+ *
1175
1180
  * @returns columnIds - the list of columns
1176
1181
  * @version SDK: 1.10.0 | ThoughtSpot: 8.2.0.cl, 8.4.1.sw
1177
- *
1178
1182
  * @example
1179
1183
  * ```js
1180
1184
  * appEmbed.on(EmbedEvent.AddRemoveColumns, payload => {
1181
1185
  * console.log('AddRemoveColumns', payload);
1182
1186
  * })
1183
1187
  * ```
1184
- *
1185
1188
  */
1186
1189
  AddRemoveColumns = 'addRemoveColumns',
1187
1190
  /**
@@ -1189,7 +1192,6 @@ export enum EmbedEvent {
1189
1192
  *
1190
1193
  * @returns actionId - ID of the custom action
1191
1194
  * @returns data - Response payload with the Answer or Liveboard data
1192
- *
1193
1195
  * @example
1194
1196
  * ```js
1195
1197
  * appEmbed.on(EmbedEvent.customAction, payload => {
@@ -1205,9 +1207,7 @@ export enum EmbedEvent {
1205
1207
  * Listen to double click actions on a visualization.
1206
1208
  *
1207
1209
  * @return ContextMenuInputPoints - Data point that is double-clicked
1208
- *
1209
1210
  * @version SDK: 1.5.0 | ThoughtSpot: ts7.oct.cl, 7.2.1
1210
- *
1211
1211
  * @example
1212
1212
  * ```js
1213
1213
  * livebaordEmbed.on(EmbedEvent.VizPointDoubleClick, payload => {
@@ -1222,7 +1222,6 @@ export enum EmbedEvent {
1222
1222
  * @return viz, clickedPoint - metadata about the point that is clicked
1223
1223
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
1224
1224
  * @important
1225
- *
1226
1225
  * @example
1227
1226
  * ```js
1228
1227
  * embed.on(ThoughtSpotEmbed.Event.VizPointClick, ({data}) => {
@@ -1241,7 +1240,6 @@ export enum EmbedEvent {
1241
1240
  * An error has occurred.
1242
1241
  *
1243
1242
  * @returns error - An error object or message
1244
- *
1245
1243
  * @example
1246
1244
  * ```js
1247
1245
  * SearchEmbed.on(EmbedEvent.Error, showErrorMsg)
@@ -1249,19 +1247,16 @@ export enum EmbedEvent {
1249
1247
  * function showErrorMsg() {
1250
1248
  * document.getElementById("error");
1251
1249
  * ```
1252
- *
1253
1250
  */
1254
1251
  Error = 'Error',
1255
1252
  /**
1256
1253
  * The embedded object has sent an alert.
1257
1254
  *
1258
1255
  * @returns alert - An alert object
1259
- *
1260
1256
  * @example
1261
1257
  * ```js
1262
1258
  * searchEmbed.on(EmbedEvent.Alert)
1263
1259
  * ```
1264
- *
1265
1260
  */
1266
1261
  Alert = 'alert',
1267
1262
  /**
@@ -1308,7 +1303,6 @@ export enum EmbedEvent {
1308
1303
  * Applicable to `SearchBarEmbed` only.
1309
1304
  *
1310
1305
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1.sw
1311
- *
1312
1306
  * @example
1313
1307
  *```js
1314
1308
  * searchbarEmbed.on(EmbedEvent.GetDataClick)
@@ -1355,8 +1349,8 @@ export enum EmbedEvent {
1355
1349
  SAMLComplete = 'samlComplete',
1356
1350
  /**
1357
1351
  * Emitted when any modal is opened in the app
1358
- * @version SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
1359
1352
  *
1353
+ * @version SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
1360
1354
  * @example
1361
1355
  *```js
1362
1356
  * appEmbed.on(EmbedEvent.DialogOpen, payload => {
@@ -1367,8 +1361,8 @@ export enum EmbedEvent {
1367
1361
  DialogOpen = 'dialog-open',
1368
1362
  /**
1369
1363
  * Emitted when any modal is closed in the app
1370
- * @version SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
1371
1364
  *
1365
+ * @version SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
1372
1366
  * @example
1373
1367
  *```js
1374
1368
  * appEmbed.on(EmbedEvent.DialogClose, payload => {
@@ -1381,8 +1375,8 @@ export enum EmbedEvent {
1381
1375
  * Emitted when the Liveboard shell loads.
1382
1376
  * You can use this event as a hook to trigger
1383
1377
  * other events on the rendered Liveboard.
1384
- * @version SDK: 1.9.1 | ThoughtSpot: 8.1.0.cl, 8.4.1.sw
1385
1378
  *
1379
+ * @version SDK: 1.9.1 | ThoughtSpot: 8.1.0.cl, 8.4.1.sw
1386
1380
  * @example
1387
1381
  *```js
1388
1382
  * liveboardEmbed.on(EmbedEvent.LiveboardRendered, payload => {
@@ -1391,7 +1385,6 @@ export enum EmbedEvent {
1391
1385
  *```
1392
1386
  * The following example shows how to trigger
1393
1387
  * `SetVisibleVizs` event using LiveboardRendered embed event:
1394
- *
1395
1388
  * @example
1396
1389
  *```js
1397
1390
  * const embedRef = useEmbedRef();
@@ -1404,8 +1397,8 @@ export enum EmbedEvent {
1404
1397
  /**
1405
1398
  * This can be used to register an event listener which
1406
1399
  * is triggered on all events.
1407
- * @Version SDK: 1.10.0 | ThoughtSpot: 8.2.0.cl, 8.4.1.sw
1408
1400
  *
1401
+ * @Version SDK: 1.10.0 | ThoughtSpot: 8.2.0.cl, 8.4.1.sw
1409
1402
  * @example
1410
1403
  *```js
1411
1404
  * appEmbed.on(EmbedEvent.ALL, payload => {
@@ -1416,6 +1409,7 @@ export enum EmbedEvent {
1416
1409
  ALL = '*',
1417
1410
  /**
1418
1411
  * Emitted when an Answer is saved in the app
1412
+ *
1419
1413
  * @Version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
1420
1414
  * @example
1421
1415
  *```js
@@ -1441,7 +1435,6 @@ export enum EmbedEvent {
1441
1435
  * or `EmbedEvent.DownloadAsXLSX`
1442
1436
  *
1443
1437
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
1444
- *
1445
1438
  * @example
1446
1439
  *```js
1447
1440
  * liveboardEmbed.trigger(HostEvent.Download, {
@@ -1452,8 +1445,8 @@ export enum EmbedEvent {
1452
1445
  Download = 'download',
1453
1446
  /**
1454
1447
  * Emitted when the download action is triggered on an answer
1455
- * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.4.0.sw
1456
1448
  *
1449
+ * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.4.0.sw
1457
1450
  * @example
1458
1451
  *```js
1459
1452
  * //trigger when action starts
@@ -1463,14 +1456,12 @@ export enum EmbedEvent {
1463
1456
  * searchEmbed.on(EmbedEvent.DownloadAsPng, payload => {
1464
1457
  * console.log('download PNG', payload)})
1465
1458
  *```
1466
- *
1467
1459
  */
1468
1460
  DownloadAsPng = 'downloadAsPng',
1469
1461
  /**
1470
1462
  * Emitted when the Download as PDF action is triggered on an answer
1471
1463
  *
1472
1464
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
1473
- *
1474
1465
  * @example
1475
1466
  *```js
1476
1467
  * //trigger when action starts
@@ -1480,7 +1471,6 @@ export enum EmbedEvent {
1480
1471
  * searchEmbed.on(EmbedEvent.DownloadAsPdf, payload => {
1481
1472
  * console.log('download PDF', payload)})
1482
1473
  *```
1483
- *
1484
1474
  */
1485
1475
  DownloadAsPdf = 'downloadAsPdf',
1486
1476
  /**
@@ -1502,7 +1492,6 @@ export enum EmbedEvent {
1502
1492
  * Emitted when the Download as XLSX action is triggered on an answer
1503
1493
  *
1504
1494
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
1505
- *
1506
1495
  * @example
1507
1496
  *```js
1508
1497
  * //trigger when action starts
@@ -1518,7 +1507,6 @@ export enum EmbedEvent {
1518
1507
  * Emitted when an Answer is deleted in the app
1519
1508
  *
1520
1509
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
1521
- *
1522
1510
  * @example
1523
1511
  *```js
1524
1512
  * //trigger when action starts
@@ -1572,7 +1560,6 @@ export enum EmbedEvent {
1572
1560
  * Emitted when a user shares an object with another user or group
1573
1561
  *
1574
1562
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
1575
- *
1576
1563
  * @example
1577
1564
  *```js
1578
1565
  * //trigger when action starts
@@ -1652,6 +1639,7 @@ export enum EmbedEvent {
1652
1639
  /**
1653
1640
  * Emitted when the **Export TML** action is triggered on an
1654
1641
  * an embedded object in the app
1642
+ *
1655
1643
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
1656
1644
  * @example
1657
1645
  *```js
@@ -1789,7 +1777,6 @@ export enum EmbedEvent {
1789
1777
  *```js
1790
1778
  * liveboardEmbed.trigger(HostEvent.Present)
1791
1779
  *```
1792
- *
1793
1780
  * @example
1794
1781
  *```js
1795
1782
  * liveboardEmbed.on(EmbedEvent.Present, {
@@ -1807,77 +1794,65 @@ export enum EmbedEvent {
1807
1794
  * liveboardEmbed.trigger(HostEvent.Delete,
1808
1795
  * {vizId: '730496d6-6903-4601-937e-2c691821af3c'})
1809
1796
  *```
1810
- *
1811
1797
  */
1812
1798
  Delete = 'delete',
1813
1799
  /**
1814
1800
  * Emitted when a user clicks Manage schedules on a Liveboard
1815
1801
  *
1816
1802
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
1817
- *
1818
1803
  * @example
1819
1804
  *```js
1820
1805
  * liveboardEmbed.trigger(HostEvent.SchedulesList)
1821
1806
  *```
1822
- *
1823
1807
  */
1824
1808
  SchedulesList = 'schedule-list',
1825
1809
  /**
1826
1810
  * Emitted when a user clicks **Cancel** in edit mode on a Liveboard
1827
1811
  *
1828
1812
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
1829
- *
1830
1813
  * @example
1831
1814
  *```js
1832
1815
  * liveboardEmbed.trigger(HostEvent.Cancel)
1833
1816
  *```
1834
- *
1835
1817
  */
1836
1818
  Cancel = 'cancel',
1837
1819
  /**
1838
1820
  * Emitted when a user clicks **Explore** on a visualization
1839
1821
  *
1840
1822
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
1841
- *
1842
1823
  * @example
1843
1824
  *```js
1844
1825
  * liveboardEmbed.trigger(HostEvent.Explore, {
1845
1826
  * vizId: '730496d6-6903-4601-937e-2c691821af3c'})
1846
1827
  *```
1847
- *
1848
1828
  */
1849
1829
  Explore = 'explore',
1850
1830
  /**
1851
1831
  * Emitted when a user clicks **Copy link** action on a visualization
1852
1832
  *
1853
1833
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
1854
- *
1855
1834
  * @example
1856
1835
  *```js
1857
1836
  * liveboardEmbed.trigger(HostEvent.CopyLink, {
1858
1837
  * vizId: '730496d6-6903-4601-937e-2c691821af3c'})
1859
1838
  *```
1860
- *
1861
1839
  */
1862
1840
  CopyLink = 'embedDocument',
1863
1841
  /**
1864
1842
  * Emitted when a user interacts with cross filters on a visualization or Liveboard
1865
1843
  *
1866
1844
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.5.0.sw
1867
- *
1868
1845
  * @example
1869
1846
  *```js
1870
1847
  * liveboardEmbed.trigger(HostEvent.CrossFilterChanged, {
1871
1848
  * vizId: '730496d6-6903-4601-937e-2c691821af3c'})
1872
1849
  *```
1873
- *
1874
1850
  */
1875
1851
  CrossFilterChanged = 'cross-filter-changed',
1876
1852
  /**
1877
1853
  * Emitted when a user right clicks on a visualization (chart or table)
1878
1854
  *
1879
1855
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.5.0.sw
1880
- *
1881
1856
  * @example
1882
1857
  *```js
1883
1858
  * LiveboardEmbed.on(EmbedEvent.VizPointRightClick, payload => {
@@ -1908,7 +1883,6 @@ export enum EmbedEvent {
1908
1883
  * Emitted when a user selects a data source.
1909
1884
  *
1910
1885
  * @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl, 9.8.0.sw
1911
- *
1912
1886
  */
1913
1887
  SageWorksheetUpdated = 'sageWorksheetUpdated',
1914
1888
  /**
@@ -1968,6 +1942,22 @@ export enum EmbedEvent {
1968
1942
  * @version SDK : 1.27.0 | Thoughtspot: 9.8.0.cl
1969
1943
  */
1970
1944
  CreateWorksheet = 'createWorksheet',
1945
+ /**
1946
+ * Emitted when Ask Sage is initialized.
1947
+ *
1948
+ * @returns viewName: string
1949
+ * @returns viewId: string
1950
+ * @returns liveboardId: string
1951
+ * @returns isPublic: boolean
1952
+ * @version SDK : 1.29.0 | Thoughtspot: 9.12.0.cl
1953
+ */
1954
+ AskSageInit = 'AskSageInit',
1955
+ /**
1956
+ * Emitted when a LB/viz is renamed
1957
+ *
1958
+ * @version SDK : 1.28.0 | ThoughtSpot: 9.11.0.cl
1959
+ */
1960
+ Rename = 'rename',
1971
1961
  }
1972
1962
 
1973
1963
  /**
@@ -2058,7 +2048,7 @@ export enum HostEvent {
2058
2048
  * clickedPoint,
2059
2049
  * selectedPoints: selectedPoint
2060
2050
  * },
2061
- * autoDrillDown: true,
2051
+ * columnGuid: "<guid of the column to drill>",
2062
2052
  * vizId: payload.data.vizId
2063
2053
  * });
2064
2054
  * })
@@ -2137,7 +2127,6 @@ export enum HostEvent {
2137
2127
  *
2138
2128
  * @param - `path` - the path to navigate to to go forward or back. The path value can
2139
2129
  * be a number; for example, `1`, `-1`.
2140
- *
2141
2130
  * @example
2142
2131
  * ```js
2143
2132
  * appEmbed.navigateToPage(-1)
@@ -2708,9 +2697,7 @@ export enum HostEvent {
2708
2697
  * Updates the search query string for Natural Language Search operations.
2709
2698
  *
2710
2699
  * @param - `queryString`: Text string in Natural Language format
2711
- *
2712
2700
  * @param - `executeSearch`: Boolean to execute search and update search query
2713
- *
2714
2701
  * @example
2715
2702
  * ```js
2716
2703
  * sageEmbed.trigger(HostEvent.UpdateSageQuery, {
@@ -2734,6 +2721,17 @@ export enum HostEvent {
2734
2721
  * @version SDK: 1.26.0 | Thoughtspot: 9.10.0.cl
2735
2722
  */
2736
2723
  GetAnswerSession = 'getAnswerSession',
2724
+ /**
2725
+ * Trigger Ask Sage for viz
2726
+ *
2727
+ * @example
2728
+ * ```js
2729
+ * liveboardEmbed.trigger(HostEvent.AskSage,
2730
+ * {vizId:'730496d6-6903-4601-937e-2c691821af3c'})
2731
+ * ```
2732
+ * @version SDK: 1.29.0 | Thoughtspot: 9.12.0.cl
2733
+ */
2734
+ AskSage = 'AskSage',
2737
2735
  }
2738
2736
 
2739
2737
  /**
@@ -2834,6 +2832,7 @@ export enum Param {
2834
2832
  HideSearchBar = 'hideSearchBar',
2835
2833
  ClientLogLevel = 'clientLogLevel',
2836
2834
  OverrideNativeConsole = 'overrideConsoleLogs',
2835
+ enableAskSage = 'enableAskSage',
2837
2836
  }
2838
2837
 
2839
2838
  /**
@@ -3697,6 +3696,17 @@ export enum Action {
3697
3696
  * @version SDK: 1.29.0 | Thoughtspot: 9.10.0.cl
3698
3697
  */
3699
3698
  VerifiedLiveboard = 'verifiedLiveboard',
3699
+
3700
+ /**
3701
+ * Action ID for ask sage button
3702
+ *
3703
+ * @example
3704
+ * ```js
3705
+ * hiddenAction: [Action.AskAi]
3706
+ * ```
3707
+ * @version SDK: 1.29.0 | Thoughtspot: 9.12.0.cl
3708
+ */
3709
+ AskAi = 'AskAi',
3700
3710
  }
3701
3711
 
3702
3712
  export interface AnswerServiceType {
@@ -3764,10 +3774,83 @@ export interface CustomActionPayload {
3764
3774
  }
3765
3775
 
3766
3776
  export enum LogLevel {
3767
- SILENT = 'SILENT',
3768
- ERROR = 'ERROR',
3769
- WARN = 'WARN',
3770
- INFO = 'INFO',
3771
- DEBUG = 'DEBUG',
3772
- TRACE = 'TRACE',
3777
+ /**
3778
+ * No logs will be logged in the console.
3779
+ *
3780
+ * @example
3781
+ * ```js
3782
+ * init({
3783
+ * ... // other options,
3784
+ * logLevel: LogLevel.SILENT,
3785
+ * })
3786
+ * ```
3787
+ * @version SDK: 1.26.7 | Thoughtspot: 9.10.0.cl
3788
+ */
3789
+ SILENT = 'SILENT',
3790
+ /**
3791
+ * Only ERROR logs will be logged in the console.
3792
+ *
3793
+ * @example
3794
+ * ```js
3795
+ * init({
3796
+ * ... // other options,
3797
+ * logLevel: LogLevel.ERROR,
3798
+ * })
3799
+ * ```
3800
+ * @version SDK: 1.26.7 | Thoughtspot: 9.10.0.cl
3801
+ */
3802
+ ERROR = 'ERROR',
3803
+ /**
3804
+ * Only WARN and ERROR logs will be logged in the console.
3805
+ *
3806
+ * @example
3807
+ * ```js
3808
+ * init({
3809
+ * ... // other options,
3810
+ * logLevel: LogLevel.WARN,
3811
+ * })
3812
+ * ```
3813
+ * @version SDK: 1.26.7 | Thoughtspot: 9.10.0.cl
3814
+ */
3815
+ WARN = 'WARN',
3816
+ /**
3817
+ * Only INFO, WARN, and ERROR logs will be logged in the console.
3818
+ *
3819
+ * @example
3820
+ * ```js
3821
+ * init({
3822
+ * ... // other options,
3823
+ * logLevel: LogLevel.INFO,
3824
+ * })
3825
+ * ```
3826
+ * @version SDK: 1.26.7 | Thoughtspot: 9.10.0.cl
3827
+ */
3828
+ INFO = 'INFO',
3829
+
3830
+ /**
3831
+ * Only DEBUG, INFO, WARN, and ERROR logs will be logged in the console.
3832
+ *
3833
+ * @example
3834
+ * ```js
3835
+ * init({
3836
+ * ... // other options,
3837
+ * logLevel: LogLevel.DEBUG,
3838
+ * })
3839
+ * ```
3840
+ * @version SDK: 1.26.7 | Thoughtspot: 9.10.0.cl
3841
+ */
3842
+ DEBUG = 'DEBUG',
3843
+ /**
3844
+ * All logs will be logged in the console.
3845
+ *
3846
+ * @example
3847
+ * ```js
3848
+ * init({
3849
+ * ... // other options,
3850
+ * logLevel: LogLevel.TRACE,
3851
+ * })
3852
+ * ```
3853
+ * @version SDK: 1.26.7 | Thoughtspot: 9.10.0.cl
3854
+ */
3855
+ TRACE = 'TRACE',
3773
3856
  }
@@ -1,11 +1,11 @@
1
1
  import {
2
- fetchSessionInfoService,
3
- fetchAuthTokenService,
2
+ EndPoints,
3
+ fetchAuthPostService,
4
4
  fetchAuthService,
5
+ fetchAuthTokenService,
5
6
  fetchBasicAuthService,
6
- fetchAuthPostService,
7
+ fetchSessionInfoService,
7
8
  verifyTokenService,
8
- EndPoints,
9
9
  } from '.';
10
10
  import { logger } from '../logger';
11
11
 
@@ -74,6 +74,8 @@ describe('Answer service tests', () => {
74
74
  id: {},
75
75
  answer: {
76
76
  visualizations: [{
77
+ id: 'vizId',
78
+ }, {
77
79
  columns: [{
78
80
  column: {
79
81
  id: 'id1',
@@ -88,7 +88,9 @@ export class AnswerService {
88
88
  },
89
89
  },
90
90
  );
91
- const { columns, data } = answer.visualizations[0];
91
+ const { columns, data } = answer.visualizations.find(
92
+ (viz: any) => !!viz.data,
93
+ ) || {};
92
94
  return {
93
95
  columns,
94
96
  data,