@thoughtspot/visual-embed-sdk 1.21.0-alpha.8 → 1.21.0-react.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/cjs/package.json +11 -8
  2. package/cjs/src/auth.d.ts +2 -0
  3. package/cjs/src/auth.d.ts.map +1 -1
  4. package/cjs/src/auth.js +2 -0
  5. package/cjs/src/auth.js.map +1 -1
  6. package/cjs/src/embed/app.d.ts +28 -1
  7. package/cjs/src/embed/app.d.ts.map +1 -1
  8. package/cjs/src/embed/app.js +32 -1
  9. package/cjs/src/embed/app.js.map +1 -1
  10. package/cjs/src/embed/app.spec.js +67 -0
  11. package/cjs/src/embed/app.spec.js.map +1 -1
  12. package/cjs/src/embed/base.d.ts +16 -0
  13. package/cjs/src/embed/base.d.ts.map +1 -1
  14. package/cjs/src/embed/base.js +85 -1
  15. package/cjs/src/embed/base.js.map +1 -1
  16. package/cjs/src/embed/base.spec.js +127 -0
  17. package/cjs/src/embed/base.spec.js.map +1 -1
  18. package/cjs/src/embed/liveboard.spec.js +19 -0
  19. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  20. package/cjs/src/embed/pinboard.spec.js +19 -0
  21. package/cjs/src/embed/pinboard.spec.js.map +1 -1
  22. package/cjs/src/embed/search.d.ts.map +1 -1
  23. package/cjs/src/embed/search.js +2 -2
  24. package/cjs/src/embed/search.js.map +1 -1
  25. package/cjs/src/embed/search.spec.js +24 -0
  26. package/cjs/src/embed/search.spec.js.map +1 -1
  27. package/cjs/src/embed/searchEmbed-basic-auth.spec.js +1 -1
  28. package/cjs/src/embed/searchEmbed-basic-auth.spec.js.map +1 -1
  29. package/cjs/src/embed/ts-embed.d.ts +3 -3
  30. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  31. package/cjs/src/embed/ts-embed.js +28 -9
  32. package/cjs/src/embed/ts-embed.js.map +1 -1
  33. package/cjs/src/embed/ts-embed.spec.js +82 -6
  34. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  35. package/cjs/src/index.d.ts +3 -3
  36. package/cjs/src/index.d.ts.map +1 -1
  37. package/cjs/src/index.js +4 -1
  38. package/cjs/src/index.js.map +1 -1
  39. package/cjs/src/react/all-types-export.d.ts +3 -0
  40. package/cjs/src/react/all-types-export.d.ts.map +1 -0
  41. package/cjs/src/react/all-types-export.js +29 -0
  42. package/cjs/src/react/all-types-export.js.map +1 -0
  43. package/cjs/src/react/all-types-export.spec.d.ts +2 -0
  44. package/cjs/src/react/all-types-export.spec.d.ts.map +1 -0
  45. package/cjs/src/react/all-types-export.spec.js +13 -0
  46. package/cjs/src/react/all-types-export.spec.js.map +1 -0
  47. package/cjs/src/react/index.d.ts +58 -1
  48. package/cjs/src/react/index.d.ts.map +1 -1
  49. package/cjs/src/react/index.js +65 -2
  50. package/cjs/src/react/index.js.map +1 -1
  51. package/cjs/src/react/index.spec.js +12 -2
  52. package/cjs/src/react/index.spec.js.map +1 -1
  53. package/cjs/src/test/test-utils.d.ts.map +1 -1
  54. package/cjs/src/test/test-utils.js +2 -2
  55. package/cjs/src/test/test-utils.js.map +1 -1
  56. package/cjs/src/types.d.ts +165 -20
  57. package/cjs/src/types.d.ts.map +1 -1
  58. package/cjs/src/types.js +113 -17
  59. package/cjs/src/types.js.map +1 -1
  60. package/cjs/src/utils/processTrigger.d.ts +6 -0
  61. package/cjs/src/utils/processTrigger.d.ts.map +1 -1
  62. package/cjs/src/utils/processTrigger.js +10 -8
  63. package/cjs/src/utils/processTrigger.js.map +1 -1
  64. package/cjs/src/utils/processTrigger.spec.js +5 -2
  65. package/cjs/src/utils/processTrigger.spec.js.map +1 -1
  66. package/cjs/src/utils.d.ts +1 -0
  67. package/cjs/src/utils.d.ts.map +1 -1
  68. package/cjs/src/utils.js +3 -1
  69. package/cjs/src/utils.js.map +1 -1
  70. package/dist/src/auth.d.ts +2 -0
  71. package/dist/src/auth.d.ts.map +1 -1
  72. package/dist/src/embed/app.d.ts +28 -1
  73. package/dist/src/embed/app.d.ts.map +1 -1
  74. package/dist/src/embed/base.d.ts +16 -0
  75. package/dist/src/embed/base.d.ts.map +1 -1
  76. package/dist/src/embed/search.d.ts.map +1 -1
  77. package/dist/src/embed/ts-embed.d.ts +3 -3
  78. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  79. package/dist/src/index.d.ts +3 -3
  80. package/dist/src/index.d.ts.map +1 -1
  81. package/dist/src/react/all-types-export.d.ts +3 -0
  82. package/dist/src/react/all-types-export.d.ts.map +1 -0
  83. package/dist/src/react/all-types-export.spec.d.ts +2 -0
  84. package/dist/src/react/all-types-export.spec.d.ts.map +1 -0
  85. package/dist/src/react/index.d.ts +58 -1
  86. package/dist/src/react/index.d.ts.map +1 -1
  87. package/dist/src/test/test-utils.d.ts.map +1 -1
  88. package/dist/src/types.d.ts +165 -20
  89. package/dist/src/types.d.ts.map +1 -1
  90. package/dist/src/utils/processTrigger.d.ts +6 -0
  91. package/dist/src/utils/processTrigger.d.ts.map +1 -1
  92. package/dist/src/utils.d.ts +1 -0
  93. package/dist/src/utils.d.ts.map +1 -1
  94. package/dist/tsembed-react.es.js +28039 -0
  95. package/dist/tsembed-react.js +27981 -0
  96. package/dist/tsembed.es.js +269 -38
  97. package/dist/tsembed.js +269 -40
  98. package/dist/visual-embed-sdk-react-full.d.ts +3112 -0
  99. package/dist/visual-embed-sdk-react.d.ts +2781 -0
  100. package/dist/visual-embed-sdk.d.ts +3005 -0
  101. package/lib/package.json +11 -8
  102. package/lib/src/auth.d.ts +2 -0
  103. package/lib/src/auth.d.ts.map +1 -1
  104. package/lib/src/auth.js +2 -0
  105. package/lib/src/auth.js.map +1 -1
  106. package/lib/src/embed/app.d.ts +28 -1
  107. package/lib/src/embed/app.d.ts.map +1 -1
  108. package/lib/src/embed/app.js +33 -2
  109. package/lib/src/embed/app.js.map +1 -1
  110. package/lib/src/embed/app.spec.js +68 -1
  111. package/lib/src/embed/app.spec.js.map +1 -1
  112. package/lib/src/embed/base.d.ts +16 -0
  113. package/lib/src/embed/base.d.ts.map +1 -1
  114. package/lib/src/embed/base.js +83 -1
  115. package/lib/src/embed/base.js.map +1 -1
  116. package/lib/src/embed/base.spec.js +127 -0
  117. package/lib/src/embed/base.spec.js.map +1 -1
  118. package/lib/src/embed/liveboard.spec.js +19 -0
  119. package/lib/src/embed/liveboard.spec.js.map +1 -1
  120. package/lib/src/embed/pinboard.spec.js +19 -0
  121. package/lib/src/embed/pinboard.spec.js.map +1 -1
  122. package/lib/src/embed/search.d.ts.map +1 -1
  123. package/lib/src/embed/search.js +2 -2
  124. package/lib/src/embed/search.js.map +1 -1
  125. package/lib/src/embed/search.spec.js +24 -0
  126. package/lib/src/embed/search.spec.js.map +1 -1
  127. package/lib/src/embed/searchEmbed-basic-auth.spec.js +1 -1
  128. package/lib/src/embed/searchEmbed-basic-auth.spec.js.map +1 -1
  129. package/lib/src/embed/ts-embed.d.ts +3 -3
  130. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  131. package/lib/src/embed/ts-embed.js +30 -11
  132. package/lib/src/embed/ts-embed.js.map +1 -1
  133. package/lib/src/embed/ts-embed.spec.js +83 -7
  134. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  135. package/lib/src/index.d.ts +3 -3
  136. package/lib/src/index.d.ts.map +1 -1
  137. package/lib/src/index.js +4 -4
  138. package/lib/src/index.js.map +1 -1
  139. package/lib/src/react/all-types-export.d.ts +3 -0
  140. package/lib/src/react/all-types-export.d.ts.map +1 -0
  141. package/lib/src/react/all-types-export.js +5 -0
  142. package/lib/src/react/all-types-export.js.map +1 -0
  143. package/lib/src/react/all-types-export.spec.d.ts +2 -0
  144. package/lib/src/react/all-types-export.spec.d.ts.map +1 -0
  145. package/lib/src/react/all-types-export.spec.js +10 -0
  146. package/lib/src/react/all-types-export.spec.js.map +1 -0
  147. package/lib/src/react/index.d.ts +58 -1
  148. package/lib/src/react/index.d.ts.map +1 -1
  149. package/lib/src/react/index.js +59 -1
  150. package/lib/src/react/index.js.map +1 -1
  151. package/lib/src/react/index.spec.js +12 -2
  152. package/lib/src/react/index.spec.js.map +1 -1
  153. package/lib/src/test/test-utils.d.ts.map +1 -1
  154. package/lib/src/test/test-utils.js +2 -2
  155. package/lib/src/test/test-utils.js.map +1 -1
  156. package/lib/src/types.d.ts +165 -20
  157. package/lib/src/types.d.ts.map +1 -1
  158. package/lib/src/types.js +113 -17
  159. package/lib/src/types.js.map +1 -1
  160. package/lib/src/utils/processTrigger.d.ts +6 -0
  161. package/lib/src/utils/processTrigger.d.ts.map +1 -1
  162. package/lib/src/utils/processTrigger.js +7 -6
  163. package/lib/src/utils/processTrigger.js.map +1 -1
  164. package/lib/src/utils/processTrigger.spec.js +5 -2
  165. package/lib/src/utils/processTrigger.spec.js.map +1 -1
  166. package/lib/src/utils.d.ts +1 -0
  167. package/lib/src/utils.d.ts.map +1 -1
  168. package/lib/src/utils.js +1 -0
  169. package/lib/src/utils.js.map +1 -1
  170. package/package.json +11 -8
  171. package/src/auth.ts +2 -0
  172. package/src/embed/app.spec.ts +84 -1
  173. package/src/embed/app.ts +59 -2
  174. package/src/embed/base.spec.ts +144 -0
  175. package/src/embed/base.ts +107 -0
  176. package/src/embed/liveboard.spec.ts +23 -0
  177. package/src/embed/pinboard.spec.ts +23 -0
  178. package/src/embed/search.spec.ts +28 -0
  179. package/src/embed/search.ts +2 -1
  180. package/src/embed/searchEmbed-basic-auth.spec.ts +1 -1
  181. package/src/embed/ts-embed.spec.ts +92 -19
  182. package/src/embed/ts-embed.ts +29 -11
  183. package/src/index.ts +5 -1
  184. package/src/react/all-types-export.spec.ts +11 -0
  185. package/src/react/all-types-export.ts +43 -0
  186. package/src/react/index.spec.tsx +18 -2
  187. package/src/react/index.tsx +71 -5
  188. package/src/test/test-utils.ts +2 -2
  189. package/src/types.ts +165 -18
  190. package/src/utils/processTrigger.spec.ts +5 -2
  191. package/src/utils/processTrigger.ts +7 -6
  192. package/src/utils.ts +2 -0
  193. package/lib/src/visual-embed-sdk.d.ts +0 -2855
