@thoughtspot/visual-embed-sdk 1.40.1-alpha.1 → 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 (99) 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 +1 -0
  11. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  12. package/cjs/src/embed/liveboard.js +30 -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 +2 -0
  29. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  30. package/cjs/src/embed/ts-embed.js +18 -17
  31. package/cjs/src/embed/ts-embed.js.map +1 -1
  32. package/dist/index-k7pkZMhx.js +7371 -0
  33. package/dist/src/embed/bodyless-conversation.d.ts +5 -0
  34. package/dist/src/embed/bodyless-conversation.d.ts.map +1 -1
  35. package/dist/src/embed/conversation.d.ts +1 -0
  36. package/dist/src/embed/conversation.d.ts.map +1 -1
  37. package/dist/src/embed/liveboard.d.ts +3 -1
  38. package/dist/src/embed/liveboard.d.ts.map +1 -1
  39. package/dist/src/embed/sage.d.ts +1 -0
  40. package/dist/src/embed/sage.d.ts.map +1 -1
  41. package/dist/src/embed/search-bar.d.ts +1 -0
  42. package/dist/src/embed/search-bar.d.ts.map +1 -1
  43. package/dist/src/embed/search.d.ts +1 -0
  44. package/dist/src/embed/search.d.ts.map +1 -1
  45. package/dist/src/embed/ts-embed.d.ts +9 -0
  46. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  47. package/dist/src/react/index.d.ts +2 -0
  48. package/dist/src/react/index.d.ts.map +1 -1
  49. package/dist/src/types.d.ts +220 -7
  50. package/dist/src/types.d.ts.map +1 -1
  51. package/dist/src/utils/graphql/nlsService/conversation-service.d.ts.map +1 -1
  52. package/dist/tsembed-react.es.js +375 -60
  53. package/dist/tsembed-react.js +374 -59
  54. package/dist/tsembed.es.js +375 -60
  55. package/dist/tsembed.js +374 -59
  56. package/dist/visual-embed-sdk-react-full.d.ts +240 -8
  57. package/dist/visual-embed-sdk-react.d.ts +240 -8
  58. package/dist/visual-embed-sdk.d.ts +238 -8
  59. package/lib/package.json +1 -1
  60. package/lib/src/embed/bodyless-conversation.d.ts +1 -0
  61. package/lib/src/embed/bodyless-conversation.d.ts.map +1 -1
  62. package/lib/src/embed/bodyless-conversation.js +7 -3
  63. package/lib/src/embed/bodyless-conversation.js.map +1 -1
  64. package/lib/src/embed/conversation.d.ts +1 -0
  65. package/lib/src/embed/conversation.d.ts.map +1 -1
  66. package/lib/src/embed/conversation.js +7 -2
  67. package/lib/src/embed/conversation.js.map +1 -1
  68. package/lib/src/embed/liveboard.d.ts +1 -0
  69. package/lib/src/embed/liveboard.d.ts.map +1 -1
  70. package/lib/src/embed/liveboard.js +30 -14
  71. package/lib/src/embed/liveboard.js.map +1 -1
  72. package/lib/src/embed/liveboard.spec.js +29 -4
  73. package/lib/src/embed/liveboard.spec.js.map +1 -1
  74. package/lib/src/embed/sage.d.ts +1 -0
  75. package/lib/src/embed/sage.d.ts.map +1 -1
  76. package/lib/src/embed/sage.js +10 -6
  77. package/lib/src/embed/sage.js.map +1 -1
  78. package/lib/src/embed/search-bar.d.ts +1 -0
  79. package/lib/src/embed/search-bar.d.ts.map +1 -1
  80. package/lib/src/embed/search-bar.js +11 -7
  81. package/lib/src/embed/search-bar.js.map +1 -1
  82. package/lib/src/embed/search.d.ts +1 -0
  83. package/lib/src/embed/search.d.ts.map +1 -1
  84. package/lib/src/embed/search.js +7 -8
  85. package/lib/src/embed/search.js.map +1 -1
  86. package/lib/src/embed/ts-embed.d.ts +2 -0
  87. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  88. package/lib/src/embed/ts-embed.js +18 -17
  89. package/lib/src/embed/ts-embed.js.map +1 -1
  90. package/lib/src/visual-embed-sdk.d.ts +238 -8
  91. package/package.json +2 -1
  92. package/src/embed/bodyless-conversation.ts +9 -3
  93. package/src/embed/conversation.ts +13 -2
  94. package/src/embed/liveboard.spec.ts +32 -4
  95. package/src/embed/liveboard.ts +36 -16
  96. package/src/embed/sage.ts +11 -6
  97. package/src/embed/search-bar.tsx +14 -7
  98. package/src/embed/search.ts +18 -7
  99. package/src/embed/ts-embed.ts +21 -18
