@thoughtspot/visual-embed-sdk 1.20.1 → 1.21.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/src/auth.d.ts +48 -3
- package/dist/src/auth.d.ts.map +1 -1
- package/dist/src/config.d.ts +1 -0
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/embed/app.d.ts +17 -5
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/base.d.ts +20 -9
- package/dist/src/embed/base.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +17 -5
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/search-bar.d.ts +3 -0
- package/dist/src/embed/search-bar.d.ts.map +1 -1
- package/dist/src/embed/search.d.ts +9 -5
- package/dist/src/embed/search.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +64 -6
- 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 +8 -0
- 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 +4 -0
- package/dist/src/react/util.d.ts.map +1 -1
- package/dist/src/test/test-utils.d.ts +11 -2
- package/dist/src/test/test-utils.d.ts.map +1 -1
- package/dist/src/types.d.ts +273 -76
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/answerService.d.ts +7 -0
- package/dist/src/utils/answerService.d.ts.map +1 -1
- package/dist/src/utils/authService.d.ts +30 -0
- package/dist/src/utils/authService.d.ts.map +1 -1
- package/dist/src/utils/processData.d.ts +12 -0
- package/dist/src/utils/processData.d.ts.map +1 -1
- package/dist/src/utils/processTrigger.d.ts +7 -0
- package/dist/src/utils/processTrigger.d.ts.map +1 -1
- package/dist/src/utils.d.ts +12 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/tsembed.es.js +667 -264
- package/dist/tsembed.js +659 -263
- package/lib/package.json +3 -8
- package/lib/src/auth.d.ts +48 -3
- package/lib/src/auth.d.ts.map +1 -1
- package/lib/src/auth.js +70 -25
- package/lib/src/auth.js.map +1 -1
- package/lib/src/auth.spec.js +14 -5
- package/lib/src/auth.spec.js.map +1 -1
- package/lib/src/config.d.ts +1 -0
- package/lib/src/config.d.ts.map +1 -1
- package/lib/src/config.js +5 -3
- package/lib/src/config.js.map +1 -1
- package/lib/src/config.spec.js.map +1 -1
- package/lib/src/embed/app.d.ts +17 -5
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +25 -15
- 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 +20 -9
- package/lib/src/embed/base.d.ts.map +1 -1
- package/lib/src/embed/base.js +31 -15
- 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 +17 -5
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +49 -37
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +37 -30
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/pinboard.spec.js +14 -26
- package/lib/src/embed/pinboard.spec.js.map +1 -1
- package/lib/src/embed/search-bar.d.ts +3 -0
- package/lib/src/embed/search-bar.d.ts.map +1 -1
- package/lib/src/embed/search-bar.js +5 -6
- package/lib/src/embed/search-bar.js.map +1 -1
- package/lib/src/embed/search.d.ts +9 -5
- package/lib/src/embed/search.d.ts.map +1 -1
- package/lib/src/embed/search.js +18 -14
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/search.spec.js +16 -19
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/searchEmbed-basic-auth.spec.js +4 -0
- package/lib/src/embed/searchEmbed-basic-auth.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +64 -6
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +147 -74
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +46 -24
- 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 +8 -0
- package/lib/src/mixpanel-service.d.ts.map +1 -1
- package/lib/src/mixpanel-service.js +13 -1
- 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 +15 -6
- package/lib/src/react/index.spec.js.map +1 -1
- package/lib/src/react/util.d.ts +4 -0
- package/lib/src/react/util.d.ts.map +1 -1
- package/lib/src/react/util.js +4 -0
- package/lib/src/react/util.js.map +1 -1
- package/lib/src/test/test-utils.d.ts +11 -2
- package/lib/src/test/test-utils.d.ts.map +1 -1
- package/lib/src/test/test-utils.js +36 -25
- package/lib/src/test/test-utils.js.map +1 -1
- package/lib/src/types.d.ts +273 -76
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +200 -54
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/answerService.d.ts +7 -0
- package/lib/src/utils/answerService.d.ts.map +1 -1
- package/lib/src/utils/answerService.js +7 -0
- 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 +30 -0
- package/lib/src/utils/authService.d.ts.map +1 -1
- package/lib/src/utils/authService.js +39 -2
- 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 +12 -0
- package/lib/src/utils/processData.d.ts.map +1 -1
- package/lib/src/utils/processData.js +33 -5
- 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 +7 -0
- package/lib/src/utils/processTrigger.d.ts.map +1 -1
- package/lib/src/utils/processTrigger.js +17 -3
- 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 +12 -0
- package/lib/src/utils.d.ts.map +1 -1
- package/lib/src/utils.js +24 -19
- 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 +437 -103
- package/package.json +3 -8
- package/src/auth.spec.ts +68 -150
- package/src/auth.ts +115 -109
- package/src/config.spec.ts +2 -4
- package/src/config.ts +5 -3
- package/src/embed/app.spec.ts +25 -14
- package/src/embed/app.ts +47 -35
- package/src/embed/base.spec.ts +3 -9
- package/src/embed/base.ts +51 -53
- package/src/embed/embed.spec.ts +5 -6
- package/src/embed/liveboard.spec.ts +56 -37
- package/src/embed/liveboard.ts +66 -64
- package/src/embed/pinboard.spec.ts +26 -29
- package/src/embed/search-bar.tsx +10 -8
- package/src/embed/search.spec.ts +31 -21
- package/src/embed/search.ts +26 -25
- package/src/embed/searchEmbed-basic-auth.spec.ts +22 -28
- package/src/embed/ts-embed.spec.ts +99 -144
- package/src/embed/ts-embed.ts +181 -159
- package/src/errors.ts +3 -6
- package/src/index.ts +4 -10
- package/src/mixpanel-service.spec.ts +1 -3
- package/src/mixpanel-service.ts +13 -1
- package/src/react/index.spec.tsx +37 -13
- package/src/react/index.tsx +38 -57
- package/src/react/util.ts +8 -4
- package/src/test/test-utils.ts +43 -39
- package/src/types.ts +270 -78
- package/src/utils/answerService.spec.ts +3 -5
- package/src/utils/answerService.ts +21 -17
- package/src/utils/authService.spec.ts +26 -41
- package/src/utils/authService.ts +47 -21
- package/src/utils/processData.spec.ts +26 -59
- package/src/utils/processData.ts +36 -14
- package/src/utils/processTrigger.spec.ts +1 -6
- package/src/utils/processTrigger.ts +18 -9
- package/src/utils.spec.ts +8 -12
- package/src/utils.ts +25 -26
package/src/embed/search.ts
CHANGED
|
@@ -15,11 +15,7 @@ import {
|
|
|
15
15
|
ViewConfig,
|
|
16
16
|
RuntimeFilter,
|
|
17
17
|
} from '../types';
|
|
18
|
-
import {
|
|
19
|
-
getQueryParamString,
|
|
20
|
-
checkReleaseVersionInBeta,
|
|
21
|
-
getFilterQuery,
|
|
22
|
-
} from '../utils';
|
|
18
|
+
import { getQueryParamString, checkReleaseVersionInBeta, getFilterQuery } from '../utils';
|
|
23
19
|
import { TsEmbed } from './ts-embed';
|
|
24
20
|
import { version } from '../../package.json';
|
|
25
21
|
import { ERROR_MESSAGE } from '../errors';
|
|
@@ -37,7 +33,8 @@ export interface SearchOptions {
|
|
|
37
33
|
/**
|
|
38
34
|
* Boolean to determine if the search should be executed or not.
|
|
39
35
|
* if it is executed, put the focus on the results.
|
|
40
|
-
* if it’s not executed, put the focus in the search bar - at the end of
|
|
36
|
+
* if it’s not executed, put the focus in the search bar - at the end of
|
|
37
|
+
* the tokens
|
|
41
38
|
*/
|
|
42
39
|
executeSearch?: boolean;
|
|
43
40
|
}
|
|
@@ -63,12 +60,9 @@ export interface SearchViewConfig extends ViewConfig {
|
|
|
63
60
|
* using raw answer data.
|
|
64
61
|
*/
|
|
65
62
|
hideResults?: boolean;
|
|
66
|
-
/**
|
|
67
|
-
* If set to true, expands all the data sources panel.
|
|
68
|
-
*/
|
|
69
|
-
expandAllDataSource?: boolean;
|
|
70
63
|
/**
|
|
71
64
|
* If set to true, the Search Assist feature is enabled.
|
|
65
|
+
*
|
|
72
66
|
* @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1-sw
|
|
73
67
|
*/
|
|
74
68
|
enableSearchAssist?: boolean;
|
|
@@ -80,16 +74,19 @@ export interface SearchViewConfig extends ViewConfig {
|
|
|
80
74
|
/**
|
|
81
75
|
* The array of data source GUIDs to set on load.
|
|
82
76
|
* Only a single dataSource supported currently.
|
|
77
|
+
*
|
|
83
78
|
* @deprecated Use dataSource instead
|
|
84
79
|
*/
|
|
85
80
|
dataSources?: string[];
|
|
86
81
|
/**
|
|
87
82
|
* The array of data source GUIDs to set on load.
|
|
83
|
+
*
|
|
88
84
|
* @version: SDK: 1.19.0
|
|
89
85
|
*/
|
|
90
86
|
dataSource?: string;
|
|
91
87
|
/**
|
|
92
88
|
* The initial search query to load the answer with.
|
|
89
|
+
*
|
|
93
90
|
* @deprecated Use {@link searchOptions} instead
|
|
94
91
|
*/
|
|
95
92
|
searchQuery?: string;
|
|
@@ -104,6 +101,7 @@ export interface SearchViewConfig extends ViewConfig {
|
|
|
104
101
|
/**
|
|
105
102
|
* If set to true, search page will render without the Search Bar
|
|
106
103
|
* The chart/table should still be visible.
|
|
104
|
+
*
|
|
107
105
|
* @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
|
|
108
106
|
*/
|
|
109
107
|
hideSearchBar?: boolean;
|
|
@@ -149,23 +147,16 @@ export class SearchEmbed extends TsEmbed {
|
|
|
149
147
|
return dataSourceMode;
|
|
150
148
|
}
|
|
151
149
|
|
|
152
|
-
|
|
153
|
-
* Construct the URL of the embedded ThoughtSpot search to be
|
|
154
|
-
* loaded in the iframe
|
|
155
|
-
* @param answerId The GUID of a saved answer
|
|
156
|
-
* @param dataSources A list of data source GUIDs
|
|
157
|
-
*/
|
|
158
|
-
private getIFrameSrc(answerId: string, dataSources?: string[]) {
|
|
150
|
+
protected getEmbedParams(): string {
|
|
159
151
|
const {
|
|
160
152
|
hideResults,
|
|
161
|
-
expandAllDataSource,
|
|
162
153
|
enableSearchAssist,
|
|
163
154
|
forceTable,
|
|
164
155
|
searchOptions,
|
|
165
156
|
runtimeFilters,
|
|
166
157
|
dataSource,
|
|
158
|
+
dataSources,
|
|
167
159
|
} = this.viewConfig;
|
|
168
|
-
const answerPath = answerId ? `saved-answer/${answerId}` : 'answer';
|
|
169
160
|
const queryParams = this.getBaseQueryParams();
|
|
170
161
|
|
|
171
162
|
queryParams[Param.HideActions] = [
|
|
@@ -210,11 +201,21 @@ export class SearchEmbed extends TsEmbed {
|
|
|
210
201
|
if (filterQuery) {
|
|
211
202
|
query += `&${filterQuery}`;
|
|
212
203
|
}
|
|
204
|
+
return query;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Construct the URL of the embedded ThoughtSpot search to be
|
|
209
|
+
* loaded in the iframe
|
|
210
|
+
*
|
|
211
|
+
* @param answerId The GUID of a saved answer
|
|
212
|
+
* @param dataSources A list of data source GUIDs
|
|
213
|
+
*/
|
|
214
|
+
private getIFrameSrc(answerId: string) {
|
|
215
|
+
const answerPath = answerId ? `saved-answer/${answerId}` : 'answer';
|
|
213
216
|
const tsPostHashParams = this.getThoughtSpotPostUrlParams();
|
|
214
217
|
|
|
215
|
-
return `${this.
|
|
216
|
-
query,
|
|
217
|
-
)}/${answerPath}${tsPostHashParams}`;
|
|
218
|
+
return `${this.getRootIframeSrc()}/embed/${answerPath}${tsPostHashParams}`;
|
|
218
219
|
}
|
|
219
220
|
|
|
220
221
|
/**
|
|
@@ -222,10 +223,10 @@ export class SearchEmbed extends TsEmbed {
|
|
|
222
223
|
*/
|
|
223
224
|
public render(): SearchEmbed {
|
|
224
225
|
super.render();
|
|
225
|
-
const { answerId
|
|
226
|
+
const { answerId } = this.viewConfig;
|
|
226
227
|
|
|
227
|
-
const src = this.getIFrameSrc(answerId
|
|
228
|
-
this.renderIFrame(src
|
|
228
|
+
const src = this.getIFrameSrc(answerId);
|
|
229
|
+
this.renderIFrame(src);
|
|
229
230
|
getAuthPromise().then(() => {
|
|
230
231
|
if (
|
|
231
232
|
checkReleaseVersionInBeta(
|
|
@@ -19,27 +19,27 @@ init({
|
|
|
19
19
|
});
|
|
20
20
|
|
|
21
21
|
describe('Search embed tests when authType is Basic', () => {
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
* @param version
|
|
25
|
+
*/
|
|
22
26
|
function setupVersion(version: string) {
|
|
23
|
-
jest.spyOn(window, 'addEventListener').mockImplementationOnce(
|
|
24
|
-
(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
json: () => ({
|
|
37
|
-
...mockSessionInfo,
|
|
38
|
-
releaseVersion: version,
|
|
39
|
-
}),
|
|
40
|
-
status: 200,
|
|
27
|
+
jest.spyOn(window, 'addEventListener').mockImplementationOnce((event, handler, options) => {
|
|
28
|
+
handler({
|
|
29
|
+
data: {
|
|
30
|
+
type: 'xyz',
|
|
31
|
+
},
|
|
32
|
+
ports: [3000],
|
|
33
|
+
source: null,
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
jest.spyOn(authService, 'fetchSessionInfoService').mockImplementation(async () => ({
|
|
37
|
+
json: () => ({
|
|
38
|
+
...mockSessionInfo,
|
|
39
|
+
releaseVersion: version,
|
|
41
40
|
}),
|
|
42
|
-
|
|
41
|
+
status: 200,
|
|
42
|
+
}));
|
|
43
43
|
jest.spyOn(authInstance, 'getReleaseVersion').mockReturnValue(version);
|
|
44
44
|
}
|
|
45
45
|
beforeEach(() => {
|
|
@@ -76,9 +76,7 @@ describe('Search embed tests when authType is Basic', () => {
|
|
|
76
76
|
|
|
77
77
|
test('releaseVersion is above 8.4.0.sw', async () => {
|
|
78
78
|
setupVersion('8.8.0.sw');
|
|
79
|
-
jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(
|
|
80
|
-
() => 'http://tshost',
|
|
81
|
-
);
|
|
79
|
+
jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(() => 'http://tshost');
|
|
82
80
|
const mockAlert = jest.spyOn(window, 'alert');
|
|
83
81
|
const searchEmbed = new SearchEmbed(getRootEl(), {});
|
|
84
82
|
await searchEmbed.render();
|
|
@@ -87,9 +85,7 @@ describe('Search embed tests when authType is Basic', () => {
|
|
|
87
85
|
|
|
88
86
|
test('Alert should not appear when suppressSearchEmbedBetaWarning is true and releaseVersion is ts7.dec.cl', async () => {
|
|
89
87
|
setupVersion('ts7.dec.cl');
|
|
90
|
-
jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(
|
|
91
|
-
() => 'http://tshost',
|
|
92
|
-
);
|
|
88
|
+
jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(() => 'http://tshost');
|
|
93
89
|
jest.spyOn(baseInstance, 'getEmbedConfig').mockReturnValue({
|
|
94
90
|
suppressSearchEmbedBetaWarning: true,
|
|
95
91
|
});
|
|
@@ -101,9 +97,7 @@ describe('Search embed tests when authType is Basic', () => {
|
|
|
101
97
|
|
|
102
98
|
test('Alert should not appear when suppressSearchEmbedBetaWarning is true and releaseVersion is 8.4.0.sw', async () => {
|
|
103
99
|
setupVersion('8.4.0.sw');
|
|
104
|
-
jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(
|
|
105
|
-
() => 'http://tshost',
|
|
106
|
-
);
|
|
100
|
+
jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(() => 'http://tshost');
|
|
107
101
|
jest.spyOn(baseInstance, 'getEmbedConfig').mockReturnValue({
|
|
108
102
|
suppressSearchEmbedBetaWarning: true,
|
|
109
103
|
});
|