@thoughtspot/visual-embed-sdk 1.20.0-alpha.2 → 1.20.0-prerender.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 (184) hide show
  1. package/dist/src/auth.d.ts +75 -5
  2. package/dist/src/auth.d.ts.map +1 -1
  3. package/dist/src/config.d.ts +1 -0
  4. package/dist/src/config.d.ts.map +1 -1
  5. package/dist/src/embed/app.d.ts +19 -7
  6. package/dist/src/embed/app.d.ts.map +1 -1
  7. package/dist/src/embed/base.d.ts +39 -19
  8. package/dist/src/embed/base.d.ts.map +1 -1
  9. package/dist/src/embed/liveboard.d.ts +19 -7
  10. package/dist/src/embed/liveboard.d.ts.map +1 -1
  11. package/dist/src/embed/search-bar.d.ts +7 -1
  12. package/dist/src/embed/search-bar.d.ts.map +1 -1
  13. package/dist/src/embed/search.d.ts +11 -3
  14. package/dist/src/embed/search.d.ts.map +1 -1
  15. package/dist/src/embed/ts-embed.d.ts +76 -5
  16. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  17. package/dist/src/errors.d.ts.map +1 -1
  18. package/dist/src/index.d.ts +3 -3
  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 +429 -97
  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 +818 -285
  40. package/dist/tsembed.js +791 -284
  41. package/lib/package.json +4 -3
  42. package/lib/src/auth.d.ts +75 -5
  43. package/lib/src/auth.d.ts.map +1 -1
  44. package/lib/src/auth.js +86 -26
  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 +19 -7
  54. package/lib/src/embed/app.d.ts.map +1 -1
  55. package/lib/src/embed/app.js +26 -16
  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 +39 -19
  60. package/lib/src/embed/base.d.ts.map +1 -1
  61. package/lib/src/embed/base.js +49 -15
  62. package/lib/src/embed/base.js.map +1 -1
  63. package/lib/src/embed/base.spec.js +2 -2
  64. package/lib/src/embed/base.spec.js.map +1 -1
  65. package/lib/src/embed/embed.spec.js +1 -1
  66. package/lib/src/embed/embed.spec.js.map +1 -1
  67. package/lib/src/embed/liveboard.d.ts +19 -7
  68. package/lib/src/embed/liveboard.d.ts.map +1 -1
  69. package/lib/src/embed/liveboard.js +50 -38
  70. package/lib/src/embed/liveboard.js.map +1 -1
  71. package/lib/src/embed/liveboard.spec.js +37 -30
  72. package/lib/src/embed/liveboard.spec.js.map +1 -1
  73. package/lib/src/embed/pinboard.spec.js +14 -26
  74. package/lib/src/embed/pinboard.spec.js.map +1 -1
  75. package/lib/src/embed/search-bar.d.ts +7 -1
  76. package/lib/src/embed/search-bar.d.ts.map +1 -1
  77. package/lib/src/embed/search-bar.js +6 -7
  78. package/lib/src/embed/search-bar.js.map +1 -1
  79. package/lib/src/embed/search.d.ts +11 -3
  80. package/lib/src/embed/search.d.ts.map +1 -1
  81. package/lib/src/embed/search.js +19 -15
  82. package/lib/src/embed/search.js.map +1 -1
  83. package/lib/src/embed/search.spec.js +16 -19
  84. package/lib/src/embed/search.spec.js.map +1 -1
  85. package/lib/src/embed/searchEmbed-basic-auth.spec.js +4 -0
  86. package/lib/src/embed/searchEmbed-basic-auth.spec.js.map +1 -1
  87. package/lib/src/embed/ts-embed.d.ts +76 -5
  88. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  89. package/lib/src/embed/ts-embed.js +150 -72
  90. package/lib/src/embed/ts-embed.js.map +1 -1
  91. package/lib/src/embed/ts-embed.spec.js +23 -24
  92. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  93. package/lib/src/errors.d.ts.map +1 -1
  94. package/lib/src/errors.js.map +1 -1
  95. package/lib/src/index.d.ts +3 -3
  96. package/lib/src/index.d.ts.map +1 -1
  97. package/lib/src/index.js +3 -3
  98. package/lib/src/index.js.map +1 -1
  99. package/lib/src/mixpanel-service.d.ts +8 -0
  100. package/lib/src/mixpanel-service.d.ts.map +1 -1
  101. package/lib/src/mixpanel-service.js +13 -1
  102. package/lib/src/mixpanel-service.js.map +1 -1
  103. package/lib/src/mixpanel-service.spec.js.map +1 -1
  104. package/lib/src/react/index.d.ts.map +1 -1
  105. package/lib/src/react/index.js +4 -6
  106. package/lib/src/react/index.js.map +1 -1
  107. package/lib/src/react/index.spec.js +3 -6
  108. package/lib/src/react/index.spec.js.map +1 -1
  109. package/lib/src/react/util.d.ts +4 -0
  110. package/lib/src/react/util.d.ts.map +1 -1
  111. package/lib/src/react/util.js +4 -0
  112. package/lib/src/react/util.js.map +1 -1
  113. package/lib/src/test/test-utils.d.ts +11 -2
  114. package/lib/src/test/test-utils.d.ts.map +1 -1
  115. package/lib/src/test/test-utils.js +36 -25
  116. package/lib/src/test/test-utils.js.map +1 -1
  117. package/lib/src/types.d.ts +429 -97
  118. package/lib/src/types.d.ts.map +1 -1
  119. package/lib/src/types.js +310 -72
  120. package/lib/src/types.js.map +1 -1
  121. package/lib/src/utils/answerService.d.ts +7 -0
  122. package/lib/src/utils/answerService.d.ts.map +1 -1
  123. package/lib/src/utils/answerService.js +7 -0
  124. package/lib/src/utils/answerService.js.map +1 -1
  125. package/lib/src/utils/answerService.spec.js.map +1 -1
  126. package/lib/src/utils/authService.d.ts +30 -0
  127. package/lib/src/utils/authService.d.ts.map +1 -1
  128. package/lib/src/utils/authService.js +39 -2
  129. package/lib/src/utils/authService.js.map +1 -1
  130. package/lib/src/utils/authService.spec.js.map +1 -1
  131. package/lib/src/utils/processData.d.ts +12 -0
  132. package/lib/src/utils/processData.d.ts.map +1 -1
  133. package/lib/src/utils/processData.js +33 -5
  134. package/lib/src/utils/processData.js.map +1 -1
  135. package/lib/src/utils/processData.spec.js.map +1 -1
  136. package/lib/src/utils/processTrigger.d.ts +7 -0
  137. package/lib/src/utils/processTrigger.d.ts.map +1 -1
  138. package/lib/src/utils/processTrigger.js +17 -3
  139. package/lib/src/utils/processTrigger.js.map +1 -1
  140. package/lib/src/utils/processTrigger.spec.js.map +1 -1
  141. package/lib/src/utils.d.ts +12 -0
  142. package/lib/src/utils.d.ts.map +1 -1
  143. package/lib/src/utils.js +24 -19
  144. package/lib/src/utils.js.map +1 -1
  145. package/lib/src/utils.spec.js.map +1 -1
  146. package/lib/src/visual-embed-sdk.d.ts +664 -141
  147. package/package.json +4 -3
  148. package/src/auth.spec.ts +68 -150
  149. package/src/auth.ts +141 -101
  150. package/src/config.spec.ts +2 -4
  151. package/src/config.ts +5 -3
  152. package/src/embed/app.spec.ts +25 -14
  153. package/src/embed/app.ts +49 -37
  154. package/src/embed/base.spec.ts +6 -12
  155. package/src/embed/base.ts +74 -57
  156. package/src/embed/embed.spec.ts +5 -6
  157. package/src/embed/liveboard.spec.ts +56 -37
  158. package/src/embed/liveboard.ts +67 -65
  159. package/src/embed/pinboard.spec.ts +26 -29
  160. package/src/embed/search-bar.tsx +14 -9
  161. package/src/embed/search.spec.ts +31 -21
  162. package/src/embed/search.ts +28 -22
  163. package/src/embed/searchEmbed-basic-auth.spec.ts +22 -28
  164. package/src/embed/ts-embed.spec.ts +70 -148
  165. package/src/embed/ts-embed.ts +180 -157
  166. package/src/errors.ts +3 -6
  167. package/src/index.ts +23 -7
  168. package/src/mixpanel-service.spec.ts +1 -3
  169. package/src/mixpanel-service.ts +13 -1
  170. package/src/react/index.spec.tsx +11 -20
  171. package/src/react/index.tsx +40 -71
  172. package/src/react/util.ts +8 -4
  173. package/src/test/test-utils.ts +43 -39
  174. package/src/types.ts +427 -97
  175. package/src/utils/answerService.spec.ts +3 -5
  176. package/src/utils/answerService.ts +21 -17
  177. package/src/utils/authService.spec.ts +26 -41
  178. package/src/utils/authService.ts +47 -21
  179. package/src/utils/processData.spec.ts +26 -59
  180. package/src/utils/processData.ts +36 -14
  181. package/src/utils/processTrigger.spec.ts +1 -6
  182. package/src/utils/processTrigger.ts +18 -9
  183. package/src/utils.spec.ts +8 -12
  184. package/src/utils.ts +25 -26
