@thoughtspot/visual-embed-sdk 1.40.0 → 1.40.1-alpha.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 (111) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/embed/bodyless-conversation.d.ts +1 -0
  3. package/cjs/src/embed/bodyless-conversation.d.ts.map +1 -1
  4. package/cjs/src/embed/bodyless-conversation.js +7 -3
  5. package/cjs/src/embed/bodyless-conversation.js.map +1 -1
  6. package/cjs/src/embed/conversation.d.ts +1 -0
  7. package/cjs/src/embed/conversation.d.ts.map +1 -1
  8. package/cjs/src/embed/conversation.js +7 -2
  9. package/cjs/src/embed/conversation.js.map +1 -1
  10. package/cjs/src/embed/liveboard.d.ts +3 -1
  11. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  12. package/cjs/src/embed/liveboard.js +35 -14
  13. package/cjs/src/embed/liveboard.js.map +1 -1
  14. package/cjs/src/embed/liveboard.spec.js +29 -4
  15. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  16. package/cjs/src/embed/sage.d.ts +1 -0
  17. package/cjs/src/embed/sage.d.ts.map +1 -1
  18. package/cjs/src/embed/sage.js +10 -6
  19. package/cjs/src/embed/sage.js.map +1 -1
  20. package/cjs/src/embed/search-bar.d.ts +1 -0
  21. package/cjs/src/embed/search-bar.d.ts.map +1 -1
  22. package/cjs/src/embed/search-bar.js +11 -7
  23. package/cjs/src/embed/search-bar.js.map +1 -1
  24. package/cjs/src/embed/search.d.ts +1 -0
  25. package/cjs/src/embed/search.d.ts.map +1 -1
  26. package/cjs/src/embed/search.js +7 -8
  27. package/cjs/src/embed/search.js.map +1 -1
  28. package/cjs/src/embed/ts-embed.d.ts +9 -0
  29. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  30. package/cjs/src/embed/ts-embed.js +65 -10
  31. package/cjs/src/embed/ts-embed.js.map +1 -1
  32. package/cjs/src/types.d.ts +33 -64
  33. package/cjs/src/types.d.ts.map +1 -1
  34. package/cjs/src/types.js +33 -64
  35. package/cjs/src/types.js.map +1 -1
  36. package/dist/{index-CAEHQGLc.js → index-CmEQfuE3.js} +1 -1
  37. package/dist/index-D1pyb7RG.js +7371 -0
  38. package/dist/index-DeFzsyFF.js +7371 -0
  39. package/dist/index-Dpf0rd6w.js +7371 -0
  40. package/dist/index-UuEbsISo.js +7447 -0
  41. package/dist/index-e3Uw3YFO.js +7371 -0
  42. package/dist/index-k7pkZMhx.js +7371 -0
  43. package/dist/src/embed/bodyless-conversation.d.ts +1 -0
  44. package/dist/src/embed/bodyless-conversation.d.ts.map +1 -1
  45. package/dist/src/embed/conversation.d.ts +1 -0
  46. package/dist/src/embed/conversation.d.ts.map +1 -1
  47. package/dist/src/embed/liveboard.d.ts +3 -1
  48. package/dist/src/embed/liveboard.d.ts.map +1 -1
  49. package/dist/src/embed/sage.d.ts +1 -0
  50. package/dist/src/embed/sage.d.ts.map +1 -1
  51. package/dist/src/embed/search-bar.d.ts +1 -0
  52. package/dist/src/embed/search-bar.d.ts.map +1 -1
  53. package/dist/src/embed/search.d.ts +1 -0
  54. package/dist/src/embed/search.d.ts.map +1 -1
  55. package/dist/src/embed/ts-embed.d.ts +9 -0
  56. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  57. package/dist/src/types.d.ts +33 -64
  58. package/dist/src/types.d.ts.map +1 -1
  59. package/dist/tsembed-react.es.js +178 -117
  60. package/dist/tsembed-react.js +177 -116
  61. package/dist/tsembed.es.js +178 -117
  62. package/dist/tsembed.js +177 -116
  63. package/dist/visual-embed-sdk-react-full.d.ts +47 -65
  64. package/dist/visual-embed-sdk-react.d.ts +47 -65
  65. package/dist/visual-embed-sdk.d.ts +47 -65
  66. package/lib/package.json +1 -1
  67. package/lib/src/embed/bodyless-conversation.d.ts +1 -0
  68. package/lib/src/embed/bodyless-conversation.d.ts.map +1 -1
  69. package/lib/src/embed/bodyless-conversation.js +7 -3
  70. package/lib/src/embed/bodyless-conversation.js.map +1 -1
  71. package/lib/src/embed/conversation.d.ts +1 -0
  72. package/lib/src/embed/conversation.d.ts.map +1 -1
  73. package/lib/src/embed/conversation.js +7 -2
  74. package/lib/src/embed/conversation.js.map +1 -1
  75. package/lib/src/embed/liveboard.d.ts +3 -1
  76. package/lib/src/embed/liveboard.d.ts.map +1 -1
  77. package/lib/src/embed/liveboard.js +35 -14
  78. package/lib/src/embed/liveboard.js.map +1 -1
  79. package/lib/src/embed/liveboard.spec.js +29 -4
  80. package/lib/src/embed/liveboard.spec.js.map +1 -1
  81. package/lib/src/embed/sage.d.ts +1 -0
  82. package/lib/src/embed/sage.d.ts.map +1 -1
  83. package/lib/src/embed/sage.js +10 -6
  84. package/lib/src/embed/sage.js.map +1 -1
  85. package/lib/src/embed/search-bar.d.ts +1 -0
  86. package/lib/src/embed/search-bar.d.ts.map +1 -1
  87. package/lib/src/embed/search-bar.js +11 -7
  88. package/lib/src/embed/search-bar.js.map +1 -1
  89. package/lib/src/embed/search.d.ts +1 -0
  90. package/lib/src/embed/search.d.ts.map +1 -1
  91. package/lib/src/embed/search.js +7 -8
  92. package/lib/src/embed/search.js.map +1 -1
  93. package/lib/src/embed/ts-embed.d.ts +9 -0
  94. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  95. package/lib/src/embed/ts-embed.js +65 -10
  96. package/lib/src/embed/ts-embed.js.map +1 -1
  97. package/lib/src/types.d.ts +33 -64
  98. package/lib/src/types.d.ts.map +1 -1
  99. package/lib/src/types.js +33 -64
  100. package/lib/src/types.js.map +1 -1
  101. package/lib/src/visual-embed-sdk.d.ts +47 -65
  102. package/package.json +1 -1
  103. package/src/embed/bodyless-conversation.ts +9 -3
  104. package/src/embed/conversation.ts +13 -2
  105. package/src/embed/liveboard.spec.ts +32 -4
  106. package/src/embed/liveboard.ts +41 -14
  107. package/src/embed/sage.ts +11 -6
  108. package/src/embed/search-bar.tsx +14 -7
  109. package/src/embed/search.ts +18 -7
  110. package/src/embed/ts-embed.ts +90 -24
  111. package/src/types.ts +34 -64
