@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.
Files changed (182) hide show
  1. package/README.md +1 -1
  2. package/dist/src/auth.d.ts +2 -38
  3. package/dist/src/auth.d.ts.map +1 -1
  4. package/dist/src/config.d.ts +0 -1
  5. package/dist/src/config.d.ts.map +1 -1
  6. package/dist/src/embed/app.d.ts +5 -17
  7. package/dist/src/embed/app.d.ts.map +1 -1
  8. package/dist/src/embed/base.d.ts +9 -20
  9. package/dist/src/embed/base.d.ts.map +1 -1
  10. package/dist/src/embed/liveboard.d.ts +5 -17
  11. package/dist/src/embed/liveboard.d.ts.map +1 -1
  12. package/dist/src/embed/search-bar.d.ts +0 -3
  13. package/dist/src/embed/search-bar.d.ts.map +1 -1
  14. package/dist/src/embed/search.d.ts +5 -9
  15. package/dist/src/embed/search.d.ts.map +1 -1
  16. package/dist/src/embed/ts-embed.d.ts +6 -43
  17. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  18. package/dist/src/errors.d.ts.map +1 -1
  19. package/dist/src/index.d.ts.map +1 -1
  20. package/dist/src/mixpanel-service.d.ts +0 -8
  21. package/dist/src/mixpanel-service.d.ts.map +1 -1
  22. package/dist/src/react/index.d.ts.map +1 -1
  23. package/dist/src/react/util.d.ts +0 -4
  24. package/dist/src/react/util.d.ts.map +1 -1
  25. package/dist/src/test/test-utils.d.ts +2 -11
  26. package/dist/src/test/test-utils.d.ts.map +1 -1
  27. package/dist/src/types.d.ts +76 -273
  28. package/dist/src/types.d.ts.map +1 -1
  29. package/dist/src/utils/answerService.d.ts +0 -7
  30. package/dist/src/utils/answerService.d.ts.map +1 -1
  31. package/dist/src/utils/authService.d.ts +0 -30
  32. package/dist/src/utils/authService.d.ts.map +1 -1
  33. package/dist/src/utils/processData.d.ts +0 -12
  34. package/dist/src/utils/processData.d.ts.map +1 -1
  35. package/dist/src/utils/processTrigger.d.ts +0 -7
  36. package/dist/src/utils/processTrigger.d.ts.map +1 -1
  37. package/dist/src/utils.d.ts +0 -12
  38. package/dist/src/utils.d.ts.map +1 -1
  39. package/dist/tsembed.es.js +262 -637
  40. package/dist/tsembed.js +261 -629
  41. package/lib/package.json +8 -3
  42. package/lib/src/auth.d.ts +2 -38
  43. package/lib/src/auth.d.ts.map +1 -1
  44. package/lib/src/auth.js +25 -70
  45. package/lib/src/auth.js.map +1 -1
  46. package/lib/src/auth.spec.js +5 -14
  47. package/lib/src/auth.spec.js.map +1 -1
  48. package/lib/src/config.d.ts +0 -1
  49. package/lib/src/config.d.ts.map +1 -1
  50. package/lib/src/config.js +3 -5
  51. package/lib/src/config.js.map +1 -1
  52. package/lib/src/config.spec.js.map +1 -1
  53. package/lib/src/embed/app.d.ts +5 -17
  54. package/lib/src/embed/app.d.ts.map +1 -1
  55. package/lib/src/embed/app.js +15 -25
  56. package/lib/src/embed/app.js.map +1 -1
  57. package/lib/src/embed/app.spec.js +12 -12
  58. package/lib/src/embed/app.spec.js.map +1 -1
  59. package/lib/src/embed/base.d.ts +9 -20
  60. package/lib/src/embed/base.d.ts.map +1 -1
  61. package/lib/src/embed/base.js +15 -31
  62. package/lib/src/embed/base.js.map +1 -1
  63. package/lib/src/embed/base.spec.js.map +1 -1
  64. package/lib/src/embed/embed.spec.js +1 -1
  65. package/lib/src/embed/embed.spec.js.map +1 -1
  66. package/lib/src/embed/liveboard.d.ts +5 -17
  67. package/lib/src/embed/liveboard.d.ts.map +1 -1
  68. package/lib/src/embed/liveboard.js +37 -49
  69. package/lib/src/embed/liveboard.js.map +1 -1
  70. package/lib/src/embed/liveboard.spec.js +30 -37
  71. package/lib/src/embed/liveboard.spec.js.map +1 -1
  72. package/lib/src/embed/pinboard.spec.js +26 -14
  73. package/lib/src/embed/pinboard.spec.js.map +1 -1
  74. package/lib/src/embed/search-bar.d.ts +0 -3
  75. package/lib/src/embed/search-bar.d.ts.map +1 -1
  76. package/lib/src/embed/search-bar.js +6 -5
  77. package/lib/src/embed/search-bar.js.map +1 -1
  78. package/lib/src/embed/search.d.ts +5 -9
  79. package/lib/src/embed/search.d.ts.map +1 -1
  80. package/lib/src/embed/search.js +14 -18
  81. package/lib/src/embed/search.js.map +1 -1
  82. package/lib/src/embed/search.spec.js +19 -16
  83. package/lib/src/embed/search.spec.js.map +1 -1
  84. package/lib/src/embed/searchEmbed-basic-auth.spec.js +0 -4
  85. package/lib/src/embed/searchEmbed-basic-auth.spec.js.map +1 -1
  86. package/lib/src/embed/ts-embed.d.ts +6 -43
  87. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  88. package/lib/src/embed/ts-embed.js +72 -117
  89. package/lib/src/embed/ts-embed.js.map +1 -1
  90. package/lib/src/embed/ts-embed.spec.js +24 -23
  91. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  92. package/lib/src/errors.d.ts.map +1 -1
  93. package/lib/src/errors.js.map +1 -1
  94. package/lib/src/index.d.ts.map +1 -1
  95. package/lib/src/index.js +2 -2
  96. package/lib/src/index.js.map +1 -1
  97. package/lib/src/mixpanel-service.d.ts +0 -8
  98. package/lib/src/mixpanel-service.d.ts.map +1 -1
  99. package/lib/src/mixpanel-service.js +1 -13
  100. package/lib/src/mixpanel-service.js.map +1 -1
  101. package/lib/src/mixpanel-service.spec.js.map +1 -1
  102. package/lib/src/react/index.d.ts.map +1 -1
  103. package/lib/src/react/index.js +6 -6
  104. package/lib/src/react/index.js.map +1 -1
  105. package/lib/src/react/index.spec.js +6 -15
  106. package/lib/src/react/index.spec.js.map +1 -1
  107. package/lib/src/react/util.d.ts +0 -4
  108. package/lib/src/react/util.d.ts.map +1 -1
  109. package/lib/src/react/util.js +0 -4
  110. package/lib/src/react/util.js.map +1 -1
  111. package/lib/src/test/test-utils.d.ts +2 -11
  112. package/lib/src/test/test-utils.d.ts.map +1 -1
  113. package/lib/src/test/test-utils.js +25 -36
  114. package/lib/src/test/test-utils.js.map +1 -1
  115. package/lib/src/types.d.ts +76 -273
  116. package/lib/src/types.d.ts.map +1 -1
  117. package/lib/src/types.js +54 -200
  118. package/lib/src/types.js.map +1 -1
  119. package/lib/src/utils/answerService.d.ts +0 -7
  120. package/lib/src/utils/answerService.d.ts.map +1 -1
  121. package/lib/src/utils/answerService.js +0 -7
  122. package/lib/src/utils/answerService.js.map +1 -1
  123. package/lib/src/utils/answerService.spec.js.map +1 -1
  124. package/lib/src/utils/authService.d.ts +0 -30
  125. package/lib/src/utils/authService.d.ts.map +1 -1
  126. package/lib/src/utils/authService.js +2 -39
  127. package/lib/src/utils/authService.js.map +1 -1
  128. package/lib/src/utils/authService.spec.js.map +1 -1
  129. package/lib/src/utils/processData.d.ts +0 -12
  130. package/lib/src/utils/processData.d.ts.map +1 -1
  131. package/lib/src/utils/processData.js +5 -33
  132. package/lib/src/utils/processData.js.map +1 -1
  133. package/lib/src/utils/processData.spec.js.map +1 -1
  134. package/lib/src/utils/processTrigger.d.ts +0 -7
  135. package/lib/src/utils/processTrigger.d.ts.map +1 -1
  136. package/lib/src/utils/processTrigger.js +3 -17
  137. package/lib/src/utils/processTrigger.js.map +1 -1
  138. package/lib/src/utils/processTrigger.spec.js.map +1 -1
  139. package/lib/src/utils.d.ts +0 -12
  140. package/lib/src/utils.d.ts.map +1 -1
  141. package/lib/src/utils.js +19 -24
  142. package/lib/src/utils.js.map +1 -1
  143. package/lib/src/utils.spec.js.map +1 -1
  144. package/lib/src/visual-embed-sdk.d.ts +102 -406
  145. package/package.json +8 -3
  146. package/src/auth.spec.ts +150 -68
  147. package/src/auth.ts +108 -102
  148. package/src/config.spec.ts +4 -2
  149. package/src/config.ts +3 -5
  150. package/src/embed/app.spec.ts +14 -25
  151. package/src/embed/app.ts +35 -47
  152. package/src/embed/base.spec.ts +9 -3
  153. package/src/embed/base.ts +53 -51
  154. package/src/embed/embed.spec.ts +6 -5
  155. package/src/embed/liveboard.spec.ts +37 -56
  156. package/src/embed/liveboard.ts +64 -66
  157. package/src/embed/pinboard.spec.ts +29 -26
  158. package/src/embed/search-bar.tsx +8 -10
  159. package/src/embed/search.spec.ts +21 -31
  160. package/src/embed/search.ts +25 -26
  161. package/src/embed/searchEmbed-basic-auth.spec.ts +28 -22
  162. package/src/embed/ts-embed.spec.ts +148 -70
  163. package/src/embed/ts-embed.ts +157 -147
  164. package/src/errors.ts +6 -3
  165. package/src/index.ts +10 -4
  166. package/src/mixpanel-service.spec.ts +3 -1
  167. package/src/mixpanel-service.ts +1 -13
  168. package/src/react/index.spec.tsx +13 -37
  169. package/src/react/index.tsx +57 -38
  170. package/src/react/util.ts +4 -8
  171. package/src/test/test-utils.ts +39 -43
  172. package/src/types.ts +78 -270
  173. package/src/utils/answerService.spec.ts +5 -3
  174. package/src/utils/answerService.ts +17 -21
  175. package/src/utils/authService.spec.ts +41 -26
  176. package/src/utils/authService.ts +21 -47
  177. package/src/utils/processData.spec.ts +59 -26
  178. package/src/utils/processData.ts +14 -36
  179. package/src/utils/processTrigger.spec.ts +6 -1
  180. package/src/utils/processTrigger.ts +9 -18
  181. package/src/utils.spec.ts +12 -8
  182. package/src/utils.ts +26 -25
