@thoughtspot/visual-embed-sdk 1.27.9 → 1.27.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/package.json +2 -2
- package/cjs/src/embed/app.d.ts +144 -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.map +1 -1
- package/cjs/src/embed/base.js +0 -3
- package/cjs/src/embed/base.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 +80 -1
- package/cjs/src/embed/search.d.ts.map +1 -1
- package/cjs/src/embed/search.js +3 -3
- 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 +1 -1
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +14 -11
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +50 -17
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/index.d.ts +5 -3
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js +6 -1
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/mixpanel-service.d.ts +1 -0
- package/cjs/src/mixpanel-service.d.ts.map +1 -1
- package/cjs/src/mixpanel-service.js +1 -0
- package/cjs/src/mixpanel-service.js.map +1 -1
- package/cjs/src/react/all-types-export.d.ts +1 -1
- package/cjs/src/react/all-types-export.d.ts.map +1 -1
- package/cjs/src/react/all-types-export.js +2 -1
- package/cjs/src/react/all-types-export.js.map +1 -1
- package/cjs/src/react/index.spec.js +1 -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 +295 -44
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +119 -21
- 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 +8 -2
- 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/cjs/src/utils/graphql/answerService/answerService.d.ts +56 -2
- package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/cjs/src/utils/graphql/answerService/answerService.js +55 -0
- package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -1
- package/dist/src/embed/app.d.ts +144 -7
- package/dist/src/embed/app.d.ts.map +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 +80 -1
- 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 +1 -1
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/index.d.ts +5 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/mixpanel-service.d.ts +1 -0
- package/dist/src/mixpanel-service.d.ts.map +1 -1
- package/dist/src/react/all-types-export.d.ts +1 -1
- package/dist/src/react/all-types-export.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 +295 -44
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/authService/authService.d.ts.map +1 -1
- package/dist/src/utils/graphql/answerService/answerService.d.ts +56 -2
- package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +219 -47
- package/dist/tsembed-react.js +212 -47
- package/dist/tsembed.es.js +336 -167
- package/dist/tsembed.js +15335 -15170
- package/dist/visual-embed-sdk-react-full.d.ts +769 -66
- package/dist/visual-embed-sdk-react.d.ts +769 -66
- package/dist/visual-embed-sdk.d.ts +769 -66
- package/lib/package.json +2 -2
- package/lib/src/embed/app.d.ts +144 -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.map +1 -1
- package/lib/src/embed/base.js +0 -3
- package/lib/src/embed/base.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 +80 -1
- package/lib/src/embed/search.d.ts.map +1 -1
- package/lib/src/embed/search.js +3 -3
- 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 +1 -1
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +14 -11
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +44 -11
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/index.d.ts +5 -3
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +3 -3
- package/lib/src/index.js.map +1 -1
- package/lib/src/mixpanel-service.d.ts +1 -0
- package/lib/src/mixpanel-service.d.ts.map +1 -1
- package/lib/src/mixpanel-service.js +1 -0
- package/lib/src/mixpanel-service.js.map +1 -1
- package/lib/src/react/all-types-export.d.ts +1 -1
- package/lib/src/react/all-types-export.d.ts.map +1 -1
- package/lib/src/react/all-types-export.js +1 -1
- package/lib/src/react/all-types-export.js.map +1 -1
- package/lib/src/react/index.spec.js +1 -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 +295 -44
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +119 -21
- 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 +8 -2
- package/lib/src/utils/authService/authService.js.map +1 -1
- package/lib/src/utils/authService/authService.spec.js +22 -0
- package/lib/src/utils/authService/authService.spec.js.map +1 -1
- package/lib/src/utils/graphql/answerService/answerService.d.ts +56 -2
- package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/lib/src/utils/graphql/answerService/answerService.js +55 -0
- package/lib/src/utils/graphql/answerService/answerService.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +778 -69
- package/package.json +2 -2
- package/src/embed/app.spec.ts +24 -1
- package/src/embed/app.ts +148 -13
- package/src/embed/base.ts +1 -5
- 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 +82 -3
- package/src/embed/ts-embed-trigger.spec.ts +39 -0
- package/src/embed/ts-embed.spec.ts +46 -11
- package/src/embed/ts-embed.ts +18 -14
- package/src/index.ts +12 -1
- package/src/mixpanel-service.ts +1 -0
- package/src/react/all-types-export.ts +1 -0
- package/src/react/index.spec.tsx +1 -0
- package/src/test/test-utils.ts +9 -0
- package/src/tokenizedFetch.ts +9 -0
- package/src/types.ts +296 -42
- package/src/utils/authService/authService.spec.ts +27 -0
- package/src/utils/authService/authService.ts +13 -12
- package/src/utils/graphql/answerService/answerService.ts +56 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thoughtspot/visual-embed-sdk",
|
|
3
|
-
"version": "1.27.
|
|
3
|
+
"version": "1.27.11",
|
|
4
4
|
"description": "ThoughtSpot Embed SDK",
|
|
5
5
|
"module": "lib/src/index.js",
|
|
6
6
|
"main": "dist/tsembed.js",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"size-limit": [
|
|
39
39
|
{
|
|
40
40
|
"path": "dist/tsembed.js",
|
|
41
|
-
"limit": "
|
|
41
|
+
"limit": "45 kB"
|
|
42
42
|
}
|
|
43
43
|
],
|
|
44
44
|
"scripts": {
|
package/src/embed/app.spec.ts
CHANGED
|
@@ -213,6 +213,7 @@ describe('App embed tests', () => {
|
|
|
213
213
|
values: [1000],
|
|
214
214
|
},
|
|
215
215
|
],
|
|
216
|
+
excludeRuntimeFiltersfromURL: false,
|
|
216
217
|
} as AppViewConfig);
|
|
217
218
|
|
|
218
219
|
appEmbed.render();
|
|
@@ -224,7 +225,7 @@ describe('App embed tests', () => {
|
|
|
224
225
|
});
|
|
225
226
|
});
|
|
226
227
|
|
|
227
|
-
test('should not
|
|
228
|
+
test('should not append runtime filters in URL if excludeRuntimeFiltersfromURL is true', async () => {
|
|
228
229
|
const appEmbed = new AppEmbed(getRootEl(), {
|
|
229
230
|
...defaultViewConfig,
|
|
230
231
|
showPrimaryNavbar: true,
|
|
@@ -247,6 +248,28 @@ describe('App embed tests', () => {
|
|
|
247
248
|
});
|
|
248
249
|
});
|
|
249
250
|
|
|
251
|
+
test('should not append runtime filters in URL if excludeRuntimeFiltersfromURL is undefined', async () => {
|
|
252
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
253
|
+
...defaultViewConfig,
|
|
254
|
+
showPrimaryNavbar: true,
|
|
255
|
+
runtimeFilters: [
|
|
256
|
+
{
|
|
257
|
+
columnName: 'sales',
|
|
258
|
+
operator: RuntimeFilterOp.EQ,
|
|
259
|
+
values: [1000],
|
|
260
|
+
},
|
|
261
|
+
],
|
|
262
|
+
} as AppViewConfig);
|
|
263
|
+
|
|
264
|
+
appEmbed.render();
|
|
265
|
+
await executeAfterWait(() => {
|
|
266
|
+
expectUrlMatchesWithParams(
|
|
267
|
+
getIFrameSrc(),
|
|
268
|
+
`http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=false&profileAndHelpInNavBarHidden=false${defaultParams}${defaultParamsPost}#/home`,
|
|
269
|
+
);
|
|
270
|
+
});
|
|
271
|
+
});
|
|
272
|
+
|
|
250
273
|
test('should disable and hide actions', async () => {
|
|
251
274
|
const appEmbed = new AppEmbed(getRootEl(), {
|
|
252
275
|
...defaultViewConfig,
|
package/src/embed/app.ts
CHANGED
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
import { logger } from '../utils/logger';
|
|
13
|
-
import { getQueryParamString } from '../utils';
|
|
14
12
|
import {
|
|
15
|
-
|
|
13
|
+
DOMSelector, EmbedEvent, HostEvent, MessagePayload, Param, ViewConfig,
|
|
16
14
|
} from '../types';
|
|
15
|
+
import { getQueryParamString } from '../utils';
|
|
16
|
+
import { logger } from '../utils/logger';
|
|
17
17
|
import { V1Embed } from './ts-embed';
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -61,6 +61,16 @@ export interface AppViewConfig extends Omit<ViewConfig, 'visibleTabs'> {
|
|
|
61
61
|
* If true, the top navigation bar within the ThoughtSpot app
|
|
62
62
|
* is displayed. By default, the navigation bar is hidden.
|
|
63
63
|
* This flag also controls the homepage left navigation bar.
|
|
64
|
+
*
|
|
65
|
+
* @default true
|
|
66
|
+
* @version SDK: 1.2.0 | Thoughtspot: 8.4.0.cl
|
|
67
|
+
* @example
|
|
68
|
+
* ```js
|
|
69
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
70
|
+
* ... // other options
|
|
71
|
+
* showPrimaryNavbar:true,
|
|
72
|
+
* })
|
|
73
|
+
* ```
|
|
64
74
|
*/
|
|
65
75
|
showPrimaryNavbar?: boolean;
|
|
66
76
|
/**
|
|
@@ -69,23 +79,73 @@ export interface AppViewConfig extends Omit<ViewConfig, 'visibleTabs'> {
|
|
|
69
79
|
* nav-bars are visible, this flag will only hide the homepage left nav-bar.
|
|
70
80
|
* The showPrimaryNavbar flag takes precedence over the hideHomepageLeftNav.
|
|
71
81
|
*
|
|
82
|
+
* **Note**: This option does not apply to the classic homepage.
|
|
83
|
+
* To access the updated modular homepage, set
|
|
84
|
+
* `modularHomeExperience` to `true` (available in Early Access from 9.12 forward).
|
|
85
|
+
*
|
|
72
86
|
* @default false
|
|
73
|
-
* @version SDK: 1.27.
|
|
87
|
+
* @version SDK: 1.27.9 | Thoughtspot: 9.12.0.cl
|
|
88
|
+
* @example
|
|
89
|
+
* ```js
|
|
90
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
91
|
+
* ... // other options
|
|
92
|
+
* hideHomepageLeftNav : true,
|
|
93
|
+
* })
|
|
94
|
+
* ```
|
|
74
95
|
*/
|
|
75
96
|
hideHomepageLeftNav?: boolean;
|
|
76
97
|
/**
|
|
77
98
|
* Control the visibility of the help (?) and profile buttons on the
|
|
78
99
|
* Global nav-bar. By default, these buttons are visible on the nav-bar.
|
|
100
|
+
*
|
|
101
|
+
* @default false
|
|
102
|
+
* @version SDK: 1.2.0 | Thoughtspot: 8.4.0.cl
|
|
103
|
+
* @example
|
|
104
|
+
* ```js
|
|
105
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
106
|
+
* ... // other options
|
|
107
|
+
* disableProfileAndHelp: true,
|
|
108
|
+
* })
|
|
109
|
+
* ```
|
|
79
110
|
*/
|
|
80
111
|
disableProfileAndHelp?: boolean;
|
|
81
112
|
/**
|
|
82
113
|
* Control the visibility of the application switcher button on the nav-bar.
|
|
83
114
|
* By default, the application switcher is shown.
|
|
115
|
+
*
|
|
116
|
+
* **Note**: This option does not apply to the classic homepage.
|
|
117
|
+
* To access the updated modular homepage, set
|
|
118
|
+
* `modularHomeExperience` to `true` (available in Early Access from 9.12 forward).
|
|
119
|
+
*
|
|
120
|
+
* @default false
|
|
121
|
+
* @version SDK: 1.2.0 | Thoughtspot: 8.4.0.cl
|
|
122
|
+
* @example
|
|
123
|
+
* ```js
|
|
124
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
125
|
+
* ... // other options
|
|
126
|
+
* hideApplicationSwitcher : true,
|
|
127
|
+
* })
|
|
128
|
+
* ```
|
|
84
129
|
*/
|
|
85
130
|
hideApplicationSwitcher?: boolean;
|
|
86
131
|
/**
|
|
87
132
|
* Control the visibility of the Org switcher button on the nav-bar.
|
|
88
133
|
* By default, the Org switcher button is shown.
|
|
134
|
+
*
|
|
135
|
+
* **Note**: This option does not apply to the classic homepage.
|
|
136
|
+
* To access the updated modular homepage, set
|
|
137
|
+
* `modularHomeExperience` to `true` (available in Early Access from 9.12 forward).
|
|
138
|
+
*
|
|
139
|
+
*
|
|
140
|
+
* @default true
|
|
141
|
+
* @version SDK: 1.2.0 | Thoughtspot: 9.4.0.cl
|
|
142
|
+
* @example
|
|
143
|
+
* ```js
|
|
144
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
145
|
+
* ... // other options
|
|
146
|
+
* hideOrgSwitcher : true,
|
|
147
|
+
* })
|
|
148
|
+
* ```
|
|
89
149
|
*/
|
|
90
150
|
hideOrgSwitcher?: boolean;
|
|
91
151
|
/**
|
|
@@ -97,9 +157,13 @@ export interface AppViewConfig extends Omit<ViewConfig, 'visibleTabs'> {
|
|
|
97
157
|
* For eg, if you want the component to open to a specific Liveboard
|
|
98
158
|
* you could set the path to `pinboard/<liveboardId>/tab/<tabId>`.
|
|
99
159
|
*
|
|
160
|
+
* @version SDK: 1.1.0 | Thoughtspot: 9.4.0.cl
|
|
100
161
|
* @example
|
|
101
|
-
* ```
|
|
102
|
-
*
|
|
162
|
+
* ```js
|
|
163
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
164
|
+
* ... // other options
|
|
165
|
+
* path:"pinboard/1234/tab/7464"
|
|
166
|
+
* })
|
|
103
167
|
* ```
|
|
104
168
|
*/
|
|
105
169
|
path?: string;
|
|
@@ -109,16 +173,46 @@ export interface AppViewConfig extends Omit<ViewConfig, 'visibleTabs'> {
|
|
|
109
173
|
*
|
|
110
174
|
* Use this to open to particular page in the app. To open to a specific
|
|
111
175
|
* path within the app, use the `path` attribute which is more flexible.
|
|
176
|
+
*
|
|
177
|
+
* @version SDK: 1.1.0 | Thoughtspot: 9.4.0.cl
|
|
178
|
+
* @example
|
|
179
|
+
* ```js
|
|
180
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
181
|
+
* ... // other options
|
|
182
|
+
* pageId : Page.Answers | Page.Data
|
|
183
|
+
* })
|
|
184
|
+
* ```
|
|
112
185
|
*/
|
|
113
186
|
pageId?: Page;
|
|
114
187
|
/**
|
|
115
188
|
* This puts a filter tag on the application. All metadata lists in the
|
|
116
189
|
* application, such as Liveboards and answers, would be filtered by this
|
|
117
190
|
* tag.
|
|
191
|
+
*
|
|
192
|
+
* @version SDK: 1.1.0 | Thoughtspot: 9.4.0.cl
|
|
193
|
+
* @example
|
|
194
|
+
* ```js
|
|
195
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
196
|
+
* ... // other options
|
|
197
|
+
* tag:'value',
|
|
198
|
+
* })
|
|
199
|
+
* ```
|
|
118
200
|
*/
|
|
119
201
|
tag?: string;
|
|
120
202
|
/**
|
|
121
203
|
* The array of GUIDs to be hidden
|
|
204
|
+
*
|
|
205
|
+
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1-sw
|
|
206
|
+
* @example
|
|
207
|
+
* ```js
|
|
208
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
209
|
+
* ... // other options
|
|
210
|
+
* hideObjects: [
|
|
211
|
+
* '430496d6-6903-4601-937e-2c691821af3c',
|
|
212
|
+
* 'f547ec54-2a37-4516-a222-2b06719af726'
|
|
213
|
+
* ]
|
|
214
|
+
* })
|
|
215
|
+
* ```
|
|
122
216
|
*/
|
|
123
217
|
hideObjects?: string[];
|
|
124
218
|
/**
|
|
@@ -132,7 +226,15 @@ export interface AppViewConfig extends Omit<ViewConfig, 'visibleTabs'> {
|
|
|
132
226
|
/**
|
|
133
227
|
* If set to true, the Search Assist feature is enabled.
|
|
134
228
|
*
|
|
229
|
+
* @default true
|
|
135
230
|
* @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1-sw
|
|
231
|
+
* @example
|
|
232
|
+
* ```js
|
|
233
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
234
|
+
* ... // other options
|
|
235
|
+
* enableSearchAssist: true,
|
|
236
|
+
* })
|
|
237
|
+
* ```
|
|
136
238
|
*/
|
|
137
239
|
enableSearchAssist?: boolean;
|
|
138
240
|
/**
|
|
@@ -140,6 +242,13 @@ export interface AppViewConfig extends Omit<ViewConfig, 'visibleTabs'> {
|
|
|
140
242
|
* according to the height of the pages which support fullHeight mode.
|
|
141
243
|
*
|
|
142
244
|
* @version SDK: 1.21.0 | ThoughtSpot: 9.4.0.cl, 9.4.0-sw
|
|
245
|
+
* @example
|
|
246
|
+
* ```js
|
|
247
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
248
|
+
* ... // other options
|
|
249
|
+
* fullHeight: true,
|
|
250
|
+
* })
|
|
251
|
+
* ```
|
|
143
252
|
*/
|
|
144
253
|
fullHeight?: boolean;
|
|
145
254
|
/**
|
|
@@ -155,6 +264,13 @@ export interface AppViewConfig extends Omit<ViewConfig, 'visibleTabs'> {
|
|
|
155
264
|
*
|
|
156
265
|
* @version SDK: 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
157
266
|
* @default false
|
|
267
|
+
* @example
|
|
268
|
+
* ```js
|
|
269
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
270
|
+
* ... // other options
|
|
271
|
+
* hideLiveboardHeader : true,
|
|
272
|
+
* })
|
|
273
|
+
* ```
|
|
158
274
|
*/
|
|
159
275
|
hideLiveboardHeader?: boolean;
|
|
160
276
|
/**
|
|
@@ -162,6 +278,13 @@ export interface AppViewConfig extends Omit<ViewConfig, 'visibleTabs'> {
|
|
|
162
278
|
*
|
|
163
279
|
* @version SDK: 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
164
280
|
* @default false
|
|
281
|
+
* @example
|
|
282
|
+
* ```js
|
|
283
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
284
|
+
* ... // other options
|
|
285
|
+
* showLiveboardTitle:true,
|
|
286
|
+
* })
|
|
287
|
+
* ```
|
|
165
288
|
*/
|
|
166
289
|
showLiveboardTitle?: boolean;
|
|
167
290
|
/**
|
|
@@ -169,13 +292,27 @@ export interface AppViewConfig extends Omit<ViewConfig, 'visibleTabs'> {
|
|
|
169
292
|
*
|
|
170
293
|
* @version SDK: 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
171
294
|
* @default false
|
|
295
|
+
* @example
|
|
296
|
+
* ```js
|
|
297
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
298
|
+
* ... // other options
|
|
299
|
+
* showLiveboardDescription:true,
|
|
300
|
+
* })
|
|
301
|
+
* ```
|
|
172
302
|
*/
|
|
173
303
|
showLiveboardDescription?: boolean;
|
|
174
304
|
/**
|
|
175
|
-
* Flag to control new Modular Home experience
|
|
305
|
+
* Flag to control new Modular Home experience.
|
|
176
306
|
*
|
|
177
307
|
* @default false
|
|
178
|
-
* @version SDK: 1.27.
|
|
308
|
+
* @version SDK: 1.27.9 | Thoughtspot: 9.12.0.cl
|
|
309
|
+
* @example
|
|
310
|
+
* ```js
|
|
311
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
312
|
+
* ... // other options
|
|
313
|
+
* modularHomeExperience : true,
|
|
314
|
+
* })
|
|
315
|
+
* ```
|
|
179
316
|
*/
|
|
180
317
|
modularHomeExperience?: boolean;
|
|
181
318
|
/**
|
|
@@ -295,9 +432,7 @@ export class AppEmbed extends V1Embed {
|
|
|
295
432
|
* @param pageId The ID of the page to be embedded.
|
|
296
433
|
*/
|
|
297
434
|
public getIFrameSrc(): string {
|
|
298
|
-
const {
|
|
299
|
-
pageId, path, modularHomeExperience,
|
|
300
|
-
} = this.viewConfig;
|
|
435
|
+
const { pageId, path, modularHomeExperience } = this.viewConfig;
|
|
301
436
|
const pageRoute = this.formatPath(path) || this.getPageRoute(pageId, modularHomeExperience);
|
|
302
437
|
let url = `${this.getRootIframeSrc()}/${pageRoute}`;
|
|
303
438
|
|
|
@@ -414,10 +549,10 @@ export class AppEmbed extends V1Embed {
|
|
|
414
549
|
* @param renderOptions An object containing the page ID
|
|
415
550
|
* to be embedded.
|
|
416
551
|
*/
|
|
417
|
-
public render(): AppEmbed {
|
|
552
|
+
public async render(): Promise<AppEmbed> {
|
|
418
553
|
super.render();
|
|
419
554
|
const src = this.getIFrameSrc();
|
|
420
|
-
this.renderV1Embed(src);
|
|
555
|
+
await this.renderV1Embed(src);
|
|
421
556
|
|
|
422
557
|
return this;
|
|
423
558
|
}
|
package/src/embed/base.ts
CHANGED
|
@@ -133,10 +133,6 @@ function sanity(embedConfig: EmbedConfig) {
|
|
|
133
133
|
throw new Error('ThoughtSpot host not provided');
|
|
134
134
|
}
|
|
135
135
|
if (embedConfig.authType === AuthType.TrustedAuthToken) {
|
|
136
|
-
if (!embedConfig.username) {
|
|
137
|
-
throw new Error('Username not provided with Trusted auth');
|
|
138
|
-
}
|
|
139
|
-
|
|
140
136
|
if (!embedConfig.authEndpoint && typeof embedConfig.getAuthToken !== 'function') {
|
|
141
137
|
throw new Error('Trusted auth should provide either authEndpoint or getAuthToken');
|
|
142
138
|
}
|
|
@@ -253,7 +249,7 @@ export const renderInQueue = (fn: (next?: (val?: any) => void) => Promise<any>):
|
|
|
253
249
|
return renderQueue;
|
|
254
250
|
}
|
|
255
251
|
// Sending an empty function to keep it consistent with the above usage.
|
|
256
|
-
return fn(() => {}); // eslint-disable-line @typescript-eslint/no-empty-function
|
|
252
|
+
return fn(() => { }); // eslint-disable-line @typescript-eslint/no-empty-function
|
|
257
253
|
};
|
|
258
254
|
|
|
259
255
|
/**
|
package/src/embed/embed.spec.ts
CHANGED
|
@@ -50,24 +50,6 @@ describe('test view config', () => {
|
|
|
50
50
|
expect(iframe.style.height).toBe(`${height}px`);
|
|
51
51
|
});
|
|
52
52
|
});
|
|
53
|
-
|
|
54
|
-
test('trying to register event handler after render should throw error', async () => {
|
|
55
|
-
spyOn(logger, 'error');
|
|
56
|
-
const onErrorSpy = jest.fn();
|
|
57
|
-
const searchEmbed = new SearchEmbed(getRootEl(), defaultViewConfig);
|
|
58
|
-
searchEmbed
|
|
59
|
-
.on(EmbedEvent.Error, onErrorSpy)
|
|
60
|
-
.render()
|
|
61
|
-
.on(EmbedEvent.Load, () => null);
|
|
62
|
-
await executeAfterWait(() => {
|
|
63
|
-
expect(onErrorSpy).toHaveBeenCalledWith(
|
|
64
|
-
{
|
|
65
|
-
error: 'Please register event handlers before calling render',
|
|
66
|
-
},
|
|
67
|
-
expect.any(Function),
|
|
68
|
-
);
|
|
69
|
-
}, EVENT_WAIT_TIME);
|
|
70
|
-
});
|
|
71
53
|
});
|
|
72
54
|
|
|
73
55
|
describe('Custom CSS Url', () => {
|
|
@@ -182,6 +182,7 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
182
182
|
values: [1000],
|
|
183
183
|
},
|
|
184
184
|
],
|
|
185
|
+
excludeRuntimeFiltersfromURL: false,
|
|
185
186
|
} as LiveboardViewConfig);
|
|
186
187
|
liveboardEmbed.render();
|
|
187
188
|
await executeAfterWait(() => {
|
|
@@ -208,7 +209,29 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
208
209
|
});
|
|
209
210
|
});
|
|
210
211
|
|
|
211
|
-
test('should not
|
|
212
|
+
test('should not append runtime filters in URL if excludeRuntimeFiltersfromURL is true', async () => {
|
|
213
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
214
|
+
...defaultViewConfig,
|
|
215
|
+
liveboardId,
|
|
216
|
+
vizId,
|
|
217
|
+
runtimeFilters: [
|
|
218
|
+
{
|
|
219
|
+
columnName: 'sales',
|
|
220
|
+
operator: RuntimeFilterOp.EQ,
|
|
221
|
+
values: [1000],
|
|
222
|
+
},
|
|
223
|
+
],
|
|
224
|
+
} as LiveboardViewConfig);
|
|
225
|
+
liveboardEmbed.render();
|
|
226
|
+
await executeAfterWait(() => {
|
|
227
|
+
expectUrlMatchesWithParams(
|
|
228
|
+
getIFrameSrc(),
|
|
229
|
+
`http://${thoughtSpotHost}/?embedApp=true${defaultParams}${prefixParamsVizEmbed}#/embed/viz/${liveboardId}/${vizId}`,
|
|
230
|
+
);
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
|
|
234
|
+
test('should not append runtime filters in URL if excludeRuntimeFiltersfromURL is undefined', async () => {
|
|
212
235
|
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
213
236
|
...defaultViewConfig,
|
|
214
237
|
liveboardId,
|
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 {}
|