@thoughtspot/visual-embed-sdk 1.6.0-alpha.1 → 1.7.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -8
- package/dist/src/embed/app.d.ts +14 -3
- package/dist/src/embed/liveboard.d.ts +101 -0
- package/dist/src/embed/liveboard.spec.d.ts +1 -0
- package/dist/src/embed/ts-embed.d.ts +2 -11
- package/dist/src/errors.d.ts +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/react/index.d.ts +4 -3
- package/dist/src/types.d.ts +23 -20
- package/dist/tsembed.es.js +83 -70
- package/dist/tsembed.js +82 -68
- package/lib/package.json +4 -1
- package/lib/src/embed/app.d.ts +14 -3
- package/lib/src/embed/app.js +25 -2
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +32 -0
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/events.spec.js +55 -2
- package/lib/src/embed/events.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +101 -0
- package/lib/src/embed/{pinboard.js → liveboard.js} +34 -26
- package/lib/src/embed/liveboard.js.map +1 -0
- package/lib/src/embed/liveboard.spec.d.ts +1 -0
- package/lib/src/embed/liveboard.spec.js +159 -0
- package/lib/src/embed/liveboard.spec.js.map +1 -0
- package/lib/src/embed/pinboard.spec.js +1 -1
- package/lib/src/embed/pinboard.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +2 -11
- package/lib/src/embed/ts-embed.js +2 -22
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +63 -6
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/errors.d.ts +1 -1
- package/lib/src/errors.js +1 -1
- package/lib/src/errors.js.map +1 -1
- package/lib/src/index.d.ts +2 -2
- package/lib/src/index.js +2 -2
- package/lib/src/index.js.map +1 -1
- package/lib/src/react/index.d.ts +4 -3
- package/lib/src/react/index.js +3 -2
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/types.d.ts +23 -20
- package/lib/src/types.js +20 -18
- package/lib/src/types.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +79 -58
- package/package.json +4 -1
- package/src/embed/app.spec.ts +41 -0
- package/src/embed/app.ts +28 -3
- package/src/embed/events.spec.ts +64 -5
- package/src/embed/liveboard.spec.ts +199 -0
- package/src/embed/{pinboard.ts → liveboard.ts} +60 -42
- package/src/embed/pinboard.spec.ts +11 -11
- package/src/embed/ts-embed.spec.ts +81 -8
- package/src/embed/ts-embed.ts +3 -24
- package/src/errors.ts +2 -2
- package/src/index.ts +7 -2
- package/src/react/index.tsx +14 -8
- package/src/types.ts +23 -20
- package/dist/src/embed/pinboard.d.ts +0 -85
- package/lib/src/embed/pinboard.d.ts +0 -85
- package/lib/src/embed/pinboard.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { init, AuthType, EmbedEvent, SearchEmbed, PinboardEmbed, HostEvent, } from '../index';
|
|
1
|
+
import { init, AuthType, EmbedEvent, SearchEmbed, PinboardEmbed, LiveboardEmbed, HostEvent, } from '../index';
|
|
2
2
|
import { EVENT_WAIT_TIME, executeAfterWait, getDocumentBody, getIFrameEl, getRootEl, getRootEl2, postMessageToParent, } from '../test/test-utils';
|
|
3
3
|
const thoughtSpotHost = 'tshost';
|
|
4
4
|
const defaultViewConfig = {
|
|
@@ -89,7 +89,13 @@ describe('test communication between host app and ThoughtSpot', () => {
|
|
|
89
89
|
...defaultViewConfig,
|
|
90
90
|
pinboardId: 'eca215d4-0d2c-4a55-90e3-d81ef6848ae0',
|
|
91
91
|
});
|
|
92
|
+
const spyThree = jest.fn();
|
|
93
|
+
const embedThree = new LiveboardEmbed(getRootEl2(), {
|
|
94
|
+
...defaultViewConfig,
|
|
95
|
+
liveboardId: 'eca215d4-0d2c-4a55-90e3-d81ef6848ae0',
|
|
96
|
+
});
|
|
92
97
|
embedTwo.on(EmbedEvent.CustomAction, spyTwo).render();
|
|
98
|
+
embedThree.on(EmbedEvent.CustomAction, spyThree).render();
|
|
93
99
|
await executeAfterWait(() => {
|
|
94
100
|
const iframeOne = getIFrameEl();
|
|
95
101
|
postMessageToParent(iframeOne.contentWindow, {
|
|
@@ -100,9 +106,27 @@ describe('test communication between host app and ThoughtSpot', () => {
|
|
|
100
106
|
await executeAfterWait(() => {
|
|
101
107
|
expect(spyOne).toHaveBeenCalled();
|
|
102
108
|
expect(spyTwo).not.toHaveBeenCalled();
|
|
109
|
+
expect(spyThree).not.toHaveBeenCalled();
|
|
103
110
|
}, EVENT_WAIT_TIME);
|
|
104
111
|
});
|
|
105
112
|
test('send getIframeCenter Event without eventPort', async () => {
|
|
113
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
114
|
+
...defaultViewConfig,
|
|
115
|
+
fullHeight: true,
|
|
116
|
+
pinboardId: 'eca215d4-0d2c-4a55-90e3-d81ef6848ae0',
|
|
117
|
+
});
|
|
118
|
+
liveboardEmbed.render();
|
|
119
|
+
const spy1 = jest.spyOn(global.console, 'log');
|
|
120
|
+
await executeAfterWait(() => {
|
|
121
|
+
const iframe = getIFrameEl();
|
|
122
|
+
postMessageToParent(iframe.contentWindow, {
|
|
123
|
+
type: EmbedEvent.EmbedIframeCenter,
|
|
124
|
+
data: PAYLOAD,
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
expect(spy1).toHaveBeenCalledWith('Event Port is not defined');
|
|
128
|
+
});
|
|
129
|
+
test('send getIframeCenter Event without eventPort - pinboard', async () => {
|
|
106
130
|
const pinboardEmbed = new PinboardEmbed(getRootEl(), {
|
|
107
131
|
...defaultViewConfig,
|
|
108
132
|
fullHeight: true,
|
|
@@ -119,7 +143,7 @@ describe('test communication between host app and ThoughtSpot', () => {
|
|
|
119
143
|
});
|
|
120
144
|
expect(spy1).toHaveBeenCalledWith('Event Port is not defined');
|
|
121
145
|
});
|
|
122
|
-
test('send getIframeCenter Event with eventPort', async () => {
|
|
146
|
+
test('send getIframeCenter Event with eventPort - pinboard', async () => {
|
|
123
147
|
const pinboardEmbed = new PinboardEmbed(getRootEl(), {
|
|
124
148
|
...defaultViewConfig,
|
|
125
149
|
fullHeight: true,
|
|
@@ -148,5 +172,34 @@ describe('test communication between host app and ThoughtSpot', () => {
|
|
|
148
172
|
};
|
|
149
173
|
expect(mockPort.postMessage).toHaveBeenCalledWith(heightObj);
|
|
150
174
|
});
|
|
175
|
+
test('send getIframeCenter Event with eventPort', async () => {
|
|
176
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
177
|
+
...defaultViewConfig,
|
|
178
|
+
fullHeight: true,
|
|
179
|
+
pinboardId: 'eca215d4-0d2c-4a55-90e3-d81ef6848ae0',
|
|
180
|
+
});
|
|
181
|
+
liveboardEmbed.render();
|
|
182
|
+
const mockPort = {
|
|
183
|
+
postMessage: jest.fn(),
|
|
184
|
+
};
|
|
185
|
+
await executeAfterWait(() => {
|
|
186
|
+
const iframe = getIFrameEl();
|
|
187
|
+
postMessageToParent(iframe.contentWindow, {
|
|
188
|
+
type: EmbedEvent.EmbedIframeCenter,
|
|
189
|
+
data: PAYLOAD,
|
|
190
|
+
}, mockPort);
|
|
191
|
+
});
|
|
192
|
+
const heightObj = {
|
|
193
|
+
data: {
|
|
194
|
+
iframeCenter: 0,
|
|
195
|
+
iframeHeight: 0,
|
|
196
|
+
iframeScrolled: 0,
|
|
197
|
+
iframeVisibleViewPort: 0,
|
|
198
|
+
viewPortHeight: 768,
|
|
199
|
+
},
|
|
200
|
+
type: EmbedEvent.EmbedIframeCenter,
|
|
201
|
+
};
|
|
202
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith(heightObj);
|
|
203
|
+
});
|
|
151
204
|
});
|
|
152
205
|
//# sourceMappingURL=events.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.spec.js","sourceRoot":"","sources":["../../../src/embed/events.spec.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"events.spec.js","sourceRoot":"","sources":["../../../src/embed/events.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2021
|
|
3
|
+
*
|
|
4
|
+
* Embed a ThoughtSpot Liveboard or visualization
|
|
5
|
+
* https://developers.thoughtspot.com/docs/?pageid=embed-pinboard
|
|
6
|
+
* https://developers.thoughtspot.com/docs/?pageid=embed-a-viz
|
|
7
|
+
*
|
|
8
|
+
* @summary Liveboard & visualization embed
|
|
9
|
+
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
10
|
+
*/
|
|
11
|
+
import { DOMSelector } from '../types';
|
|
12
|
+
import { V1Embed, ViewConfig } from './ts-embed';
|
|
13
|
+
/**
|
|
14
|
+
* The configuration for the embedded Liveboard or visualization page view.
|
|
15
|
+
* @Category Liveboards and Charts
|
|
16
|
+
*/
|
|
17
|
+
export interface LiveboardViewConfig extends ViewConfig {
|
|
18
|
+
/**
|
|
19
|
+
* If set to true, the embedded object container dynamically resizes
|
|
20
|
+
* according to the height of the Liveboard.
|
|
21
|
+
*/
|
|
22
|
+
fullHeight?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* This is the minimum height(in pixels) for a full height Liveboard.
|
|
25
|
+
* Setting this height helps resolves issues with empty Liveboards and
|
|
26
|
+
* other screens navigable from a Liveboard.
|
|
27
|
+
* *_since 1.5.0_
|
|
28
|
+
* @default 500
|
|
29
|
+
*/
|
|
30
|
+
defaultHeight?: number;
|
|
31
|
+
/**
|
|
32
|
+
* If set to true, the context menu in visualizations will be enabled.
|
|
33
|
+
*/
|
|
34
|
+
enableVizTransformations?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* The Liveboard to display in the embedded view.
|
|
37
|
+
* Use either of liveboardId or pinboardId to reference the Liveboard to embed.
|
|
38
|
+
*/
|
|
39
|
+
liveboardId?: string;
|
|
40
|
+
/**
|
|
41
|
+
* To support backward compatibilty
|
|
42
|
+
* @hidden
|
|
43
|
+
*/
|
|
44
|
+
pinboardId?: string;
|
|
45
|
+
/**
|
|
46
|
+
* The visualization within the Liveboard to display.
|
|
47
|
+
*/
|
|
48
|
+
vizId?: string;
|
|
49
|
+
/**
|
|
50
|
+
* If set to true, all filter chips from a
|
|
51
|
+
* Liveboard page will be read-only (no X buttons)
|
|
52
|
+
*/
|
|
53
|
+
preventLiveboardFilterRemoval?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* To support backward compatibilty
|
|
56
|
+
* @hidden
|
|
57
|
+
*/
|
|
58
|
+
preventPinboardFilterRemoval?: boolean;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Embed a ThoughtSpot Liveboard or visualization
|
|
62
|
+
* @Category Liveboards and Charts
|
|
63
|
+
*/
|
|
64
|
+
export declare class LiveboardEmbed extends V1Embed {
|
|
65
|
+
protected viewConfig: LiveboardViewConfig;
|
|
66
|
+
private defaultHeight;
|
|
67
|
+
constructor(domSelector: DOMSelector, viewConfig: LiveboardViewConfig);
|
|
68
|
+
/**
|
|
69
|
+
* Construct a map of params to be passed on to the
|
|
70
|
+
* embedded Liveboard or visualization.
|
|
71
|
+
*/
|
|
72
|
+
private getEmbedParams;
|
|
73
|
+
/**
|
|
74
|
+
* Construct the URL of the embedded ThoughtSpot Liveboard or visualization
|
|
75
|
+
* to be loaded within the iframe.
|
|
76
|
+
* @param liveboardId The GUID of the Liveboard.
|
|
77
|
+
* @param vizId The optional GUID of a visualization within the Liveboard.
|
|
78
|
+
* @param runtimeFilters A list of runtime filters to be applied to
|
|
79
|
+
* the Liveboard or visualization on load.
|
|
80
|
+
*/
|
|
81
|
+
private getIFrameSrc;
|
|
82
|
+
/**
|
|
83
|
+
* Set the iframe height as per the computed height received
|
|
84
|
+
* from the ThoughtSpot app.
|
|
85
|
+
* @param data The event payload
|
|
86
|
+
*/
|
|
87
|
+
private updateIFrameHeight;
|
|
88
|
+
private embedIframeCenter;
|
|
89
|
+
private setIframeHeightForNonEmbedLiveboard;
|
|
90
|
+
/**
|
|
91
|
+
* Render an embedded ThoughtSpot Liveboard or visualization
|
|
92
|
+
* @param renderOptions An object specifying the Liveboard ID,
|
|
93
|
+
* visualization ID and the runtime filters.
|
|
94
|
+
*/
|
|
95
|
+
render(): LiveboardEmbed;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* @hidden
|
|
99
|
+
*/
|
|
100
|
+
export declare class PinboardEmbed extends LiveboardEmbed {
|
|
101
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2021
|
|
3
3
|
*
|
|
4
|
-
* Embed a ThoughtSpot
|
|
4
|
+
* Embed a ThoughtSpot Liveboard or visualization
|
|
5
5
|
* https://developers.thoughtspot.com/docs/?pageid=embed-pinboard
|
|
6
6
|
* https://developers.thoughtspot.com/docs/?pageid=embed-a-viz
|
|
7
7
|
*
|
|
8
|
-
* @summary
|
|
8
|
+
* @summary Liveboard & visualization embed
|
|
9
9
|
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
10
10
|
*/
|
|
11
11
|
import { ERROR_MESSAGE } from '../errors';
|
|
@@ -13,10 +13,10 @@ import { EmbedEvent, Param, } from '../types';
|
|
|
13
13
|
import { getFilterQuery, getQueryParamString } from '../utils';
|
|
14
14
|
import { V1Embed } from './ts-embed';
|
|
15
15
|
/**
|
|
16
|
-
* Embed a ThoughtSpot
|
|
17
|
-
* @Category
|
|
16
|
+
* Embed a ThoughtSpot Liveboard or visualization
|
|
17
|
+
* @Category Liveboards and Charts
|
|
18
18
|
*/
|
|
19
|
-
export class
|
|
19
|
+
export class LiveboardEmbed extends V1Embed {
|
|
20
20
|
// eslint-disable-next-line no-useless-constructor
|
|
21
21
|
constructor(domSelector, viewConfig) {
|
|
22
22
|
super(domSelector, viewConfig);
|
|
@@ -33,20 +33,21 @@ export class PinboardEmbed extends V1Embed {
|
|
|
33
33
|
const obj = this.getIframeCenter();
|
|
34
34
|
responder({ type: EmbedEvent.EmbedIframeCenter, data: obj });
|
|
35
35
|
};
|
|
36
|
-
this.
|
|
37
|
-
if (data.data.
|
|
38
|
-
data.data.canvasState !== 'pinboard') {
|
|
36
|
+
this.setIframeHeightForNonEmbedLiveboard = (data) => {
|
|
37
|
+
if (!data.data.currentPath.startsWith('/embed/viz/')) {
|
|
39
38
|
this.setIFrameHeight(this.defaultHeight);
|
|
40
39
|
}
|
|
41
40
|
};
|
|
42
41
|
}
|
|
43
42
|
/**
|
|
44
43
|
* Construct a map of params to be passed on to the
|
|
45
|
-
* embedded
|
|
44
|
+
* embedded Liveboard or visualization.
|
|
46
45
|
*/
|
|
47
46
|
getEmbedParams() {
|
|
48
47
|
const params = this.getBaseQueryParams();
|
|
49
|
-
const { enableVizTransformations, fullHeight,
|
|
48
|
+
const { enableVizTransformations, fullHeight, defaultHeight, } = this.viewConfig;
|
|
49
|
+
const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval ||
|
|
50
|
+
this.viewConfig.preventPinboardFilterRemoval;
|
|
50
51
|
if (fullHeight === true) {
|
|
51
52
|
params[Param.fullHeight] = true;
|
|
52
53
|
}
|
|
@@ -56,52 +57,59 @@ export class PinboardEmbed extends V1Embed {
|
|
|
56
57
|
if (enableVizTransformations !== undefined) {
|
|
57
58
|
params[Param.EnableVizTransformations] = enableVizTransformations.toString();
|
|
58
59
|
}
|
|
59
|
-
if (
|
|
60
|
-
params[Param.
|
|
60
|
+
if (preventLiveboardFilterRemoval) {
|
|
61
|
+
params[Param.preventLiveboardFilterRemoval] = true;
|
|
61
62
|
}
|
|
62
63
|
params[Param.livedBoardEmbed] = true;
|
|
63
64
|
const queryParams = getQueryParamString(params, true);
|
|
64
65
|
return queryParams;
|
|
65
66
|
}
|
|
66
67
|
/**
|
|
67
|
-
* Construct the URL of the embedded ThoughtSpot
|
|
68
|
+
* Construct the URL of the embedded ThoughtSpot Liveboard or visualization
|
|
68
69
|
* to be loaded within the iframe.
|
|
69
|
-
* @param
|
|
70
|
-
* @param vizId The optional GUID of a visualization within the
|
|
70
|
+
* @param liveboardId The GUID of the Liveboard.
|
|
71
|
+
* @param vizId The optional GUID of a visualization within the Liveboard.
|
|
71
72
|
* @param runtimeFilters A list of runtime filters to be applied to
|
|
72
|
-
* the
|
|
73
|
+
* the Liveboard or visualization on load.
|
|
73
74
|
*/
|
|
74
|
-
getIFrameSrc(
|
|
75
|
+
getIFrameSrc(liveboardId, vizId, runtimeFilters) {
|
|
75
76
|
const filterQuery = getFilterQuery(runtimeFilters || []);
|
|
76
77
|
const queryParams = this.getEmbedParams();
|
|
77
78
|
const queryString = [filterQuery, queryParams]
|
|
78
79
|
.filter(Boolean)
|
|
79
80
|
.join('&');
|
|
80
|
-
let url = `${this.getV1EmbedBasePath(queryString, true, false, false)}/viz/${
|
|
81
|
+
let url = `${this.getV1EmbedBasePath(queryString, true, false, false)}/viz/${liveboardId}`;
|
|
81
82
|
if (vizId) {
|
|
82
83
|
url = `${url}/${vizId}`;
|
|
83
84
|
}
|
|
84
85
|
return url;
|
|
85
86
|
}
|
|
86
87
|
/**
|
|
87
|
-
* Render an embedded ThoughtSpot
|
|
88
|
-
* @param renderOptions An object specifying the
|
|
88
|
+
* Render an embedded ThoughtSpot Liveboard or visualization
|
|
89
|
+
* @param renderOptions An object specifying the Liveboard ID,
|
|
89
90
|
* visualization ID and the runtime filters.
|
|
90
91
|
*/
|
|
91
92
|
render() {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
var _a;
|
|
94
|
+
const { vizId, runtimeFilters } = this.viewConfig;
|
|
95
|
+
const liveboardId = (_a = this.viewConfig.liveboardId) !== null && _a !== void 0 ? _a : this.viewConfig.pinboardId;
|
|
96
|
+
if (!liveboardId) {
|
|
97
|
+
this.handleError(ERROR_MESSAGE.LIVEBOARD_VIZ_ID_VALIDATION);
|
|
95
98
|
}
|
|
96
99
|
if (this.viewConfig.fullHeight === true) {
|
|
97
|
-
this.on(EmbedEvent.RouteChange, this.
|
|
100
|
+
this.on(EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
|
|
98
101
|
this.on(EmbedEvent.EmbedHeight, this.updateIFrameHeight);
|
|
99
102
|
this.on(EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
|
|
100
103
|
}
|
|
101
104
|
super.render();
|
|
102
|
-
const src = this.getIFrameSrc(
|
|
105
|
+
const src = this.getIFrameSrc(liveboardId, vizId, runtimeFilters);
|
|
103
106
|
this.renderV1Embed(src);
|
|
104
107
|
return this;
|
|
105
108
|
}
|
|
106
109
|
}
|
|
107
|
-
|
|
110
|
+
/**
|
|
111
|
+
* @hidden
|
|
112
|
+
*/
|
|
113
|
+
export class PinboardEmbed extends LiveboardEmbed {
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=liveboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liveboard.js","sourceRoot":"","sources":["../../../src/embed/liveboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACH,UAAU,EAEV,KAAK,GAIR,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAc,MAAM,YAAY,CAAC;AAkDjD;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,OAAO;IAKvC,kDAAkD;IAClD,YAAY,WAAwB,EAAE,UAA+B;QACjE,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAJ3B,kBAAa,GAAG,GAAG,CAAC;QA0E5B;;;;WAIG;QACK,uBAAkB,GAAG,CAAC,IAAoB,EAAE,EAAE;YAClD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC;QAEM,sBAAiB,GAAG,CAAC,IAAoB,EAAE,SAAc,EAAE,EAAE;YACjE,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACnC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QACjE,CAAC,CAAC;QAEM,wCAAmC,GAAG,CAAC,IAAoB,EAAE,EAAE;YACnE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;gBAClD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aAC5C;QACL,CAAC,CAAC;IAvFF,CAAC;IAED;;;OAGG;IACK,cAAc;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACzC,MAAM,EACF,wBAAwB,EACxB,UAAU,EACV,aAAa,GAChB,GAAG,IAAI,CAAC,UAAU,CAAC;QAEpB,MAAM,6BAA6B,GAC/B,IAAI,CAAC,UAAU,CAAC,6BAA6B;YAC7C,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC;QAEjD,IAAI,UAAU,KAAK,IAAI,EAAE;YACrB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;SACnC;QACD,IAAI,aAAa,EAAE;YACf,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SACtC;QACD,IAAI,wBAAwB,KAAK,SAAS,EAAE;YACxC,MAAM,CACF,KAAK,CAAC,wBAAwB,CACjC,GAAG,wBAAwB,CAAC,QAAQ,EAAE,CAAC;SAC3C;QACD,IAAI,6BAA6B,EAAE;YAC/B,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,GAAG,IAAI,CAAC;SACtD;QACD,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;QACrC,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAEtD,OAAO,WAAW,CAAC;IACvB,CAAC;IAED;;;;;;;OAOG;IACK,YAAY,CAChB,WAAmB,EACnB,KAAc,EACd,cAAgC;QAEhC,MAAM,WAAW,GAAG,cAAc,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,WAAW,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC;aACzC,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAChC,WAAW,EACX,IAAI,EACJ,KAAK,EACL,KAAK,CACR,QAAQ,WAAW,EAAE,CAAC;QACvB,IAAI,KAAK,EAAE;YACP,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;SAC3B;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAsBD;;;;OAIG;IACI,MAAM;;QACT,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAClD,MAAM,WAAW,GACb,MAAA,IAAI,CAAC,UAAU,CAAC,WAAW,mCAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAE9D,IAAI,CAAC,WAAW,EAAE;YACd,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;SAC/D;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,KAAK,IAAI,EAAE;YACrC,IAAI,CAAC,EAAE,CACH,UAAU,CAAC,WAAW,EACtB,IAAI,CAAC,mCAAmC,CAC3C,CAAC;YACF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACjE;QAED,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QAClE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAExB,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,cAAc;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { LiveboardEmbed } from './liveboard';
|
|
2
|
+
import { init } from '../index';
|
|
3
|
+
import { Action, AuthType, EmbedEvent, RuntimeFilterOp } from '../types';
|
|
4
|
+
import { executeAfterWait, getDocumentBody, getIFrameSrc, getRootEl, } from '../test/test-utils';
|
|
5
|
+
import { version } from '../../package.json';
|
|
6
|
+
const defaultViewConfig = {
|
|
7
|
+
frameParams: {
|
|
8
|
+
width: 1280,
|
|
9
|
+
height: 720,
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
const liveboardId = 'eca215d4-0d2c-4a55-90e3-d81ef6848ae0';
|
|
13
|
+
const vizId = '6e73f724-660e-11eb-ae93-0242ac130002';
|
|
14
|
+
const thoughtSpotHost = 'tshost';
|
|
15
|
+
const defaultParams = `&hostAppUrl=local-host&viewPortHeight=768&viewPortWidth=1024&sdkVersion=${version}`;
|
|
16
|
+
const prefixParams = '&isLiveboardEmbed=true';
|
|
17
|
+
beforeAll(() => {
|
|
18
|
+
init({
|
|
19
|
+
thoughtSpotHost,
|
|
20
|
+
authType: AuthType.None,
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
describe('Liveboard/viz embed tests', () => {
|
|
24
|
+
beforeEach(() => {
|
|
25
|
+
document.body.innerHTML = getDocumentBody();
|
|
26
|
+
});
|
|
27
|
+
test('should render liveboard', async () => {
|
|
28
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
29
|
+
...defaultViewConfig,
|
|
30
|
+
liveboardId,
|
|
31
|
+
});
|
|
32
|
+
liveboardEmbed.render();
|
|
33
|
+
await executeAfterWait(() => {
|
|
34
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true${defaultParams}${prefixParams}#/embed/viz/${liveboardId}`);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
test('should set disabled actions', async () => {
|
|
38
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
39
|
+
disabledActions: [
|
|
40
|
+
Action.DownloadAsCsv,
|
|
41
|
+
Action.DownloadAsPdf,
|
|
42
|
+
Action.DownloadAsXlsx,
|
|
43
|
+
],
|
|
44
|
+
disabledActionReason: 'Action denied',
|
|
45
|
+
...defaultViewConfig,
|
|
46
|
+
liveboardId,
|
|
47
|
+
});
|
|
48
|
+
liveboardEmbed.render();
|
|
49
|
+
await executeAfterWait(() => {
|
|
50
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true${defaultParams}&disableAction=[%22${Action.DownloadAsCsv}%22,%22${Action.DownloadAsPdf}%22,%22${Action.DownloadAsXlsx}%22]&disableHint=Action%20denied${prefixParams}#/embed/viz/${liveboardId}`);
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
test('should set hidden actions', async () => {
|
|
54
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
55
|
+
hiddenActions: [
|
|
56
|
+
Action.DownloadAsCsv,
|
|
57
|
+
Action.DownloadAsPdf,
|
|
58
|
+
Action.DownloadAsXlsx,
|
|
59
|
+
],
|
|
60
|
+
...defaultViewConfig,
|
|
61
|
+
liveboardId,
|
|
62
|
+
});
|
|
63
|
+
liveboardEmbed.render();
|
|
64
|
+
await executeAfterWait(() => {
|
|
65
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true${defaultParams}&hideAction=[%22${Action.DownloadAsCsv}%22,%22${Action.DownloadAsPdf}%22,%22${Action.DownloadAsXlsx}%22]${prefixParams}#/embed/viz/${liveboardId}`);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
test('should set visible actions', async () => {
|
|
69
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
70
|
+
visibleActions: [
|
|
71
|
+
Action.DownloadAsCsv,
|
|
72
|
+
Action.DownloadAsPdf,
|
|
73
|
+
Action.DownloadAsXlsx,
|
|
74
|
+
],
|
|
75
|
+
...defaultViewConfig,
|
|
76
|
+
liveboardId,
|
|
77
|
+
});
|
|
78
|
+
liveboardEmbed.render();
|
|
79
|
+
await executeAfterWait(() => {
|
|
80
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true${defaultParams}&visibleAction=[%22${Action.DownloadAsCsv}%22,%22${Action.DownloadAsPdf}%22,%22${Action.DownloadAsXlsx}%22]${prefixParams}#/embed/viz/${liveboardId}`);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
test('should set visible actions as empty array', async () => {
|
|
84
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
85
|
+
visibleActions: [],
|
|
86
|
+
...defaultViewConfig,
|
|
87
|
+
liveboardId,
|
|
88
|
+
});
|
|
89
|
+
liveboardEmbed.render();
|
|
90
|
+
await executeAfterWait(() => {
|
|
91
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true${defaultParams}&visibleAction=[]${prefixParams}#/embed/viz/${liveboardId}`);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
test('should enable viz transformations true', async () => {
|
|
95
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
96
|
+
enableVizTransformations: true,
|
|
97
|
+
...defaultViewConfig,
|
|
98
|
+
liveboardId,
|
|
99
|
+
});
|
|
100
|
+
liveboardEmbed.render();
|
|
101
|
+
await executeAfterWait(() => {
|
|
102
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true${defaultParams}&enableVizTransform=true${prefixParams}#/embed/viz/${liveboardId}`);
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
test('should disable viz transformations when enableVizTransformations false', async () => {
|
|
106
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
107
|
+
enableVizTransformations: false,
|
|
108
|
+
...defaultViewConfig,
|
|
109
|
+
liveboardId,
|
|
110
|
+
});
|
|
111
|
+
liveboardEmbed.render();
|
|
112
|
+
await executeAfterWait(() => {
|
|
113
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true${defaultParams}&enableVizTransform=false${prefixParams}#/embed/viz/${liveboardId}`);
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
test('should render viz', async () => {
|
|
117
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
118
|
+
...defaultViewConfig,
|
|
119
|
+
liveboardId,
|
|
120
|
+
vizId,
|
|
121
|
+
});
|
|
122
|
+
liveboardEmbed.render();
|
|
123
|
+
await executeAfterWait(() => {
|
|
124
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true${defaultParams}${prefixParams}#/embed/viz/${liveboardId}/${vizId}`);
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
test('should apply runtime filters', async () => {
|
|
128
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
129
|
+
...defaultViewConfig,
|
|
130
|
+
liveboardId,
|
|
131
|
+
vizId,
|
|
132
|
+
runtimeFilters: [
|
|
133
|
+
{
|
|
134
|
+
columnName: 'sales',
|
|
135
|
+
operator: RuntimeFilterOp.EQ,
|
|
136
|
+
values: [1000],
|
|
137
|
+
},
|
|
138
|
+
],
|
|
139
|
+
});
|
|
140
|
+
liveboardEmbed.render();
|
|
141
|
+
await executeAfterWait(() => {
|
|
142
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true&col1=sales&op1=EQ&val1=1000${defaultParams}${prefixParams}#/embed/viz/${liveboardId}/${vizId}`);
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
test('should register event handler to adjust iframe height', async () => {
|
|
146
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
147
|
+
...defaultViewConfig,
|
|
148
|
+
fullHeight: true,
|
|
149
|
+
liveboardId,
|
|
150
|
+
vizId,
|
|
151
|
+
});
|
|
152
|
+
const onSpy = jest.spyOn(liveboardEmbed, 'on');
|
|
153
|
+
liveboardEmbed.render();
|
|
154
|
+
executeAfterWait(() => {
|
|
155
|
+
expect(onSpy).toHaveBeenCalledWith(EmbedEvent.EmbedHeight, expect.anything());
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
//# sourceMappingURL=liveboard.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liveboard.spec.js","sourceRoot":"","sources":["../../../src/embed/liveboard.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PinboardEmbed } from './
|
|
1
|
+
import { PinboardEmbed } from './liveboard';
|
|
2
2
|
import { init } from '../index';
|
|
3
3
|
import { Action, AuthType, EmbedEvent, RuntimeFilterOp } from '../types';
|
|
4
4
|
import { executeAfterWait, getDocumentBody, getIFrameSrc, getRootEl, } from '../test/test-utils';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pinboard.spec.js","sourceRoot":"","sources":["../../../src/embed/pinboard.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"pinboard.spec.js","sourceRoot":"","sources":["../../../src/embed/pinboard.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,7 +64,7 @@ export interface ViewConfig {
|
|
|
64
64
|
visibleActions?: Action[];
|
|
65
65
|
/**
|
|
66
66
|
* The list of runtime filters to apply to a search answer,
|
|
67
|
-
* visualization, or
|
|
67
|
+
* visualization, or Liveboard.
|
|
68
68
|
*/
|
|
69
69
|
runtimeFilters?: RuntimeFilter[];
|
|
70
70
|
}
|
|
@@ -162,7 +162,7 @@ export declare class TsEmbed {
|
|
|
162
162
|
protected getBaseQueryParams(): {};
|
|
163
163
|
/**
|
|
164
164
|
* Constructs the base URL string to load v1 of the ThoughtSpot app.
|
|
165
|
-
* This is used for embedding
|
|
165
|
+
* This is used for embedding Liveboards, visualizations, and full application.
|
|
166
166
|
* @param queryString The query string to append to the URL.
|
|
167
167
|
* @param isAppEmbed A Boolean parameter to specify if you are embedding
|
|
168
168
|
* the full application.
|
|
@@ -221,15 +221,6 @@ export declare class TsEmbed {
|
|
|
221
221
|
* @param callback A callback function
|
|
222
222
|
*/
|
|
223
223
|
on(messageType: EmbedEvent, callback: MessageCallback): typeof TsEmbed.prototype;
|
|
224
|
-
/**
|
|
225
|
-
* Navigates users to the specified application page.
|
|
226
|
-
* Use this method to navigate users from the embedded
|
|
227
|
-
* ThoughtSpot context to a specific page in your app.
|
|
228
|
-
* @param path The page path string.
|
|
229
|
-
* For example, to navigate users to a pinboard page,
|
|
230
|
-
* define the method as navigateToPage('pinboard/<pinboardId>').
|
|
231
|
-
*/
|
|
232
|
-
navigateToPage(path: string): void;
|
|
233
224
|
/**
|
|
234
225
|
* Triggers an event on specific Port registered against
|
|
235
226
|
* for the EmbedEvent
|
|
@@ -170,7 +170,7 @@ export class TsEmbed {
|
|
|
170
170
|
queryParams[Param.CustomCSSUrl] = this.embedConfig.customCssUrl;
|
|
171
171
|
}
|
|
172
172
|
const { disabledActions, disabledActionReason, hiddenActions, visibleActions, } = this.viewConfig;
|
|
173
|
-
if ((visibleActions
|
|
173
|
+
if (Array.isArray(visibleActions) && Array.isArray(hiddenActions)) {
|
|
174
174
|
this.handleError('You cannot have both hidden actions and visible actions');
|
|
175
175
|
return queryParams;
|
|
176
176
|
}
|
|
@@ -190,7 +190,7 @@ export class TsEmbed {
|
|
|
190
190
|
}
|
|
191
191
|
/**
|
|
192
192
|
* Constructs the base URL string to load v1 of the ThoughtSpot app.
|
|
193
|
-
* This is used for embedding
|
|
193
|
+
* This is used for embedding Liveboards, visualizations, and full application.
|
|
194
194
|
* @param queryString The query string to append to the URL.
|
|
195
195
|
* @param isAppEmbed A Boolean parameter to specify if you are embedding
|
|
196
196
|
* the full application.
|
|
@@ -370,26 +370,6 @@ export class TsEmbed {
|
|
|
370
370
|
this.eventHandlerMap.set(messageType, callbacks);
|
|
371
371
|
return this;
|
|
372
372
|
}
|
|
373
|
-
/**
|
|
374
|
-
* Navigates users to the specified application page.
|
|
375
|
-
* Use this method to navigate users from the embedded
|
|
376
|
-
* ThoughtSpot context to a specific page in your app.
|
|
377
|
-
* @param path The page path string.
|
|
378
|
-
* For example, to navigate users to a pinboard page,
|
|
379
|
-
* define the method as navigateToPage('pinboard/<pinboardId>').
|
|
380
|
-
*/
|
|
381
|
-
navigateToPage(path) {
|
|
382
|
-
var _a;
|
|
383
|
-
const iframeSrc = (_a = this.iFrame) === null || _a === void 0 ? void 0 : _a.src;
|
|
384
|
-
if (iframeSrc) {
|
|
385
|
-
const embedPath = '#/embed';
|
|
386
|
-
const currentPath = iframeSrc.includes(embedPath) ? embedPath : '#';
|
|
387
|
-
this.iFrame.src = `${iframeSrc.split(currentPath)[0]}${currentPath}/${path.replace(/^\/?#?\//, '')}`;
|
|
388
|
-
}
|
|
389
|
-
else {
|
|
390
|
-
console.log('Please call render before invoking this method');
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
373
|
/**
|
|
394
374
|
* Triggers an event on specific Port registered against
|
|
395
375
|
* for the EmbedEvent
|