@@ -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
  */
@@ -1672,10 +1676,13 @@ declare module '@thoughtspot/visual-embed-sdk/embed/bodyless-conversation' {
1672
1676
  genNo: number;
1673
1677
  acSessionId: string;
1674
1678
  acGenNo: number;
1679
+ convId: string;
1680
+ messageId: string;
1675
1681
  }
1676
1682
  export class ConversationMessage extends TsEmbed {
1677
1683
  protected viewConfig: SpotterAgentMessageViewConfig;
1678
1684
  constructor(container: HTMLElement, viewConfig: SpotterAgentMessageViewConfig);
1685
+ protected getEmbedParamsObject(): Record<any, any>;
1679
1686
  getIframeSrc(): string;
1680
1687
  render(): Promise<ConversationMessage>;
1681
1688
  }
@@ -1719,6 +1726,8 @@ declare module '@thoughtspot/visual-embed-sdk/embed/bodyless-conversation' {
1719
1726
  data?: undefined;
1720
1727
  } | {
1721
1728
  data: {
1729
+ convId: any;
1730
+ messageId: any;
1722
1731
  sessionId: any;
1723
1732
  genNo: any;
1724
1733
  acSessionId: any;
@@ -1880,6 +1889,7 @@ declare module '@thoughtspot/visual-embed-sdk/embed/conversation' {
1880
1889
  export class SpotterEmbed extends TsEmbed {
1881
1890
  protected viewConfig: SpotterEmbedViewConfig;
1882
1891
  constructor(container: HTMLElement, viewConfig: SpotterEmbedViewConfig);
1892
+ protected getEmbedParamsObject(): Record<any, any>;
1883
1893
  getIframeSrc(): string;
1884
1894
  render(): Promise<SpotterEmbed>;
1885
1895
  }
@@ -4855,7 +4865,84 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
4855
4865
  * @version SDK : 1.39.0 | ThoughtSpot : 10.10.0.cl
4856
4866
  * @hidden
4857
4867
  */
4858
- RequestVisibleEmbedCoordinates = "requestVisibleEmbedCoordinates"
4868
+ RequestVisibleEmbedCoordinates = "requestVisibleEmbedCoordinates",
4869
+ /**
4870
+ * Emitted when spotter response is text data
4871
+ * @example
4872
+ * ```js
4873
+ * spotterEmbed.on(EmbedEvent.SpotterData, (payload) => {
4874
+ * console.log('payload', payload);
4875
+ * })
4876
+ *```
4877
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
4878
+ */
4879
+ SpotterData = "SpotterData",
4880
+ /**
4881
+ * Emitted when user opens up the worksheet preview modal in spotter embed.
4882
+ * @example
4883
+ * ```js
4884
+ * spotterEmbed.on(EmbedEvent.PreviewSpotterData, (payload) => {
4885
+ * console.log('payload', payload);
4886
+ * })
4887
+ *```
4888
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
4889
+ */
4890
+ PreviewSpotterData = "PreviewSpotterData",
4891
+ /**
4892
+ * Emitted when the spotter query is triggered in spotter embed.
4893
+ * @example
4894
+ * ```js
4895
+ * spotterEmbed.on(EmbedEvent.SpotterQueryTriggered, (payload) => {
4896
+ * console.log('payload', payload);
4897
+ * })
4898
+ *```
4899
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
4900
+ */
4901
+ SpotterQueryTriggered = "SpotterQueryTriggered",
4902
+ /**
4903
+ * Emitted when the last spotter query is edited in spotter embed.
4904
+ * @example
4905
+ * ```js
4906
+ * spotterEmbed.on(EmbedEvent.LastPromptEdited, (payload) => {
4907
+ * console.log('payload', payload);
4908
+ * })
4909
+ *```
4910
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
4911
+ */
4912
+ LastPromptEdited = "LastPromptEdited",
4913
+ /**
4914
+ * Emitted when the last spotter query is deleted in spotter embed.
4915
+ * @example
4916
+ * ```js
4917
+ * spotterEmbed.on(EmbedEvent.LastPromptDeleted, (payload) => {
4918
+ * console.log('payload', payload);
4919
+ * })
4920
+ *```
4921
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
4922
+ */
4923
+ LastPromptDeleted = "LastPromptDeleted",
4924
+ /**
4925
+ * Emitted when the coversation is reset in spotter embed.
4926
+ * @example
4927
+ * ```js
4928
+ * spotterEmbed.on(EmbedEvent.ResetSpotterConversation, (payload) => {
4929
+ * console.log('payload', payload);
4930
+ * })
4931
+ *```
4932
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
4933
+ */
4934
+ ResetSpotterConversation = "ResetSpotterConversation",
4935
+ /**
4936
+ * Emitted when the *Spotter* is initialized.
4937
+ * @example
4938
+ * ```js
4939
+ * spotterEmbed.on(EmbedEvent.SpotterInit, (payload) => {
4940
+ * console.log('payload', payload);
4941
+ * })
4942
+ *```
4943
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
4944
+ */
4945
+ SpotterInit = "SpotterInit"
4859
4946
  }
4860
4947
  /**
4861
4948
  * Event types that can be triggered by the host application
@@ -4873,7 +4960,7 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
4873
4960
  * // create the liveboard embed.
4874
4961
  *
4875
4962
  * liveboardEmbed.trigger(HostEvent.UpdateRuntimeFilters, [
4876
- * { columnName: 'state, operator: RuntimeFilterOp.EQ, values: ['california']}
4963
+ * { columnName: 'state', operator: RuntimeFilterOp.EQ, values: ["california"]}
4877
4964
  * ]);
4878
4965
  * ```
4879
4966
  * @example
@@ -5081,12 +5168,12 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5081
5168
  * Works with Search and Liveboard embed.
5082
5169
  * @param - { columnId: string,
5083
5170
  * name: string,
5084
- * type: INT64/CHAR/DATE,
5085
- * dataType: ATTRIBUTE/MEASURE }
5171
+ * type: ATTRIBUTE/MEASURE,
5172
+ * dataType: INT64/CHAR/DATE }
5086
5173
  * @example
5087
5174
  * ```js
5088
5175
  * searchEmbed.trigger(HostEvent.OpenFilter,
5089
- * {column: { columnId: '<column-GUID>', name: 'column name', type: 'INT64', dataType: 'ATTRIBUTE'}})
5176
+ * {column: { columnId: '<column-GUID>', name: 'column name', type: 'ATTRIBUTE', dataType: 'INT64'}})
5090
5177
  * ```
5091
5178
  * @example
5092
5179
  * ```js
@@ -5144,6 +5231,7 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5144
5231
  * @param
5145
5232
  * `vizId`- GUID of the saved Answer or visualization to pin to a Liveboard.
5146
5233
  * Optional when pinning a new chart or table generated from a Search query.
5234
+ * **Required** in Spotter Embed.
5147
5235
  * @param
5148
5236
  * `liveboardID` - GUID of the Liveboard to pin an Answer. If there is no Liveboard,
5149
5237
  * specify the `newLiveboardName` parameter to create a new Liveboard.
@@ -5191,6 +5279,12 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5191
5279
  * ```js
5192
5280
  * appEmbed.trigger(HostEvent.Pin)
5193
5281
  * ```
5282
+ * @example
5283
+ * ```js
5284
+ * const pinResponse = await spotterEmbed.trigger(HostEvent.Pin, {
5285
+ * vizId:'730496d6-6903-4601-937e-2c691821af3c'
5286
+ * });
5287
+ * ```
5194
5288
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
5195
5289
  */
5196
5290
  Pin = "pin",
@@ -5284,6 +5378,12 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5284
5378
  * ```js
5285
5379
  * searchEmbed.trigger(HostEvent.MakeACopy)
5286
5380
  * ```
5381
+ * @example
5382
+ * ```js
5383
+ * const pinResponse = await spotterEmbed.trigger(HostEvent.MakeACopy, {
5384
+ * vizId:'730496d6-6903-4601-937e-2c691821af3c'
5385
+ * });
5386
+ * ```
5287
5387
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
5288
5388
  */
5289
5389
  MakeACopy = "makeACopy",
@@ -5356,6 +5456,7 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5356
5456
  * This event is not supported in visualization embed and search embed.
5357
5457
  * @param - object - To trigger the action for a specific visualization
5358
5458
  * in Liveboard embed, pass in `vizId` as a key.
5459
+ * **Required** in Spotter embed.
5359
5460
  * @example
5360
5461
  * ```js
5361
5462
  * liveboardEmbed.trigger(HostEvent.Edit)
@@ -5364,6 +5465,12 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5364
5465
  * liveboardEmbed.trigger(HostEvent.Edit, {vizId:
5365
5466
  * '730496d6-6903-4601-937e-2c691821af3c'})
5366
5467
  * ```
5468
+ * @example
5469
+ * ```js
5470
+ * const pinResponse = await spotterEmbed.trigger(HostEvent.Edit, {
5471
+ * vizId:'730496d6-6903-4601-937e-2c691821af3c'
5472
+ * });
5473
+ * ```
5367
5474
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
5368
5475
  */
5369
5476
  Edit = "edit",
@@ -5411,6 +5518,16 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5411
5518
  * );
5412
5519
  * })