@@ -1153,6 +1153,7 @@ declare module '@thoughtspot/visual-embed-sdk/embed/liveboard' {
1153
1153
  * embedded Liveboard or visualization.
1154
1154
  */
1155
1155
  protected getEmbedParams(): string;
1156
+ protected getEmbedParamsObject(): any;
1156
1157
  protected beforePrerenderVisible(): void;
1157
1158
  protected handleRenderForPrerender(): Promise<TsEmbed>;
1158
1159
  /**
@@ -1173,7 +1174,8 @@ declare module '@thoughtspot/visual-embed-sdk/embed/liveboard' {
1173
1174
  * visualization ID and the runtime filters.
1174
1175
  */
1175
1176
  render(): Promise<LiveboardEmbed>;
1176
- navigateToLiveboard(liveboardId: string, vizId?: string, activeTabId?: string): void;
1177
+ currentLiveboardId: string;
1178
+ navigateToLiveboard(liveboardId: string, vizId?: string, activeTabId?: string, onNavigateCalled?: () => void): void;
1177
1179
  /**
1178
1180
  * Returns the full url of the Liveboard/visualization which can be used to open
1179
1181
  * this Liveboard inside the full ThoughtSpot application in a new tab.
@@ -1509,6 +1511,7 @@ declare module '@thoughtspot/visual-embed-sdk/embed/search' {
1509
1511
  };
1510
1512
  };
1511
1513
  protected getAppInitData(): Promise<SearchAppInitData>;
1514
+ protected getEmbedParamsObject(): Record<any, any>;
1512
1515
  protected getEmbedParams(): string;
1513
1516
  /**
1514
1517
  * Construct the URL of the embedded ThoughtSpot search to be
@@ -1635,6 +1638,7 @@ declare module '@thoughtspot/visual-embed-sdk/embed/search-bar' {
1635
1638
  protected viewConfig: SearchBarViewConfig;
1636
1639
  protected embedComponentType: string;
1637
1640
  constructor(domSelector: string, viewConfig: SearchBarViewConfig);
1641
+ protected getEmbedParamsObject(): Record<any, any>;
1638
1642
  /**
1639
1643
  * Render the embedded ThoughtSpot search
1640
1644
  */
@@ -1678,6 +1682,7 @@ declare module '@thoughtspot/visual-embed-sdk/embed/bodyless-conversation' {
1678
1682
  export class ConversationMessage extends TsEmbed {
1679
1683
  protected viewConfig: SpotterAgentMessageViewConfig;
1680
1684
  constructor(container: HTMLElement, viewConfig: SpotterAgentMessageViewConfig);
1685
+ protected getEmbedParamsObject(): Record<any, any>;
1681
1686
  getIframeSrc(): string;
1682
1687
  render(): Promise<ConversationMessage>;
1683
1688
  }
@@ -1884,6 +1889,7 @@ declare module '@thoughtspot/visual-embed-sdk/embed/conversation' {
1884
1889
  export class SpotterEmbed extends TsEmbed {
1885
1890
  protected viewConfig: SpotterEmbedViewConfig;
1886
1891
  constructor(container: HTMLElement, viewConfig: SpotterEmbedViewConfig);
1892
+ protected getEmbedParamsObject(): Record<any, any>;
1887
1893
  getIframeSrc(): string;
1888
1894
  render(): Promise<SpotterEmbed>;
1889
1895
  }
@@ -4486,7 +4492,7 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
4486
4492
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
4487
4493
  * @example
4488
4494
  *```js
4489
- * liveboardEmbed.on(EmbedEvent.LiveboardInfo, payload => {
4495
+ * liveboardEmbed.on(EmbedEvent.AnswerChartSwitcher, payload => {
4490
4496
  * console.log('Liveboard details', payload);
4491
4497
  * })
4492
4498
  *```
@@ -4861,58 +4867,58 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
4861
4867
  */
4862
4868
  RequestVisibleEmbedCoordinates = "requestVisibleEmbedCoordinates",
4863
4869
  /**
4864
- * Emitted when Spotter response is text data
4870
+ * Emitted when spotter response is text data
4865
4871
  * @example
4866
4872
  * ```js
4867
4873
  * spotterEmbed.on(EmbedEvent.SpotterData, (payload) => {
4868
4874
  * console.log('payload', payload);
4869
4875
  * })
4870
4876
  *```
4871
- * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
4877
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
4872
4878
  */
4873
4879
  SpotterData = "SpotterData",
4874
4880
  /**
4875
- * Emitted when user opens up the worksheet preview modal in Spotter embed.
4881
+ * Emitted when user opens up the worksheet preview modal in spotter embed.
4876
4882
  * @example
4877
4883
  * ```js
4878
4884
  * spotterEmbed.on(EmbedEvent.PreviewSpotterData, (payload) => {
4879
4885
  * console.log('payload', payload);
4880
4886
  * })
4881
4887
  *```
4882
- * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
4888
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
4883
4889
  */
4884
4890
  PreviewSpotterData = "PreviewSpotterData",
4885
4891
  /**
4886
- * Emitted when the Spotter query is triggered in Spotter embed.
4892
+ * Emitted when the spotter query is triggered in spotter embed.
4887
4893
  * @example
4888
4894
  * ```js
4889
4895
  * spotterEmbed.on(EmbedEvent.SpotterQueryTriggered, (payload) => {
4890
4896
  * console.log('payload', payload);
4891
4897
  * })
4892
4898
  *```
4893
- * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
4899
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
4894
4900
  */
4895
4901
  SpotterQueryTriggered = "SpotterQueryTriggered",
4896
4902
  /**
4897
- * Emitted when the last Spotter query is edited in Spotter embed.
4903
+ * Emitted when the last spotter query is edited in spotter embed.
4898
4904
  * @example
4899
4905
  * ```js
4900
4906
  * spotterEmbed.on(EmbedEvent.LastPromptEdited, (payload) => {
4901
4907
  * console.log('payload', payload);
4902
4908
  * })
4903
4909
  *```
4904
- * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
4910
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
4905
4911
  */
4906
4912
  LastPromptEdited = "LastPromptEdited",
4907
4913
  /**
4908
- * Emitted when the last Spotter query is deleted in Spotter embed.
4914
+ * Emitted when the last spotter query is deleted in spotter embed.
4909
4915
  * @example
4910
4916
  * ```js
4911
4917
  * spotterEmbed.on(EmbedEvent.LastPromptDeleted, (payload) => {
4912
4918
  * console.log('payload', payload);
4913
4919
  * })
4914
4920
  *```
4915
- * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
4921
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
4916
4922
  */
4917
4923
  LastPromptDeleted = "LastPromptDeleted",
4918
4924
  /**
@@ -4923,7 +4929,7 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
4923
4929
  * console.log('payload', payload);
4924
4930
  * })
4925
4931
  *```
4926
- * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
4932
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
4927
4933
  */
4928
4934
  ResetSpotterConversation = "ResetSpotterConversation",
4929
4935
  /**
@@ -4936,7 +4942,7 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
4936
4942
  *```
4937
4943
  * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
4938
4944
  */
4939
- SpotterInit = "spotterInit"
4945
+ SpotterInit = "SpotterInit"
4940
4946
  }
4941
4947
  /**
4942
4948
  * Event types that can be triggered by the host application
@@ -5024,7 +5030,6 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5024
5030
  * done automatically on the most popular column.
5025
5031
  * @param - vizId [TS >= 9.8.0] - Optional. The GUID of the visualization to drill
5026
5032
  * in case of a Liveboard.
5027
- * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
5028
5033
  * @example
5029
5034
  * ```js
5030
5035
  * searchEmbed.on(EmbedEvent.VizPointDoubleClick, (payload) => {
@@ -5344,21 +5349,12 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5344
5349
  * Trigger the **Download PDF** action on an embedded Liveboard,
5345
5350
  * visualization or Answer.
5346
5351
  *
5347
- * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
5348
- *
5349
5352
  * **NOTE**: The **Download** > **PDF** action is available on
5350
5353
  * visualizations and Answers if the data is in tabular format.
5351
5354
  * @example
5352
5355
  * ```js
5353
5356
  * liveboardEmbed.trigger(HostEvent.DownloadAsPdf)
5354
5357
  * ```
5355
- * @example
5356
- * ```js
5357
- * spotterEmbed.trigger(HostEvent.DownloadAsPdf, {
5358
- * vizId:'730496d6-6903-4601-937e-2c691821af3c'
5359
- * });
5360
- * ```
5361
- *
5362
5358
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
5363
5359
  */
5364
5360
  DownloadAsPdf = "downloadAsPdf",
@@ -5460,8 +5456,7 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5460
5456
  * This event is not supported in visualization embed and search embed.
5461
5457
  * @param - object - To trigger the action for a specific visualization
5462
5458
  * in Liveboard embed, pass in `vizId` as a key.
5463
- * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
5464
- *
5459
+ * **Required** in Spotter embed.
5465
5460
  * @example
5466
5461
  * ```js
5467
5462
  * liveboardEmbed.trigger(HostEvent.Edit)
@@ -5476,12 +5471,6 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5476
5471
  * vizId:'730496d6-6903-4601-937e-2c691821af3c'
5477
5472
  * });
5478
5473
  * ```
5479
- * @example
5480
- * ```js
5481
- * const editResponse = await spotterEmbed.trigger(HostEvent.Edit, {
5482
- * vizId:'730496d6-6903-4601-937e-2c691821af3c'
5483
- * });
5484
- * ```
5485
5474
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
5486
5475
  */
5487
5476
  Edit = "edit",
@@ -5602,7 +5591,6 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5602
5591
  /**
5603
5592
  * Trigger the **Download** action on charts in
5604
5593
  * the embedded view.
5605
- * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
5606
5594
  * @example
5607
5595
  * ```js
5608
5596
  * liveboardEmbed.trigger(HostEvent.Download, {vizId:
@@ -5611,11 +5599,6 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5611
5599
  * ```js
5612
5600
  * embed.trigger(HostEvent.Download)
5613
5601
  * ```
5614
- * ```js
5615
- * spotterEmbed.trigger(HostEvent.Download, {
5616
- * vizId:'730496d6-6903-4601-937e-2c691821af3c'
5617
- * });
5618
- * ```
5619
5602
  * @deprecated from SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl ,9.4.1.sw
5620
5603
  * Use {@link DownloadAsPng}
5621
5604
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1.sw
@@ -5644,7 +5627,6 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5644
5627
  /**
5645
5628
  * Trigger the **Download** > **CSV** action on tables in
5646
5629
  * the embedded view.
5647
- * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
5648
5630
  * @example
5649
5631
  * ```js
5650
5632
  * liveboardEmbed.trigger(HostEvent.DownloadAsCsv, {vizId:
@@ -5667,7 +5649,6 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5667
5649
  /**
5668
5650
  * Trigger the **Download** > **XLSX** action on tables
5669
5651
  * in the embedded view.
5670
- * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
5671
5652
  * @example
5672
5653
  * ```js
5673
5654
  * liveboardEmbed.trigger(HostEvent.DownloadAsXlsx, {vizId:
@@ -5703,7 +5684,7 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5703
5684
  /**
5704
5685
  * Trigger the **Save** action on a Liveboard or Answer.
5705
5686
  * Saves the changes.
5706
- * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
5687
+ * @param - `vizId` is required in Spotter Embed.
5707
5688
  * @example
5708
5689
  * ```js
5709
5690
  * liveboardEmbed.trigger(HostEvent.Save)
@@ -6013,7 +5994,6 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
6013
5994
  UpdateParameters = "UpdateParameters",
6014
5995
  /**
6015
5996
  * Triggers GetParameters to fetch the runtime Parameters.
6016
- * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
6017
5997
  * ```js
6018
5998
  * liveboardEmbed.trigger(HostEvent.GetParameters).then((parameter) => {
6019
5999
  * console.log('parameters', parameter);
@@ -6057,7 +6037,7 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
6057
6037
  * @param - optional attributes to set Answer properties.
6058
6038
  * `name` - Name string for the Answer.
6059
6039
  * `description` - Description text for the Answer.
6060
- * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
6040
+ *
6061
6041
  * @example
6062
6042
  * ```js
6063
6043
  * const saveAnswerResponse = await searchEmbed.trigger(HostEvent.SaveAnswer, {
@@ -6065,14 +6045,6 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
6065
6045
  * description: "Total sales by states in MidWest"
6066
6046
  * });
6067
6047
  * ```
6068
- * @example
6069
- * ```js
6070
- * const saveAnswerResponse = await spotterEmbed.trigger(HostEvent.SaveAnswer, {
6071
- * vizId: '730496d6-6903-4601-937e-2c691821af3c',
6072
- * name: "Sales by states",
6073
- * description: "Total sales by states in MidWest"
6074
- * });
6075
- * ```
6076
6048
  * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
6077
6049
  */
6078
6050
  SaveAnswer = "saveAnswer",
@@ -6104,7 +6076,7 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
6104
6076
  /**
6105
6077
  * Triggers a search operation with the search tokens specified in
6106
6078
  * the search query string in spotter embed.
6107
- * @param - `query`: Text string in Natural Language format
6079
+ * @param - `queryString`: Text string in Natural Language format
6108
6080
  * @param - `executeSearch`: Boolean to execute search and update search query
6109
6081
  * @example
6110
6082
  * ```js
@@ -6113,7 +6085,6 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
6113
6085
  * executeSearch: true,
6114
6086
  * })
6115
6087
  * ```
6116
- * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
6117
6088
  */
6118
6089
  SpotterSearch = "SpotterSearch",
6119
6090
  /**
@@ -6123,7 +6094,6 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
6123
6094
  * ```js
6124
6095
  * spotterEmbed.trigger(HostEvent.EditLastPrompt, "revenue per year");
6125
6096
  * ```
6126
- * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
6127
6097
  */
6128
6098
  EditLastPrompt = "EditLastPrompt",
6129
6099
  /**
@@ -6132,7 +6102,6 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
6132
6102
  * ```js
6133
6103
  * spotterEmbed.trigger(HostEvent.PreviewSpotterData);
6134
6104
  * ```
6135
- * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
6136
6105
  */
6137
6106
  PreviewSpotterData = "PreviewSpotterData",
6138
6107
  /**
@@ -6141,7 +6110,6 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
6141
6110
  * ```js
6142
6111
  * spotterEmbed.trigger(HostEvent.ResetSpotterConversation);
6143
6112
  * ```
6144
- * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
6145
6113
  */
6146
6114
  ResetSpotterConversation = "ResetSpotterConversation",
6147
6115
  /**
@@ -6150,19 +6118,17 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
6150
6118
  * ```js
6151
6119
  * spotterEmbed.trigger(HostEvent.DeleteLastPrompt);
6152
6120
  * ```
6153
- * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
6154
6121
  */
6155
6122
  DeleteLastPrompt = "DeleteLastPrompt",
6156
6123
  /**
6157
6124
  * Toggle the visualization to chart or table view.
6158
- * @param - `vizId ` refers to the answer id in spotter Embed, it is required in spotter Embed.
6125
+ * @param - `vizId ` In Spotter Embed, vizId is required.
6159
6126
  * @example
6160
6127
  * ```js
6161
6128
  * spotterEmbed.trigger(HostEvent.AnswerChartSwitcher, {
6162
- * vizId:'b535c760-8bbe-4e6f-bb26-af56b4129a1e'
6129
+ * vizId:"'b535c760-8bbe-4e6f-bb26-af56b4129a1e'"
6163
6130
  * });
6164
6131
  *```
6165
- * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
6166
6132
  */
6167
6133
  AnswerChartSwitcher = "answerChartSwitcher",
6168
6134
  /**
@@ -6189,16 +6155,25 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
6189
6155
  */
6190
6156
  VisibleEmbedCoordinates = "visibleEmbedCoordinates",
6191
6157
  /**
6192
- * Trigger the *Ask Spotter* action for visualizations
6193
- * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
6158
+ * Trigger the *Ask Sage* action for visualizations
6194
6159
  * @example
6195
6160
  * ```js
6196
- * spotterEmbed.trigger(HostEvent.AskSpotter,
6197
- * {vizId:'730496d6-6903-4601-937e-2c691821af3c'})
6161
+ * liveboardEmbed.trigger(HostEvent.AskSpotter,
6162
+ * {containerId:'730496d6-6903-4601-937e-2c691821af3c'})
6198
6163
  * ```
6199
6164
  * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
6200
6165
  */
6201
- AskSpotter = "AskSpotter"
6166
+ AskSpotter = "askSpotter",
6167
+ /**
6168
+ * @hidden
6169
+ * Triggers the update of the embed params.
6170
+ *
6171
+ * @example
6172
+ * ```js
6173
+ * liveboardEmbed.trigger(HostEvent.UpdateEmbedParams, viewConfig);
6174
+ * ```
6175
+ */
6176
+ UpdateEmbedParams = "updateEmbedParams"
6202
6177
  }
6203
6178
  /**
6204
6179
  * The different visual modes that the data sources panel within
@@ -8267,6 +8242,7 @@ declare module '@thoughtspot/visual-embed-sdk/embed/sage' {
8267
8242
  */
8268
8243
  protected viewConfig: SageViewConfig;
8269
8244
  constructor(domSelector: DOMSelector, viewConfig: SageViewConfig);
8245
+ protected getEmbedParamsObject(): Record<any, any>;
8270
8246
  /**
8271
8247
  * Constructs a map of parameters to be passed on to the
8272
8248
  * embedded Eureka or Sage search page.
@@ -8807,20 +8783,25 @@ declare module '@thoughtspot/visual-embed-sdk/embed/ts-embed' {
8807
8783
  protected isRendered: boolean;
8808
8784
  protected hostEventClient: HostEventClient;
8809
8785
  protected isReadyForRenderPromise: Promise<void>;
8786
+ id: string;
8810
8787
  constructor(domSelector: DOMSelector, viewConfig?: ViewConfig);
8811
8788
  /**
8812
8789
  * Handles errors within the SDK
8813
8790
  * @param error The error message or object
8814
8791
  */
8815
8792
  protected handleError(error: string | Record<string, unknown>): void;
8793
+ isEmbedContainerLoaded: boolean;
8816
8794
  protected getAuthTokenForCookielessInit(): Promise<string>;
8817
8795
  protected getDefaultAppInitData(): Promise<DefaultAppInitData>;
8818
8796
  protected getAppInitData(): Promise<DefaultAppInitData>;
8797
+ protected getPreRenderObj<T extends TsEmbed>(): T;
8798
+ protected triggerAfterLoad(eventType: HostEvent, data: TriggerPayload<any, HostEvent>, onEventTriggered?: () => void): void;
8819
8799
  /**
8820
8800
  * Constructs the base URL string to load the ThoughtSpot app.
8821
8801
  * @param query
8822
8802
  */
8823
8803
  protected getEmbedBasePath(query: string): string;
8804
+ protected getUpdateEmbedParamsObject(): Record<any, any>;
8824
8805
  /**
8825
8806
  * Common query params set for all the embed modes.
8826
8807
  * @param queryParams
@@ -8836,6 +8817,7 @@ declare module '@thoughtspot/visual-embed-sdk/embed/ts-embed' {
8836
8817
  */
8837
8818
  protected getV1EmbedBasePath(queryString: string): string;
8838
8819
  protected getEmbedParams(): string;
8820
+ protected getEmbedParamsObject(): Record<any, any>;
8839
8821
  protected getRootIframeSrc(): string;
8840
8822
  protected createIframeEl(frameSrc: string): HTMLIFrameElement;
8841
8823
  protected handleInsertionIntoDOM(child: string | Node): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thoughtspot/visual-embed-sdk",
3
- "version": "1.40.0",
3
+ "version": "1.40.1-alpha.2",
4
4
  "description": "ThoughtSpot Embed SDK",
5
5
  "module": "lib/src/index.js",
6
6
  "main": "dist/tsembed.js",
@@ -39,6 +39,14 @@ export class ConversationMessage extends TsEmbed {
39
39
  super(container, viewConfig);
40
40
  }
41
41
 
42
+ protected getEmbedParamsObject() {
43
+ const queryParams = this.getBaseQueryParams();
44
+
45
+ queryParams[Param.HideActions] = [...(queryParams[Param.HideActions] ?? [])];
46
+ queryParams[Param.isSpotterAgentEmbed] = true;
47
+ return queryParams;
48
+ }
49
+
42
50
  public getIframeSrc() {
43
51
  const {
44
52
  sessionId,
@@ -49,10 +57,8 @@ export class ConversationMessage extends TsEmbed {
49
57
  messageId,
50
58
  } = this.viewConfig;
51
59
  const path = 'conv-assist-answer';
52
- const queryParams = this.getBaseQueryParams();
60
+ const queryParams = this.getEmbedParamsObject();
53
61
 
54
- queryParams[Param.HideActions] = [...(queryParams[Param.HideActions] ?? [])];
55
- queryParams[Param.isSpotterAgentEmbed] = true;
56
62
  let query = '';
57
63
  const queryParamsString = getQueryParamString(queryParams, true);
58
64
  if (queryParamsString) {
@@ -135,7 +135,7 @@ export class SpotterEmbed extends TsEmbed {
135
135
  super(container, viewConfig);
136
136
  }
137
137
 
138
- public getIframeSrc(): string {
138
+ protected getEmbedParamsObject() {
139
139
  const {
140
140
  worksheetId,
141
141
  searchOptions,
@@ -145,7 +145,7 @@ export class SpotterEmbed extends TsEmbed {
145
145
  showSpotterLimitations,
146
146
  hideSampleQuestions,
147
147
  } = this.viewConfig;
148
- const path = 'insights/conv-assist';
148
+
149
149
  if (!worksheetId) {
150
150
  this.handleError(ERROR_MESSAGE.SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND);
151
151
  }
@@ -170,6 +170,17 @@ export class SpotterEmbed extends TsEmbed {
170
170
  queryParams[Param.HideSampleQuestions] = !!hideSampleQuestions;
171
171
  }
172
172
 
173
+ return queryParams;
174
+ }
175
+
176
+ public getIframeSrc(): string {
177
+ const {
178
+ worksheetId,
179
+ searchOptions,
180
+ } = this.viewConfig;
181
+ const path = 'insights/conv-assist';
182
+ const queryParams = this.getEmbedParamsObject();
183
+
173
184
  let query = '';
174
185
  const queryParamsString = getQueryParamString(queryParams, true);
175
186
  if (queryParamsString) {
@@ -25,6 +25,7 @@ import * as tsEmbed from './ts-embed';
25
25
  import * as processTriggerInstance from '../utils/processTrigger';
26
26
  import * as auth from '../auth';
27
27
  import * as previewService from '../utils/graphql/preview-service';
28
+ import * as SessionInfoService from '../utils/sessionInfoService';
28
29
 
29
30
  const defaultViewConfig = {
30
31
  frameParams: {
@@ -600,6 +601,14 @@ describe('Liveboard/viz embed tests', () => {
600
601
 
601
602
  test('navigateToLiveboard should trigger the navigate event with the correct path', async (done) => {
602
603
  mockMessageChannel();
604
+ // mock getSessionInfo
605
+ jest.spyOn(SessionInfoService, 'getSessionInfo').mockResolvedValue({
606
+ releaseVersion: '1.0.0',
607
+ userGUID: '1234567890',
608
+ currentOrgId: 1,
609
+ privileges: [],
610
+ mixpanelToken: '1234567890',
611
+ });
603
612
  const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
604
613
  ...defaultViewConfig,
605
614
  } as LiveboardViewConfig);
@@ -610,16 +619,30 @@ describe('Liveboard/viz embed tests', () => {
610
619
  postMessageToParent(iframe.contentWindow, {
611
620
  type: EmbedEvent.APP_INIT,
612
621
  });
622
+ postMessageToParent(iframe.contentWindow, {
623
+ type: EmbedEvent.AuthInit,
624
+ });
625
+ liveboardEmbed.navigateToLiveboard('lb1', 'viz1');
613
626
  });
627
+
614
628
  executeAfterWait(() => {
615
- liveboardEmbed.navigateToLiveboard('lb1', 'viz1');
616
629
  expect(onSpy).toHaveBeenCalledWith(HostEvent.Navigate, 'embed/viz/lb1/viz1');
617
630
  done();
618
- });
631
+ }, 1002);
619
632
  });
620
633
 
621
634
  test('navigateToLiveboard with preRender', async (done) => {
622
635
  mockMessageChannel();
636
+
637
+ // mock getSessionInfo
638
+ jest.spyOn(SessionInfoService, 'getSessionInfo').mockResolvedValue({
639
+ releaseVersion: '1.0.0',
640
+ userGUID: '1234567890',
641
+ currentOrgId: 1,
642
+ privileges: [],
643
+ mixpanelToken: '1234567890',
644
+ });
645
+
623
646
  const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
624
647
  ...defaultViewConfig,
625
648
  preRenderId: 'test',
@@ -631,12 +654,15 @@ describe('Liveboard/viz embed tests', () => {
631
654
  postMessageToParent(iframe.contentWindow, {
632
655
  type: EmbedEvent.APP_INIT,
633
656
  });
657
+ postMessageToParent(iframe.contentWindow, {
658
+ type: EmbedEvent.AuthInit,
659
+ });
634
660
  });
635
661
  executeAfterWait(() => {
636
662
  liveboardEmbed.navigateToLiveboard('lb1', 'viz1');
637
663
  expect(onSpy).toHaveBeenCalledWith(HostEvent.Navigate, 'embed/viz/lb1/viz1');
638
664
  done();
639
- });
665
+ }, 1002);
640
666
  });
641
667
  test('should set runtime parametere values in url params', async () => {
642
668
  const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
@@ -794,6 +820,8 @@ describe('Liveboard/viz embed tests', () => {
794
820
  const newLibEmbed = new LiveboardEmbed(getRootEl(), {
795
821
  preRenderId: testPreRenderId,
796
822
  liveboardId: testLiveboardId,
823
+ activeTabId: 'tab1',
824
+ vizId: 'viz1',
797
825
  });
798
826
  const navigateToLiveboardSpy = jest.spyOn(newLibEmbed, 'navigateToLiveboard');
799
827
  await newLibEmbed.showPreRender();
@@ -804,7 +832,7 @@ describe('Liveboard/viz embed tests', () => {
804
832
  ) as HTMLIFrameElement;
805
833
 
806
834
  // should render the generic link
807
- expect(navigateToLiveboardSpy).toHaveBeenCalledWith(testLiveboardId);
835
+ expect(navigateToLiveboardSpy).toHaveBeenCalledWith(testLiveboardId, 'viz1', 'tab1', expect.any(Function));
808
836
  expect(iFrame.src).toMatch(/http:\/\/tshost\/.*&isLiveboardEmbed=true.*#$/);
809
837
 
810
838
  expect(consoleSpy).toHaveBeenCalledTimes(0);
@@ -408,6 +408,12 @@ export class LiveboardEmbed extends V1Embed {
408
408
  * embedded Liveboard or visualization.
409
409
  */
410
410
  protected getEmbedParams() {
411
+ const params = this.getEmbedParamsObject();
412
+ const queryParams = getQueryParamString(params, true);
413
+ return queryParams;
414
+ }
415
+
416
+ protected getEmbedParamsObject() {
411
417
  let params: any = {};
412
418
  params = this.getBaseQueryParams(params);
413
419
  const {
@@ -511,9 +517,33 @@ export class LiveboardEmbed extends V1Embed {
511
517
  params[Param.DataPanelV2Enabled] = dataPanelV2;
512
518
  params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
513
519
  params[Param.CoverAndFilterOptionInPDF] = coverAndFilterOptionInPDF;
514
- const queryParams = getQueryParamString(params, true);
515
520
 
516
- return queryParams;
521
+ if (oAuthPollingInterval !== undefined) {
522
+ params[Param.OauthPollingInterval] = oAuthPollingInterval;
523
+ }
524
+
525
+ if (isForceRedirect) {
526
+ params[Param.IsForceRedirect] = isForceRedirect;
527
+ }
528
+
529
+ if (dataSourceId !== undefined) {
530
+ params[Param.DataSourceId] = dataSourceId;
531
+ }
532
+
533
+
534
+ if (isLiveboardStylingAndGroupingEnabled !== undefined) {
535
+ params[Param.IsLiveboardStylingAndGroupingEnabled] = isLiveboardStylingAndGroupingEnabled;
536
+ }
537
+
538
+ params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
539
+ params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
540
+ params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
541
+ params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
542
+ params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
543
+ params[Param.DataPanelV2Enabled] = dataPanelV2;
544
+ params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
545
+ params[Param.CoverAndFilterOptionInPDF] = coverAndFilterOptionInPDF;
546
+ return params;
517
547
  }
518
548
 
519
549
  private getIframeSuffixSrc(liveboardId: string, vizId: string, activeTabId: string) {
@@ -645,17 +675,12 @@ export class LiveboardEmbed extends V1Embed {
645
675
  }
646
676
 
647
677
  protected beforePrerenderVisible(): void {
648
- const embedObj = (this.insertedDomEl as any)?.[this.embedNodeKey] as LiveboardEmbed;
678
+ const embedObj = this.getPreRenderObj<LiveboardEmbed>();
649
679
 
650
- if (isUndefined(embedObj)) return;
651
-
652
- const showDifferentLib = this.viewConfig.liveboardId
653
- && embedObj.viewConfig.liveboardId !== this.viewConfig.liveboardId;
654
-
655
- if (showDifferentLib) {
656
- const libId = this.viewConfig.liveboardId;
657
- this.navigateToLiveboard(libId);
658
- }
680
+ const libId = this.currentLiveboardId;
681
+ this.navigateToLiveboard(libId, this.viewConfig.vizId, this.viewConfig.activeTabId, () => {
682
+ if (embedObj) embedObj.currentLiveboardId = libId;
683
+ });
659
684
  }
660
685
 
661
686
  protected async handleRenderForPrerender(): Promise<TsEmbed> {
@@ -729,13 +754,15 @@ export class LiveboardEmbed extends V1Embed {
729
754
  return this;
730
755
  }
731
756
 
732
- public navigateToLiveboard(liveboardId: string, vizId?: string, activeTabId?: string) {
757
+ public currentLiveboardId: string = this.viewConfig.liveboardId;
758
+
759
+ public navigateToLiveboard(liveboardId: string, vizId?: string, activeTabId?: string, onNavigateCalled?: () => void) {
733
760
  const path = this.getIframeSuffixSrc(liveboardId, vizId, activeTabId);
734
761
  this.viewConfig.liveboardId = liveboardId;
735
762
  this.viewConfig.activeTabId = activeTabId;
736
763
  this.viewConfig.vizId = vizId;
737
764
  if (this.isRendered) {
738
- this.trigger(HostEvent.Navigate, path.substring(1));
765
+ this.triggerAfterLoad(HostEvent.Navigate, path.substring(1), onNavigateCalled);
739
766
  } else if (this.viewConfig.preRenderId) {
740
767
  this.preRender(true);
741
768
  } else {