@thoughtspot/visual-embed-sdk 1.35.10 → 1.35.12

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 (133) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/embed/app.d.ts +11 -2
  3. package/cjs/src/embed/app.d.ts.map +1 -1
  4. package/cjs/src/embed/app.js.map +1 -1
  5. package/cjs/src/embed/hostEventClient/contracts.d.ts +1 -1
  6. package/cjs/src/embed/hostEventClient/contracts.js +1 -1
  7. package/cjs/src/embed/liveboard.d.ts +7 -4
  8. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  9. package/cjs/src/embed/liveboard.js +4 -3
  10. package/cjs/src/embed/liveboard.js.map +1 -1
  11. package/cjs/src/embed/liveboard.spec.js +17 -1
  12. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  13. package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
  14. package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
  15. package/cjs/src/embed/searchEmbed-basic-auth.spec.js +104 -0
  16. package/cjs/src/embed/searchEmbed-basic-auth.spec.js.map +1 -0
  17. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  18. package/cjs/src/embed/ts-embed.js +5 -2
  19. package/cjs/src/embed/ts-embed.js.map +1 -1
  20. package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
  21. package/cjs/src/embed/ts-embed.spec.js +110 -0
  22. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  23. package/cjs/src/hostEventsTypeMapping.d.ts +2 -0
  24. package/cjs/src/hostEventsTypeMapping.d.ts.map +1 -0
  25. package/cjs/src/hostEventsTypeMapping.js +4 -0
  26. package/cjs/src/hostEventsTypeMapping.js.map +1 -0
  27. package/cjs/src/types.d.ts +298 -161
  28. package/cjs/src/types.d.ts.map +1 -1
  29. package/cjs/src/types.js +274 -133
  30. package/cjs/src/types.js.map +1 -1
  31. package/cjs/src/utils/embedApi/contracts.d.ts +101 -0
  32. package/cjs/src/utils/embedApi/contracts.d.ts.map +1 -0
  33. package/cjs/src/utils/embedApi/contracts.js +17 -0
  34. package/cjs/src/utils/embedApi/contracts.js.map +1 -0
  35. package/cjs/src/utils/embedApi/embedApiClient.d.ts +12 -0
  36. package/cjs/src/utils/embedApi/embedApiClient.d.ts.map +1 -0
  37. package/cjs/src/utils/embedApi/embedApiClient.js +46 -0
  38. package/cjs/src/utils/embedApi/embedApiClient.js.map +1 -0
  39. package/cjs/src/utils/embedApi/processEmbedApi.d.ts +9 -0
  40. package/cjs/src/utils/embedApi/processEmbedApi.d.ts.map +1 -0
  41. package/cjs/src/utils/embedApi/processEmbedApi.js +18 -0
  42. package/cjs/src/utils/embedApi/processEmbedApi.js.map +1 -0
  43. package/dist/{index-DWOIXXJ1.js → index-BBBimG1x.js} +1 -1
  44. package/dist/index-BGnxP5NY.js +7370 -0
  45. package/dist/index-CENLvayL.js +7370 -0
  46. package/dist/index-CbltIawo.js +7370 -0
  47. package/dist/index-CoQfqaHj.js +7370 -0
  48. package/dist/index-CzwzS0P4.js +7370 -0
  49. package/dist/index-D-9WUCUl.js +7370 -0
  50. package/dist/index-DFwi_pV_.js +7370 -0
  51. package/dist/index-DOIjN0N_.js +7370 -0
  52. package/dist/index-DYBx8SuE.js +7370 -0
  53. package/dist/index-DaLHJaLd.js +7370 -0
  54. package/dist/index-DnJX-gN2.js +7370 -0
  55. package/dist/index-IDmSUe93.js +7370 -0
  56. package/dist/index-nWevLycs.js +7370 -0
  57. package/dist/src/embed/app.d.ts +11 -2
  58. package/dist/src/embed/app.d.ts.map +1 -1
  59. package/dist/src/embed/hostEventClient/contracts.d.ts +1 -1
  60. package/dist/src/embed/liveboard.d.ts +7 -4
  61. package/dist/src/embed/liveboard.d.ts.map +1 -1
  62. package/dist/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
  63. package/dist/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
  64. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  65. package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
  66. package/dist/src/hostEventsTypeMapping.d.ts +2 -0
  67. package/dist/src/hostEventsTypeMapping.d.ts.map +1 -0
  68. package/dist/src/types.d.ts +298 -161
  69. package/dist/src/types.d.ts.map +1 -1
  70. package/dist/src/utils/embedApi/contracts.d.ts +101 -0
  71. package/dist/src/utils/embedApi/contracts.d.ts.map +1 -0
  72. package/dist/src/utils/embedApi/embedApiClient.d.ts +12 -0
  73. package/dist/src/utils/embedApi/embedApiClient.d.ts.map +1 -0
  74. package/dist/src/utils/embedApi/processEmbedApi.d.ts +9 -0
  75. package/dist/src/utils/embedApi/processEmbedApi.d.ts.map +1 -0
  76. package/dist/tsembed-react.es.js +287 -142
  77. package/dist/tsembed-react.js +286 -141
  78. package/dist/tsembed.es.js +287 -142
  79. package/dist/tsembed.js +286 -141
  80. package/dist/visual-embed-sdk-react-full.d.ts +316 -167
  81. package/dist/visual-embed-sdk-react.d.ts +316 -167
  82. package/dist/visual-embed-sdk.d.ts +316 -167
  83. package/lib/package.json +1 -1
  84. package/lib/src/embed/app.d.ts +11 -2
  85. package/lib/src/embed/app.d.ts.map +1 -1
  86. package/lib/src/embed/app.js.map +1 -1
  87. package/lib/src/embed/hostEventClient/contracts.d.ts +1 -1
  88. package/lib/src/embed/hostEventClient/contracts.js +1 -1
  89. package/lib/src/embed/liveboard.d.ts +7 -4
  90. package/lib/src/embed/liveboard.d.ts.map +1 -1
  91. package/lib/src/embed/liveboard.js +4 -3
  92. package/lib/src/embed/liveboard.js.map +1 -1
  93. package/lib/src/embed/liveboard.spec.js +17 -1
  94. package/lib/src/embed/liveboard.spec.js.map +1 -1
  95. package/lib/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
  96. package/lib/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
  97. package/lib/src/embed/searchEmbed-basic-auth.spec.js +101 -0
  98. package/lib/src/embed/searchEmbed-basic-auth.spec.js.map +1 -0
  99. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  100. package/lib/src/embed/ts-embed.js +5 -2
  101. package/lib/src/embed/ts-embed.js.map +1 -1
  102. package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
  103. package/lib/src/embed/ts-embed.spec.js +111 -1
  104. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  105. package/lib/src/hostEventsTypeMapping.d.ts +2 -0
  106. package/lib/src/hostEventsTypeMapping.d.ts.map +1 -0
  107. package/lib/src/hostEventsTypeMapping.js +2 -0
  108. package/lib/src/hostEventsTypeMapping.js.map +1 -0
  109. package/lib/src/types.d.ts +298 -161
  110. package/lib/src/types.d.ts.map +1 -1
  111. package/lib/src/types.js +274 -133
  112. package/lib/src/types.js.map +1 -1
  113. package/lib/src/utils/embedApi/contracts.d.ts +101 -0
  114. package/lib/src/utils/embedApi/contracts.d.ts.map +1 -0
  115. package/lib/src/utils/embedApi/contracts.js +14 -0
  116. package/lib/src/utils/embedApi/contracts.js.map +1 -0
  117. package/lib/src/utils/embedApi/embedApiClient.d.ts +12 -0
  118. package/lib/src/utils/embedApi/embedApiClient.d.ts.map +1 -0
  119. package/lib/src/utils/embedApi/embedApiClient.js +42 -0
  120. package/lib/src/utils/embedApi/embedApiClient.js.map +1 -0
  121. package/lib/src/utils/embedApi/processEmbedApi.d.ts +9 -0
  122. package/lib/src/utils/embedApi/processEmbedApi.d.ts.map +1 -0
  123. package/lib/src/utils/embedApi/processEmbedApi.js +14 -0
  124. package/lib/src/utils/embedApi/processEmbedApi.js.map +1 -0
  125. package/lib/src/visual-embed-sdk.d.ts +317 -168
  126. package/package.json +1 -1
  127. package/src/embed/app.ts +11 -2
  128. package/src/embed/hostEventClient/contracts.ts +1 -1
  129. package/src/embed/liveboard.spec.ts +23 -2
  130. package/src/embed/liveboard.ts +11 -8
  131. package/src/embed/ts-embed.spec.ts +160 -1
  132. package/src/embed/ts-embed.ts +4 -4
  133. package/src/types.ts +300 -164
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thoughtspot/visual-embed-sdk",
3
- "version": "1.35.10",
3
+ "version": "1.35.12",
4
4
  "description": "ThoughtSpot Embed SDK",
