@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.
- package/cjs/package.json +1 -1
- package/cjs/src/embed/app.d.ts +11 -2
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/hostEventClient/contracts.d.ts +1 -1
- package/cjs/src/embed/hostEventClient/contracts.js +1 -1
- package/cjs/src/embed/liveboard.d.ts +7 -4
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +4 -3
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +17 -1
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.js +104 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.js.map +1 -0
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +5 -2
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +110 -0
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/hostEventsTypeMapping.d.ts +2 -0
- package/cjs/src/hostEventsTypeMapping.d.ts.map +1 -0
- package/cjs/src/hostEventsTypeMapping.js +4 -0
- package/cjs/src/hostEventsTypeMapping.js.map +1 -0
- package/cjs/src/types.d.ts +298 -161
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +274 -133
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/embedApi/contracts.d.ts +101 -0
- package/cjs/src/utils/embedApi/contracts.d.ts.map +1 -0
- package/cjs/src/utils/embedApi/contracts.js +17 -0
- package/cjs/src/utils/embedApi/contracts.js.map +1 -0
- package/cjs/src/utils/embedApi/embedApiClient.d.ts +12 -0
- package/cjs/src/utils/embedApi/embedApiClient.d.ts.map +1 -0
- package/cjs/src/utils/embedApi/embedApiClient.js +46 -0
- package/cjs/src/utils/embedApi/embedApiClient.js.map +1 -0
- package/cjs/src/utils/embedApi/processEmbedApi.d.ts +9 -0
- package/cjs/src/utils/embedApi/processEmbedApi.d.ts.map +1 -0
- package/cjs/src/utils/embedApi/processEmbedApi.js +18 -0
- package/cjs/src/utils/embedApi/processEmbedApi.js.map +1 -0
- package/dist/{index-DWOIXXJ1.js → index-BBBimG1x.js} +1 -1
- package/dist/index-BGnxP5NY.js +7370 -0
- package/dist/index-CENLvayL.js +7370 -0
- package/dist/index-CbltIawo.js +7370 -0
- package/dist/index-CoQfqaHj.js +7370 -0
- package/dist/index-CzwzS0P4.js +7370 -0
- package/dist/index-D-9WUCUl.js +7370 -0
- package/dist/index-DFwi_pV_.js +7370 -0
- package/dist/index-DOIjN0N_.js +7370 -0
- package/dist/index-DYBx8SuE.js +7370 -0
- package/dist/index-DaLHJaLd.js +7370 -0
- package/dist/index-DnJX-gN2.js +7370 -0
- package/dist/index-IDmSUe93.js +7370 -0
- package/dist/index-nWevLycs.js +7370 -0
- package/dist/src/embed/app.d.ts +11 -2
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/hostEventClient/contracts.d.ts +1 -1
- package/dist/src/embed/liveboard.d.ts +7 -4
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
- package/dist/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/dist/src/hostEventsTypeMapping.d.ts +2 -0
- package/dist/src/hostEventsTypeMapping.d.ts.map +1 -0
- package/dist/src/types.d.ts +298 -161
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/embedApi/contracts.d.ts +101 -0
- package/dist/src/utils/embedApi/contracts.d.ts.map +1 -0
- package/dist/src/utils/embedApi/embedApiClient.d.ts +12 -0
- package/dist/src/utils/embedApi/embedApiClient.d.ts.map +1 -0
- package/dist/src/utils/embedApi/processEmbedApi.d.ts +9 -0
- package/dist/src/utils/embedApi/processEmbedApi.d.ts.map +1 -0
- package/dist/tsembed-react.es.js +287 -142
- package/dist/tsembed-react.js +286 -141
- package/dist/tsembed.es.js +287 -142
- package/dist/tsembed.js +286 -141
- package/dist/visual-embed-sdk-react-full.d.ts +316 -167
- package/dist/visual-embed-sdk-react.d.ts +316 -167
- package/dist/visual-embed-sdk.d.ts +316 -167
- package/lib/package.json +1 -1
- package/lib/src/embed/app.d.ts +11 -2
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/hostEventClient/contracts.d.ts +1 -1
- package/lib/src/embed/hostEventClient/contracts.js +1 -1
- package/lib/src/embed/liveboard.d.ts +7 -4
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +4 -3
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +17 -1
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
- package/lib/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
- package/lib/src/embed/searchEmbed-basic-auth.spec.js +101 -0
- package/lib/src/embed/searchEmbed-basic-auth.spec.js.map +1 -0
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +5 -2
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +111 -1
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/hostEventsTypeMapping.d.ts +2 -0
- package/lib/src/hostEventsTypeMapping.d.ts.map +1 -0
- package/lib/src/hostEventsTypeMapping.js +2 -0
- package/lib/src/hostEventsTypeMapping.js.map +1 -0
- package/lib/src/types.d.ts +298 -161
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +274 -133
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/embedApi/contracts.d.ts +101 -0
- package/lib/src/utils/embedApi/contracts.d.ts.map +1 -0
- package/lib/src/utils/embedApi/contracts.js +14 -0
- package/lib/src/utils/embedApi/contracts.js.map +1 -0
- package/lib/src/utils/embedApi/embedApiClient.d.ts +12 -0
- package/lib/src/utils/embedApi/embedApiClient.d.ts.map +1 -0
- package/lib/src/utils/embedApi/embedApiClient.js +42 -0
- package/lib/src/utils/embedApi/embedApiClient.js.map +1 -0
- package/lib/src/utils/embedApi/processEmbedApi.d.ts +9 -0
- package/lib/src/utils/embedApi/processEmbedApi.d.ts.map +1 -0
- package/lib/src/utils/embedApi/processEmbedApi.js +14 -0
- package/lib/src/utils/embedApi/processEmbedApi.js.map +1 -0
- package/lib/src/visual-embed-sdk.d.ts +317 -168
- package/package.json +1 -1
- package/src/embed/app.ts +11 -2
- package/src/embed/hostEventClient/contracts.ts +1 -1
- package/src/embed/liveboard.spec.ts +23 -2
- package/src/embed/liveboard.ts +11 -8
- package/src/embed/ts-embed.spec.ts +160 -1
- package/src/embed/ts-embed.ts +4 -4
- package/src/types.ts +300 -164
package/package.json
CHANGED
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
|
|
261
|
-
* according to the height of the
|
|
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 = '
|
|
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}&
|
|
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
|
});
|
package/src/embed/liveboard.ts
CHANGED
|
@@ -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 {
|
|
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
|
|
644
|
-
): Promise<
|
|
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,
|
|
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,
|
package/src/embed/ts-embed.ts
CHANGED
|
@@ -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] =
|
|
537
|
+
queryParams[Param.ContextMenuTrigger] = 'left';
|
|
540
538
|
} else if (contextMenuTrigger === ContextMenuTriggerOptions.RIGHT_CLICK) {
|
|
541
|
-
queryParams[Param.ContextMenuTrigger] =
|
|
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
|