5413
5520
  * ```
5521
+ * @example
5522
+ * ```js
5523
+ * spotterEmbed.trigger(HostEvent.GetTML, {
5524
+ * vizId: '730496d6-6903-4601-937e-2c691821af3c'
5525
+ * }).then((tml) => {
5526
+ * console.log(
5527
+ * tml.answer.search_query // TML representation of the search query
5528
+ * );
5529
+ * })
5530
+ * ```
5414
5531
  * @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1.sw
5415
5532
  * @important
5416
5533
  */
@@ -5498,7 +5615,12 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5498
5615
  * vizEmbed.trigger(HostEvent.DownloadAsPng)
5499
5616
  *
5500
5617
  * searchEmbed.trigger(HostEvent.DownloadAsPng)
5618
+ *
5619
+ * spotterEmbed.trigger(HostEvent.DownloadAsPng, {
5620
+ * vizId:"730496d6-6903-4601-937e-2c691821af3c"
5621
+ * })
5501
5622
  * ```
5623
+ *
5502
5624
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.4.1.sw
5503
5625
  */
5504
5626
  DownloadAsPng = "downloadAsPng",
@@ -5516,6 +5638,11 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5516
5638
  * ```js
5517
5639
  * searchEmbed.trigger(HostEvent.DownloadAsCsv)
5518
5640
  * ```