5
5
  "module": "lib/src/index.js",
6
6
  "main": "dist/tsembed.js",
package/src/embed/app.ts CHANGED
@@ -257,8 +257,17 @@ export interface AppViewConfig extends Omit<ViewConfig, 'visibleTabs'> {
257
257
  */
258
258
  enableSearchAssist?: boolean;
259
259
  /**
260
- * If set to true, the embedded object container dynamically resizes
261
- * according to the height of the pages which support fullHeight mode.
260
+ * If set to true, the Liveboard container dynamically resizes
261
+ * according to the height of the Liveboard.
262
+ *
263
+ * **Note**: Using fullHeight loads all visualizations
264
+ * on the Liveboard simultaneously, which results in
265
+ * multiple warehouse queries and potentially a
266
+ * longer wait for the topmost visualizations to
267
+ * display on the screen. Setting fullHeight to
268
+ * `false` fetches visualizations incrementally as
269
+ * users scroll the page to view the charts and tables.
270
+ *
262
271
  * @version SDK: 1.21.0 | ThoughtSpot: 9.4.0.cl, 9.4.0-sw
263
272
  * @example
264
273
  * ```js
@@ -4,7 +4,7 @@ export enum UIPassthroughEvent {
4
4
  PinAnswerToLiveboard = 'addVizToPinboard',
5
5
  SaveAnswer = 'saveAnswer',
6
6
  GetDiscoverabilityStatus = 'getDiscoverabilityStatus',
7
- GetAvailableUIPassthroughs = 'getAvailableUIPassthroughs',
7
+ GetAvailableUIPassthroughs = 'getAvailableUiPassthroughs',
8
8
  GetAnswerConfig = 'getAnswerPageConfig',
9
9
  GetLiveboardConfig = 'getPinboardPageConfig',
10
10
  }
@@ -1,5 +1,5 @@
1
1
  import { LiveboardViewConfig, LiveboardEmbed } from './liveboard';
2
- import { init } from '../index';
2
+ import { init, UIPassthroughEvent } from '../index';
3
3
  import {
4
4
  Action,
5
5
  AuthType,
@@ -532,7 +532,7 @@ describe('Liveboard/viz embed tests', () => {
532
532
  await executeAfterWait(() => {
533
533
  expectUrlMatchesWithParams(
534
534
  getIFrameSrc(),
535
- `http://${thoughtSpotHost}/?embedApp=true${defaultParams}&isContextMenuEnabledOnLeftClick=true&isLiveboardEmbed=true&isPinboardV2Enabled=true#/embed/viz/${liveboardId}/tab/${activeTabId}`,
535
+ `http://${thoughtSpotHost}/?embedApp=true${defaultParams}&contextMenuEnabledOnWhichClick=left&isLiveboardEmbed=true&isPinboardV2Enabled=true#/embed/viz/${liveboardId}/tab/${activeTabId}`,
536
536
  );
537
537
  });
538
538
  });
@@ -767,4 +767,25 @@ describe('Liveboard/viz embed tests', () => {
767
767
  });
768
768
  });
769
769
  });
770
+
771
+ describe('Host events for liveborad', () => {
772
+ test('Host event with empty param', async () => {
773
+ const mockProcessTrigger = jest.spyOn(tsEmbed.TsEmbed.prototype, 'trigger');
774
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
775
+ liveboardId: '123',
776
+ ...defaultViewConfig,
777
+ vizId: 'testViz',
778
+ });
779
+ liveboardEmbed.render();
780
+ mockProcessTrigger.mockResolvedValue({ session: 'test' });
781
+ await executeAfterWait(async () => {
782
+ await liveboardEmbed.trigger(
783
+ HostEvent.Save,
784
+ );
785
+ expect(mockProcessTrigger).toHaveBeenCalledWith(
786
+ HostEvent.Save, { vizId: 'testViz' },
787
+ );
788
+ });
789
+ });
790
+ });
770
791
  });
@@ -23,7 +23,7 @@ import { getQueryParamString, isUndefined } from '../utils';
23
23
  import { getAuthPromise } from './base';
24
24
  import { V1Embed } from './ts-embed';
25
25
  import { addPreviewStylesIfNotPresent } from '../utils/global-styles';
26
- import { HostEventRequest, HostEventResponse } from './hostEventClient/contracts';
26
+ import { TriggerPayload, TriggerResponse } from './hostEventClient/contracts';
27
27
 
28
28
  /**
29
29
  * The configuration for the embedded Liveboard or visualization page view.
@@ -37,12 +37,14 @@ export interface LiveboardViewConfig
37
37
  /**
38
38
  * If set to true, the embedded object container dynamically resizes
39
39
  * according to the height of the Liveboard.
40
+ *
40
41
  * **Note**: Using fullHeight loads all visualizations on the
41
42
  * Liveboard simultaneously, which results in multiple warehouse
42
43
  * queries and potentially a longer wait for the topmost
43
44
  * visualizations to display on the screen.
44
45
  * Setting `fullHeight` to `false` fetches visualizations
45
46
  * incrementally as users scroll the page to view the charts and tables.
47
+ *
46
48
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1
47
49
  * @example
48
50
  * ```js
@@ -635,16 +637,17 @@ export class LiveboardEmbed extends V1Embed {
635
637
 
636
638
  /**
637
639
  * Triggers an event to the embedded app
638
- * @param messageType The event type
639
- * @param data The payload to send with the message
640
+ * @param {HostEvent} messageType The event type
641
+ * @param {any} data The payload to send with the message
642
+ * @returns A promise that resolves with the response from the embedded app
640
643
  */
641
- public trigger<HostEventT extends HostEvent>(
644
+ public trigger<HostEventT extends HostEvent, PayloadT>(
642
645
  messageType: HostEventT,
643
- data?: HostEventRequest<HostEventT>,
644
- ): Promise<HostEventResponse<HostEventT>> {
645
- const dataWithVizId = data;
646
+ data: TriggerPayload<PayloadT, HostEventT> = ({} as any),
647
+ ): Promise<TriggerResponse<PayloadT, HostEventT>> {
648
+ const dataWithVizId: any = data;
646
649
  if (messageType === HostEvent.SetActiveTab) {
647
- this.setActiveTab(data);
650
+ this.setActiveTab(data as { tabId: string });
648
651
  return Promise.resolve(null);
649
652
  }
650
653
  if (typeof dataWithVizId === 'object' && this.viewConfig.vizId) {
@@ -18,9 +18,15 @@ import {
18
18
  AnswerService,
19
19
  } from '../index';
20
20
  import {
21
- Action, HomeLeftNavItem, RuntimeFilter, RuntimeFilterOp, HomepageModule, HostEvent,
21
+ Action,
22
+ HomeLeftNavItem,
23
+ RuntimeFilter,
24
+ RuntimeFilterOp,
25
+ HomepageModule,
26
+ HostEvent,
22
27
  RuntimeParameter,
23
28
  Param,
29
+ ContextMenuTriggerOptions,
24
30
  } from '../types';
25
31
  import {
26
32
  executeAfterWait,
@@ -1430,6 +1436,7 @@ describe('Unit test case for ts embed', () => {
1430
1436
  expect(getIFrameSrc()).toContain('?base64UrlEncodedFlags');
1431
1437
  });
1432
1438
  });
1439
+
1433
1440
  it('should return the correct encoded query params string when app is embeded', async () => {
1434
1441
  const appEmbed = new AppEmbed(getRootEl(), {
1435
1442
  frameParams: {
@@ -1720,6 +1727,158 @@ describe('Unit test case for ts embed', () => {
1720
1727
  });
1721
1728
  });
1722
1729
 
1730
+ it('Should not add contextMenuEnabledOnWhichClick flag to the iframe src when it is not passed', async () => {
1731
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
1732
+ ...defaultViewConfig,
1733
+ liveboardId,
1734
+ } as LiveboardViewConfig);
1735
+
1736
+ liveboardEmbed.render();
1737
+ await executeAfterWait(() => {
1738
+ expectUrlMatchesWithParams(
1739
+ getIFrameSrc(),
1740
+ `http://${thoughtSpotHost}/?embedApp=true${defaultParams}#/embed/viz/${liveboardId}`,
1741
+ );
1742
+ });
1743
+
1744
+ const defaultConfig: SageViewConfig = {
1745
+ disableWorksheetChange: false,
1746
+ hideWorksheetSelector: false,
1747
+ hideSageAnswerHeader: false,
1748
+ hideAutocompleteSuggestions: false,
1749
+ hideSampleQuestions: false,
1750
+ isProductTour: false,
1751
+ dataPanelV2: false,
1752
+ };
1753
+
1754
+ const sageEmbed = new SageEmbed(getRootEl(), {
1755
+ ...defaultConfig,
1756
+ } as SageViewConfig);
1757
+
1758
+ sageEmbed.render();
1759
+ await executeAfterWait(() => {
1760
+ expectUrlMatch(
1761
+ getIFrameSrc(),
1762
+ `http://${thoughtSpotHost}/?embedApp=true&enableDataPanelV2=false&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSageAnswerHeader=false&hideAction=%5B%22reportError%22%5D#/embed/eureka`,
1763
+ );
1764
+ });
1765
+ });
1766
+
1767
+ it('Should add contextMenuEnabledOnWhichClick flag to the iframe with left value', async () => {
1768
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
1769
+ ...defaultViewConfig,
1770
+ liveboardId,
1771
+ contextMenuTrigger: ContextMenuTriggerOptions.LEFT_CLICK,
1772
+ } as LiveboardViewConfig);
1773
+
1774
+ liveboardEmbed.render();
1775
+ await executeAfterWait(() => {
1776
+ expectUrlMatchesWithParams(
1777
+ getIFrameSrc(),
1778
+ `http://${thoughtSpotHost}/?embedApp=true${defaultParams}&contextMenuEnabledOnWhichClick=left#/embed/viz/${liveboardId}`,
1779
+ );
1780
+ });
1781
+
1782
+ const defaultConfig: SageViewConfig = {
1783
+ disableWorksheetChange: false,
1784
+ hideWorksheetSelector: false,
1785
+ hideSageAnswerHeader: false,
1786
+ hideAutocompleteSuggestions: false,
1787
+ hideSampleQuestions: false,
1788
+ isProductTour: false,
1789
+ dataPanelV2: false,
1790
+ };
1791
+
1792
+ const sageEmbed = new SageEmbed(getRootEl(), {
1793
+ ...defaultConfig,
1794
+ contextMenuTrigger: ContextMenuTriggerOptions.LEFT_CLICK,
1795
+ } as SageViewConfig);
1796
+
1797
+ sageEmbed.render();
1798
+ await executeAfterWait(() => {
1799
+ expectUrlMatch(
1800
+ getIFrameSrc(),
1801
+ `http://${thoughtSpotHost}/?embedApp=true&enableDataPanelV2=false&contextMenuEnabledOnWhichClick=left&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSageAnswerHeader=false&hideAction=%5B%22reportError%22%5D#/embed/eureka`,
1802
+ );
1803
+ });
1804
+ });
1805
+
1806
+ it('Should add contextMenuEnabledOnWhichClick flag to the iframe with right value', async () => {
1807
+ const livebaordEmbed = new LiveboardEmbed(getRootEl(), {
1808
+ ...defaultViewConfig,
1809
+ liveboardId,
1810
+ contextMenuTrigger: ContextMenuTriggerOptions.RIGHT_CLICK,
1811
+ } as LiveboardViewConfig);
1812
+
1813
+ livebaordEmbed.render();
1814
+ await executeAfterWait(() => {
1815
+ expectUrlMatchesWithParams(
1816
+ getIFrameSrc(),
1817
+ `http://${thoughtSpotHost}/?embedApp=true${defaultParams}&contextMenuEnabledOnWhichClick=right#/embed/viz/${liveboardId}`,
1818
+ );
1819
+ });
1820
+ const defaultConfig: SageViewConfig = {
1821
+ disableWorksheetChange: false,
1822
+ hideWorksheetSelector: false,
1823
+ hideSageAnswerHeader: false,
1824
+ hideAutocompleteSuggestions: false,
1825
+ hideSampleQuestions: false,
1826
+ isProductTour: false,
1827
+ dataPanelV2: false,
1828
+ };
1829
+
1830
+ const sageEmbed = new SageEmbed(getRootEl(), {
1831
+ ...defaultConfig,
1832
+ contextMenuTrigger: ContextMenuTriggerOptions.RIGHT_CLICK,
1833
+ } as SageViewConfig);
1834
+
1835
+ sageEmbed.render();
1836
+ await executeAfterWait(() => {
1837
+ expectUrlMatch(
1838
+ getIFrameSrc(),
1839
+ `http://${thoughtSpotHost}/?embedApp=true&enableDataPanelV2=false&contextMenuEnabledOnWhichClick=right&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSageAnswerHeader=false&hideAction=%5B%22reportError%22%5D#/embed/eureka`,
1840
+ );
1841
+ });
1842
+ });
1843
+
1844
+ it('Should add contextMenuEnabledOnWhichClick flag to the iframe with both value', async () => {
1845
+ const livebaordEmbed = new LiveboardEmbed(getRootEl(), {
1846
+ ...defaultViewConfig,
1847
+ liveboardId,
1848
+ contextMenuTrigger: ContextMenuTriggerOptions.BOTH_CLICKS,
1849
+ } as LiveboardViewConfig);
1850
+
1851
+ livebaordEmbed.render();
1852
+ await executeAfterWait(() => {
1853
+ expectUrlMatchesWithParams(
1854
+ getIFrameSrc(),
1855
+ `http://${thoughtSpotHost}/?embedApp=true${defaultParams}&contextMenuEnabledOnWhichClick=both#/embed/viz/${liveboardId}`,
1856
+ );
1857
+ });
1858
+ const defaultConfig: SageViewConfig = {
1859
+ disableWorksheetChange: false,
1860
+ hideWorksheetSelector: false,
1861
+ hideSageAnswerHeader: false,
1862
+ hideAutocompleteSuggestions: false,
1863
+ hideSampleQuestions: false,
1864
+ isProductTour: false,
1865
+ dataPanelV2: false,
1866
+ };
1867
+
1868
+ const sageEmbed = new SageEmbed(getRootEl(), {
1869
+ ...defaultConfig,
1870
+ contextMenuTrigger: ContextMenuTriggerOptions.BOTH_CLICKS,
1871
+ } as SageViewConfig);
1872
+
1873
+ sageEmbed.render();
1874
+ await executeAfterWait(() => {
1875
+ expectUrlMatch(
1876
+ getIFrameSrc(),
1877
+ `http://${thoughtSpotHost}/?embedApp=true&enableDataPanelV2=false&contextMenuEnabledOnWhichClick=both&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSageAnswerHeader=false&hideAction=%5B%22reportError%22%5D#/embed/eureka`,
1878
+ );
1879
+ });
1880
+ });
1881
+
1723
1882
  it('SageViewConfig: Should add flipTooltipToContextMenuEnabled flag to the iframe src', async () => {
1724
1883
  const defaultConfig: SageViewConfig = {
1725
1884
  disableWorksheetChange: false,
@@ -10,8 +10,6 @@ import isEqual from 'lodash/isEqual';
10
10
  import isEmpty from 'lodash/isEmpty';
11
11
  import isObject from 'lodash/isObject';
12
12
  import {
13
- HostEventRequest,
14
- HostEventResponse,
15
13
  TriggerPayload,
16
14
  TriggerResponse,
17
15
  UIPassthroughArrayResponse,
@@ -536,9 +534,11 @@ export class TsEmbed {
536
534
  * menu click
537
535
  */
538
536
  if (contextMenuTrigger === ContextMenuTriggerOptions.LEFT_CLICK) {
539
- queryParams[Param.ContextMenuTrigger] = true;
537
+ queryParams[Param.ContextMenuTrigger] = 'left';
540
538
  } else if (contextMenuTrigger === ContextMenuTriggerOptions.RIGHT_CLICK) {
541
- queryParams[Param.ContextMenuTrigger] = false;
539
+ queryParams[Param.ContextMenuTrigger] = 'right';
540
+ } else if (contextMenuTrigger === ContextMenuTriggerOptions.BOTH_CLICKS) {
541
+ queryParams[Param.ContextMenuTrigger] = 'both';
542
542
  }
543
543
 
544
544
  const spriteUrl = customizations?.iconSpriteUrl