@@ -1,18 +1,24 @@
1
- import { DOMSelector, Param, Action, ViewConfig } from '../types';
1
+ import {
2
+ DOMSelector, Param, Action, ViewConfig,
3
+ } from '../types';
2
4
  import { getQueryParamString } from '../utils';
3
5
  import { TsEmbed } from './ts-embed';
4
6
  import { SearchOptions } from './search';
5
7
 
6
- export interface SearchBarViewConfig
7
- extends Omit<ViewConfig, 'runtimeFilters' | 'showAlerts'> {
8
+ /**
9
+ * @group Embed components
10
+ */
11
+ export interface SearchBarViewConfig extends Omit<ViewConfig, 'runtimeFilters' | 'showAlerts'> {
8
12
  /**
9
13
  * The array of data source GUIDs to set on load.
10
14
  * Only a single dataSource supported currently.
15
+ *
11
16
  * @deprecated Use dataSource instead
12
17
  */
13
18
  dataSources?: string[];
14
19
  /**
15
20
  * The array of data source GUIDs to set on load.
21
+ *
16
22
  * @version: SDK: 1.19.0
17
23
  */
18
24
  dataSource?: string;
@@ -25,8 +31,8 @@ export interface SearchBarViewConfig
25
31
  /**
26
32
  * Embed ThoughtSpot search bar
27
33
  *
28
- * @Category Search Embed
29
34
  * @version: SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1-sw
35
+ * @group Embed components
30
36
  */
31
37
  export class SearchBarEmbed extends TsEmbed {
32
38
  /**
@@ -42,6 +48,7 @@ export class SearchBarEmbed extends TsEmbed {
42
48
  /**
43
49
  * Construct the URL of the embedded ThoughtSpot search to be
44
50
  * loaded in the iframe
51
+ *
45
52
  * @param dataSources A list of data source GUIDs
46
53
  */
47
54
  private getIFrameSrc() {
@@ -49,9 +56,7 @@ export class SearchBarEmbed extends TsEmbed {
49
56
  const path = 'search-bar-embed';
50
57
  const queryParams = this.getBaseQueryParams();
51
58
 
52
- queryParams[Param.HideActions] = [
53
- ...(queryParams[Param.HideActions] ?? []),
54
- ];
59
+ queryParams[Param.HideActions] = [...(queryParams[Param.HideActions] ?? [])];
55
60
 
56
61
  if (dataSources && dataSources.length) {
57
62
  queryParams[Param.DataSources] = JSON.stringify(dataSources);
@@ -78,7 +83,7 @@ export class SearchBarEmbed extends TsEmbed {
78
83
  }
79
84
  const tsPostHashParams = this.getThoughtSpotPostUrlParams();
80
85
 
81
- return `${this.getEmbedBasePath(query)}/${path}${tsPostHashParams}`;
86
+ return `${this.getEmbedBasePath(query)}/embed/${path}${tsPostHashParams}`;
82
87
  }
83
88
 
84
89
  /**
@@ -88,7 +93,7 @@ export class SearchBarEmbed extends TsEmbed {
88
93
  super.render();
89
94
 
90
95
  const src = this.getIFrameSrc();
91
- this.renderIFrame(src, this.viewConfig.frameParams);
96
+ this.renderIFrame(src);
92
97
  return this;
93
98
  }
94
99
  }
@@ -9,6 +9,7 @@ import {
9
9
  getRootEl,
10
10
  fixedEncodeURI,
11
11
  defaultParamsWithoutHiddenActions as defaultParams,
12
+ expectUrlMatchesWithParams,
12
13
  } from '../test/test-utils';
13
14
  import { version } from '../../package.json';
14
15
 
@@ -21,10 +22,7 @@ const defaultViewConfig = {
21
22
  const answerId = 'eca215d4-0d2c-4a55-90e3-d81ef6848ae0';
22
23
  const thoughtSpotHost = 'tshost';
23
24
  const hideBydefault = `&hideAction=${fixedEncodeURI(
24
- JSON.stringify([
25
- Action.ReportError,
26
- ...HiddenActionItemByDefaultForSearchEmbed,
27
- ]),
25
+ JSON.stringify([Action.ReportError, ...HiddenActionItemByDefaultForSearchEmbed]),
28
26
  )}`;
29
27
  const defaultParamsWithHiddenActions = defaultParams + hideBydefault;
30
28
  const prefixParams = '&isSearchEmbed=true';
@@ -40,16 +38,15 @@ beforeAll(() => {
40
38
  describe('Search embed tests', () => {
41
39
  beforeEach(() => {
42
40
  document.body.innerHTML = getDocumentBody();
43
- jest.spyOn(authInstance, 'getReleaseVersion').mockReturnValue(
44
- '7.4.0.sw',
45
- );
41
+ jest.spyOn(authInstance, 'getReleaseVersion').mockReturnValue('7.4.0.sw');
46
42
  });
47
43
 
48
44
  test('should render', async () => {
49
45
  const searchEmbed = new SearchEmbed(getRootEl(), {});
50
46
  searchEmbed.render();
51
47
  await executeAfterWait(() => {
52
- expect(getIFrameSrc()).toBe(
48
+ expectUrlMatchesWithParams(
49
+ getIFrameSrc(),
53
50
  `http://${thoughtSpotHost}/v2/?${defaultParamsWithHiddenActions}&dataSourceMode=expand&useLastSelectedSources=false${prefixParams}#/embed/answer`,
54
51
  );
55
52
  });
@@ -63,7 +60,8 @@ describe('Search embed tests', () => {
63
60
  });
64
61
  searchEmbed.render();
65
62
  await executeAfterWait(() => {
66
- expect(getIFrameSrc()).toBe(
63
+ expectUrlMatchesWithParams(
64
+ getIFrameSrc(),
67
65
  `http://${thoughtSpotHost}/v2/?${defaultParamsWithHiddenActions}&dataSources=[%22data-source-1%22]&dataSourceMode=expand&useLastSelectedSources=false${prefixParams}#/embed/answer`,
68
66
  );
69
67
  });
@@ -81,7 +79,8 @@ describe('Search embed tests', () => {
81
79
  });
82
80
  searchEmbed.render();
83
81
  await executeAfterWait(() => {
84
- expect(getIFrameSrc()).toBe(
82
+ expectUrlMatchesWithParams(
83
+ getIFrameSrc(),
85
84
  `http://${thoughtSpotHost}/v2/?${defaultParamsWithHiddenActions}&dataSources=[%22data-source-1%22]&searchTokenString=%5Bcommit%20date%5D%5Brevenue%5D&dataSourceMode=expand&useLastSelectedSources=false${prefixParams}#/embed/answer`,
86
85
  );
87
86
  });
@@ -99,7 +98,8 @@ describe('Search embed tests', () => {
99
98
 
100
99
  searchEmbed.render();
101
100
  await executeAfterWait(() => {
102
- expect(getIFrameSrc()).toBe(
101
+ expectUrlMatchesWithParams(
102
+ getIFrameSrc(),
103
103
  `http://${thoughtSpotHost}/v2/?${defaultParamsWithHiddenActions}&searchTokenString=%5Bcommit%20date%5D%5Brevenue%5D&dataSourceMode=expand&useLastSelectedSources=false${prefixParams}#/embed/answer`,
104
104
  );
105
105
  });
@@ -114,7 +114,8 @@ describe('Search embed tests', () => {
114
114
 
115
115
  searchEmbed.render();
116
116
  await executeAfterWait(() => {
117
- expect(getIFrameSrc()).toBe(
117
+ expectUrlMatchesWithParams(
118
+ getIFrameSrc(),
118
119
  `http://${thoughtSpotHost}/v2/?${defaultParamsWithHiddenActions}&searchTokenString=%5Bcommit%20date%5D%5Brevenue%5D&executeSearch=true&dataSourceMode=expand&useLastSelectedSources=false${prefixParams}#/embed/answer`,
119
120
  );
120
121
  });
@@ -133,7 +134,8 @@ describe('Search embed tests', () => {
133
134
  });
134
135
  searchEmbed.render();
135
136
  await executeAfterWait(() => {
136
- expect(getIFrameSrc()).toBe(
137
+ expectUrlMatchesWithParams(
138
+ getIFrameSrc(),
137
139
  `http://${thoughtSpotHost}/v2/?${defaultParamsWithHiddenActions}&dataSources=[%22data-source-1%22]&searchTokenString=%5Bcommit%20date%5D%5Brevenue%5D&dataSourceMode=collapse&useLastSelectedSources=false${prefixParams}#/embed/answer`,
138
140
  );
139
141
  });
@@ -152,7 +154,8 @@ describe('Search embed tests', () => {
152
154
  });
153
155
  searchEmbed.render();
154
156
  await executeAfterWait(() => {
155
- expect(getIFrameSrc()).toBe(
157
+ expectUrlMatchesWithParams(
158
+ getIFrameSrc(),
156
159
  `http://${thoughtSpotHost}/v2/?${defaultParamsWithHiddenActions}&dataSources=[%22data-source-1%22]&searchTokenString=%5Bcommit%20date%5D%5Brevenue%5D&dataSourceMode=hide&useLastSelectedSources=false${prefixParams}#/embed/answer`,
157
160
  );
158
161
  });
@@ -178,7 +181,8 @@ describe('Search embed tests', () => {
178
181
  });
179
182
  searchEmbed.render();
180
183
  await executeAfterWait(() => {
181
- expect(getIFrameSrc()).toBe(
184
+ expectUrlMatchesWithParams(
185
+ getIFrameSrc(),
182
186
  `http://${thoughtSpotHost}/v2/?${defaultParamsWithHiddenActions}&dataSources=[%22data-source-1%22]&searchTokenString=%5Bcommit%20date%5D%5Brevenue%5D&dataSourceMode=hide&useLastSelectedSources=false${prefixParams}&col1=city&op1=EQ&val1=berkeley#/embed/answer`,
183
187
  );
184
188
  });
@@ -197,7 +201,8 @@ describe('Search embed tests', () => {
197
201
  });
198
202
  searchEmbed.render();
199
203
  await executeAfterWait(() => {
200
- expect(getIFrameSrc()).toBe(
204
+ expectUrlMatchesWithParams(
205
+ getIFrameSrc(),
201
206
  `http://${thoughtSpotHost}/v2/?${defaultParamsWithHiddenActions}&dataSources=[%22data-source-1%22]&searchTokenString=%5Bcommit%20date%5D%5Brevenue%5D&dataSourceMode=hide&useLastSelectedSources=false${prefixParams}#/embed/answer`,
202
207
  );
203
208
  });
@@ -217,7 +222,8 @@ describe('Search embed tests', () => {
217
222
  });
218
223
  searchEmbed.render();
219
224
  await executeAfterWait(() => {
220
- expect(getIFrameSrc()).toBe(
225
+ expectUrlMatchesWithParams(
226
+ getIFrameSrc(),
221
227
  `http://${thoughtSpotHost}/v2/?${defaultParams}&disableAction=[%22download%22,%22edit%22]&disableHint=Permission%20denied${hideBydefault}&dataSources=[%22data-source-1%22]&searchTokenString=%5Bcommit%20date%5D%5Brevenue%5D&dataSourceMode=expand&useLastSelectedSources=false${prefixParams}#/embed/answer`,
222
228
  );
223
229
  });
@@ -230,7 +236,8 @@ describe('Search embed tests', () => {
230
236
  });
231
237
  searchEmbed.render();
232
238
  await executeAfterWait(() => {
233
- expect(getIFrameSrc()).toBe(
239
+ expectUrlMatchesWithParams(
240
+ getIFrameSrc(),
234
241
  `http://${thoughtSpotHost}/v2/?${defaultParamsWithHiddenActions}&enableSearchAssist=true&dataSourceMode=expand&useLastSelectedSources=false${prefixParams}#/embed/answer`,
235
242
  );
236
243
  });
@@ -256,7 +263,8 @@ describe('Search embed tests', () => {
256
263
  ]),
257
264
  );
258
265
  await executeAfterWait(() => {
259
- expect(getIFrameSrc()).toBe(
266
+ expectUrlMatchesWithParams(
267
+ getIFrameSrc(),
260
268
  `http://${thoughtSpotHost}/v2/?${defaultParams}&hideAction=${hideActionUrl}&dataSourceMode=expand&useLastSelectedSources=false${prefixParams}#/embed/saved-answer/${answerId}`,
261
269
  );
262
270
  });
@@ -280,7 +288,8 @@ describe('Search embed tests', () => {
280
288
  ]),
281
289
  );
282
290
  await executeAfterWait(() => {
283
- expect(getIFrameSrc()).toBe(
291
+ expectUrlMatchesWithParams(
292
+ getIFrameSrc(),
284
293
  `http://${thoughtSpotHost}/v2/?${defaultParams}&disableAction=[%22downloadAsXLSX%22]&disableHint=Access%20denied&hideAction=${hideActionUrl}&dataSourceMode=expand&useLastSelectedSources=false${prefixParams}#/embed/saved-answer/${answerId}`,
285
294
  );
286
295
  });
@@ -293,7 +302,8 @@ describe('Search embed tests', () => {
293
302
  });
294
303
  searchEmbed.render();
295
304
  await executeAfterWait(() => {
296
- expect(getIFrameSrc()).toBe(
305
+ expectUrlMatchesWithParams(
306
+ getIFrameSrc(),
297
307
  `http://${thoughtSpotHost}/v2/?${defaultParamsWithHiddenActions}&dataSourceMode=expand&useLastSelectedSources=false${prefixParams}#/embed/saved-answer/${answerId}`,
298
308
  );
299
309
  });
@@ -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
  }
@@ -45,7 +42,7 @@ export interface SearchOptions {
45
42
  /**
46
43
  * The configuration attributes for the embedded search view.
47
44
  *
48
- * @Category Search Embed
45
+ * @group Embed components
49
46
  */
50
47
  export interface SearchViewConfig extends ViewConfig {
51
48
  /**
@@ -65,6 +62,7 @@ export interface SearchViewConfig extends ViewConfig {
65
62
  hideResults?: boolean;
66
63
  /**
67
64
  * If set to true, the Search Assist feature is enabled.
65
+ *
68
66
  * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1-sw
69
67
  */
70
68
  enableSearchAssist?: boolean;
@@ -76,16 +74,19 @@ export interface SearchViewConfig extends ViewConfig {
76
74
  /**
77
75
  * The array of data source GUIDs to set on load.
78
76
  * Only a single dataSource supported currently.
77
+ *
79
78
  * @deprecated Use dataSource instead
80
79
  */
81
80
  dataSources?: string[];
82
81
  /**
83
82
  * The array of data source GUIDs to set on load.
83
+ *
84
84
  * @version: SDK: 1.19.0
85
85
  */
86
86
  dataSource?: string;
87
87
  /**
88
88
  * The initial search query to load the answer with.
89
+ *
89
90
  * @deprecated Use {@link searchOptions} instead
90
91
  */
91
92
  searchQuery?: string;
@@ -100,6 +101,7 @@ export interface SearchViewConfig extends ViewConfig {
100
101
  /**
101
102
  * If set to true, search page will render without the Search Bar
102
103
  * The chart/table should still be visible.
104
+ *
103
105
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
104
106
  */
105
107
  hideSearchBar?: boolean;
@@ -116,7 +118,7 @@ export const HiddenActionItemByDefaultForSearchEmbed = [
116
118
  /**
117
119
  * Embed ThoughtSpot search
118
120
  *
119
- * @Category Search Embed
121
+ * @group Embed components
120
122
  */
121
123
  export class SearchEmbed extends TsEmbed {
122
124
  /**
@@ -145,13 +147,7 @@ export class SearchEmbed extends TsEmbed {
145
147
  return dataSourceMode;
146
148
  }
147
149
 
148
- /**
149
- * Construct the URL of the embedded ThoughtSpot search to be
150
- * loaded in the iframe
151
- * @param answerId The GUID of a saved answer
152
- * @param dataSources A list of data source GUIDs
153
- */
154
- private getIFrameSrc(answerId: string, dataSources?: string[]) {
150
+ protected getEmbedParams(): string {
155
151
  const {
156
152
  hideResults,
157
153
  enableSearchAssist,
@@ -159,8 +155,8 @@ export class SearchEmbed extends TsEmbed {
159
155
  searchOptions,
160
156
  runtimeFilters,
161
157
  dataSource,
158
+ dataSources,
162
159
  } = this.viewConfig;
163
- const answerPath = answerId ? `saved-answer/${answerId}` : 'answer';
164
160
  const queryParams = this.getBaseQueryParams();
165
161
 
166
162
  queryParams[Param.HideActions] = [
@@ -205,11 +201,21 @@ export class SearchEmbed extends TsEmbed {
205
201
  if (filterQuery) {
206
202
  query += `&${filterQuery}`;
207
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';
208
216
  const tsPostHashParams = this.getThoughtSpotPostUrlParams();
209
217
 
210
- return `${this.getEmbedBasePath(
211
- query,
212
- )}/${answerPath}${tsPostHashParams}`;
218
+ return `${this.getRootIframeSrc()}/embed/${answerPath}${tsPostHashParams}`;
213
219
  }
214
220
 
215
221
  /**
@@ -217,10 +223,10 @@ export class SearchEmbed extends TsEmbed {
217
223
  */
218
224
  public render(): SearchEmbed {
219
225
  super.render();
220
- const { answerId, dataSources } = this.viewConfig;
226
+ const { answerId } = this.viewConfig;
221
227
 
222
- const src = this.getIFrameSrc(answerId, dataSources);
223
- this.renderIFrame(src, this.viewConfig.frameParams);
228
+ const src = this.getIFrameSrc(answerId);
229
+ this.renderIFrame(src);
224
230
  getAuthPromise().then(() => {
225
231
  if (
226
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
  });