5641
+ * ```js
5642
+ * spotterEmbed.trigger(HostEvent.DownloadAsCsv, {
5643
+ * vizId:"730496d6-6903-4601-937e-2c691821af3c"
5644
+ * })
5645
+ * ```
5519
5646
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1.sw
5520
5647
  */
5521
5648
  DownloadAsCsv = "downloadAsCSV",
@@ -5533,6 +5660,11 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5533
5660
  * ```js
5534
5661
  * searchEmbed.trigger(HostEvent.DownloadAsXlsx)
5535
5662
  * ```
5663
+ * ```js
5664
+ * spotterEmbed.trigger(HostEvent.downloadAsXLSX, {
5665
+ * vizId:"730496d6-6903-4601-937e-2c691821af3c"
5666
+ * })
5667
+ * ```
5536
5668
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1.sw
5537
5669
  */
5538
5670
  DownloadAsXlsx = "downloadAsXLSX",
@@ -5552,6 +5684,7 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5552
5684
  /**
5553
5685
  * Trigger the **Save** action on a Liveboard or Answer.
5554
5686
  * Saves the changes.
5687
+ * @param - `vizId` is required in Spotter Embed.
5555
5688
  * @example
5556
5689
  * ```js
5557
5690
  * liveboardEmbed.trigger(HostEvent.Save)
@@ -5559,6 +5692,11 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5559
5692
  * ```js
5560
5693
  * searchEmbed.trigger(HostEvent.Save)
5561
5694
  * ```
5695
+ * ```js
5696
+ * spotterEmbed.trigger(HostEvent.Save, {
5697
+ * vizId:"730496d6-6903-4601-937e-2c691821af3c"
5698
+ * })
5699
+ * ```
5562
5700
  * @version SDK: 1.19.0 | ThoughtSpot: 9.0.0.cl, 9.0.1.sw
5563
5701
  */
