@thoughtspot/visual-embed-sdk 1.28.0-preRender → 1.28.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 +1 -1
- package/cjs/package.json +3 -4
- package/cjs/src/auth.d.ts +16 -1
- package/cjs/src/auth.d.ts.map +1 -1
- package/cjs/src/auth.js +7 -3
- package/cjs/src/auth.js.map +1 -1
- package/cjs/src/auth.spec.d.ts.map +1 -1
- package/cjs/src/auth.spec.js +9 -0
- package/cjs/src/auth.spec.js.map +1 -1
- package/cjs/src/embed/app.d.ts +150 -7
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +5 -5
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +19 -1
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/base.d.ts +1 -1
- package/cjs/src/embed/base.d.ts.map +1 -1
- package/cjs/src/embed/base.js +5 -8
- package/cjs/src/embed/base.js.map +1 -1
- package/cjs/src/embed/base.spec.js +1 -1
- package/cjs/src/embed/base.spec.js.map +1 -1
- package/cjs/src/embed/embed.spec.js +0 -15
- package/cjs/src/embed/embed.spec.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +113 -4
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +2 -2
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +20 -1
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/pinboard.spec.js +20 -1
- package/cjs/src/embed/pinboard.spec.js.map +1 -1
- package/cjs/src/embed/sage.d.ts +1 -1
- package/cjs/src/embed/sage.d.ts.map +1 -1
- package/cjs/src/embed/sage.js +2 -2
- package/cjs/src/embed/sage.js.map +1 -1
- package/cjs/src/embed/search-bar.d.ts +37 -6
- package/cjs/src/embed/search-bar.d.ts.map +1 -1
- package/cjs/src/embed/search-bar.js +2 -2
- package/cjs/src/embed/search-bar.js.map +1 -1
- package/cjs/src/embed/search.d.ts +85 -2
- package/cjs/src/embed/search.d.ts.map +1 -1
- package/cjs/src/embed/search.js +6 -6
- package/cjs/src/embed/search.js.map +1 -1
- package/cjs/src/embed/search.spec.js +25 -1
- package/cjs/src/embed/search.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed-trigger.spec.d.ts +2 -0
- package/cjs/src/embed/ts-embed-trigger.spec.d.ts.map +1 -0
- package/cjs/src/embed/ts-embed-trigger.spec.js +34 -0
- package/cjs/src/embed/ts-embed-trigger.spec.js.map +1 -0
- package/cjs/src/embed/ts-embed.d.ts +2 -2
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +18 -13
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +64 -25
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/index.d.ts +2 -1
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js +3 -1
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/react/index.spec.js +13 -1
- package/cjs/src/react/index.spec.js.map +1 -1
- package/cjs/src/test/test-utils.d.ts +1 -0
- package/cjs/src/test/test-utils.d.ts.map +1 -1
- package/cjs/src/test/test-utils.js +10 -1
- package/cjs/src/test/test-utils.js.map +1 -1
- package/cjs/src/tokenizedFetch.d.ts +9 -0
- package/cjs/src/tokenizedFetch.d.ts.map +1 -1
- package/cjs/src/tokenizedFetch.js +9 -0
- package/cjs/src/tokenizedFetch.js.map +1 -1
- package/cjs/src/types.d.ts +279 -43
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +95 -20
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/authService/authService.d.ts.map +1 -1
- package/cjs/src/utils/authService/authService.js +9 -3
- package/cjs/src/utils/authService/authService.js.map +1 -1
- package/cjs/src/utils/authService/authService.spec.js +22 -0
- package/cjs/src/utils/authService/authService.spec.js.map +1 -1
- package/dist/src/auth.d.ts +16 -1
- package/dist/src/auth.d.ts.map +1 -1
- package/dist/src/auth.spec.d.ts.map +1 -1
- package/dist/src/embed/app.d.ts +150 -7
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/base.d.ts +1 -1
- package/dist/src/embed/base.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +113 -4
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/sage.d.ts +1 -1
- package/dist/src/embed/sage.d.ts.map +1 -1
- package/dist/src/embed/search-bar.d.ts +37 -6
- package/dist/src/embed/search-bar.d.ts.map +1 -1
- package/dist/src/embed/search.d.ts +85 -2
- package/dist/src/embed/search.d.ts.map +1 -1
- package/dist/src/embed/ts-embed-trigger.spec.d.ts +2 -0
- package/dist/src/embed/ts-embed-trigger.spec.d.ts.map +1 -0
- package/dist/src/embed/ts-embed.d.ts +2 -2
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/test/test-utils.d.ts +1 -0
- package/dist/src/test/test-utils.d.ts.map +1 -1
- package/dist/src/tokenizedFetch.d.ts +9 -0
- package/dist/src/tokenizedFetch.d.ts.map +1 -1
- package/dist/src/types.d.ts +279 -43
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/authService/authService.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +1543 -1445
- package/dist/tsembed-react.js +6614 -6529
- package/dist/tsembed.es.js +1921 -1826
- package/dist/tsembed.js +15342 -15259
- package/dist/visual-embed-sdk-react-full.d.ts +692 -64
- package/dist/visual-embed-sdk-react.d.ts +692 -64
- package/dist/visual-embed-sdk.d.ts +692 -64
- package/lib/package.json +3 -4
- package/lib/src/auth.d.ts +16 -1
- package/lib/src/auth.d.ts.map +1 -1
- package/lib/src/auth.js +8 -4
- package/lib/src/auth.js.map +1 -1
- package/lib/src/auth.spec.d.ts.map +1 -1
- package/lib/src/auth.spec.js +9 -0
- package/lib/src/auth.spec.js.map +1 -1
- package/lib/src/embed/app.d.ts +150 -7
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +5 -5
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +19 -1
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/base.d.ts +1 -1
- package/lib/src/embed/base.d.ts.map +1 -1
- package/lib/src/embed/base.js +5 -8
- package/lib/src/embed/base.js.map +1 -1
- package/lib/src/embed/base.spec.js +2 -2
- package/lib/src/embed/base.spec.js.map +1 -1
- package/lib/src/embed/embed.spec.js +2 -17
- package/lib/src/embed/embed.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +113 -4
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +3 -3
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +20 -1
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/pinboard.spec.js +20 -1
- package/lib/src/embed/pinboard.spec.js.map +1 -1
- package/lib/src/embed/sage.d.ts +1 -1
- package/lib/src/embed/sage.d.ts.map +1 -1
- package/lib/src/embed/sage.js +2 -2
- package/lib/src/embed/sage.js.map +1 -1
- package/lib/src/embed/search-bar.d.ts +37 -6
- package/lib/src/embed/search-bar.d.ts.map +1 -1
- package/lib/src/embed/search-bar.js +2 -2
- package/lib/src/embed/search-bar.js.map +1 -1
- package/lib/src/embed/search.d.ts +85 -2
- package/lib/src/embed/search.d.ts.map +1 -1
- package/lib/src/embed/search.js +7 -7
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/search.spec.js +25 -1
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/ts-embed-trigger.spec.d.ts +2 -0
- package/lib/src/embed/ts-embed-trigger.spec.d.ts.map +1 -0
- package/lib/src/embed/ts-embed-trigger.spec.js +32 -0
- package/lib/src/embed/ts-embed-trigger.spec.js.map +1 -0
- package/lib/src/embed/ts-embed.d.ts +2 -2
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +21 -16
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +57 -18
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/index.d.ts +2 -1
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +2 -1
- package/lib/src/index.js.map +1 -1
- package/lib/src/react/index.spec.js +13 -1
- package/lib/src/react/index.spec.js.map +1 -1
- package/lib/src/test/test-utils.d.ts +1 -0
- package/lib/src/test/test-utils.d.ts.map +1 -1
- package/lib/src/test/test-utils.js +8 -0
- package/lib/src/test/test-utils.js.map +1 -1
- package/lib/src/tokenizedFetch.d.ts +9 -0
- package/lib/src/tokenizedFetch.d.ts.map +1 -1
- package/lib/src/tokenizedFetch.js +9 -0
- package/lib/src/tokenizedFetch.js.map +1 -1
- package/lib/src/types.d.ts +279 -43
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +95 -20
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/authService/authService.d.ts.map +1 -1
- package/lib/src/utils/authService/authService.js +9 -3
- package/lib/src/utils/authService/authService.js.map +1 -1
- package/lib/src/utils/authService/authService.spec.js +23 -1
- package/lib/src/utils/authService/authService.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +699 -68
- package/package.json +3 -4
- package/src/auth.spec.ts +10 -0
- package/src/auth.ts +27 -8
- package/src/embed/app.spec.ts +24 -1
- package/src/embed/app.ts +154 -13
- package/src/embed/base.spec.ts +3 -3
- package/src/embed/base.ts +13 -17
- package/src/embed/embed.spec.ts +0 -18
- package/src/embed/liveboard.spec.ts +24 -1
- package/src/embed/liveboard.ts +121 -15
- package/src/embed/pinboard.spec.ts +24 -1
- package/src/embed/sage.ts +2 -2
- package/src/embed/search-bar.tsx +38 -7
- package/src/embed/search.spec.ts +29 -1
- package/src/embed/search.ts +93 -9
- package/src/embed/ts-embed-trigger.spec.ts +39 -0
- package/src/embed/ts-embed.spec.ts +71 -30
- package/src/embed/ts-embed.ts +48 -45
- package/src/index.ts +2 -0
- package/src/react/index.spec.tsx +30 -0
- package/src/test/test-utils.ts +9 -0
- package/src/tokenizedFetch.ts +9 -0
- package/src/types.ts +288 -50
- package/src/utils/authService/authService.spec.ts +31 -4
- package/src/utils/authService/authService.ts +14 -13
package/src/embed/liveboard.ts
CHANGED
|
@@ -11,16 +11,9 @@
|
|
|
11
11
|
|
|
12
12
|
import { ERROR_MESSAGE } from '../errors';
|
|
13
13
|
import {
|
|
14
|
-
EmbedEvent,
|
|
15
|
-
MessagePayload,
|
|
16
|
-
Param,
|
|
17
|
-
RuntimeFilter,
|
|
18
|
-
DOMSelector,
|
|
19
|
-
HostEvent,
|
|
20
|
-
ViewConfig,
|
|
14
|
+
DOMSelector, EmbedEvent, HostEvent, MessagePayload, Param, ViewConfig,
|
|
21
15
|
} from '../types';
|
|
22
16
|
import { getQueryParamString, isUndefined } from '../utils';
|
|
23
|
-
import { getAuthPromise } from './base';
|
|
24
17
|
import { V1Embed } from './ts-embed';
|
|
25
18
|
|
|
26
19
|
/**
|
|
@@ -28,12 +21,29 @@ import { V1Embed } from './ts-embed';
|
|
|
28
21
|
*
|
|
29
22
|
* @group Embed components
|
|
30
23
|
*/
|
|
31
|
-
export interface LiveboardViewConfig
|
|
24
|
+
export interface LiveboardViewConfig
|
|
25
|
+
extends Omit<
|
|
26
|
+
ViewConfig,
|
|
27
|
+
'hiddenHomepageModules' | 'hiddenHomeLeftNavItems' | 'reorderedHomepageModules'
|
|
28
|
+
> {
|
|
32
29
|
/**
|
|
33
30
|
* If set to true, the embedded object container dynamically resizes
|
|
34
31
|
* according to the height of the Liveboard.
|
|
32
|
+
* **Note**: Using fullHeight loads all visualizations on the
|
|
33
|
+
* Liveboard simultaneously, which results in multiple warehouse
|
|
34
|
+
* queries and potentially a longer wait for the topmost
|
|
35
|
+
* visualizations to display on the screen.
|
|
36
|
+
* Setting `fullHeight` to `false` fetches visualizations
|
|
37
|
+
* incrementally as users scroll the page to view the charts and tables.
|
|
35
38
|
*
|
|
36
39
|
* @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1
|
|
40
|
+
* @example
|
|
41
|
+
* ```js
|
|
42
|
+
* const embed = new LiveboardEmbed('#embed', {
|
|
43
|
+
* ... // other liveboard view config
|
|
44
|
+
* fullHeight: true,
|
|
45
|
+
* });
|
|
46
|
+
* ```
|
|
37
47
|
*/
|
|
38
48
|
fullHeight?: boolean;
|
|
39
49
|
/**
|
|
@@ -43,10 +53,26 @@ export interface LiveboardViewConfig extends Omit<ViewConfig, 'hiddenHomepageMod
|
|
|
43
53
|
*
|
|
44
54
|
* @version SDK: 1.5.0 | ThoughtSpot: ts7.oct.cl, 7.2.1
|
|
45
55
|
* @default 500
|
|
56
|
+
* @example
|
|
57
|
+
* ```js
|
|
58
|
+
* const embed = new LiveboardEmbed('#embed', {
|
|
59
|
+
* ... // other liveboard view config
|
|
60
|
+
* fullHeight: true,
|
|
61
|
+
* defaultHeight: 600,
|
|
62
|
+
* });
|
|
63
|
+
* ```
|
|
46
64
|
*/
|
|
47
65
|
defaultHeight?: number;
|
|
48
66
|
/**
|
|
49
67
|
* @Deprecated If set to true, the context menu in visualizations will be enabled.
|
|
68
|
+
* @example
|
|
69
|
+
* ```js
|
|
70
|
+
* const embed = new LiveboardEmbed('#tsEmbed', {
|
|
71
|
+
* ... // other options
|
|
72
|
+
* enableVizTransformations:true,
|
|
73
|
+
* })
|
|
74
|
+
* ```
|
|
75
|
+
* @version: SDK: 1.1.0 | ThoughtSpot: 8.1.0.sw
|
|
50
76
|
*/
|
|
51
77
|
enableVizTransformations?: boolean;
|
|
52
78
|
/**
|
|
@@ -54,6 +80,12 @@ export interface LiveboardViewConfig extends Omit<ViewConfig, 'hiddenHomepageMod
|
|
|
54
80
|
* Use either liveboardId or pinboardId to reference the Liveboard to embed.
|
|
55
81
|
*
|
|
56
82
|
* @version SDK: 1.3.0 | ThoughtSpot ts7.aug.cl, 7.2.1
|
|
83
|
+
* @example
|
|
84
|
+
* ```js
|
|
85
|
+
* const embed = new LiveboardEmbed('#embed-container', {
|
|
86
|
+
* ... // other options
|
|
87
|
+
* liveboardId:id of liveboard,
|
|
88
|
+
* })
|
|
57
89
|
*/
|
|
58
90
|
liveboardId?: string;
|
|
59
91
|
/**
|
|
@@ -64,6 +96,15 @@ export interface LiveboardViewConfig extends Omit<ViewConfig, 'hiddenHomepageMod
|
|
|
64
96
|
pinboardId?: string;
|
|
65
97
|
/**
|
|
66
98
|
* The visualization within the Liveboard to display.
|
|
99
|
+
*
|
|
100
|
+
* @version SDK: 1.9.1 | ThoughtSpot: 8.1.0.cl, 8.4.1-sw
|
|
101
|
+
* @example
|
|
102
|
+
* ```js
|
|
103
|
+
* const embed = new LiveboardEmbed('#embed-container', {
|
|
104
|
+
* ... // other options
|
|
105
|
+
* vizId:'430496d6-6903-4601-937e-2c691821af3c',
|
|
106
|
+
* })
|
|
107
|
+
* ```
|
|
67
108
|
*/
|
|
68
109
|
vizId?: string;
|
|
69
110
|
/**
|
|
@@ -71,6 +112,13 @@ export interface LiveboardViewConfig extends Omit<ViewConfig, 'hiddenHomepageMod
|
|
|
71
112
|
* Liveboard page will be read-only (no X buttons)
|
|
72
113
|
*
|
|
73
114
|
* @version SDK: 1.3.0 | ThoughtSpot ts7.aug.cl, 7.2.1.sw
|
|
115
|
+
* @example
|
|
116
|
+
* ```js
|
|
117
|
+
* const embed = new LiveboardEmbed('#embed-container', {
|
|
118
|
+
* ... // other options
|
|
119
|
+
* preventLiveboardFilterRemoval:true,
|
|
120
|
+
* })
|
|
121
|
+
* ```
|
|
74
122
|
*/
|
|
75
123
|
preventLiveboardFilterRemoval?: boolean;
|
|
76
124
|
/**
|
|
@@ -79,6 +127,15 @@ export interface LiveboardViewConfig extends Omit<ViewConfig, 'hiddenHomepageMod
|
|
|
79
127
|
* event.
|
|
80
128
|
*
|
|
81
129
|
* @version SDK: 1.9.1 | ThoughtSpot: 8.1.0.cl, 8.4.1-sw
|
|
130
|
+
* @example
|
|
131
|
+
* ```js
|
|
132
|
+
* const embed = new LiveboardEmbed('#embed-container', {
|
|
133
|
+
* ... // other options
|
|
134
|
+
* visibleVizs: [
|
|
135
|
+
* '430496d6-6903-4601-937e-2c691821af3c',
|
|
136
|
+
* 'f547ec54-2a37-4516-a222-2b06719af726'
|
|
137
|
+
* ]
|
|
138
|
+
* })
|
|
82
139
|
*/
|
|
83
140
|
visibleVizs?: string[];
|
|
84
141
|
/**
|
|
@@ -92,12 +149,26 @@ export interface LiveboardViewConfig extends Omit<ViewConfig, 'hiddenHomepageMod
|
|
|
92
149
|
* new Liveboard experience mode.
|
|
93
150
|
*
|
|
94
151
|
* @version SDK: 1.14.0 | ThoughtSpot: 8.6.0.cl, 8.8.1-sw
|
|
152
|
+
* @example
|
|
153
|
+
* ```js
|
|
154
|
+
* const embed = new LiveboardEmbed('#embed-container', {
|
|
155
|
+
* ... // other options
|
|
156
|
+
* liveboardV2:true,
|
|
157
|
+
* })
|
|
158
|
+
* ```
|
|
95
159
|
*/
|
|
96
160
|
liveboardV2?: boolean;
|
|
97
161
|
/**
|
|
98
162
|
* Set a Liveboard tab as an active tab.
|
|
99
163
|
* Specify the tab ID.
|
|
100
164
|
*
|
|
165
|
+
* @example
|
|
166
|
+
* ```js
|
|
167
|
+
* const embed = new LiveboardEmbed('#tsEmbed', {
|
|
168
|
+
* ... // other options
|
|
169
|
+
* activeTabId:'id-1234',
|
|
170
|
+
* })
|
|
171
|
+
* ```
|
|
101
172
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1-sw
|
|
102
173
|
*/
|
|
103
174
|
activeTabId?: string;
|
|
@@ -105,6 +176,13 @@ export interface LiveboardViewConfig extends Omit<ViewConfig, 'hiddenHomepageMod
|
|
|
105
176
|
* Show or hide the tab panel of the embedded Liveboard.
|
|
106
177
|
*
|
|
107
178
|
* @version SDK: 1.25.0 | Thoughtspot: 9.6.0.cl, 9.8.0.sw
|
|
179
|
+
* @example
|
|
180
|
+
* ```js
|
|
181
|
+
* const embed = new LiveboardEmbed('#embed-container', {
|
|
182
|
+
* ... // other options
|
|
183
|
+
* hideTabPanel:true,
|
|
184
|
+
* })
|
|
185
|
+
* ```
|
|
108
186
|
*/
|
|
109
187
|
hideTabPanel?: boolean;
|
|
110
188
|
/**
|
|
@@ -112,20 +190,41 @@ export interface LiveboardViewConfig extends Omit<ViewConfig, 'hiddenHomepageMod
|
|
|
112
190
|
*
|
|
113
191
|
* @version SDK: 1.26.0 | Thoughtspot: 9.7.0.cl, 9.8.0.sw
|
|
114
192
|
* @default false
|
|
193
|
+
* @example
|
|
194
|
+
* ```js
|
|
195
|
+
* const embed = new LiveboardEmbed('#embed', {
|
|
196
|
+
* ... // other liveboard view config
|
|
197
|
+
* hideLiveboardHeader:true,
|
|
198
|
+
* });
|
|
199
|
+
* ```
|
|
115
200
|
*/
|
|
116
201
|
hideLiveboardHeader?: boolean;
|
|
117
202
|
/**
|
|
118
203
|
* Show or hide the Liveboard title.
|
|
119
204
|
*
|
|
120
|
-
* @version SDK: 1.26.0 | Thoughtspot: 9.7.0.cl, 9.8.0.sw
|
|
121
205
|
* @default false
|
|
206
|
+
* @version SDK: 1.26.0 | Thoughtspot: 9.7.0.cl, 9.8.0.sw
|
|
207
|
+
* @example
|
|
208
|
+
* ```js
|
|
209
|
+
* const embed = new LiveboardEmbed('#embed-container', {
|
|
210
|
+
* ... // other options
|
|
211
|
+
* showLiveboardTitle:true,
|
|
212
|
+
* })
|
|
213
|
+
* ```
|
|
122
214
|
*/
|
|
123
215
|
showLiveboardTitle?: boolean;
|
|
124
216
|
/**
|
|
125
217
|
* Show or hide the Liveboard description.
|
|
126
218
|
*
|
|
127
|
-
* @version SDK: 1.26.0 | Thoughtspot: 9.7.0.cl, 9.8.0.sw
|
|
128
219
|
* @default false
|
|
220
|
+
* @version SDK: 1.26.0 | Thoughtspot: 9.7.0.cl, 9.8.0.sw
|
|
221
|
+
* @example
|
|
222
|
+
* ```js
|
|
223
|
+
* const embed = new LiveboardEmbed('#embed-container', {
|
|
224
|
+
* ... // other options
|
|
225
|
+
* showLiveboardDescription:true,
|
|
226
|
+
* })
|
|
227
|
+
* ```
|
|
129
228
|
*/
|
|
130
229
|
showLiveboardDescription?: boolean;
|
|
131
230
|
/**
|
|
@@ -146,8 +245,15 @@ export interface LiveboardViewConfig extends Omit<ViewConfig, 'hiddenHomepageMod
|
|
|
146
245
|
/**
|
|
147
246
|
* enable or disable ask sage
|
|
148
247
|
*
|
|
149
|
-
* @version SDK: 1.29.0 | Thoughtspot: 9.12.0.cl
|
|
150
248
|
* @default false
|
|
249
|
+
* @version SDK: 1.29.0 | Thoughtspot: 9.12.0.cl
|
|
250
|
+
* @example
|
|
251
|
+
* ```js
|
|
252
|
+
* const embed = new SearchEmbed('#tsEmbed', {
|
|
253
|
+
* ... // other options
|
|
254
|
+
* enableAskSage:true,
|
|
255
|
+
* })
|
|
256
|
+
* ```
|
|
151
257
|
*/
|
|
152
258
|
enableAskSage?: boolean;
|
|
153
259
|
}
|
|
@@ -362,11 +468,11 @@ export class LiveboardEmbed extends V1Embed {
|
|
|
362
468
|
* @param renderOptions An object specifying the Liveboard ID,
|
|
363
469
|
* visualization ID and the runtime filters.
|
|
364
470
|
*/
|
|
365
|
-
public render(): LiveboardEmbed {
|
|
471
|
+
public async render(): Promise<LiveboardEmbed> {
|
|
366
472
|
super.render();
|
|
367
473
|
|
|
368
474
|
const src = this.getIFrameSrc();
|
|
369
|
-
this.renderV1Embed(src);
|
|
475
|
+
await this.renderV1Embed(src);
|
|
370
476
|
|
|
371
477
|
return this;
|
|
372
478
|
}
|
|
@@ -389,4 +495,4 @@ export class LiveboardEmbed extends V1Embed {
|
|
|
389
495
|
/**
|
|
390
496
|
* @hidden
|
|
391
497
|
*/
|
|
392
|
-
export class PinboardEmbed extends LiveboardEmbed {
|
|
498
|
+
export class PinboardEmbed extends LiveboardEmbed {}
|
|
@@ -169,6 +169,7 @@ describe('Pinboard/viz embed tests', () => {
|
|
|
169
169
|
values: [1000],
|
|
170
170
|
},
|
|
171
171
|
],
|
|
172
|
+
excludeRuntimeFiltersfromURL: false,
|
|
172
173
|
} as LiveboardViewConfig);
|
|
173
174
|
pinboardEmbed.render();
|
|
174
175
|
await executeAfterWait(() => {
|
|
@@ -179,7 +180,7 @@ describe('Pinboard/viz embed tests', () => {
|
|
|
179
180
|
});
|
|
180
181
|
});
|
|
181
182
|
|
|
182
|
-
test('should not
|
|
183
|
+
test('should not append runtime filters in URL if excludeRuntimeFiltersfromURL is true', async () => {
|
|
183
184
|
const pinboardEmbed = new PinboardEmbed(getRootEl(), {
|
|
184
185
|
...defaultViewConfig,
|
|
185
186
|
pinboardId,
|
|
@@ -202,6 +203,28 @@ describe('Pinboard/viz embed tests', () => {
|
|
|
202
203
|
});
|
|
203
204
|
});
|
|
204
205
|
|
|
206
|
+
test('should not append runtime filters in URL if excludeRuntimeFiltersfromURL is undefined', async () => {
|
|
207
|
+
const liveboardEmbed = new PinboardEmbed(getRootEl(), {
|
|
208
|
+
...defaultViewConfig,
|
|
209
|
+
pinboardId,
|
|
210
|
+
vizId,
|
|
211
|
+
runtimeFilters: [
|
|
212
|
+
{
|
|
213
|
+
columnName: 'sales',
|
|
214
|
+
operator: RuntimeFilterOp.EQ,
|
|
215
|
+
values: [1000],
|
|
216
|
+
},
|
|
217
|
+
],
|
|
218
|
+
} as LiveboardViewConfig);
|
|
219
|
+
liveboardEmbed.render();
|
|
220
|
+
await executeAfterWait(() => {
|
|
221
|
+
expectUrlMatchesWithParams(
|
|
222
|
+
getIFrameSrc(),
|
|
223
|
+
`http://${thoughtSpotHost}/?embedApp=true${defaultParams}${prefixParamsVizEmbed}#/embed/viz/${pinboardId}/${vizId}`,
|
|
224
|
+
);
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
|
|
205
228
|
test('should register event handler to adjust iframe height', async () => {
|
|
206
229
|
const pinboardEmbed = new PinboardEmbed(getRootEl(), {
|
|
207
230
|
...defaultViewConfig,
|
package/src/embed/sage.ts
CHANGED
|
@@ -237,11 +237,11 @@ export class SageEmbed extends V1Embed {
|
|
|
237
237
|
*
|
|
238
238
|
* @returns {SageEmbed} Eureka/Sage embed
|
|
239
239
|
*/
|
|
240
|
-
public render(): SageEmbed {
|
|
240
|
+
public async render(): Promise<SageEmbed> {
|
|
241
241
|
super.render();
|
|
242
242
|
|
|
243
243
|
const src = this.getIFrameSrc();
|
|
244
|
-
this.renderV1Embed(src);
|
|
244
|
+
await this.renderV1Embed(src);
|
|
245
245
|
|
|
246
246
|
return this;
|
|
247
247
|
}
|
package/src/embed/search-bar.tsx
CHANGED
|
@@ -23,18 +23,44 @@ export interface SearchBarViewConfig
|
|
|
23
23
|
* Only a single data source is supported currently.
|
|
24
24
|
*
|
|
25
25
|
* @deprecated Use `dataSource` instead
|
|
26
|
+
*
|
|
27
|
+
* @version: SDK: 1.1.0 | ThoughtSpot: 8.1.1-sw
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```js
|
|
31
|
+
* const embed = new SearchBarEmbed('#tsEmbed', {
|
|
32
|
+
* ... // other options
|
|
33
|
+
* dataSources:['id-2345','id-2345'],
|
|
34
|
+
* })
|
|
35
|
+
* ```
|
|
26
36
|
*/
|
|
27
37
|
dataSources?: string[];
|
|
28
38
|
/**
|
|
29
|
-
*
|
|
39
|
+
* Pass the ID of the source to be selected.
|
|
30
40
|
*
|
|
31
41
|
* @version: SDK: 1.19.0, ThoughtSpot 9.0.0.cl, 9.0.1.sw
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```js
|
|
45
|
+
* const embed = new SearchBarEmbed('#tsEmbed', {
|
|
46
|
+
* ... // other options
|
|
47
|
+
* dataSource:'id-2345',
|
|
48
|
+
* })
|
|
49
|
+
* ```
|
|
32
50
|
*/
|
|
33
51
|
dataSource?: string;
|
|
34
52
|
/**
|
|
35
53
|
* Boolean to define if the last selected data source should be used
|
|
36
54
|
*
|
|
37
55
|
* @version: SDK: 1.24.0, ThoughtSpot 9.5.0.cl, 9.5.0.sw
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```js
|
|
59
|
+
* const embed = new SearchBarEmbed('#tsEmbed', {
|
|
60
|
+
* ... // other options
|
|
61
|
+
* useLastSelectedSources:false,
|
|
62
|
+
* })
|
|
63
|
+
* ```
|
|
38
64
|
*/
|
|
39
65
|
useLastSelectedSources?: boolean;
|
|
40
66
|
/**
|
|
@@ -48,12 +74,17 @@ export interface SearchBarViewConfig
|
|
|
48
74
|
* If it’s not executed, the focus is placed at the end of
|
|
49
75
|
* the token string in the search bar.
|
|
50
76
|
*
|
|
77
|
+
* @version: SDK: 1.2.0 | ThoughtSpot: 9.4.0.sw
|
|
78
|
+
*
|
|
51
79
|
* @example
|
|
52
80
|
* ```js
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
81
|
+
* const embed = new SearchBarEmbed('#tsEmbed', {
|
|
82
|
+
* ... // other options
|
|
83
|
+
* searchOptions: {
|
|
84
|
+
* searchTokenString: '[quantity purchased] [region]',
|
|
85
|
+
* executeSearch: true,
|
|
86
|
+
* }
|
|
87
|
+
* })
|
|
57
88
|
* ```
|
|
58
89
|
*/
|
|
59
90
|
searchOptions?: SearchOptions;
|
|
@@ -130,11 +161,11 @@ export class SearchBarEmbed extends TsEmbed {
|
|
|
130
161
|
/**
|
|
131
162
|
* Render the embedded ThoughtSpot search
|
|
132
163
|
*/
|
|
133
|
-
public render(): SearchBarEmbed {
|
|
164
|
+
public async render(): Promise<SearchBarEmbed> {
|
|
134
165
|
super.render();
|
|
135
166
|
|
|
136
167
|
const src = this.getIFrameSrc();
|
|
137
|
-
this.renderIFrame(src);
|
|
168
|
+
await this.renderIFrame(src);
|
|
138
169
|
return this;
|
|
139
170
|
}
|
|
140
171
|
}
|
package/src/embed/search.spec.ts
CHANGED
|
@@ -178,6 +178,7 @@ describe('Search embed tests', () => {
|
|
|
178
178
|
values: ['berkeley'],
|
|
179
179
|
},
|
|
180
180
|
],
|
|
181
|
+
excludeRuntimeFiltersfromURL: false,
|
|
181
182
|
});
|
|
182
183
|
searchEmbed.render();
|
|
183
184
|
await executeAfterWait(() => {
|
|
@@ -188,7 +189,7 @@ describe('Search embed tests', () => {
|
|
|
188
189
|
});
|
|
189
190
|
});
|
|
190
191
|
|
|
191
|
-
test('should not
|
|
192
|
+
test('should not append runtime filters in URL if excludeRuntimeFiltersfromURL is true', async () => {
|
|
192
193
|
const dataSources = ['data-source-1'];
|
|
193
194
|
const searchOptions = {
|
|
194
195
|
searchTokenString: '[commit date][revenue]',
|
|
@@ -216,6 +217,33 @@ describe('Search embed tests', () => {
|
|
|
216
217
|
});
|
|
217
218
|
});
|
|
218
219
|
|
|
220
|
+
test('should not append runtime filters in URL if excludeRuntimeFiltersfromURL is undefined', async () => {
|
|
221
|
+
const dataSources = ['data-source-1'];
|
|
222
|
+
const searchOptions = {
|
|
223
|
+
searchTokenString: '[commit date][revenue]',
|
|
224
|
+
};
|
|
225
|
+
const searchEmbed = new SearchEmbed(getRootEl(), {
|
|
226
|
+
...defaultViewConfig,
|
|
227
|
+
hideDataSources: true,
|
|
228
|
+
dataSources,
|
|
229
|
+
searchOptions,
|
|
230
|
+
runtimeFilters: [
|
|
231
|
+
{
|
|
232
|
+
columnName: 'city',
|
|
233
|
+
operator: RuntimeFilterOp.EQ,
|
|
234
|
+
values: ['berkeley'],
|
|
235
|
+
},
|
|
236
|
+
],
|
|
237
|
+
});
|
|
238
|
+
searchEmbed.render();
|
|
239
|
+
await executeAfterWait(() => {
|
|
240
|
+
expectUrlMatchesWithParams(
|
|
241
|
+
getIFrameSrc(),
|
|
242
|
+
`http://${thoughtSpotHost}/v2/?${defaultParamsWithHiddenActions}&dataSources=[%22data-source-1%22]&searchTokenString=%5Bcommit%20date%5D%5Brevenue%5D&dataSourceMode=hide&useLastSelectedSources=false${prefixParams}#/embed/answer`,
|
|
243
|
+
);
|
|
244
|
+
});
|
|
245
|
+
});
|
|
246
|
+
|
|
219
247
|
test('Should add dataSource', async () => {
|
|
220
248
|
const dataSource = 'data-source-1';
|
|
221
249
|
const searchOptions = {
|
package/src/embed/search.ts
CHANGED
|
@@ -7,20 +7,20 @@
|
|
|
7
7
|
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
+
import { getReleaseVersion } from '../auth';
|
|
11
|
+
import { ERROR_MESSAGE } from '../errors';
|
|
10
12
|
import {
|
|
11
|
-
|
|
13
|
+
Action, DOMSelector, DataSourceVisualMode, Param, ViewConfig,
|
|
12
14
|
} from '../types';
|
|
13
15
|
import {
|
|
14
|
-
getQueryParamString,
|
|
15
16
|
checkReleaseVersionInBeta,
|
|
16
17
|
getFilterQuery,
|
|
18
|
+
getQueryParamString,
|
|
17
19
|
getRuntimeParameters,
|
|
18
20
|
} from '../utils';
|
|
19
|
-
import { TsEmbed } from './ts-embed';
|
|
20
|
-
import { ERROR_MESSAGE } from '../errors';
|
|
21
21
|
import { getAuthPromise } from './base';
|
|
22
|
-
import { getReleaseVersion } from '../auth';
|
|
23
22
|
import { getEmbedConfig } from './embedConfig';
|
|
23
|
+
import { TsEmbed } from './ts-embed';
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* Configuration for search options.
|
|
@@ -57,27 +57,73 @@ export interface SearchViewConfig
|
|
|
57
57
|
/**
|
|
58
58
|
* If set to true, the data sources panel is collapsed on load,
|
|
59
59
|
* but can be expanded manually.
|
|
60
|
+
*
|
|
61
|
+
* @version: SDK: 1.1.0 | ThoughtSpot: 8.1.0.sw
|
|
62
|
+
* @example
|
|
63
|
+
* ```js
|
|
64
|
+
* const embed = new SearchEmbed('#tsEmbed', {
|
|
65
|
+
* ... // other options
|
|
66
|
+
* collapseDataSources:true,
|
|
67
|
+
* })
|
|
68
|
+
* ```
|
|
60
69
|
*/
|
|
61
70
|
collapseDataSources?: boolean;
|
|
62
71
|
/**
|
|
63
72
|
* Show or hide the data sources panel.
|
|
73
|
+
*
|
|
74
|
+
* @version: SDK: 1.2.0 | ThoughtSpot: 9.1.0.sw
|
|
75
|
+
* @example
|
|
76
|
+
* ```js
|
|
77
|
+
* const embed = new SearchEmbed('#tsEmbed', {
|
|
78
|
+
* ... // other options
|
|
79
|
+
* hideDataSources:true,
|
|
80
|
+
* })
|
|
81
|
+
* ```
|
|
64
82
|
*/
|
|
65
83
|
hideDataSources?: boolean;
|
|
66
84
|
/**
|
|
67
85
|
* Show or hide the charts and tables in search answers.
|
|
68
86
|
* This attribute can be used to create a custom visualization
|
|
69
87
|
* using raw answer data.
|
|
88
|
+
*
|
|
89
|
+
* @version: SDK: 1.2.0 | ThoughtSpot: 9.1.0.sw
|
|
90
|
+
* @example
|
|
91
|
+
* ```js
|
|
92
|
+
* const embed = new SearchEmbed('#tsEmbed', {
|
|
93
|
+
* ... // other options
|
|
94
|
+
* hideResults:true,
|
|
95
|
+
* })
|
|
96
|
+
* ```
|
|
70
97
|
*/
|
|
71
98
|
hideResults?: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* If set to true, expands all the data sources panel.
|
|
101
|
+
*/
|
|
102
|
+
expandAllDataSource?: boolean;
|
|
72
103
|
/**
|
|
73
104
|
* If set to true, the Search Assist feature is enabled.
|
|
74
105
|
*
|
|
75
106
|
* @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1-sw
|
|
107
|
+
* @example
|
|
108
|
+
* ```js
|
|
109
|
+
* const embed = new SearchEmbed('#tsEmbed', {
|
|
110
|
+
* ... // other options
|
|
111
|
+
* enableSearchAssist:true,
|
|
112
|
+
* })
|
|
113
|
+
* ```
|
|
76
114
|
*/
|
|
77
115
|
enableSearchAssist?: boolean;
|
|
78
116
|
/**
|
|
79
117
|
* If set to true, the tabular view is set as the default
|
|
80
118
|
* format for presenting search data.
|
|
119
|
+
*
|
|
120
|
+
* @version: SDK: 1.1.0 | ThoughtSpot: 8.1.0.sw
|
|
121
|
+
* @example
|
|
122
|
+
* ```js
|
|
123
|
+
* const embed = new SearchEmbed('#tsEmbed', {
|
|
124
|
+
* ... // other options
|
|
125
|
+
* forceTable:true,
|
|
126
|
+
* })
|
|
81
127
|
*/
|
|
82
128
|
forceTable?: boolean;
|
|
83
129
|
/**
|
|
@@ -85,12 +131,26 @@ export interface SearchViewConfig
|
|
|
85
131
|
* Only a single data source is supported currently.
|
|
86
132
|
*
|
|
87
133
|
* @deprecated Use `dataSource` instead.
|
|
134
|
+
* @example
|
|
135
|
+
* ```js
|
|
136
|
+
* const embed = new SearchEmbed('#tsEmbed', {
|
|
137
|
+
* ... // other options
|
|
138
|
+
* dataSources:['id-234','id-456'],
|
|
139
|
+
* })
|
|
140
|
+
* ```
|
|
88
141
|
*/
|
|
89
142
|
dataSources?: string[];
|
|
90
143
|
/**
|
|
91
144
|
* The array of data source GUIDs to set on load.
|
|
92
145
|
*
|
|
93
146
|
* @version: SDK: 1.19.0
|
|
147
|
+
* @example
|
|
148
|
+
* ```js
|
|
149
|
+
* const embed = new SearchEmbed('#tsEmbed', {
|
|
150
|
+
* ... // other options
|
|
151
|
+
* dataSource:'id-234',
|
|
152
|
+
* })
|
|
153
|
+
* ```
|
|
94
154
|
*/
|
|
95
155
|
dataSource?: string;
|
|
96
156
|
/**
|
|
@@ -123,6 +183,15 @@ export interface SearchViewConfig
|
|
|
123
183
|
searchOptions?: SearchOptions;
|
|
124
184
|
/**
|
|
125
185
|
* The GUID of a saved answer to load initially.
|
|
186
|
+
*
|
|
187
|
+
* @version: SDK: 1.1.0 | ThoughtSpot: 8.1.0.sw
|
|
188
|
+
* @example
|
|
189
|
+
* ```js
|
|
190
|
+
* const embed = new SearchEmbed('#tsEmbed', {
|
|
191
|
+
* ... // other options
|
|
192
|
+
* answerId:'sed-1234',
|
|
193
|
+
* })
|
|
194
|
+
* ```
|
|
126
195
|
*/
|
|
127
196
|
answerId?: string;
|
|
128
197
|
/**
|
|
@@ -130,6 +199,13 @@ export interface SearchViewConfig
|
|
|
130
199
|
* The chart/table should still be visible.
|
|
131
200
|
*
|
|
132
201
|
* @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.5.0.sw
|
|
202
|
+
* @example
|
|
203
|
+
* ```js
|
|
204
|
+
* const embed = new SearchEmbed('#tsEmbed', {
|
|
205
|
+
* ... // other options
|
|
206
|
+
* hideSearchBar:true,
|
|
207
|
+
* })
|
|
208
|
+
* ```
|
|
133
209
|
*/
|
|
134
210
|
hideSearchBar?: boolean;
|
|
135
211
|
/**
|
|
@@ -137,6 +213,13 @@ export interface SearchViewConfig
|
|
|
137
213
|
*
|
|
138
214
|
* @default false
|
|
139
215
|
* @version SDK: 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
216
|
+
* @example
|
|
217
|
+
* ```js
|
|
218
|
+
* const embed = new SearchEmbed('#tsEmbed', {
|
|
219
|
+
* ... // other options
|
|
220
|
+
* dataPanelV2:false,
|
|
221
|
+
* })
|
|
222
|
+
* ```
|
|
140
223
|
*/
|
|
141
224
|
dataPanelV2?: boolean;
|
|
142
225
|
/**
|
|
@@ -190,13 +273,14 @@ export class SearchEmbed extends TsEmbed {
|
|
|
190
273
|
protected getEmbedParams(): string {
|
|
191
274
|
const {
|
|
192
275
|
hideResults,
|
|
276
|
+
expandAllDataSource,
|
|
193
277
|
enableSearchAssist,
|
|
194
278
|
forceTable,
|
|
195
279
|
searchOptions,
|
|
196
280
|
runtimeFilters,
|
|
197
281
|
dataSource,
|
|
198
282
|
dataSources,
|
|
199
|
-
excludeRuntimeFiltersfromURL,
|
|
283
|
+
excludeRuntimeFiltersfromURL = true,
|
|
200
284
|
hideSearchBar,
|
|
201
285
|
dataPanelV2 = false,
|
|
202
286
|
useLastSelectedSources = false,
|
|
@@ -281,18 +365,18 @@ export class SearchEmbed extends TsEmbed {
|
|
|
281
365
|
/**
|
|
282
366
|
* Render the embedded ThoughtSpot search
|
|
283
367
|
*/
|
|
284
|
-
public render(): SearchEmbed {
|
|
368
|
+
public async render(): Promise<SearchEmbed> {
|
|
285
369
|
super.render();
|
|
286
370
|
const { answerId } = this.viewConfig;
|
|
287
371
|
|
|
288
372
|
const src = this.getIFrameSrc();
|
|
289
|
-
this.renderIFrame(src);
|
|
373
|
+
await this.renderIFrame(src);
|
|
290
374
|
getAuthPromise().then(() => {
|
|
291
375
|
if (
|
|
292
376
|
checkReleaseVersionInBeta(
|
|
293
377
|
getReleaseVersion(),
|
|
294
378
|
getEmbedConfig().suppressSearchEmbedBetaWarning
|
|
295
|
-
|
|
379
|
+
|| getEmbedConfig().suppressErrorAlerts,
|
|
296
380
|
)
|
|
297
381
|
) {
|
|
298
382
|
alert(ERROR_MESSAGE.SEARCHEMBED_BETA_WRANING_MESSAGE);
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import {
|
|
2
|
+
init, AuthType, LiveboardEmbed, HostEvent,
|
|
3
|
+
} from '../index';
|
|
4
|
+
import {
|
|
5
|
+
executeAfterWait,
|
|
6
|
+
getDocumentBody,
|
|
7
|
+
getIFrameEl,
|
|
8
|
+
getRootEl,
|
|
9
|
+
} from '../test/test-utils';
|
|
10
|
+
|
|
11
|
+
describe('Trigger', () => {
|
|
12
|
+
beforeEach(() => {
|
|
13
|
+
document.body.innerHTML = getDocumentBody();
|
|
14
|
+
});
|
|
15
|
+
test('should trigger the event', async (done) => {
|
|
16
|
+
init({
|
|
17
|
+
thoughtSpotHost: 'https://tshost',
|
|
18
|
+
authType: AuthType.None,
|
|
19
|
+
});
|
|
20
|
+
const lb = new LiveboardEmbed(getRootEl(), {
|
|
21
|
+
frameParams: {
|
|
22
|
+
width: '100%',
|
|
23
|
+
height: '100%',
|
|
24
|
+
},
|
|
25
|
+
liveboardId: '123',
|
|
26
|
+
});
|
|
27
|
+
const val = await lb.render();
|
|
28
|
+
const iframe = getIFrameEl();
|
|
29
|
+
jest.spyOn(iframe.contentWindow, 'postMessage');
|
|
30
|
+
executeAfterWait(() => {
|
|
31
|
+
lb.trigger(HostEvent.DownloadAsCsv, { vizId: 'testId' });
|
|
32
|
+
expect(iframe.contentWindow.postMessage).toHaveBeenCalledWith(expect.objectContaining({
|
|
33
|
+
type: HostEvent.DownloadAsCsv,
|
|
34
|
+
data: { vizId: 'testId' },
|
|
35
|
+
}), 'https://tshost', expect.anything());
|
|
36
|
+
done();
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
});
|