@@ -15,7 +15,11 @@ import {
15
15
  ViewConfig,
16
16
  RuntimeFilter,
17
17
  } from '../types';
18
- import { getQueryParamString, checkReleaseVersionInBeta, getFilterQuery } from '../utils';
18
+ import {
19
+ getQueryParamString,
20
+ checkReleaseVersionInBeta,
21
+ getFilterQuery,
22
+ } from '../utils';
19
23
  import { TsEmbed } from './ts-embed';
20
24
  import { version } from '../../package.json';
21
25
  import { ERROR_MESSAGE } from '../errors';
@@ -33,8 +37,7 @@ export interface SearchOptions {
33
37
  /**
34
38
  * Boolean to determine if the search should be executed or not.
35
39
  * if it is executed, put the focus on the results.
36
- * if it’s not executed, put the focus in the search bar - at the end of
37
- * the tokens
40
+ * if it’s not executed, put the focus in the search bar - at the end of the tokens
38
41
  */
39
42
  executeSearch?: boolean;
40
43
  }
@@ -60,9 +63,12 @@ export interface SearchViewConfig extends ViewConfig {
60
63
  * using raw answer data.
61
64
  */
62
65
  hideResults?: boolean;
66
+ /**
67
+ * If set to true, expands all the data sources panel.
68
+ */
69
+ expandAllDataSource?: boolean;
63
70
  /**
64
71
  * If set to true, the Search Assist feature is enabled.
65
- *
66
72
  * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1-sw
67
73
  */
68
74
  enableSearchAssist?: boolean;
@@ -74,19 +80,16 @@ export interface SearchViewConfig extends ViewConfig {
74
80
  /**
75
81
  * The array of data source GUIDs to set on load.
76
82
  * Only a single dataSource supported currently.
77
- *
78
83
  * @deprecated Use dataSource instead
79
84
  */
80
85
  dataSources?: string[];
81
86
  /**
82
87
  * The array of data source GUIDs to set on load.
83
- *
84
88
  * @version: SDK: 1.19.0
85
89
  */
86
90
  dataSource?: string;
87
91
  /**
88
92
  * The initial search query to load the answer with.
89
- *
90
93
  * @deprecated Use {@link searchOptions} instead
91
94
  */
92
95
  searchQuery?: string;
@@ -101,7 +104,6 @@ export interface SearchViewConfig extends ViewConfig {
101
104
  /**
102
105
  * If set to true, search page will render without the Search Bar
103
106
  * The chart/table should still be visible.
104
- *
105
107
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
106
108
  */
107
109
  hideSearchBar?: boolean;
@@ -147,16 +149,23 @@ export class SearchEmbed extends TsEmbed {
147
149
  return dataSourceMode;
148
150
  }
149
151
 
150
- protected getEmbedParams(): string {
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[]) {
151
159
  const {
152
160
  hideResults,
161
+ expandAllDataSource,
153
162
  enableSearchAssist,
154
163
  forceTable,
155
164
  searchOptions,
156
165
  runtimeFilters,
157
166
  dataSource,
158
- dataSources,
159
167
  } = this.viewConfig;
168
+ const answerPath = answerId ? `saved-answer/${answerId}` : 'answer';
160
169
  const queryParams = this.getBaseQueryParams();
161
170
 
162
171
  queryParams[Param.HideActions] = [
@@ -201,21 +210,11 @@ export class SearchEmbed extends TsEmbed {
201
210
  if (filterQuery) {
202
211
  query += `&${filterQuery}`;
203
212
  }
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';
216
213
  const tsPostHashParams = this.getThoughtSpotPostUrlParams();
217
214
 
218
- return `${this.getRootIframeSrc()}/embed/${answerPath}${tsPostHashParams}`;
215
+ return `${this.getEmbedBasePath(
216
+ query,
217
+ )}/${answerPath}${tsPostHashParams}`;
219
218
  }
220
219
 
221
220
  /**
@@ -223,10 +222,10 @@ export class SearchEmbed extends TsEmbed {
223
222
  */
224
223
  public render(): SearchEmbed {
225
224
  super.render();
226
- const { answerId } = this.viewConfig;
225
+ const { answerId, dataSources } = this.viewConfig;
227
226
 
228
- const src = this.getIFrameSrc(answerId);
229
- this.renderIFrame(src);
227
+ const src = this.getIFrameSrc(answerId, dataSources);
228
+ this.renderIFrame(src, this.viewConfig.frameParams);
230
229
  getAuthPromise().then(() => {
231
230
  if (
232
231
  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
- */
26
22
  function setupVersion(version: string) {
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,
23
+ jest.spyOn(window, 'addEventListener').mockImplementationOnce(
24
+ (event, handler, options) => {
25
+ handler({
26
+ data: {
27
+ type: 'xyz',
28
+ },
29
+ ports: [3000],
30
+ source: null,
31
+ });
32
+ },
33
+ );
34
+ jest.spyOn(authService, 'fetchSessionInfoService').mockImplementation(
35
+ async () => ({
36
+ json: () => ({
37
+ ...mockSessionInfo,
38
+ releaseVersion: version,
39
+ }),
40
+ status: 200,
40
41
  }),
41
- status: 200,
42
- }));
42
+ );
43
43
  jest.spyOn(authInstance, 'getReleaseVersion').mockReturnValue(version);
44
44
  }
45
45
  beforeEach(() => {
@@ -76,7 +76,9 @@ 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(() => 'http://tshost');
79
+ jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(
80
+ () => 'http://tshost',
81
+ );
80
82
  const mockAlert = jest.spyOn(window, 'alert');
81
83
  const searchEmbed = new SearchEmbed(getRootEl(), {});
82
84
  await searchEmbed.render();
@@ -85,7 +87,9 @@ describe('Search embed tests when authType is Basic', () => {
85
87
 
86
88
  test('Alert should not appear when suppressSearchEmbedBetaWarning is true and releaseVersion is ts7.dec.cl', async () => {
87
89
  setupVersion('ts7.dec.cl');
88
- jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(() => 'http://tshost');
90
+ jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(
91
+ () => 'http://tshost',
92
+ );
89
93
  jest.spyOn(baseInstance, 'getEmbedConfig').mockReturnValue({
90
94
  suppressSearchEmbedBetaWarning: true,
91
95
  });
@@ -97,7 +101,9 @@ describe('Search embed tests when authType is Basic', () => {
97
101
 
98
102
  test('Alert should not appear when suppressSearchEmbedBetaWarning is true and releaseVersion is 8.4.0.sw', async () => {
99
103
  setupVersion('8.4.0.sw');
100
- jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(() => 'http://tshost');
104
+ jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(
105
+ () => 'http://tshost',
106
+ );
101
107
  jest.spyOn(baseInstance, 'getEmbedConfig').mockReturnValue({
102
108
  suppressSearchEmbedBetaWarning: true,
103
109
  });