5564
5702
  Save = "save",
@@ -5842,7 +5980,7 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5842
5980
  ResetLiveboardPersonalisedView = "ResetLiveboardPersonalisedView",
5843
5981
  /**
5844
5982
  * Triggers an action to update Parameter values on embedded
5845
- * Answers and Liveboard.
5983
+ * Answers, Liveboard and Spotter answer in Edit mode.
5846
5984
  *
5847
5985
  * @example
5848
5986
  * ```js
@@ -5861,6 +5999,13 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5861
5999
  * console.log('parameters', parameter);
5862
6000
  * });
5863
6001
  *```
6002
+ *```js
6003
+ * spotterEmbed.trigger(HostEvent.GetParameters, {
6004
+ * vizId: '730496d6-6903-4601-937e-2c691821af3c'
6005
+ * }).then((parameter) => {
6006
+ * console.log('parameters', parameter);
6007
+ * });
6008
+ *```
5864
6009
  * @version SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl, 10.1.0.sw
5865
6010
  */
5866
6011
  GetParameters = "GetParameters",
@@ -5928,6 +6073,64 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5928
6073
  * @version SDK: 1.37.0 | ThoughtSpot: 10.8.0.cl
5929
6074
  */
5930
6075
  TransformTableVizData = "TransformTableVizData",
6076
+ /**
6077
+ * Triggers a search operation with the search tokens specified in
6078
+ * the search query string in spotter embed.
6079
+ * @param - `queryString`: Text string in Natural Language format
6080
+ * @param - `executeSearch`: Boolean to execute search and update search query
6081
+ * @example
6082
+ * ```js
6083
+ * spotterEmbed.trigger(HostEvent.SpotterSearch, {
6084
+ * query: 'revenue per year',
6085
+ * executeSearch: true,
6086
+ * })
6087
+ * ```
6088
+ */
6089
+ SpotterSearch = "SpotterSearch",
6090
+ /**
6091
+ * Edits the last prompt in spotter embed.
6092
+ * @param - `query`: Text string
6093
+ * @example
6094
+ * ```js
6095
+ * spotterEmbed.trigger(HostEvent.EditLastPrompt, "revenue per year");
6096
+ * ```
6097
+ */
6098
+ EditLastPrompt = "EditLastPrompt",
6099
+ /**
6100
+ * Opens the Worksheet preview modal in Spotter Embed.
6101
+ * @example
6102
+ * ```js
6103
+ * spotterEmbed.trigger(HostEvent.PreviewSpotterData);
6104
+ * ```
6105
+ */
6106
+ PreviewSpotterData = "PreviewSpotterData",
6107
+ /**
6108
+ * Resets the Spotter Embed Conversation.
6109
+ * @example
6110
+ * ```js
6111
+ * spotterEmbed.trigger(HostEvent.ResetSpotterConversation);
6112
+ * ```
6113
+ */
6114
+ ResetSpotterConversation = "ResetSpotterConversation",
6115
+ /**
6116
+ * Deletes the last prompt in spotter embed.
6117
+ * @example
6118
+ * ```js
6119
+ * spotterEmbed.trigger(HostEvent.DeleteLastPrompt);
6120
+ * ```
6121
+ */
6122
+ DeleteLastPrompt = "DeleteLastPrompt",
6123
+ /**
6124
+ * Toggle the visualization to chart or table view.
6125
+ * @param - `vizId ` In Spotter Embed, vizId is required.
6126
+ * @example
6127
+ * ```js
6128
+ * spotterEmbed.trigger(HostEvent.AnswerChartSwitcher, {
6129
+ * vizId:"'b535c760-8bbe-4e6f-bb26-af56b4129a1e'"
6130
+ * });
6131
+ *```
6132
+ */
6133
+ AnswerChartSwitcher = "answerChartSwitcher",
5931
6134
  /**
5932
6135
  * @hidden
5933
6136
  * Trigger exit from presentation mode when user exits fullscreen.
@@ -5950,7 +6153,27 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
5950
6153
  *
5951
6154
  * @hidden
5952
6155
  */