package/src/types.ts CHANGED
@@ -18,6 +18,14 @@ export enum AuthType {
18
18
  /**
19
19
  * No authentication on the SDK. Passthrough to the embedded App. Alias for
20
20
  * `Passthrough`.
21
+ *
22
+ * @example
23
+ * ```js
24
+ * init({
25
+ * // ...
26
+ * authType: AuthType.None,
27
+ * });
28
+ * ```
21
29
  */
22
30
  None = 'None',
23
31
  /**
@@ -25,6 +33,18 @@ export enum AuthType {
25
33
  * configuration, but may not be supported by all IDPs. This will behave like `None`
26
34
  * if SSO is not configured on ThoughtSpot.
27
35
  *
36
+ * @example
37
+ * ```js
38
+ * init({
39
+ * // ...
40
+ * authType: AuthType.EmbeddedSSO,
41
+ * });
42
+ * ```
43
+ * Set authentication type as Embedded SSO.
44
+ *
45
+ * To use this:
46
+ * Your SAML or OpenID provider must allow iframe redirects.
47
+ * eg. If you are using okta as IdP, you can enable iFrame embedding.
28
48
  * @version: SDK: 1.15.0 | ThouhgtSpot: 8.8.0.cl
29
49
  */
30
50
  EmbeddedSSO = 'EmbeddedSSO',
@@ -132,6 +152,19 @@ export enum AuthType {
132
152
  * obtained from ThoughtSpot. This uses a cookieless authentication
133
153
  * approach, recommended to by pass third-party cookie-blocking restriction
134
154
  * implemented by some browsers
155
+ *
156
+ * @example
157
+ * ```js
158
+ * init({
159
+ * // ...
160
+ * authType: AuthType.TrustedAuthTokenCookieless,
161
+ * getAuthToken: () => {
162
+ * return fetch('https://my-backend.app/ts-token')
163
+ * .then((response) => response.json())
164
+ * .then((data) => data.token);
165
+ * }
166
+ * ```
167
+ * @version SDK: 1.22.0| ThouhgtSpot: 9.3.0.cl, 9.5.1-sw
135
168
  */
136
169
  TrustedAuthTokenCookieless = 'AuthServerCookieless',
137
170
  /**
@@ -266,6 +299,9 @@ export interface EmbedConfig {
266
299
  * [SSO] For SSO Authentication, if `inPopup` is set to true, it will open
267
300
  * the SAML auth flow in a popup, instead of redirecting browser in place.
268
301
  *
302
+ * Need to use this with authTriggerContainer. Or manually trigger
303
+ * the AuthEvent.TRIGGER_SSO_POPUP event on a user interaction.
304
+ *
269
305
  * @default false
270
306
  * @version SDK: 1.18.0
271
307
  */
@@ -378,13 +414,28 @@ export interface EmbedConfig {
378
414
  */
379
415
  customizations?: CustomisationsInterface;
380
416
  /**
381
- * For noRedirect SSO Auth, we need a button which the user
417
+ * For inPopup SAMLRedirect or OIDCRedirect Auth, we need a button which the user
382
418
  * click to trigger the flow. This is the containing element
383
419
  * for that button.
384
420
  *
421
+ * @example
422
+ * ```js
423
+ * init({
424
+ * authType: AuthType.SAMLRedirect,
425
+ * inPopup: true,
426
+ * authTriggerContainer: '#auth-trigger-container'
427
+ * })
428
+ * ```
385
429
  * @version SDK: 1.17.0 | ThoughtSpot: *
386
430
  */
387
431
  authTriggerContainer?: string | HTMLElement;
432
+ /**
433
+ * Specify that we want to use the AuthEvent.TRIGGER_SSO_POPUP event to trigger
434
+ * SAML popup. This is useful when you want to trigger the popup on a custom user
435
+ * action.
436
+ *
437
+ */
438
+ useEventForSAMLPopup?: boolean;
388
439
  /**
389
440
  * Text to show in the button which triggers the popup auth flow.
390
441
  * Default: "Authorize".
@@ -392,6 +443,22 @@ export interface EmbedConfig {
392
443
  * @version SDK: 1.17.0 | ThoughtSpot: *
393
444
  */
394
445
  authTriggerText?: string;
446
+ /**
447
+ * Disable Full App access of Embedded app outside of the iFrame.
448
+ *
449
+ * @default true
450
+ * @version SDK: 1.22.0 | ThoughtSpot: 9.3.0.cl, 9.5.1-sw
451
+ */
452
+ blockNonEmbedFullAppAccess?: boolean;
453
+
454
+ /**
455
+ * Host config incase embedded app is inside TS app itself
456
+ */
457
+ hostConfig?: {
458
+ hostUserGuid: string;
459
+ hostClusterId: string;
460
+ hostClusterName: string;
461
+ }
395
462
  }
396
463
 
397
464
  // eslint-disable-next-line @typescript-eslint/no-empty-interface
@@ -450,6 +517,7 @@ export interface ViewConfig {
450
517
  * The list of actions to disable from the primary menu, more menu
451
518
  * (...), and the contextual menu. These actions will be disabled
452
519
  * for the user.
520
+ * Use this to disable actions.
453
521
  *
454
522
  * @example
455
523
  * ```js
@@ -467,6 +535,7 @@ export interface ViewConfig {
467
535
  /**
468
536
  * The list of actions to hide from the embedded.
469
537
  * This actions will be hidden from the user.
538
+ * Use this to hide an action.
470
539
  *
471
540
  * @example
472
541
  * ```js
@@ -475,12 +544,16 @@ export interface ViewConfig {
475
544
  * hiddenActions: [Action.Download, Action.Export]
476
545
  * });
477
546
  * ```
547
+ * @important
478
548
  */
479
549
  hiddenActions?: Action[];
480
550
  /**
481
551
  * The list of actions to display from the primary menu, more menu
482
552
  * (...), and the contextual menu. These will be only actions that
483
553
  * are visible to the user.
554
+ * Use this to hide all actions except the ones you want to show.
555
+ *
556
+ * Use either this or hiddenActions.
484
557
  *
485
558
  * @version SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1-sw
486
559
  * @important
@@ -550,9 +623,19 @@ export interface ViewConfig {
550
623
  * Use a pre-rendered iframe from a pool of pre-rendered iframes
551
624
  * if available and matches the configuration.
552
625
  *
626
+ * @version SDK: 1.22.0
627
+ * @hidden
628
+ *
553
629
  * See [docs]() on how to create a prerender pool.
554
630
  */
555
631
  usePrerenderedIfAvailable?: boolean;
632
+ /**
633
+ * Boolean to exclude runtimeFilters in the URL
634
+ *
635
+ * @default false
636
+ * @hidden
637
+ */
638
+ excludeRuntimeFiltersfromURL?: boolean;
556
639
  }
557
640
 
558
641
  /**
@@ -805,7 +888,7 @@ export enum EmbedEvent {
805
888
  * )
806
889
  * });
807
890
  * ```
808
- * @return {vizId, clickedPoint} - metadata about point that is clicked
891
+ * @return viz, clickedPoint - metadata about point that is clicked
809
892
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1-sw
810
893
  * @important
811
894
  */
@@ -1160,7 +1243,7 @@ export enum HostEvent {
1160
1243
  * ```js
1161
1244
  * searchEmbed.trigger(HostEvent.Search, {
1162
1245
  * searchQuery: "[sales] by [item type],
1163
- * dataSourceIds: ["cd252e5c-b552-49a8-821d-3eadaa049cca"]
1246
+ * dataSources: ["cd252e5c-b552-49a8-821d-3eadaa049cca"]
1164
1247
  * execute: true
1165
1248
  * })
1166
1249
  * ```
@@ -1176,9 +1259,18 @@ export enum HostEvent {
1176
1259
  * column.
1177
1260
  * @example
1178
1261
  * ```js
1179
- * searchEmbed.trigger(HostEvent.DrillDown, {
1180
- * points: clickedPointData,
1181
- * autoDrillDown: true,
1262
+ * searchEmbed.on(EmbedEvent.VizPointDoubleClick, (payload) => {
1263
+ * console.log(payload);
1264
+ * const clickedPoint = payload.data.clickedPoint;
1265
+ * const selectedPoint = payload.data.selectedPoints;
1266
+ * console.log('>>> called', clickedPoint);
1267
+ * searchEmbed.trigger(HostEvent.DrillDown, {
1268
+ * points: {
1269
+ * clickedPoint,
1270
+ * selectedPoints: selectedPoint
1271
+ * },
1272
+ * autoDrillDown: true,
1273
+ * });
1182
1274
  * })
1183
1275
  * ```
1184
1276
  * @version SDK: 1.5.0 | ThoughtSpot: ts7.oct.cl, 7.2.1
@@ -1202,9 +1294,11 @@ export enum HostEvent {
1202
1294
  * @param - an array of ids of visualizations to show, the ids not passed
1203
1295
  * will be hidden.
1204
1296
  * @example
1297
+ * ```js
1205
1298
  * liveboardEmbed.trigger(HostEvent.SetVisibleVizs, [
1206
1299
  * '730496d6-6903-4601-937e-2c691821af3c',
1207
1300
  * 'd547ec54-2a37-4516-a222-2b06719af726'])
1301
+ * ```
1208
1302
  * @version SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1-sw
1209
1303
  */
1210
1304
  SetVisibleVizs = 'SetPinboardVisibleVizs',
@@ -1214,10 +1308,12 @@ export enum HostEvent {
1214
1308
  *
1215
1309
  * @param - {@link RuntimeFilter}[] an array of {@link RuntimeFilter} Types.
1216
1310
  * @example
1311
+ * ```js
1217
1312
  * liveboardEmbed.trigger(HostEvent.UpdateRuntimeFilters, [
1218
1313
  * {columnName: "state",operator: RuntimeFilterOp.EQ,values: ["michigan"]},
1219
1314
  * {columnName: "item type",operator: RuntimeFilterOp.EQ,values: ["Jackets"]}
1220
1315
  * ])
1316
+ * ```
1221
1317
  * @version SDK: 1.9.0 | ThoughtSpot: 8.1.0.cl, 8.4.1-sw
1222
1318
  * @important
1223
1319
  */
@@ -1361,7 +1457,7 @@ export enum HostEvent {
1361
1457
  *
1362
1458
  * @example
1363
1459
  * ```js
1364
- * liveboardEmbed.trigger(HostEvent.DownloadAsPDF)
1460
+ * liveboardEmbed.trigger(HostEvent.DownloadAsPdf)
1365
1461
  * ```
1366
1462
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1-sw
1367
1463
  */
@@ -1431,10 +1527,14 @@ export enum HostEvent {
1431
1527
  * @param - object - to trigger the action for a specfic visualization
1432
1528
  * in Liveboard embed, pass in vizId as a key
1433
1529
  * @example
1530
+ * ```js
1434
1531
  * liveboardEmbed.trigger(HostEvent.Edit)
1532
+ *
1435
1533
  * liveboardEmbed.trigger(HostEvent.Edit, {vizId:
1436
1534
  * '730496d6-6903-4601-937e-2c691821af3c'})
1535
+ *
1437
1536
  * vizEmbed.trigger((HostEvent.Edit)
1537
+ * ```
1438
1538
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1-sw
1439
1539
  */
1440
1540
  Edit = 'edit',
@@ -1486,10 +1586,14 @@ export enum HostEvent {
1486
1586
  *
1487
1587
  * @param - an object with vizId as a key
1488
1588
  * @example
1589
+ * ```js
1489
1590
  * liveboardEmbed.trigger(HostEvent.ShowUnderlyingData, {vizId:
1490
1591
  * '730496d6-6903-4601-937e-2c691821af3c'})
1592
+ *
1491
1593
  * vizEmbed.trigger(HostEvent.ShowUnderlyingData)
1594
+ *
1492
1595
  * searchEmbed.trigger(HostEvent.ShowUnderlyingData)
1596
+ * ```
1493
1597
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1-sw
1494
1598
  */
1495
1599
  ShowUnderlyingData = 'showUnderlyingData',
@@ -1499,23 +1603,31 @@ export enum HostEvent {
1499
1603
  * @param - incase of Liveboard embed, takes in an object with vizId as a key
1500
1604
  * can be left empty for search and visualization embeds
1501
1605
  * @example
1606
+ * ```js
1502
1607
  * liveboardEmbed.trigger(HostEvent.Delete, {vizId:
1503
1608
  * '730496d6-6903-4601-937e-2c691821af3c'})
1609
+ *
1504
1610
  * vizEmbed.trigger(HostEvent.Delete)
1611
+ *
1505
1612
  * searchEmbed.trigger(HostEvent.Delete)
1613
+ * ```
1506
1614
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1-sw
1507
1615
  */
1508
- Delete = 'delete',
1616
+ Delete = 'onDeleteAnswer',
1509
1617
  /**
1510
1618
  * Triggers the SpotIQAnalyze action on visualization or search
1511
1619
  *
1512
1620
  * @param - incase of Liveboard embed, takes in an object with vizId as a key
1513
1621
  * can be left empty for search and visualization embeds
1514
1622
  * @example
1623
+ * ```js
1515
1624
  * liveboardEmbed.trigger(HostEvent.SpotIQAnalyze, {vizId:
1516
1625
  * '730496d6-6903-4601-937e-2c691821af3c'})
1626
+ *
1517
1627
  * vizEmbed.trigger(HostEvent.SpotIQAnalyze)
1628
+ *
1518
1629
  * searchEmbed.trigger(HostEvent.SpotIQAnalyze)
1630
+ * ```
1519
1631
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1-sw
1520
1632
  */
1521
1633
  SpotIQAnalyze = 'spotIQAnalyze',
@@ -1523,11 +1635,15 @@ export enum HostEvent {
1523
1635
  * Triggers the Download action on visualization or search when Displaymode is Chart
1524
1636
  *
1525
1637
  * @example
1638
+ * ```js
1526
1639
  * liveboardEmbed.trigger(HostEvent.Download, {vizId:
1527
1640
  * '730496d6-6903-4601-937e-2c691821af3c'})
1641
+ *
1528
1642
  * vizEmbed.trigger(HostEvent.Download)
1643
+ *
1529
1644
  * searchEmbed.trigger(HostEvent.Download)
1530
- * @deprecated from SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.4.1-sw, Please use DownloadAsPng
1645
+ * ```
1646
+ * @deprecated from SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl ,9.4.1-sw ,Use {@link DownloadAsPng}
1531
1647
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1-sw
1532
1648
  */
1533
1649
  Download = 'downloadAsPng',
@@ -1538,11 +1654,9 @@ export enum HostEvent {
1538
1654
  * ```js
1539
1655
  * liveboardEmbed.trigger(HostEvent.DownloadAsPng,
1540
1656
  * {vizId:'730496d6-6903-4601-937e-2c691821af3c'})
1541
- * ```
1542
- * ```js
1657
+ *
1543
1658
  * vizEmbed.trigger(HostEvent.DownloadAsPng)
1544
- * ```
1545
- * ```js
1659
+ *
1546
1660
  * searchEmbed.trigger(HostEvent.DownloadAsPng)
1547
1661
  * ```
1548
1662
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.4.1-sw
@@ -1552,10 +1666,14 @@ export enum HostEvent {
1552
1666
  * Triggers the downloadAsCSV action on visualization or search
1553
1667
  *
1554
1668
  * @example
1669
+ * ```js
1555
1670
  * liveboardEmbed.trigger(HostEvent.DownloadAsCsv, {vizId:
1556
1671
  * '730496d6-6903-4601-937e-2c691821af3c'})
1672
+ *
1557
1673
  * vizEmbed.trigger(HostEvent.DownloadAsCsv)
1674
+ *
1558
1675
  * searchEmbed.trigger(HostEvent.DownloadAsCsv)
1676
+ * ```
1559
1677
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1-sw
1560
1678
  */
1561
1679
  DownloadAsCsv = 'downloadAsCSV',
@@ -1563,10 +1681,14 @@ export enum HostEvent {
1563
1681
  * Triggers the downloadAsXLSX action on visualization or search
1564
1682
  *
1565
1683
  * @example
1684
+ * ```js
1566
1685
  * liveboardEmbed.trigger(HostEvent.DownloadAsXlsx, {vizId:
1567
1686
  * '730496d6-6903-4601-937e-2c691821af3c'})
1687
+ *
1568
1688
  * vizEmbed.trigger(HostEvent.DownloadAsXlsx)
1689
+ *
1569
1690
  * searchEmbed.trigger(HostEvent.DownloadAsXlsx)
1691
+ * ```
1570
1692
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1-sw
1571
1693
  */
1572
1694
  DownloadAsXlsx = 'downloadAsXLSX',
@@ -1574,8 +1696,11 @@ export enum HostEvent {
1574
1696
  * Triggers the Share action on a liveboard or answer
1575
1697
  *
1576
1698
  * @example
1699
+ * ```js
1577
1700
  * liveboardEmbed.trigger(HostEvent.Share)
1701
+ *
1578
1702
  * searchEmbed.trigger(HostEvent.Share)
1703
+ * ```
1579
1704
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1-sw
1580
1705
  */
1581
1706
  Share = 'share',
@@ -1583,8 +1708,11 @@ export enum HostEvent {
1583
1708
  * Trigger the Save action on a liveboard or answer
1584
1709
  *
1585
1710
  * @example
1711
+ * ```js
1586
1712
  * liveboardEmbed.trigger(HostEvent.Save)
1713
+ *
1587
1714
  * searchEmbed.trigger(HostEvent.Save)
1715
+ * ```
1588
1716
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1-sw
1589
1717
  */
1590
1718
  Save = 'save',
@@ -1593,9 +1721,12 @@ export enum HostEvent {
1593
1721
  *
1594
1722
  * @param - an object with vizId as a key
1595
1723
  * @example
1724
+ * ```js
1596
1725
  * liveboardEmbed.trigger(HostEvent.SyncToSheets, {vizId:
1597
1726
  * '730496d6-6903-4601-937e-2c691821af3c'})
1727
+ *
1598
1728
  * vizEmbed.trigger(HostEvent.SyncToSheets)
1729
+ * ```
1599
1730
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1-sw
1600
1731
  */
1601
1732
  SyncToSheets = 'sync-to-sheets',
@@ -1604,9 +1735,12 @@ export enum HostEvent {
1604
1735
  *
1605
1736
  * @param - an object with vizId as a key
1606
1737
  * @example
1738
+ * ```js
1607
1739
  * liveboardEmbed.trigger(HostEvent.SyncToOtherApps, {vizId:
1608
1740
  * '730496d6-6903-4601-937e-2c691821af3c'})
1741
+ *
1609
1742
  * vizEmbed.trigger(HostEvent.SyncToOtherApps)
1743
+ * ```
1610
1744
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1-sw
1611
1745
  */
1612
1746
  SyncToOtherApps = 'sync-to-other-apps',
@@ -1615,9 +1749,12 @@ export enum HostEvent {
1615
1749
  *
1616
1750
  * @param - an object with vizId as a key
1617
1751
  * @example
1752
+ * ```js
1618
1753
  * liveboardEmbed.trigger(HostEvent.ManagePipelines, {vizId:
1619
1754
  * '730496d6-6903-4601-937e-2c691821af3c'})
1755
+ *
1620
1756
  * vizEmbed.trigger(HostEvent.ManagePipelines)
1757
+ * ```
1621
1758
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1-sw
1622
1759
  */
1623
1760
  ManagePipelines = 'manage-pipeline',
@@ -1625,7 +1762,9 @@ export enum HostEvent {
1625
1762
  * Triggers the Reset search in answer
1626
1763
  *
1627
1764
  * @example
1628
- * searchEmbed.trigger(HostEvent.SearchReset
1765
+ * ```js
1766
+ * searchEmbed.trigger(HostEvent.ResetSearch)
1767
+ * ```
1629
1768
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.0.1-sw
1630
1769
  */
1631
1770
  ResetSearch = 'resetSearch',
@@ -1697,9 +1836,12 @@ export enum Param {
1697
1836
  cookieless = 'cookieless',
1698
1837
  ContextMenuTrigger = 'isContextMenuEnabledOnLeftClick',
1699
1838
  LinkOverride = 'linkOverride',
1839
+ blockNonEmbedFullAppAccess = 'blockNonEmbedFullAppAccess',
1700
1840
  ShowInsertToSlide = 'insertInToSlide',
1701
1841
  PrimaryNavHidden = 'primaryNavHidden',
1702
1842
  HideProfleAndHelp = 'profileAndHelpInNavBarHidden',
1843
+ HideApplicationSwitcher= 'applicationSwitcherHidden',
1844
+ HideOrgSwitcher= 'orgSwitcherHidden',
1703
1845
  }
1704
1846
 
1705
1847
  /**
@@ -1715,7 +1857,7 @@ export enum Param {
1715
1857
  * ... // other options
1716
1858
  * visibleActions: [Action.Save, Action.Explore],
1717
1859
  * disableActions: [Action.Save],
1718
- * hiddenActions: [Action.Download],
1860
+ * hiddenActions: [Action.Download], // Set either this or visibleActions
1719
1861
  * })
1720
1862
  * ```
1721
1863
  */
@@ -1836,9 +1978,6 @@ export enum Action {
1836
1978
  DrillEdit = 'context-menu-item-edit',
1837
1979
  EditMeasure = 'context-menu-item-edit-measure',
1838
1980
  Separator = 'context-menu-item-separator',
1839
- /**
1840
- * @hidden
1841
- */
1842
1981
  DrillDown = 'DRILL',
1843
1982
  RequestAccess = 'requestAccess',
1844
1983
  QueryDetailsButtons = 'queryDetailsButtons',
@@ -1929,6 +2068,11 @@ export enum Action {
1929
2068
  * @hidden
1930
2069
  */
1931
2070
  InsertInToSlide = 'insertInToSlide',
2071
+
2072
+ /**
2073
+ * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
2074
+ */
2075
+ RenameModalTitleDescription = 'renameModalTitleDescription',
1932
2076
  }
1933
2077
 
1934
2078
  export interface SessionInterface {
@@ -1954,6 +2098,9 @@ export enum PrefetchFeatures {
1954
2098
  VizEmbed = 'VizEmbed',
1955
2099
  }
1956
2100
 
2101
+ /**
2102
+ * Enum for options to change context trigger
2103
+ */
1957
2104
  export enum ContextMenuTriggerOptions {
1958
2105
  LEFT_CLICK = 'left-click',
1959
2106
  RIGHT_CLICK = 'right-click',
@@ -8,7 +8,8 @@ describe('Unit test for processTrigger', () => {
8
8
  postMessage: jest.fn(),
9
9
  },
10
10
  };
11
- test('when hostevent is reload, childNode should not be the same as iFrame', async () => {
11
+ test('when hostevent is reload, reload function should be called with iFrame', async () => {
12
+ jest.useFakeTimers();
12
13
  const iFrameElement = document.createElement('iframe');
13
14
  const html = '<body>Foo</body>';
14
15
  iFrameElement.src = `data:text/html;charset=utf-8,${encodeURI(html)}`;
@@ -16,9 +17,11 @@ describe('Unit test for processTrigger', () => {
16
17
  divFrame.appendChild(iFrameElement);
17
18
  const messageType = HostEvent.Reload;
18
19
  const thoughtSpotHost = 'http://localhost:3000';
20
+ const spyReload = jest.spyOn(_processTriggerInstance, 'reload');
19
21
  const data = {};
20
22
  _processTriggerInstance.processTrigger(iFrameElement, messageType, thoughtSpotHost, data);
21
- expect(divFrame.childNodes[0]).not.toBe(iFrameElement);
23
+ jest.advanceTimersByTime(200);
24
+ expect(spyReload).toBeCalledWith(iFrameElement);
22
25
  });
23
26
 
24
27
  test('when hostevent is search, postMessage should be called', async () => {
@@ -6,12 +6,13 @@ import { HostEvent } from '../types';
6
6
  *
7
7
  * @param iFrame
8
8
  */
9
- function reload(iFrame: HTMLIFrameElement) {
10
- const oldFrame = iFrame.cloneNode();
11
- const parent = iFrame.parentNode;
12
- parent.removeChild(iFrame);
13
- parent.appendChild(oldFrame);
14
- }
9
+ export const reload = (iFrame: HTMLIFrameElement) => {
10
+ const src = iFrame.src;
11
+ iFrame.src = '';
12
+ setTimeout(() => {
13
+ iFrame.src = src;
14
+ }, 100);
15
+ };
15
16
 
16
17
  /**
17
18
  * Post Iframe message.
package/src/utils.ts CHANGED
@@ -212,6 +212,8 @@ export const getCustomisations = (
212
212
  return customizations;
213
213
  };
214
214
 
215
+ export const getRuntimeFilters = (runtimefilters: any) => getFilterQuery(runtimefilters || []);
216
+
215
217
  /**
216
218
  * Gets a reference to the DOM node given
217
219
  * a selector.