@thoughtspot/visual-embed-sdk 1.20.0-prerender.2 → 1.20.1
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 +1 -1
- package/dist/src/auth.d.ts +2 -38
- package/dist/src/auth.d.ts.map +1 -1
- package/dist/src/config.d.ts +0 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/embed/app.d.ts +5 -17
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/base.d.ts +9 -20
- package/dist/src/embed/base.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +5 -17
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/search-bar.d.ts +0 -3
- package/dist/src/embed/search-bar.d.ts.map +1 -1
- package/dist/src/embed/search.d.ts +5 -9
- package/dist/src/embed/search.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +6 -43
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/mixpanel-service.d.ts +0 -8
- package/dist/src/mixpanel-service.d.ts.map +1 -1
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/react/util.d.ts +0 -4
- package/dist/src/react/util.d.ts.map +1 -1
- package/dist/src/test/test-utils.d.ts +2 -11
- package/dist/src/test/test-utils.d.ts.map +1 -1
- package/dist/src/types.d.ts +76 -273
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/answerService.d.ts +0 -7
- package/dist/src/utils/answerService.d.ts.map +1 -1
- package/dist/src/utils/authService.d.ts +0 -30
- package/dist/src/utils/authService.d.ts.map +1 -1
- package/dist/src/utils/processData.d.ts +0 -12
- package/dist/src/utils/processData.d.ts.map +1 -1
- package/dist/src/utils/processTrigger.d.ts +0 -7
- package/dist/src/utils/processTrigger.d.ts.map +1 -1
- package/dist/src/utils.d.ts +0 -12
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/tsembed.es.js +262 -637
- package/dist/tsembed.js +261 -629
- package/lib/package.json +8 -3
- package/lib/src/auth.d.ts +2 -38
- package/lib/src/auth.d.ts.map +1 -1
- package/lib/src/auth.js +25 -70
- package/lib/src/auth.js.map +1 -1
- package/lib/src/auth.spec.js +5 -14
- package/lib/src/auth.spec.js.map +1 -1
- package/lib/src/config.d.ts +0 -1
- package/lib/src/config.d.ts.map +1 -1
- package/lib/src/config.js +3 -5
- package/lib/src/config.js.map +1 -1
- package/lib/src/config.spec.js.map +1 -1
- package/lib/src/embed/app.d.ts +5 -17
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +15 -25
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +12 -12
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/base.d.ts +9 -20
- package/lib/src/embed/base.d.ts.map +1 -1
- package/lib/src/embed/base.js +15 -31
- package/lib/src/embed/base.js.map +1 -1
- package/lib/src/embed/base.spec.js.map +1 -1
- package/lib/src/embed/embed.spec.js +1 -1
- package/lib/src/embed/embed.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +5 -17
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +37 -49
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +30 -37
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/pinboard.spec.js +26 -14
- package/lib/src/embed/pinboard.spec.js.map +1 -1
- package/lib/src/embed/search-bar.d.ts +0 -3
- package/lib/src/embed/search-bar.d.ts.map +1 -1
- package/lib/src/embed/search-bar.js +6 -5
- package/lib/src/embed/search-bar.js.map +1 -1
- package/lib/src/embed/search.d.ts +5 -9
- package/lib/src/embed/search.d.ts.map +1 -1
- package/lib/src/embed/search.js +14 -18
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/search.spec.js +19 -16
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/searchEmbed-basic-auth.spec.js +0 -4
- package/lib/src/embed/searchEmbed-basic-auth.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +6 -43
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +72 -117
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +24 -23
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/errors.d.ts.map +1 -1
- package/lib/src/errors.js.map +1 -1
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +2 -2
- package/lib/src/index.js.map +1 -1
- package/lib/src/mixpanel-service.d.ts +0 -8
- package/lib/src/mixpanel-service.d.ts.map +1 -1
- package/lib/src/mixpanel-service.js +1 -13
- package/lib/src/mixpanel-service.js.map +1 -1
- package/lib/src/mixpanel-service.spec.js.map +1 -1
- package/lib/src/react/index.d.ts.map +1 -1
- package/lib/src/react/index.js +6 -6
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/react/index.spec.js +6 -15
- package/lib/src/react/index.spec.js.map +1 -1
- package/lib/src/react/util.d.ts +0 -4
- package/lib/src/react/util.d.ts.map +1 -1
- package/lib/src/react/util.js +0 -4
- package/lib/src/react/util.js.map +1 -1
- package/lib/src/test/test-utils.d.ts +2 -11
- package/lib/src/test/test-utils.d.ts.map +1 -1
- package/lib/src/test/test-utils.js +25 -36
- package/lib/src/test/test-utils.js.map +1 -1
- package/lib/src/types.d.ts +76 -273
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +54 -200
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/answerService.d.ts +0 -7
- package/lib/src/utils/answerService.d.ts.map +1 -1
- package/lib/src/utils/answerService.js +0 -7
- package/lib/src/utils/answerService.js.map +1 -1
- package/lib/src/utils/answerService.spec.js.map +1 -1
- package/lib/src/utils/authService.d.ts +0 -30
- package/lib/src/utils/authService.d.ts.map +1 -1
- package/lib/src/utils/authService.js +2 -39
- package/lib/src/utils/authService.js.map +1 -1
- package/lib/src/utils/authService.spec.js.map +1 -1
- package/lib/src/utils/processData.d.ts +0 -12
- package/lib/src/utils/processData.d.ts.map +1 -1
- package/lib/src/utils/processData.js +5 -33
- package/lib/src/utils/processData.js.map +1 -1
- package/lib/src/utils/processData.spec.js.map +1 -1
- package/lib/src/utils/processTrigger.d.ts +0 -7
- package/lib/src/utils/processTrigger.d.ts.map +1 -1
- package/lib/src/utils/processTrigger.js +3 -17
- package/lib/src/utils/processTrigger.js.map +1 -1
- package/lib/src/utils/processTrigger.spec.js.map +1 -1
- package/lib/src/utils.d.ts +0 -12
- package/lib/src/utils.d.ts.map +1 -1
- package/lib/src/utils.js +19 -24
- package/lib/src/utils.js.map +1 -1
- package/lib/src/utils.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +102 -406
- package/package.json +8 -3
- package/src/auth.spec.ts +150 -68
- package/src/auth.ts +108 -102
- package/src/config.spec.ts +4 -2
- package/src/config.ts +3 -5
- package/src/embed/app.spec.ts +14 -25
- package/src/embed/app.ts +35 -47
- package/src/embed/base.spec.ts +9 -3
- package/src/embed/base.ts +53 -51
- package/src/embed/embed.spec.ts +6 -5
- package/src/embed/liveboard.spec.ts +37 -56
- package/src/embed/liveboard.ts +64 -66
- package/src/embed/pinboard.spec.ts +29 -26
- package/src/embed/search-bar.tsx +8 -10
- package/src/embed/search.spec.ts +21 -31
- package/src/embed/search.ts +25 -26
- package/src/embed/searchEmbed-basic-auth.spec.ts +28 -22
- package/src/embed/ts-embed.spec.ts +148 -70
- package/src/embed/ts-embed.ts +157 -147
- package/src/errors.ts +6 -3
- package/src/index.ts +10 -4
- package/src/mixpanel-service.spec.ts +3 -1
- package/src/mixpanel-service.ts +1 -13
- package/src/react/index.spec.tsx +13 -37
- package/src/react/index.tsx +57 -38
- package/src/react/util.ts +4 -8
- package/src/test/test-utils.ts +39 -43
- package/src/types.ts +78 -270
- package/src/utils/answerService.spec.ts +5 -3
- package/src/utils/answerService.ts +17 -21
- package/src/utils/authService.spec.ts +41 -26
- package/src/utils/authService.ts +21 -47
- package/src/utils/processData.spec.ts +59 -26
- package/src/utils/processData.ts +14 -36
- package/src/utils/processTrigger.spec.ts +6 -1
- package/src/utils/processTrigger.ts +9 -18
- package/src/utils.spec.ts +12 -8
- package/src/utils.ts +26 -25
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { init, AuthType, SearchEmbed, EmbedEvent
|
|
1
|
+
import { init, AuthType, SearchEmbed, EmbedEvent } from '../index';
|
|
2
2
|
import { EVENT_WAIT_TIME, executeAfterWait, getDocumentBody, getIFrameEl, getRootEl, } from '../test/test-utils';
|
|
3
3
|
const thoughtSpotHost = 'tshost';
|
|
4
4
|
const defaultViewConfig = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed.spec.js","sourceRoot":"","sources":["../../../src/embed/embed.spec.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"embed.spec.js","sourceRoot":"","sources":["../../../src/embed/embed.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,14 +12,12 @@ import { DOMSelector, HostEvent, ViewConfig } from '../types';
|
|
|
12
12
|
import { V1Embed } from './ts-embed';
|
|
13
13
|
/**
|
|
14
14
|
* The configuration for the embedded Liveboard or visualization page view.
|
|
15
|
-
*
|
|
16
15
|
* @group Embed components
|
|
17
16
|
*/
|
|
18
17
|
export interface LiveboardViewConfig extends ViewConfig {
|
|
19
18
|
/**
|
|
20
19
|
* If set to true, the embedded object container dynamically resizes
|
|
21
20
|
* according to the height of the Liveboard.
|
|
22
|
-
*
|
|
23
21
|
* @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1
|
|
24
22
|
*/
|
|
25
23
|
fullHeight?: boolean;
|
|
@@ -27,7 +25,6 @@ export interface LiveboardViewConfig extends ViewConfig {
|
|
|
27
25
|
* This is the minimum height(in pixels) for a full height Liveboard.
|
|
28
26
|
* Setting this height helps resolves issues with empty Liveboards and
|
|
29
27
|
* other screens navigable from a Liveboard.
|
|
30
|
-
*
|
|
31
28
|
* @version SDK: 1.5.0 | ThoughtSpot: ts7.oct.cl, 7.2.1
|
|
32
29
|
* @default 500
|
|
33
30
|
*/
|
|
@@ -39,13 +36,11 @@ export interface LiveboardViewConfig extends ViewConfig {
|
|
|
39
36
|
/**
|
|
40
37
|
* The Liveboard to display in the embedded view.
|
|
41
38
|
* Use either of liveboardId or pinboardId to reference the Liveboard to embed.
|
|
42
|
-
*
|
|
43
39
|
* @version SDK: 1.3.0 | ThoughtSpot ts7.aug.cl, 7.2.1
|
|
44
40
|
*/
|
|
45
41
|
liveboardId?: string;
|
|
46
42
|
/**
|
|
47
43
|
* To support backward compatibility
|
|
48
|
-
*
|
|
49
44
|
* @hidden
|
|
50
45
|
*/
|
|
51
46
|
pinboardId?: string;
|
|
@@ -56,7 +51,6 @@ export interface LiveboardViewConfig extends ViewConfig {
|
|
|
56
51
|
/**
|
|
57
52
|
* If set to true, all filter chips from a
|
|
58
53
|
* Liveboard page will be read-only (no X buttons)
|
|
59
|
-
*
|
|
60
54
|
* @version SDK: 1.3.0 | ThoughtSpot ts7.aug.cl, 7.2.1
|
|
61
55
|
*/
|
|
62
56
|
preventLiveboardFilterRemoval?: boolean;
|
|
@@ -64,32 +58,27 @@ export interface LiveboardViewConfig extends ViewConfig {
|
|
|
64
58
|
* Array of viz ids which should be visible when the liveboard
|
|
65
59
|
* first renders. This can be changed by triggering the "SetVisibleVizs"
|
|
66
60
|
* event.
|
|
67
|
-
*
|
|
68
61
|
* @version SDK: 1.9.1 | ThoughtSpot: 8.1.0.cl, 8.4.1-sw
|
|
69
62
|
*/
|
|
70
63
|
visibleVizs?: string[];
|
|
71
64
|
/**
|
|
72
65
|
* To support backward compatibilty
|
|
73
|
-
*
|
|
74
66
|
* @hidden
|
|
75
67
|
*/
|
|
76
68
|
preventPinboardFilterRemoval?: boolean;
|
|
77
69
|
/**
|
|
78
70
|
* Render embedded Liveboards and visualizations in the new Liveboard experience mode
|
|
79
|
-
*
|
|
80
71
|
* @version SDK: 1.14.0 | ThoughtSpot: 8.6.0.cl, 8.8.1-sw
|
|
81
72
|
*/
|
|
82
73
|
liveboardV2?: boolean;
|
|
83
74
|
/**
|
|
84
75
|
* Tab Id of the Liveboard that is supposed to be active
|
|
85
|
-
*
|
|
86
76
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1-sw
|
|
87
77
|
*/
|
|
88
78
|
activeTabId?: string;
|
|
89
79
|
}
|
|
90
80
|
/**
|
|
91
81
|
* Embed a ThoughtSpot Liveboard or visualization
|
|
92
|
-
*
|
|
93
82
|
* @group Embed components
|
|
94
83
|
*/
|
|
95
84
|
export declare class LiveboardEmbed extends V1Embed {
|
|
@@ -100,17 +89,19 @@ export declare class LiveboardEmbed extends V1Embed {
|
|
|
100
89
|
* Construct a map of params to be passed on to the
|
|
101
90
|
* embedded Liveboard or visualization.
|
|
102
91
|
*/
|
|
103
|
-
|
|
104
|
-
private getIframeSuffixSrc;
|
|
92
|
+
private getEmbedParams;
|
|
105
93
|
/**
|
|
106
94
|
* Construct the URL of the embedded ThoughtSpot Liveboard or visualization
|
|
107
95
|
* to be loaded within the iframe.
|
|
96
|
+
* @param liveboardId The GUID of the Liveboard.
|
|
97
|
+
* @param vizId The optional GUID of a visualization within the Liveboard.
|
|
98
|
+
* @param runtimeFilters A list of runtime filters to be applied to
|
|
99
|
+
* the Liveboard or visualization on load.
|
|
108
100
|
*/
|
|
109
101
|
private getIFrameSrc;
|
|
110
102
|
/**
|
|
111
103
|
* Set the iframe height as per the computed height received
|
|
112
104
|
* from the ThoughtSpot app.
|
|
113
|
-
*
|
|
114
105
|
* @param data The event payload
|
|
115
106
|
*/
|
|
116
107
|
private updateIFrameHeight;
|
|
@@ -118,19 +109,16 @@ export declare class LiveboardEmbed extends V1Embed {
|
|
|
118
109
|
private setIframeHeightForNonEmbedLiveboard;
|
|
119
110
|
/**
|
|
120
111
|
* Triggers an event to the embedded app
|
|
121
|
-
*
|
|
122
112
|
* @param messageType The event type
|
|
123
113
|
* @param data The payload to send with the message
|
|
124
114
|
*/
|
|
125
115
|
trigger(messageType: HostEvent, data?: any): Promise<any>;
|
|
126
116
|
/**
|
|
127
117
|
* Render an embedded ThoughtSpot Liveboard or visualization
|
|
128
|
-
*
|
|
129
118
|
* @param renderOptions An object specifying the Liveboard ID,
|
|
130
119
|
* visualization ID and the runtime filters.
|
|
131
120
|
*/
|
|
132
121
|
render(): LiveboardEmbed;
|
|
133
|
-
navigateToLiveboard(liveboardId: string, vizId?: string, activeTabId?: string): void;
|
|
134
122
|
}
|
|
135
123
|
/**
|
|
136
124
|
* @hidden
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liveboard.d.ts","sourceRoot":"","sources":["../../../src/embed/liveboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAKH,WAAW,EACX,SAAS,EACT,UAAU,EACb,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"liveboard.d.ts","sourceRoot":"","sources":["../../../src/embed/liveboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAKH,WAAW,EACX,SAAS,EACT,UAAU,EACb,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACnD;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;OAGG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,cAAe,SAAQ,OAAO;IACvC,SAAS,CAAC,UAAU,EAAE,mBAAmB,CAAC;IAE1C,OAAO,CAAC,aAAa,CAAO;gBAGhB,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB;IAIrE;;;OAGG;IACH,OAAO,CAAC,cAAc;IA6CtB;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;IA8BpB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,iBAAiB,CAGvB;IAEF,OAAO,CAAC,mCAAmC,CAIzC;IAEF;;;;OAIG;IACI,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,GAAE,GAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAQpE;;;;OAIG;IACI,MAAM,IAAI,cAAc;CA8BlC;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,cAAc;CAAG"}
|
|
@@ -9,12 +9,11 @@
|
|
|
9
9
|
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
10
10
|
*/
|
|
11
11
|
import { ERROR_MESSAGE } from '../errors';
|
|
12
|
-
import { EmbedEvent, Param,
|
|
13
|
-
import { getQueryParamString } from '../utils';
|
|
12
|
+
import { EmbedEvent, Param, } from '../types';
|
|
13
|
+
import { getFilterQuery, getQueryParamString } from '../utils';
|
|
14
14
|
import { V1Embed } from './ts-embed';
|
|
15
15
|
/**
|
|
16
16
|
* Embed a ThoughtSpot Liveboard or visualization
|
|
17
|
-
*
|
|
18
17
|
* @group Embed components
|
|
19
18
|
*/
|
|
20
19
|
export class LiveboardEmbed extends V1Embed {
|
|
@@ -25,7 +24,6 @@ export class LiveboardEmbed extends V1Embed {
|
|
|
25
24
|
/**
|
|
26
25
|
* Set the iframe height as per the computed height received
|
|
27
26
|
* from the ThoughtSpot app.
|
|
28
|
-
*
|
|
29
27
|
* @param data The event payload
|
|
30
28
|
*/
|
|
31
29
|
this.updateIFrameHeight = (data) => {
|
|
@@ -40,23 +38,16 @@ export class LiveboardEmbed extends V1Embed {
|
|
|
40
38
|
this.setIFrameHeight(this.defaultHeight);
|
|
41
39
|
}
|
|
42
40
|
};
|
|
43
|
-
if (this.viewConfig.fullHeight === true) {
|
|
44
|
-
this.on(EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
|
|
45
|
-
this.on(EmbedEvent.EmbedHeight, this.updateIFrameHeight);
|
|
46
|
-
this.on(EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
|
|
47
|
-
}
|
|
48
41
|
}
|
|
49
42
|
/**
|
|
50
43
|
* Construct a map of params to be passed on to the
|
|
51
44
|
* embedded Liveboard or visualization.
|
|
52
45
|
*/
|
|
53
46
|
getEmbedParams() {
|
|
54
|
-
|
|
55
|
-
params[Param.EmbedApp] = true;
|
|
56
|
-
params = this.getBaseQueryParams(params);
|
|
47
|
+
const params = this.getBaseQueryParams();
|
|
57
48
|
const { enableVizTransformations, fullHeight, defaultHeight, visibleVizs, liveboardV2, vizId, activeTabId, } = this.viewConfig;
|
|
58
|
-
const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
|
|
59
|
-
|
|
49
|
+
const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval ||
|
|
50
|
+
this.viewConfig.preventPinboardFilterRemoval;
|
|
60
51
|
if (fullHeight === true) {
|
|
61
52
|
params[Param.fullHeight] = true;
|
|
62
53
|
}
|
|
@@ -82,68 +73,65 @@ export class LiveboardEmbed extends V1Embed {
|
|
|
82
73
|
const queryParams = getQueryParamString(params, true);
|
|
83
74
|
return queryParams;
|
|
84
75
|
}
|
|
85
|
-
getIframeSuffixSrc(liveboardId, vizId, activeTabId) {
|
|
86
|
-
let suffix = `/embed/viz/${liveboardId}`;
|
|
87
|
-
if (activeTabId) {
|
|
88
|
-
suffix = `${suffix}/tab/${activeTabId} `;
|
|
89
|
-
}
|
|
90
|
-
if (vizId) {
|
|
91
|
-
suffix = `${suffix}/${vizId}`;
|
|
92
|
-
}
|
|
93
|
-
const tsPostHashParams = this.getThoughtSpotPostUrlParams();
|
|
94
|
-
suffix = `${suffix}${tsPostHashParams}`;
|
|
95
|
-
return suffix;
|
|
96
|
-
}
|
|
97
76
|
/**
|
|
98
77
|
* Construct the URL of the embedded ThoughtSpot Liveboard or visualization
|
|
99
78
|
* to be loaded within the iframe.
|
|
79
|
+
* @param liveboardId The GUID of the Liveboard.
|
|
80
|
+
* @param vizId The optional GUID of a visualization within the Liveboard.
|
|
81
|
+
* @param runtimeFilters A list of runtime filters to be applied to
|
|
82
|
+
* the Liveboard or visualization on load.
|
|
100
83
|
*/
|
|
101
|
-
getIFrameSrc() {
|
|
102
|
-
|
|
103
|
-
const
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
84
|
+
getIFrameSrc(liveboardId, vizId, runtimeFilters, activeTabId) {
|
|
85
|
+
const filterQuery = getFilterQuery(runtimeFilters || []);
|
|
86
|
+
const queryParams = this.getEmbedParams();
|
|
87
|
+
const queryString = [filterQuery, queryParams]
|
|
88
|
+
.filter(Boolean)
|
|
89
|
+
.join('&');
|
|
90
|
+
let url = `${this.getV1EmbedBasePath(queryString, true, false, false)}/viz/${liveboardId}`;
|
|
91
|
+
if (activeTabId) {
|
|
92
|
+
url = `${url}/tab/${activeTabId}`;
|
|
107
93
|
}
|
|
108
|
-
|
|
94
|
+
if (vizId) {
|
|
95
|
+
url = `${url}/${vizId}`;
|
|
96
|
+
}
|
|
97
|
+
const tsPostHashParams = this.getThoughtSpotPostUrlParams();
|
|
98
|
+
url = `${url}${tsPostHashParams}`;
|
|
99
|
+
return url;
|
|
109
100
|
}
|
|
110
101
|
/**
|
|
111
102
|
* Triggers an event to the embedded app
|
|
112
|
-
*
|
|
113
103
|
* @param messageType The event type
|
|
114
104
|
* @param data The payload to send with the message
|
|
115
105
|
*/
|
|
116
106
|
trigger(messageType, data = {}) {
|
|
117
107
|
const dataWithVizId = data;
|
|
118
|
-
if (
|
|
108
|
+
if (this.viewConfig.vizId) {
|
|
119
109
|
dataWithVizId.vizId = this.viewConfig.vizId;
|
|
120
110
|
}
|
|
121
111
|
return super.trigger(messageType, dataWithVizId);
|
|
122
112
|
}
|
|
123
113
|
/**
|
|
124
114
|
* Render an embedded ThoughtSpot Liveboard or visualization
|
|
125
|
-
*
|
|
126
115
|
* @param renderOptions An object specifying the Liveboard ID,
|
|
127
116
|
* visualization ID and the runtime filters.
|
|
128
117
|
*/
|
|
129
118
|
render() {
|
|
119
|
+
var _a;
|
|
120
|
+
const { vizId, activeTabId, runtimeFilters } = this.viewConfig;
|
|
121
|
+
const liveboardId = (_a = this.viewConfig.liveboardId) !== null && _a !== void 0 ? _a : this.viewConfig.pinboardId;
|
|
122
|
+
if (!liveboardId) {
|
|
123
|
+
this.handleError(ERROR_MESSAGE.LIVEBOARD_VIZ_ID_VALIDATION);
|
|
124
|
+
}
|
|
125
|
+
if (this.viewConfig.fullHeight === true) {
|
|
126
|
+
this.on(EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
|
|
127
|
+
this.on(EmbedEvent.EmbedHeight, this.updateIFrameHeight);
|
|
128
|
+
this.on(EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
|
|
129
|
+
}
|
|
130
130
|
super.render();
|
|
131
|
-
const src = this.getIFrameSrc();
|
|
131
|
+
const src = this.getIFrameSrc(liveboardId, vizId, runtimeFilters, activeTabId);
|
|
132
132
|
this.renderV1Embed(src);
|
|
133
133
|
return this;
|
|
134
134
|
}
|
|
135
|
-
navigateToLiveboard(liveboardId, vizId, activeTabId) {
|
|
136
|
-
const path = this.getIframeSuffixSrc(liveboardId, vizId, activeTabId);
|
|
137
|
-
this.viewConfig.liveboardId = liveboardId;
|
|
138
|
-
this.viewConfig.activeTabId = activeTabId;
|
|
139
|
-
this.viewConfig.vizId = vizId;
|
|
140
|
-
if (this.isAppInitialized) {
|
|
141
|
-
this.trigger(HostEvent.Navigate, path.substring(1));
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
this.render();
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
135
|
}
|
|
148
136
|
/**
|
|
149
137
|
* @hidden
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"liveboard.js","sourceRoot":"","sources":["../../../src/embed/liveboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LiveboardEmbed } from './liveboard';
|
|
2
2
|
import { init } from '../index';
|
|
3
3
|
import { Action, AuthType, ContextMenuTriggerOptions, EmbedEvent, HostEvent, RuntimeFilterOp, } from '../types';
|
|
4
|
-
import { executeAfterWait, getDocumentBody, getIFrameSrc, getRootEl, defaultParams, defaultParamsWithoutHiddenActions,
|
|
4
|
+
import { executeAfterWait, getDocumentBody, getIFrameSrc, getRootEl, defaultParams, defaultParamsWithoutHiddenActions, } from '../test/test-utils';
|
|
5
5
|
import * as processTriggerInstance from '../utils/processTrigger';
|
|
6
6
|
const defaultViewConfig = {
|
|
7
7
|
frameParams: {
|
|
@@ -32,41 +32,53 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
32
32
|
});
|
|
33
33
|
liveboardEmbed.render();
|
|
34
34
|
await executeAfterWait(() => {
|
|
35
|
-
|
|
35
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true${defaultParams}${prefixParams}#/embed/viz/${liveboardId}`);
|
|
36
36
|
});
|
|
37
37
|
});
|
|
38
38
|
test('should set disabled actions', async () => {
|
|
39
39
|
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
40
|
-
disabledActions: [
|
|
40
|
+
disabledActions: [
|
|
41
|
+
Action.DownloadAsCsv,
|
|
42
|
+
Action.DownloadAsPdf,
|
|
43
|
+
Action.DownloadAsXlsx,
|
|
44
|
+
],
|
|
41
45
|
disabledActionReason: 'Action denied',
|
|
42
46
|
...defaultViewConfig,
|
|
43
47
|
liveboardId,
|
|
44
48
|
});
|
|
45
49
|
liveboardEmbed.render();
|
|
46
50
|
await executeAfterWait(() => {
|
|
47
|
-
|
|
51
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true&${defaultParamsWithoutHiddenActions}&disableAction=[%22${Action.DownloadAsCsv}%22,%22${Action.DownloadAsPdf}%22,%22${Action.DownloadAsXlsx}%22]&disableHint=Action%20denied&hideAction=[%22${Action.ReportError}%22]${prefixParams}#/embed/viz/${liveboardId}`);
|
|
48
52
|
});
|
|
49
53
|
});
|
|
50
54
|
test('should set hidden actions', async () => {
|
|
51
55
|
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
52
|
-
hiddenActions: [
|
|
56
|
+
hiddenActions: [
|
|
57
|
+
Action.DownloadAsCsv,
|
|
58
|
+
Action.DownloadAsPdf,
|
|
59
|
+
Action.DownloadAsXlsx,
|
|
60
|
+
],
|
|
53
61
|
...defaultViewConfig,
|
|
54
62
|
liveboardId,
|
|
55
63
|
});
|
|
56
64
|
liveboardEmbed.render();
|
|
57
65
|
await executeAfterWait(() => {
|
|
58
|
-
|
|
66
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true&${defaultParamsWithoutHiddenActions}&hideAction=[%22${Action.ReportError}%22,%22${Action.DownloadAsCsv}%22,%22${Action.DownloadAsPdf}%22,%22${Action.DownloadAsXlsx}%22]${prefixParams}#/embed/viz/${liveboardId}`);
|
|
59
67
|
});
|
|
60
68
|
});
|
|
61
69
|
test('should set visible actions', async () => {
|
|
62
70
|
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
63
|
-
visibleActions: [
|
|
71
|
+
visibleActions: [
|
|
72
|
+
Action.DownloadAsCsv,
|
|
73
|
+
Action.DownloadAsPdf,
|
|
74
|
+
Action.DownloadAsXlsx,
|
|
75
|
+
],
|
|
64
76
|
...defaultViewConfig,
|
|
65
77
|
liveboardId,
|
|
66
78
|
});
|
|
67
79
|
liveboardEmbed.render();
|
|
68
80
|
await executeAfterWait(() => {
|
|
69
|
-
|
|
81
|
+
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}`);
|
|
70
82
|
});
|
|
71
83
|
});
|
|
72
84
|
test('should set visible actions as empty array', async () => {
|
|
@@ -77,7 +89,7 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
77
89
|
});
|
|
78
90
|
liveboardEmbed.render();
|
|
79
91
|
await executeAfterWait(() => {
|
|
80
|
-
|
|
92
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true${defaultParams}&visibleAction=[]${prefixParams}#/embed/viz/${liveboardId}`);
|
|
81
93
|
});
|
|
82
94
|
});
|
|
83
95
|
test('should enable viz transformations true', async () => {
|
|
@@ -88,7 +100,7 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
88
100
|
});
|
|
89
101
|
liveboardEmbed.render();
|
|
90
102
|
await executeAfterWait(() => {
|
|
91
|
-
|
|
103
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true${defaultParams}&enableVizTransform=true${prefixParams}#/embed/viz/${liveboardId}`);
|
|
92
104
|
});
|
|
93
105
|
});
|
|
94
106
|
test('should disable viz transformations when enableVizTransformations false', async () => {
|
|
@@ -99,7 +111,7 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
99
111
|
});
|
|
100
112
|
liveboardEmbed.render();
|
|
101
113
|
await executeAfterWait(() => {
|
|
102
|
-
|
|
114
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true${defaultParams}&enableVizTransform=false${prefixParams}#/embed/viz/${liveboardId}`);
|
|
103
115
|
});
|
|
104
116
|
});
|
|
105
117
|
test('should render viz', async () => {
|
|
@@ -110,7 +122,7 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
110
122
|
});
|
|
111
123
|
liveboardEmbed.render();
|
|
112
124
|
await executeAfterWait(() => {
|
|
113
|
-
|
|
125
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true${defaultParams}${prefixParamsVizEmbed}#/embed/viz/${liveboardId}/${vizId}`);
|
|
114
126
|
});
|
|
115
127
|
});
|
|
116
128
|
test('should apply runtime filters', async () => {
|
|
@@ -128,17 +140,17 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
128
140
|
});
|
|
129
141
|
liveboardEmbed.render();
|
|
130
142
|
await executeAfterWait(() => {
|
|
131
|
-
|
|
143
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true&col1=sales&op1=EQ&val1=1000${defaultParams}${prefixParamsVizEmbed}#/embed/viz/${liveboardId}/${vizId}`);
|
|
132
144
|
});
|
|
133
145
|
});
|
|
134
146
|
test('should register event handler to adjust iframe height', async () => {
|
|
135
|
-
const onSpy = jest.spyOn(LiveboardEmbed.prototype, 'on');
|
|
136
147
|
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
137
148
|
...defaultViewConfig,
|
|
138
149
|
fullHeight: true,
|
|
139
150
|
liveboardId,
|
|
140
151
|
vizId,
|
|
141
152
|
});
|
|
153
|
+
const onSpy = jest.spyOn(liveboardEmbed, 'on');
|
|
142
154
|
liveboardEmbed.render();
|
|
143
155
|
executeAfterWait(() => {
|
|
144
156
|
expect(onSpy).toHaveBeenCalledWith(EmbedEvent.EmbedHeight, expect.anything());
|
|
@@ -152,7 +164,7 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
152
164
|
});
|
|
153
165
|
liveboardEmbed.render();
|
|
154
166
|
await executeAfterWait(() => {
|
|
155
|
-
|
|
167
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true${defaultParams}&pinboardVisibleVizs=[%22abcd%22,%22pqrs%22]${prefixParams}#/embed/viz/${liveboardId}`);
|
|
156
168
|
});
|
|
157
169
|
});
|
|
158
170
|
test('should process the trigger, for vizEmbed', async () => {
|
|
@@ -175,7 +187,7 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
175
187
|
});
|
|
176
188
|
liveboardEmbed.render();
|
|
177
189
|
await executeAfterWait(() => {
|
|
178
|
-
|
|
190
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true${defaultParams}&isLiveboardEmbed=true&isPinboardV2Enabled=true#/embed/viz/${liveboardId}/tab/${activeTabId}`);
|
|
179
191
|
});
|
|
180
192
|
});
|
|
181
193
|
test('Should set liveboard options', async () => {
|
|
@@ -188,7 +200,7 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
188
200
|
});
|
|
189
201
|
liveboardEmbed.render();
|
|
190
202
|
await executeAfterWait(() => {
|
|
191
|
-
|
|
203
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true${defaultParams}&preventPinboardFilterRemoval=true&isLiveboardEmbed=true&isPinboardV2Enabled=true#/embed/viz/${liveboardId}/tab/${activeTabId}`);
|
|
192
204
|
});
|
|
193
205
|
});
|
|
194
206
|
test('Should set contextMenuTrigger options', async () => {
|
|
@@ -200,26 +212,7 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
200
212
|
});
|
|
201
213
|
liveboardEmbed.render();
|
|
202
214
|
await executeAfterWait(() => {
|
|
203
|
-
|
|
204
|
-
});
|
|
205
|
-
});
|
|
206
|
-
test('navigateToLiveboard should trigger the navigate event with the correct path', (done) => {
|
|
207
|
-
mockMessageChannel();
|
|
208
|
-
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
209
|
-
...defaultViewConfig,
|
|
210
|
-
});
|
|
211
|
-
const onSpy = jest.spyOn(liveboardEmbed, 'trigger');
|
|
212
|
-
liveboardEmbed.prerenderGeneric();
|
|
213
|
-
executeAfterWait(() => {
|
|
214
|
-
const iframe = getIFrameEl();
|
|
215
|
-
postMessageToParent(iframe.contentWindow, {
|
|
216
|
-
type: EmbedEvent.APP_INIT,
|
|
217
|
-
});
|
|
218
|
-
});
|
|
219
|
-
executeAfterWait(() => {
|
|
220
|
-
liveboardEmbed.navigateToLiveboard('lb1', 'viz1');
|
|
221
|
-
expect(onSpy).toHaveBeenCalledWith(HostEvent.Navigate, '/embed/viz/lb1/viz1');
|
|
222
|
-
done();
|
|
215
|
+
expect(getIFrameSrc()).toBe(`http://${thoughtSpotHost}/?embedApp=true${defaultParams}&isContextMenuEnabledOnLeftClick=true&isLiveboardEmbed=true&isPinboardV2Enabled=true#/embed/viz/${liveboardId}/tab/${activeTabId}`);
|
|
223
216
|
});
|
|
224
217
|
});
|
|
225
218
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liveboard.spec.js","sourceRoot":"","sources":["../../../src/embed/liveboard.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAuB,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EACH,MAAM,EACN,QAAQ,EACR,yBAAyB,EACzB,UAAU,EACV,SAAS,EACT,eAAe,GAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EACH,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,SAAS,EACT,aAAa,EACb,iCAAiC,
|
|
1
|
+
{"version":3,"file":"liveboard.spec.js","sourceRoot":"","sources":["../../../src/embed/liveboard.spec.ts"],"names":[],"mappings":"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"}
|