@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.
Files changed (182) hide show
  1. package/README.md +1 -1
  2. package/dist/src/auth.d.ts +48 -3
  3. package/dist/src/auth.d.ts.map +1 -1
  4. package/dist/src/config.d.ts +1 -0
  5. package/dist/src/config.d.ts.map +1 -1
  6. package/dist/src/embed/app.d.ts +17 -5
  7. package/dist/src/embed/app.d.ts.map +1 -1
  8. package/dist/src/embed/base.d.ts +20 -9
  9. package/dist/src/embed/base.d.ts.map +1 -1
  10. package/dist/src/embed/liveboard.d.ts +17 -5
  11. package/dist/src/embed/liveboard.d.ts.map +1 -1
  12. package/dist/src/embed/search-bar.d.ts +3 -0
  13. package/dist/src/embed/search-bar.d.ts.map +1 -1
  14. package/dist/src/embed/search.d.ts +9 -5
  15. package/dist/src/embed/search.d.ts.map +1 -1
  16. package/dist/src/embed/ts-embed.d.ts +64 -6
  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 +8 -0
  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 +4 -0
  24. package/dist/src/react/util.d.ts.map +1 -1
  25. package/dist/src/test/test-utils.d.ts +11 -2
  26. package/dist/src/test/test-utils.d.ts.map +1 -1
  27. package/dist/src/types.d.ts +273 -76
  28. package/dist/src/types.d.ts.map +1 -1
  29. package/dist/src/utils/answerService.d.ts +7 -0
  30. package/dist/src/utils/answerService.d.ts.map +1 -1
  31. package/dist/src/utils/authService.d.ts +30 -0
  32. package/dist/src/utils/authService.d.ts.map +1 -1
  33. package/dist/src/utils/processData.d.ts +12 -0
  34. package/dist/src/utils/processData.d.ts.map +1 -1
  35. package/dist/src/utils/processTrigger.d.ts +7 -0
  36. package/dist/src/utils/processTrigger.d.ts.map +1 -1
  37. package/dist/src/utils.d.ts +12 -0
  38. package/dist/src/utils.d.ts.map +1 -1
  39. package/dist/tsembed.es.js +667 -264
  40. package/dist/tsembed.js +659 -263
  41. package/lib/package.json +3 -8
  42. package/lib/src/auth.d.ts +48 -3
  43. package/lib/src/auth.d.ts.map +1 -1
  44. package/lib/src/auth.js +70 -25
  45. package/lib/src/auth.js.map +1 -1
  46. package/lib/src/auth.spec.js +14 -5
  47. package/lib/src/auth.spec.js.map +1 -1
  48. package/lib/src/config.d.ts +1 -0
  49. package/lib/src/config.d.ts.map +1 -1
  50. package/lib/src/config.js +5 -3
  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 +17 -5
  54. package/lib/src/embed/app.d.ts.map +1 -1
  55. package/lib/src/embed/app.js +25 -15
  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 +20 -9
  60. package/lib/src/embed/base.d.ts.map +1 -1
  61. package/lib/src/embed/base.js +31 -15
  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 +17 -5
  67. package/lib/src/embed/liveboard.d.ts.map +1 -1
  68. package/lib/src/embed/liveboard.js +49 -37
  69. package/lib/src/embed/liveboard.js.map +1 -1
  70. package/lib/src/embed/liveboard.spec.js +37 -30
  71. package/lib/src/embed/liveboard.spec.js.map +1 -1
  72. package/lib/src/embed/pinboard.spec.js +14 -26
  73. package/lib/src/embed/pinboard.spec.js.map +1 -1
  74. package/lib/src/embed/search-bar.d.ts +3 -0
  75. package/lib/src/embed/search-bar.d.ts.map +1 -1
  76. package/lib/src/embed/search-bar.js +5 -6
  77. package/lib/src/embed/search-bar.js.map +1 -1
  78. package/lib/src/embed/search.d.ts +9 -5
  79. package/lib/src/embed/search.d.ts.map +1 -1
  80. package/lib/src/embed/search.js +18 -14
  81. package/lib/src/embed/search.js.map +1 -1
  82. package/lib/src/embed/search.spec.js +16 -19
  83. package/lib/src/embed/search.spec.js.map +1 -1
  84. package/lib/src/embed/searchEmbed-basic-auth.spec.js +4 -0
  85. package/lib/src/embed/searchEmbed-basic-auth.spec.js.map +1 -1
  86. package/lib/src/embed/ts-embed.d.ts +64 -6
  87. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  88. package/lib/src/embed/ts-embed.js +147 -74
  89. package/lib/src/embed/ts-embed.js.map +1 -1
  90. package/lib/src/embed/ts-embed.spec.js +46 -24
  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 +8 -0
  98. package/lib/src/mixpanel-service.d.ts.map +1 -1
  99. package/lib/src/mixpanel-service.js +13 -1
  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 +15 -6
  106. package/lib/src/react/index.spec.js.map +1 -1
  107. package/lib/src/react/util.d.ts +4 -0
  108. package/lib/src/react/util.d.ts.map +1 -1
  109. package/lib/src/react/util.js +4 -0
  110. package/lib/src/react/util.js.map +1 -1
  111. package/lib/src/test/test-utils.d.ts +11 -2
  112. package/lib/src/test/test-utils.d.ts.map +1 -1
  113. package/lib/src/test/test-utils.js +36 -25
  114. package/lib/src/test/test-utils.js.map +1 -1
  115. package/lib/src/types.d.ts +273 -76
  116. package/lib/src/types.d.ts.map +1 -1
  117. package/lib/src/types.js +200 -54
  118. package/lib/src/types.js.map +1 -1
  119. package/lib/src/utils/answerService.d.ts +7 -0
  120. package/lib/src/utils/answerService.d.ts.map +1 -1
  121. package/lib/src/utils/answerService.js +7 -0
  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 +30 -0
  125. package/lib/src/utils/authService.d.ts.map +1 -1
  126. package/lib/src/utils/authService.js +39 -2
  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 +12 -0
  130. package/lib/src/utils/processData.d.ts.map +1 -1
  131. package/lib/src/utils/processData.js +33 -5
  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 +7 -0
  135. package/lib/src/utils/processTrigger.d.ts.map +1 -1
  136. package/lib/src/utils/processTrigger.js +17 -3
  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 +12 -0
  140. package/lib/src/utils.d.ts.map +1 -1
  141. package/lib/src/utils.js +24 -19
  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 +437 -103
  145. package/package.json +3 -8
  146. package/src/auth.spec.ts +68 -150
  147. package/src/auth.ts +115 -109
  148. package/src/config.spec.ts +2 -4
  149. package/src/config.ts +5 -3
  150. package/src/embed/app.spec.ts +25 -14
  151. package/src/embed/app.ts +47 -35
  152. package/src/embed/base.spec.ts +3 -9
  153. package/src/embed/base.ts +51 -53
  154. package/src/embed/embed.spec.ts +5 -6
  155. package/src/embed/liveboard.spec.ts +56 -37
  156. package/src/embed/liveboard.ts +66 -64
  157. package/src/embed/pinboard.spec.ts +26 -29
  158. package/src/embed/search-bar.tsx +10 -8
  159. package/src/embed/search.spec.ts +31 -21
  160. package/src/embed/search.ts +26 -25
  161. package/src/embed/searchEmbed-basic-auth.spec.ts +22 -28
  162. package/src/embed/ts-embed.spec.ts +99 -144
  163. package/src/embed/ts-embed.ts +181 -159
  164. package/src/errors.ts +3 -6
  165. package/src/index.ts +4 -10
  166. package/src/mixpanel-service.spec.ts +1 -3
  167. package/src/mixpanel-service.ts +13 -1
  168. package/src/react/index.spec.tsx +37 -13
  169. package/src/react/index.tsx +38 -57
  170. package/src/react/util.ts +8 -4
  171. package/src/test/test-utils.ts +43 -39
  172. package/src/types.ts +270 -78
  173. package/src/utils/answerService.spec.ts +3 -5
  174. package/src/utils/answerService.ts +21 -17
  175. package/src/utils/authService.spec.ts +26 -41
  176. package/src/utils/authService.ts +47 -21
  177. package/src/utils/processData.spec.ts +26 -59
  178. package/src/utils/processData.ts +36 -14
  179. package/src/utils/processTrigger.spec.ts +1 -6
  180. package/src/utils/processTrigger.ts +18 -9
  181. package/src/utils.spec.ts +8 -12
  182. package/src/utils.ts +25 -26
@@ -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 the tokens
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.getEmbedBasePath(
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, dataSources } = this.viewConfig;
226
+ const { answerId } = this.viewConfig;
226
227
 
227
- const src = this.getIFrameSrc(answerId, dataSources);
228
- this.renderIFrame(src, this.viewConfig.frameParams);
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
- (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,
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
  });