5953
- VisibleEmbedCoordinates = "visibleEmbedCoordinates"
6156
+ VisibleEmbedCoordinates = "visibleEmbedCoordinates",
6157
+ /**
6158
+ * Trigger the *Ask Sage* action for visualizations
6159
+ * @example
6160
+ * ```js
6161
+ * liveboardEmbed.trigger(HostEvent.AskSpotter,
6162
+ * {containerId:'730496d6-6903-4601-937e-2c691821af3c'})
6163
+ * ```
6164
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
6165
+ */
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"
5954
6177
  }
5955
6178
  /**
5956
6179
  * The different visual modes that the data sources panel within
@@ -8019,6 +8242,7 @@ declare module '@thoughtspot/visual-embed-sdk/embed/sage' {
8019
8242
  */
8020
8243
  protected viewConfig: SageViewConfig;
8021
8244
  constructor(domSelector: DOMSelector, viewConfig: SageViewConfig);
8245
+ protected getEmbedParamsObject(): Record<any, any>;
8022
8246
  /**
8023
8247
  * Constructs a map of parameters to be passed on to the
8024
8248
  * embedded Eureka or Sage search page.
@@ -8559,20 +8783,25 @@ declare module '@thoughtspot/visual-embed-sdk/embed/ts-embed' {
8559
8783
  protected isRendered: boolean;
8560
8784
  protected hostEventClient: HostEventClient;
8561
8785
  protected isReadyForRenderPromise: Promise<void>;
8786
+ id: string;
8562
8787
  constructor(domSelector: DOMSelector, viewConfig?: ViewConfig);
8563
8788
  /**
8564
8789
  * Handles errors within the SDK
8565
8790
  * @param error The error message or object
8566
8791
  */
8567
8792
  protected handleError(error: string | Record<string, unknown>): void;
8793
+ isEmbedContainerLoaded: boolean;
8568
8794
  protected getAuthTokenForCookielessInit(): Promise<string>;
8569
8795
  protected getDefaultAppInitData(): Promise<DefaultAppInitData>;
8570
8796
  protected getAppInitData(): Promise<DefaultAppInitData>;
8797
+ protected getPreRenderObj<T extends TsEmbed>(): T;
8798
+ protected triggerAfterLoad(eventType: HostEvent, data: TriggerPayload<any, HostEvent>, onEventTriggered?: () => void): void;
8571
8799
  /**
8572
8800
  * Constructs the base URL string to load the ThoughtSpot app.
8573
8801
  * @param query
8574
8802
  */
8575
8803
  protected getEmbedBasePath(query: string): string;
8804
+ protected getUpdateEmbedParamsObject(): Record<any, any>;
8576
8805
  /**
8577
8806
  * Common query params set for all the embed modes.
8578
8807
  * @param queryParams
@@ -8588,6 +8817,7 @@ declare module '@thoughtspot/visual-embed-sdk/embed/ts-embed' {
8588
8817
  */
8589
8818
  protected getV1EmbedBasePath(queryString: string): string;
8590
8819
  protected getEmbedParams(): string;
8820
+ protected getEmbedParamsObject(): Record<any, any>;
8591
8821
  protected getRootIframeSrc(): string;
8592
8822
  protected createIframeEl(frameSrc: string): HTMLIFrameElement;
8593
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.1-alpha.1",
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",
@@ -57,6 +57,7 @@
57
57
  "test": "npm run test-sdk",
58
58
  "posttest": "cat ./coverage/sdk/lcov.info | coveralls",
59
59
  "is-publish-allowed": "node scripts/is-publish-allowed.js",
60
+ "prepublishOnly": "npm run is-publish-allowed && npm run test && npm run tsc && npm run bundle-dts-file && npm run bundle-dts && npm run bundle-dts-react && npm run bundle-dts-react-full && npm run build",
60
61
  "check-size": "npm run build && size-limit",
61
62
  "publish-dev": "npm publish --tag dev",
62
63
  "publish-prod": "npm publish --tag latest",
@@ -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);