@thoughtspot/visual-embed-sdk 1.26.2 → 1.27.0-logger

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 (304) hide show
  1. package/README.md +1 -1
  2. package/cjs/package.json +1 -1
  3. package/cjs/src/auth.d.ts +4 -4
  4. package/cjs/src/auth.d.ts.map +1 -1
  5. package/cjs/src/auth.js +15 -8
  6. package/cjs/src/auth.js.map +1 -1
  7. package/cjs/src/embed/app.d.ts +14 -14
  8. package/cjs/src/embed/app.d.ts.map +1 -1
  9. package/cjs/src/embed/app.js +4 -3
  10. package/cjs/src/embed/app.js.map +1 -1
  11. package/cjs/src/embed/app.spec.js +5 -4
  12. package/cjs/src/embed/app.spec.js.map +1 -1
  13. package/cjs/src/embed/base.d.ts.map +1 -1
  14. package/cjs/src/embed/base.js +5 -2
  15. package/cjs/src/embed/base.js.map +1 -1
  16. package/cjs/src/embed/base.spec.js +3 -2
  17. package/cjs/src/embed/base.spec.js.map +1 -1
  18. package/cjs/src/embed/embed.spec.js +2 -1
  19. package/cjs/src/embed/embed.spec.js.map +1 -1
  20. package/cjs/src/embed/embedConfig.d.ts +2 -1
  21. package/cjs/src/embed/embedConfig.d.ts.map +1 -1
  22. package/cjs/src/embed/embedConfig.js +2 -0
  23. package/cjs/src/embed/embedConfig.js.map +1 -1
  24. package/cjs/src/embed/events.spec.js +3 -2
  25. package/cjs/src/embed/events.spec.js.map +1 -1
  26. package/cjs/src/embed/liveboard.d.ts +28 -23
  27. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  28. package/cjs/src/embed/liveboard.js +4 -3
  29. package/cjs/src/embed/liveboard.js.map +1 -1
  30. package/cjs/src/embed/sage.d.ts +47 -29
  31. package/cjs/src/embed/sage.d.ts.map +1 -1
  32. package/cjs/src/embed/sage.js +1 -1
  33. package/cjs/src/embed/sage.js.map +1 -1
  34. package/cjs/src/embed/search-bar.d.ts +22 -6
  35. package/cjs/src/embed/search-bar.d.ts.map +1 -1
  36. package/cjs/src/embed/search-bar.js.map +1 -1
  37. package/cjs/src/embed/search.d.ts +33 -18
  38. package/cjs/src/embed/search.d.ts.map +1 -1
  39. package/cjs/src/embed/search.js +4 -1
  40. package/cjs/src/embed/search.js.map +1 -1
  41. package/cjs/src/embed/search.spec.js +10 -0
  42. package/cjs/src/embed/search.spec.js.map +1 -1
  43. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  44. package/cjs/src/embed/ts-embed.js +37 -17
  45. package/cjs/src/embed/ts-embed.js.map +1 -1
  46. package/cjs/src/embed/ts-embed.spec.js +141 -26
  47. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  48. package/cjs/src/index.d.ts +2 -2
  49. package/cjs/src/index.d.ts.map +1 -1
  50. package/cjs/src/index.js +2 -1
  51. package/cjs/src/index.js.map +1 -1
  52. package/cjs/src/mixpanel-service.d.ts.map +1 -1
  53. package/cjs/src/mixpanel-service.js +2 -1
  54. package/cjs/src/mixpanel-service.js.map +1 -1
  55. package/cjs/src/react/index.spec.js +2 -14
  56. package/cjs/src/react/index.spec.js.map +1 -1
  57. package/cjs/src/types.d.ts +751 -242
  58. package/cjs/src/types.d.ts.map +1 -1
  59. package/cjs/src/types.js +665 -176
  60. package/cjs/src/types.js.map +1 -1
  61. package/cjs/src/utils/authService/authService.d.ts.map +1 -1
  62. package/cjs/src/utils/authService/authService.js +3 -2
  63. package/cjs/src/utils/authService/authService.js.map +1 -1
  64. package/cjs/src/utils/authService/authService.spec.js +3 -2
  65. package/cjs/src/utils/authService/authService.spec.js.map +1 -1
  66. package/cjs/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
  67. package/cjs/src/utils/authService/tokenizedAuthService.js +2 -1
  68. package/cjs/src/utils/authService/tokenizedAuthService.js.map +1 -1
  69. package/cjs/src/utils/graphql/answerService/answerService.d.ts +2 -4
  70. package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  71. package/cjs/src/utils/graphql/answerService/answerService.js +2 -4
  72. package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -1
  73. package/cjs/src/utils/logger.d.ts +4 -14
  74. package/cjs/src/utils/logger.d.ts.map +1 -1
  75. package/cjs/src/utils/logger.js +37 -41
  76. package/cjs/src/utils/logger.js.map +1 -1
  77. package/cjs/src/utils/logger.spec.d.ts +25 -0
  78. package/cjs/src/utils/logger.spec.d.ts.map +1 -0
  79. package/cjs/src/utils/logger.spec.js +80 -0
  80. package/cjs/src/utils/logger.spec.js.map +1 -0
  81. package/cjs/src/utils/processData.d.ts +6 -0
  82. package/cjs/src/utils/processData.d.ts.map +1 -1
  83. package/cjs/src/utils/processData.js +5 -1
  84. package/cjs/src/utils/processData.js.map +1 -1
  85. package/cjs/src/utils/processTrigger.js +1 -1
  86. package/dist/src/auth.d.ts +4 -4
  87. package/dist/src/auth.d.ts.map +1 -1
  88. package/dist/src/embed/app.d.ts +14 -14
  89. package/dist/src/embed/app.d.ts.map +1 -1
  90. package/dist/src/embed/base.d.ts.map +1 -1
  91. package/dist/src/embed/embedConfig.d.ts +2 -1
  92. package/dist/src/embed/embedConfig.d.ts.map +1 -1
  93. package/dist/src/embed/liveboard.d.ts +28 -23
  94. package/dist/src/embed/liveboard.d.ts.map +1 -1
  95. package/dist/src/embed/sage.d.ts +47 -29
  96. package/dist/src/embed/sage.d.ts.map +1 -1
  97. package/dist/src/embed/search-bar.d.ts +22 -6
  98. package/dist/src/embed/search-bar.d.ts.map +1 -1
  99. package/dist/src/embed/search.d.ts +33 -18
  100. package/dist/src/embed/search.d.ts.map +1 -1
  101. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  102. package/dist/src/index.d.ts +2 -2
  103. package/dist/src/index.d.ts.map +1 -1
  104. package/dist/src/mixpanel-service.d.ts.map +1 -1
  105. package/dist/src/types.d.ts +751 -242
  106. package/dist/src/types.d.ts.map +1 -1
  107. package/dist/src/utils/authService/authService.d.ts.map +1 -1
  108. package/dist/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
  109. package/dist/src/utils/graphql/answerService/answerService.d.ts +2 -4
  110. package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  111. package/dist/src/utils/logger.d.ts +4 -14
  112. package/dist/src/utils/logger.d.ts.map +1 -1
  113. package/dist/src/utils/logger.spec.d.ts +25 -0
  114. package/dist/src/utils/logger.spec.d.ts.map +1 -0
  115. package/dist/src/utils/processData.d.ts +6 -0
  116. package/dist/src/utils/processData.d.ts.map +1 -1
  117. package/dist/tsembed-react.es.js +18186 -404
  118. package/dist/tsembed-react.js +18185 -403
  119. package/dist/tsembed.es.js +18336 -545
  120. package/dist/tsembed.js +32457 -14667
  121. package/dist/visual-embed-sdk-react-full.d.ts +903 -341
  122. package/dist/visual-embed-sdk-react.d.ts +903 -341
  123. package/dist/visual-embed-sdk.d.ts +903 -341
  124. package/lib/package.json +1 -1
  125. package/lib/src/auth.d.ts +4 -4
  126. package/lib/src/auth.d.ts.map +1 -1
  127. package/lib/src/auth.js +15 -8
  128. package/lib/src/auth.js.map +1 -1
  129. package/lib/src/embed/app.d.ts +14 -14
  130. package/lib/src/embed/app.d.ts.map +1 -1
  131. package/lib/src/embed/app.js +4 -3
  132. package/lib/src/embed/app.js.map +1 -1
  133. package/lib/src/embed/app.spec.js +5 -4
  134. package/lib/src/embed/app.spec.js.map +1 -1
  135. package/lib/src/embed/base.d.ts.map +1 -1
  136. package/lib/src/embed/base.js +6 -3
  137. package/lib/src/embed/base.js.map +1 -1
  138. package/lib/src/embed/base.spec.js +3 -2
  139. package/lib/src/embed/base.spec.js.map +1 -1
  140. package/lib/src/embed/embed.spec.js +2 -1
  141. package/lib/src/embed/embed.spec.js.map +1 -1
  142. package/lib/src/embed/embedConfig.d.ts +2 -1
  143. package/lib/src/embed/embedConfig.d.ts.map +1 -1
  144. package/lib/src/embed/embedConfig.js +2 -0
  145. package/lib/src/embed/embedConfig.js.map +1 -1
  146. package/lib/src/embed/events.spec.js +3 -2
  147. package/lib/src/embed/events.spec.js.map +1 -1
  148. package/lib/src/embed/liveboard.d.ts +28 -23
  149. package/lib/src/embed/liveboard.d.ts.map +1 -1
  150. package/lib/src/embed/liveboard.js +4 -3
  151. package/lib/src/embed/liveboard.js.map +1 -1
  152. package/lib/src/embed/sage.d.ts +47 -29
  153. package/lib/src/embed/sage.d.ts.map +1 -1
  154. package/lib/src/embed/sage.js +1 -1
  155. package/lib/src/embed/sage.js.map +1 -1
  156. package/lib/src/embed/search-bar.d.ts +22 -6
  157. package/lib/src/embed/search-bar.d.ts.map +1 -1
  158. package/lib/src/embed/search-bar.js.map +1 -1
  159. package/lib/src/embed/search.d.ts +33 -18
  160. package/lib/src/embed/search.d.ts.map +1 -1
  161. package/lib/src/embed/search.js +4 -1
  162. package/lib/src/embed/search.js.map +1 -1
  163. package/lib/src/embed/search.spec.js +10 -0
  164. package/lib/src/embed/search.spec.js.map +1 -1
  165. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  166. package/lib/src/embed/ts-embed.js +38 -18
  167. package/lib/src/embed/ts-embed.js.map +1 -1
  168. package/lib/src/embed/ts-embed.spec.js +141 -26
  169. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  170. package/lib/src/index.d.ts +2 -2
  171. package/lib/src/index.d.ts.map +1 -1
  172. package/lib/src/index.js +2 -2
  173. package/lib/src/index.js.map +1 -1
  174. package/lib/src/mixpanel-service.d.ts.map +1 -1
  175. package/lib/src/mixpanel-service.js +2 -1
  176. package/lib/src/mixpanel-service.js.map +1 -1
  177. package/lib/src/react/index.spec.js +2 -14
  178. package/lib/src/react/index.spec.js.map +1 -1
  179. package/lib/src/types.d.ts +751 -242
  180. package/lib/src/types.d.ts.map +1 -1
  181. package/lib/src/types.js +664 -175
  182. package/lib/src/types.js.map +1 -1
  183. package/lib/src/utils/authService/authService.d.ts.map +1 -1
  184. package/lib/src/utils/authService/authService.js +3 -2
  185. package/lib/src/utils/authService/authService.js.map +1 -1
  186. package/lib/src/utils/authService/authService.spec.js +3 -2
  187. package/lib/src/utils/authService/authService.spec.js.map +1 -1
  188. package/lib/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
  189. package/lib/src/utils/authService/tokenizedAuthService.js +2 -1
  190. package/lib/src/utils/authService/tokenizedAuthService.js.map +1 -1
  191. package/lib/src/utils/graphql/answerService/answerService.d.ts +2 -4
  192. package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  193. package/lib/src/utils/graphql/answerService/answerService.js +2 -4
  194. package/lib/src/utils/graphql/answerService/answerService.js.map +1 -1
  195. package/lib/src/utils/logger.d.ts +4 -14
  196. package/lib/src/utils/logger.d.ts.map +1 -1
  197. package/lib/src/utils/logger.js +23 -25
  198. package/lib/src/utils/logger.js.map +1 -1
  199. package/lib/src/utils/logger.spec.d.ts +25 -0
  200. package/lib/src/utils/logger.spec.d.ts.map +1 -0
  201. package/lib/src/utils/logger.spec.js +57 -0
  202. package/lib/src/utils/logger.spec.js.map +1 -0
  203. package/lib/src/utils/processData.d.ts +6 -0
  204. package/lib/src/utils/processData.d.ts.map +1 -1
  205. package/lib/src/utils/processData.js +4 -1
  206. package/lib/src/utils/processData.js.map +1 -1
  207. package/lib/src/utils/processTrigger.js +1 -1
  208. package/lib/src/visual-embed-sdk.d.ts +904 -342
  209. package/package.json +1 -1
  210. package/src/auth.ts +15 -8
  211. package/src/embed/app.spec.ts +5 -4
  212. package/src/embed/app.ts +22 -21
  213. package/src/embed/base.spec.ts +3 -2
  214. package/src/embed/base.ts +10 -3
  215. package/src/embed/embed.spec.ts +2 -1
  216. package/src/embed/embedConfig.ts +2 -0
  217. package/src/embed/events.spec.ts +3 -2
  218. package/src/embed/liveboard.ts +28 -23
  219. package/src/embed/sage.ts +47 -29
  220. package/src/embed/search-bar.tsx +22 -6
  221. package/src/embed/search.spec.ts +13 -0
  222. package/src/embed/search.ts +38 -19
  223. package/src/embed/ts-embed.spec.ts +159 -26
  224. package/src/embed/ts-embed.ts +37 -19
  225. package/src/index.ts +2 -0
  226. package/src/mixpanel-service.ts +2 -1
  227. package/src/react/index.spec.tsx +2 -31
  228. package/src/types.ts +753 -243
  229. package/src/utils/authService/authService.spec.ts +3 -2
  230. package/src/utils/authService/authService.ts +4 -2
  231. package/src/utils/authService/tokenizedAuthService.ts +2 -1
  232. package/src/utils/graphql/answerService/answerService.ts +2 -4
  233. package/src/utils/logger.spec.ts +67 -0
  234. package/src/utils/logger.ts +87 -0
  235. package/src/utils/processData.ts +4 -1
  236. package/src/utils/processTrigger.ts +1 -1
  237. package/cjs/src/embed/TsEmbed.d.ts +0 -302
  238. package/cjs/src/embed/TsEmbed.d.ts.map +0 -1
  239. package/cjs/src/embed/TsEmbed.js +0 -851
  240. package/cjs/src/embed/TsEmbed.js.map +0 -1
  241. package/cjs/src/utils/answerService.d.ts +0 -10
  242. package/cjs/src/utils/answerService.d.ts.map +0 -1
  243. package/cjs/src/utils/answerService.js +0 -61
  244. package/cjs/src/utils/answerService.js.map +0 -1
  245. package/cjs/src/utils/answerService.spec.d.ts +0 -2
  246. package/cjs/src/utils/answerService.spec.d.ts.map +0 -1
  247. package/cjs/src/utils/answerService.spec.js +0 -31
  248. package/cjs/src/utils/answerService.spec.js.map +0 -1
  249. package/cjs/src/utils/authService/tokenisedAuthSerice.d.ts +0 -11
  250. package/cjs/src/utils/authService/tokenisedAuthSerice.d.ts.map +0 -1
  251. package/cjs/src/utils/authService/tokenisedAuthSerice.js +0 -44
  252. package/cjs/src/utils/authService/tokenisedAuthSerice.js.map +0 -1
  253. package/cjs/src/utils/authService.d.ts +0 -55
  254. package/cjs/src/utils/authService.d.ts.map +0 -1
  255. package/cjs/src/utils/authService.js +0 -139
  256. package/cjs/src/utils/authService.js.map +0 -1
  257. package/cjs/src/utils/authService.spec.d.ts +0 -2
  258. package/cjs/src/utils/authService.spec.d.ts.map +0 -1
  259. package/cjs/src/utils/authService.spec.js +0 -82
  260. package/cjs/src/utils/authService.spec.js.map +0 -1
  261. package/cjs/src/utils/graphql/graphql-request.spec.d.ts +0 -2
  262. package/cjs/src/utils/graphql/graphql-request.spec.d.ts.map +0 -1
  263. package/cjs/src/utils/graphql/graphql-request.spec.js +0 -39
  264. package/cjs/src/utils/graphql/graphql-request.spec.js.map +0 -1
  265. package/dist/src/utils/answerService.d.ts +0 -10
  266. package/dist/src/utils/answerService.d.ts.map +0 -1
  267. package/dist/src/utils/answerService.spec.d.ts +0 -2
  268. package/dist/src/utils/answerService.spec.d.ts.map +0 -1
  269. package/dist/src/utils/authService/tokenisedAuthSerice.d.ts +0 -11
  270. package/dist/src/utils/authService/tokenisedAuthSerice.d.ts.map +0 -1
  271. package/dist/src/utils/authService.d.ts +0 -55
  272. package/dist/src/utils/authService.d.ts.map +0 -1
  273. package/dist/src/utils/authService.spec.d.ts +0 -2
  274. package/dist/src/utils/authService.spec.d.ts.map +0 -1
  275. package/dist/src/utils/graphql/graphql-request.spec.d.ts +0 -2
  276. package/dist/src/utils/graphql/graphql-request.spec.d.ts.map +0 -1
  277. package/lib/src/embed/TsEmbed.d.ts +0 -302
  278. package/lib/src/embed/TsEmbed.d.ts.map +0 -1
  279. package/lib/src/embed/TsEmbed.js +0 -847
  280. package/lib/src/embed/TsEmbed.js.map +0 -1
  281. package/lib/src/utils/answerService.d.ts +0 -10
  282. package/lib/src/utils/answerService.d.ts.map +0 -1
  283. package/lib/src/utils/answerService.js +0 -57
  284. package/lib/src/utils/answerService.js.map +0 -1
  285. package/lib/src/utils/answerService.spec.d.ts +0 -2
  286. package/lib/src/utils/answerService.spec.d.ts.map +0 -1
  287. package/lib/src/utils/answerService.spec.js +0 -29
  288. package/lib/src/utils/answerService.spec.js.map +0 -1
  289. package/lib/src/utils/authService/tokenisedAuthSerice.d.ts +0 -11
  290. package/lib/src/utils/authService/tokenisedAuthSerice.d.ts.map +0 -1
  291. package/lib/src/utils/authService/tokenisedAuthSerice.js +0 -39
  292. package/lib/src/utils/authService/tokenisedAuthSerice.js.map +0 -1
  293. package/lib/src/utils/authService.d.ts +0 -55
  294. package/lib/src/utils/authService.d.ts.map +0 -1
  295. package/lib/src/utils/authService.js +0 -129
  296. package/lib/src/utils/authService.js.map +0 -1
  297. package/lib/src/utils/authService.spec.d.ts +0 -2
  298. package/lib/src/utils/authService.spec.d.ts.map +0 -1
  299. package/lib/src/utils/authService.spec.js +0 -80
  300. package/lib/src/utils/authService.spec.js.map +0 -1
  301. package/lib/src/utils/graphql/graphql-request.spec.d.ts +0 -2
  302. package/lib/src/utils/graphql/graphql-request.spec.d.ts.map +0 -1
  303. package/lib/src/utils/graphql/graphql-request.spec.js +0 -36
  304. package/lib/src/utils/graphql/graphql-request.spec.js.map +0 -1
@@ -20,25 +20,41 @@ export interface SearchBarViewConfig
20
20
  > {
21
21
  /**
22
22
  * The array of data source GUIDs to set on load.
23
- * Only a single dataSource supported currently.
23
+ * Only a single data source is supported currently.
24
24
  *
25
- * @deprecated Use dataSource instead
25
+ * @deprecated Use `dataSource` instead
26
26
  */
27
27
  dataSources?: string[];
28
28
  /**
29
29
  * The array of data source GUIDs to set on load.
30
30
  *
31
- * @version: SDK: 1.19.0
31
+ * @version: SDK: 1.19.0, ThoughtSpot 9.0.0.cl, 9.0.1.sw
32
32
  */
33
33
  dataSource?: string;
34
34
  /**
35
- * Flag to set if last selected dataSource should be used
35
+ * Boolean to define if the last selected data source should be used
36
36
  *
37
- * @version: SDK: 1.24.0
37
+ * @version: SDK: 1.24.0, ThoughtSpot 9.5.0.cl, 9.5.0.sw
38
38
  */
39
39
  useLastSelectedSources?: boolean;
40
40
  /**
41
- * Configuration for search options
41
+ * Configuration for search options.
42
+ * Includes the following properties:
43
+ *
44
+ * `searchTokenString`: Search tokens to pass in the query.
45
+ *
46
+ * `executeSearch`: Boolean to define if the search should be executed or not.
47
+ * If it is executed, the focus is placed on the results.
48
+ * If it’s not executed, the focus is placed at the end of
49
+ * the token string in the search bar.
50
+ *
51
+ * @example
52
+ * ```js
53
+ * searchOptions: {
54
+ * searchTokenString: '[quantity purchased] [region]',
55
+ * executeSearch: true,
56
+ * }
57
+ * ```
42
58
  */
43
59
  searchOptions?: SearchOptions;
44
60
  }
@@ -411,4 +411,17 @@ describe('Search embed tests', () => {
411
411
  );
412
412
  });
413
413
  });
414
+ test('should set hideSearchBar to true if hideSearchBar flag is true', async () => {
415
+ const searchEmbed = new SearchEmbed(getRootEl(), {
416
+ ...defaultViewConfig,
417
+ hideSearchBar: true,
418
+ });
419
+ searchEmbed.render();
420
+ await executeAfterWait(() => {
421
+ expectUrlMatchesWithParams(
422
+ getIFrameSrc(),
423
+ `http://${thoughtSpotHost}/v2/?${defaultParamsWithHiddenActions}&dataSourceMode=expand&enableDataPanelV2=false&useLastSelectedSources=false&hideSearchBar=true${prefixParams}#/embed/saved-answer/${answerId}`,
424
+ );
425
+ });
426
+ });
414
427
  });
@@ -23,18 +23,19 @@ import { getReleaseVersion } from '../auth';
23
23
  import { getEmbedConfig } from './embedConfig';
24
24
 
25
25
  /**
26
- * Configuration for search options
26
+ * Configuration for search options.
27
+ *
27
28
  */
28
29
  export interface SearchOptions {
29
30
  /**
30
- * The tml string to load the answer
31
+ * Search tokens to pass in the query.
31
32
  */
32
33
  searchTokenString: string;
33
34
  /**
34
- * Boolean to determine if the search should be executed or not.
35
- * 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
35
+ * Boolean to define if the search should be executed or not.
36
+ * If it is executed, the focus is placed on the results.
37
+ * If it’s not executed, the focus is placed at the end of
38
+ * the token string in the search bar.
38
39
  */
39
40
  executeSearch?: boolean;
40
41
  }
@@ -59,19 +60,15 @@ export interface SearchViewConfig
59
60
  */
60
61
  collapseDataSources?: boolean;
61
62
  /**
62
- * If set to true, hides the data sources panel.
63
+ * Show or hide the data sources panel.
63
64
  */
64
65
  hideDataSources?: boolean;
65
66
  /**
66
- * If set to true, hides the charts and tables in search answers.
67
+ * Show or hide the charts and tables in search answers.
67
68
  * This attribute can be used to create a custom visualization
68
69
  * using raw answer data.
69
70
  */
70
71
  hideResults?: boolean;
71
- /**
72
- * If set to true, expands all the data sources panel.
73
- */
74
- expandAllDataSource?: boolean;
75
72
  /**
76
73
  * If set to true, the Search Assist feature is enabled.
77
74
  *
@@ -85,9 +82,9 @@ export interface SearchViewConfig
85
82
  forceTable?: boolean;
86
83
  /**
87
84
  * The array of data source GUIDs to set on load.
88
- * Only a single dataSource supported currently.
85
+ * Only a single data source is supported currently.
89
86
  *
90
- * @deprecated Use dataSource instead
87
+ * @deprecated Use `dataSource` instead.
91
88
  */
92
89
  dataSources?: string[];
93
90
  /**
@@ -99,11 +96,29 @@ export interface SearchViewConfig
99
96
  /**
100
97
  * The initial search query to load the answer with.
101
98
  *
102
- * @deprecated Use {@link searchOptions} instead
99
+ * @deprecated
100
+ *
101
+ * Use {@link searchOptions} instead.
103
102
  */
104
103
  searchQuery?: string;
105
104
  /**
106
- * Configuration for search options
105
+ * Configuration for search options.
106
+ * Includes the following properties:
107
+ *
108
+ * `searchTokenString`: Search tokens to pass in the query.
109
+ *
110
+ * `executeSearch`: Boolean to define if the search should be executed or not.
111
+ * If it is executed, the focus is placed on the results.
112
+ * If it’s not executed, the focus is placed at the end of
113
+ * the token string in the search bar.
114
+ *
115
+ * @example
116
+ * ```js
117
+ * searchOptions: {
118
+ * searchTokenString: '[quantity purchased] [region]',
119
+ * executeSearch: true,
120
+ * }
121
+ * ```
107
122
  */
108
123
  searchOptions?: SearchOptions;
109
124
  /**
@@ -111,10 +126,10 @@ export interface SearchViewConfig
111
126
  */
112
127
  answerId?: string;
113
128
  /**
114
- * If set to true, search page will render without the Search Bar
129
+ * If set to true, the search page will render without the Search Bar
115
130
  * The chart/table should still be visible.
116
131
  *
117
- * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
132
+ * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.5.0.sw
118
133
  */
119
134
  hideSearchBar?: boolean;
120
135
  /**
@@ -177,7 +192,6 @@ export class SearchEmbed extends TsEmbed {
177
192
  protected getEmbedParams(): string {
178
193
  const {
179
194
  hideResults,
180
- expandAllDataSource,
181
195
  enableSearchAssist,
182
196
  forceTable,
183
197
  searchOptions,
@@ -185,6 +199,7 @@ export class SearchEmbed extends TsEmbed {
185
199
  dataSource,
186
200
  dataSources,
187
201
  excludeRuntimeFiltersfromURL,
202
+ hideSearchBar,
188
203
  dataPanelV2 = false,
189
204
  useLastSelectedSources = false,
190
205
  runtimeParameters,
@@ -221,6 +236,10 @@ export class SearchEmbed extends TsEmbed {
221
236
  queryParams[Param.ForceTable] = true;
222
237
  }
223
238
 
239
+ if (hideSearchBar) {
240
+ queryParams[Param.HideSearchBar] = true;
241
+ }
242
+
224
243
  queryParams[Param.DataPanelV2Enabled] = dataPanelV2;
225
244
  queryParams[Param.DataSourceMode] = this.getDataSourceMode();
226
245
 
@@ -32,6 +32,7 @@ import * as authInstance from '../auth';
32
32
  import * as baseInstance from './base';
33
33
  import { MIXPANEL_EVENT } from '../mixpanel-service';
34
34
  import * as authService from '../utils/authService/authService';
35
+ import { logger } from '../utils/logger';
35
36
 
36
37
  const defaultViewConfig = {
37
38
  frameParams: {
@@ -425,7 +426,7 @@ describe('Unit test case for ts embed', () => {
425
426
  const searchEmbed = new SearchEmbed(getRootEl(), defaultViewConfig);
426
427
  searchEmbed
427
428
  .on(EmbedEvent.Save, () => {
428
- console.log('non callable');
429
+ logger.log('non callable');
429
430
  })
430
431
  .render();
431
432
 
@@ -468,7 +469,7 @@ describe('Unit test case for ts embed', () => {
468
469
  .on(
469
470
  EmbedEvent.Save,
470
471
  () => {
471
- console.log('non callable');
472
+ logger.log('non callable');
472
473
  },
473
474
  { start: true },
474
475
  )
@@ -562,6 +563,138 @@ describe('Unit test case for ts embed', () => {
562
563
  });
563
564
  });
564
565
 
566
+ describe('Token fetch fails in cookieless authentication authType', () => {
567
+ beforeEach(() => {
568
+ jest.spyOn(authInstance, 'doCookielessTokenAuth').mockResolvedValueOnce(true);
569
+ init({
570
+ thoughtSpotHost: 'tshost',
571
+ customizations: customisations,
572
+ customCssUrl: 'http://localhost:5000',
573
+ authType: AuthType.TrustedAuthTokenCookieless,
574
+ getAuthToken: () => Promise.reject(),
575
+ });
576
+ });
577
+
578
+ afterEach(() => {
579
+ jest.clearAllMocks();
580
+ baseInstance.reset();
581
+ });
582
+
583
+ test('should show login failure message if token failed during app_init', async () => {
584
+ const a = jest.spyOn(authService, 'verifyTokenService');
585
+ a.mockResolvedValue(true);
586
+
587
+ // authVerifyMock.mockResolvedValue(true);
588
+ const mockEmbedEventPayload = {
589
+ type: EmbedEvent.APP_INIT,
590
+ data: {},
591
+ };
592
+ const searchEmbed = new SearchEmbed(getRootEl(), defaultViewConfig);
593
+ searchEmbed.render();
594
+ const mockPort: any = {
595
+ postMessage: jest.fn(),
596
+ };
597
+ await executeAfterWait(() => {
598
+ const iframe = getIFrameEl();
599
+ postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
600
+ });
601
+ await executeAfterWait(() => {
602
+ expect(mockPort.postMessage).not.toHaveBeenCalled();
603
+ expect(getRootEl().innerHTML).toContain('Not logged in');
604
+ });
605
+
606
+ jest.spyOn(authService, 'verifyTokenService').mockClear();
607
+ });
608
+
609
+ test('should show login failure message if token failed during app_init prerender', async () => {
610
+ const a = jest.spyOn(authService, 'verifyTokenService');
611
+ a.mockResolvedValue(true);
612
+
613
+ // authVerifyMock.mockResolvedValue(true);
614
+ const mockEmbedEventPayload = {
615
+ type: EmbedEvent.APP_INIT,
616
+ data: {},
617
+ };
618
+ const searchEmbed = new SearchEmbed(getRootEl(), { ...defaultViewConfig, preRenderId: 'test' });
619
+ searchEmbed.preRender();
620
+ const mockPort: any = {
621
+ postMessage: jest.fn(),
622
+ };
623
+ await executeAfterWait(() => {
624
+ const iframe = getIFrameEl();
625
+ postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
626
+ });
627
+ const preRenderWrapper = document.getElementById('tsEmbed-pre-render-wrapper-test');
628
+ await executeAfterWait(() => {
629
+ expect(mockPort.postMessage).not.toHaveBeenCalled();
630
+ expect(preRenderWrapper.innerHTML).toContain('Not logged in');
631
+ });
632
+
633
+ jest.spyOn(authService, 'verifyTokenService').mockClear();
634
+ });
635
+
636
+ test('should show login failure message if update token failed', async () => {
637
+ const a = jest.spyOn(authService, 'verifyTokenService');
638
+ a.mockResolvedValue(true);
639
+
640
+ // authVerifyMock.mockResolvedValue(true);
641
+ const mockEmbedEventPayload = {
642
+ type: EmbedEvent.AuthExpire,
643
+ data: {},
644
+ };
645
+ const searchEmbed = new SearchEmbed(getRootEl(), defaultViewConfig);
646
+ jest.spyOn(baseInstance, 'notifyAuthFailure');
647
+ searchEmbed.render();
648
+ const mockPort: any = {
649
+ postMessage: jest.fn(),
650
+ };
651
+ await executeAfterWait(() => {
652
+ const iframe = getIFrameEl();
653
+ postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
654
+ });
655
+ await executeAfterWait(() => {
656
+ expect(getRootEl().innerHTML).toContain('Not logged in');
657
+ expect(baseInstance.notifyAuthFailure).toBeCalledWith(
658
+ authInstance.AuthFailureType.EXPIRY,
659
+ );
660
+ });
661
+
662
+ jest.spyOn(authService, 'verifyTokenService').mockClear();
663
+ jest.spyOn(baseInstance, 'notifyAuthFailure').mockClear();
664
+ });
665
+
666
+ test('should show login failure message if update token failed prerender', async () => {
667
+ const a = jest.spyOn(authService, 'verifyTokenService');
668
+ a.mockResolvedValue(true);
669
+
670
+ // authVerifyMock.mockResolvedValue(true);
671
+ const mockEmbedEventPayload = {
672
+ type: EmbedEvent.AuthExpire,
673
+ data: {},
674
+ };
675
+ const searchEmbed = new SearchEmbed(getRootEl(), { ...defaultViewConfig, preRenderId: 'test' });
676
+ jest.spyOn(baseInstance, 'notifyAuthFailure');
677
+ searchEmbed.preRender();
678
+ const mockPort: any = {
679
+ postMessage: jest.fn(),
680
+ };
681
+ await executeAfterWait(() => {
682
+ const iframe = getIFrameEl();
683
+ postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
684
+ });
685
+ const preRenderWrapper = document.getElementById('tsEmbed-pre-render-wrapper-test');
686
+ await executeAfterWait(() => {
687
+ expect(preRenderWrapper.innerHTML).toContain('Not logged in');
688
+ expect(baseInstance.notifyAuthFailure).toBeCalledWith(
689
+ authInstance.AuthFailureType.EXPIRY,
690
+ );
691
+ });
692
+
693
+ jest.spyOn(authService, 'verifyTokenService').mockClear();
694
+ jest.spyOn(baseInstance, 'notifyAuthFailure').mockClear();
695
+ });
696
+ });
697
+
565
698
  xdescribe('AuthExpire embedEvent in TrustedAuthToken authType', () => {
566
699
  test('AutoLogin true scenario', async () => {
567
700
  init({
@@ -698,7 +831,7 @@ describe('Unit test case for ts embed', () => {
698
831
  const iFrame: any = document.createElement('div');
699
832
  iFrame.contentWindow = null;
700
833
  jest.spyOn(document, 'createElement').mockReturnValueOnce(iFrame);
701
- spyOn(console, 'error');
834
+ spyOn(logger, 'error');
702
835
  tsEmbed.render();
703
836
  });
704
837
 
@@ -712,7 +845,7 @@ describe('Unit test case for ts embed', () => {
712
845
 
713
846
  describe('when visible actions are set', () => {
714
847
  test('should throw error when there are both visible and hidden actions - pinboard', async () => {
715
- spyOn(console, 'error');
848
+ spyOn(logger, 'error');
716
849
  const pinboardEmbed = new PinboardEmbed(getRootEl(), {
717
850
  hiddenActions: [Action.DownloadAsCsv],
718
851
  visibleActions: [Action.DownloadAsCsv],
@@ -721,7 +854,7 @@ describe('Unit test case for ts embed', () => {
721
854
  } as LiveboardViewConfig);
722
855
  await pinboardEmbed.render();
723
856
  expect(pinboardEmbed['isError']).toBe(true);
724
- expect(console.error).toHaveBeenCalledWith(
857
+ expect(logger.error).toHaveBeenCalledWith(
725
858
  'You cannot have both hidden actions and visible actions',
726
859
  );
727
860
  });
@@ -744,7 +877,7 @@ describe('Unit test case for ts embed', () => {
744
877
  hiddenActions: Array<Action>,
745
878
  visibleActions: Array<Action>,
746
879
  ) {
747
- spyOn(console, 'error');
880
+ spyOn(logger, 'error');
748
881
  const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
749
882
  hiddenActions,
750
883
  visibleActions,
@@ -753,7 +886,7 @@ describe('Unit test case for ts embed', () => {
753
886
  } as LiveboardViewConfig);
754
887
  await liveboardEmbed.render();
755
888
  expect(liveboardEmbed['isError']).toBe(true);
756
- expect(console.error).toHaveBeenCalledWith(
889
+ expect(logger.error).toHaveBeenCalledWith(
757
890
  'You cannot have both hidden actions and visible actions',
758
891
  );
759
892
  }
@@ -789,7 +922,7 @@ describe('Unit test case for ts embed', () => {
789
922
 
790
923
  describe('when visible Tabs are set', () => {
791
924
  test('should throw error when there are both visible and hidden Tabs - pinboard', async () => {
792
- spyOn(console, 'error');
925
+ spyOn(logger, 'error');
793
926
  const pinboardEmbed = new PinboardEmbed(getRootEl(), {
794
927
  visibleTabs: [tabId1],
795
928
  hiddenTabs: [tabId2],
@@ -798,7 +931,7 @@ describe('Unit test case for ts embed', () => {
798
931
  } as LiveboardViewConfig);
799
932
  await pinboardEmbed.render();
800
933
  expect(pinboardEmbed['isError']).toBe(true);
801
- expect(console.error).toHaveBeenCalledWith(
934
+ expect(logger.error).toHaveBeenCalledWith(
802
935
  'You cannot have both hidden Tabs and visible Tabs',
803
936
  );
804
937
  });
@@ -821,7 +954,7 @@ describe('Unit test case for ts embed', () => {
821
954
  hiddenTabs: Array<string>,
822
955
  visibleTabs: Array<string>,
823
956
  ) {
824
- spyOn(console, 'error');
957
+ spyOn(logger, 'error');
825
958
  const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
826
959
  hiddenTabs,
827
960
  visibleTabs,
@@ -830,7 +963,7 @@ describe('Unit test case for ts embed', () => {
830
963
  } as LiveboardViewConfig);
831
964
  await liveboardEmbed.render();
832
965
  expect(liveboardEmbed['isError']).toBe(true);
833
- expect(console.error).toHaveBeenCalledWith(
966
+ expect(logger.error).toHaveBeenCalledWith(
834
967
  'You cannot have both hidden Tabs and visible Tabs',
835
968
  );
836
969
  }
@@ -874,11 +1007,11 @@ describe('Unit test case for ts embed', () => {
874
1007
  });
875
1008
 
876
1009
  test('Error should be true', async () => {
877
- spyOn(console, 'error');
1010
+ spyOn(logger, 'error');
878
1011
  const tsEmbed = new SearchEmbed(getRootEl(), {});
879
1012
  tsEmbed.render();
880
1013
  expect(tsEmbed['isError']).toBe(true);
881
- expect(console.error).toHaveBeenCalledWith(
1014
+ expect(logger.error).toHaveBeenCalledWith(
882
1015
  'You need to init the ThoughtSpot SDK module first',
883
1016
  );
884
1017
  });
@@ -886,13 +1019,13 @@ describe('Unit test case for ts embed', () => {
886
1019
 
887
1020
  describe('V1Embed ', () => {
888
1021
  test('when isRendered is true than isError will be true', () => {
889
- spyOn(console, 'error');
1022
+ spyOn(logger, 'error');
890
1023
  const viEmbedIns = new tsEmbedInstance.V1Embed(getRootEl(), defaultViewConfig);
891
1024
  expect(viEmbedIns['isError']).toBe(false);
892
1025
  viEmbedIns.render();
893
1026
  viEmbedIns.on(EmbedEvent.CustomAction, jest.fn()).render();
894
1027
  expect(viEmbedIns['isError']).toBe(true);
895
- expect(console.error).toHaveBeenCalledWith(
1028
+ expect(logger.error).toHaveBeenCalledWith(
896
1029
  'Please register event handlers before calling render',
897
1030
  );
898
1031
  });
@@ -933,7 +1066,7 @@ describe('Unit test case for ts embed', () => {
933
1066
  });
934
1067
 
935
1068
  test('navigateToPage function use before render', async () => {
936
- spyOn(console, 'log');
1069
+ spyOn(logger, 'log');
937
1070
  const appEmbed = new AppEmbed(getRootEl(), {
938
1071
  frameParams: {
939
1072
  width: '100%',
@@ -942,7 +1075,7 @@ describe('Unit test case for ts embed', () => {
942
1075
  });
943
1076
  appEmbed.navigateToPage(path, false);
944
1077
  await appEmbed.render();
945
- expect(console.log).toHaveBeenCalledWith(
1078
+ expect(logger.log).toHaveBeenCalledWith(
946
1079
  'Please call render before invoking this method',
947
1080
  );
948
1081
  });
@@ -1330,7 +1463,7 @@ describe('Unit test case for ts embed', () => {
1330
1463
  });
1331
1464
 
1332
1465
  // show preRender
1333
- const warnSpy = spyOn(console, 'warn');
1466
+ const warnSpy = spyOn(logger, 'warn');
1334
1467
  libEmbed.showPreRender();
1335
1468
  expect(warnSpy).toHaveBeenCalledTimes(0);
1336
1469
 
@@ -1360,13 +1493,13 @@ describe('Unit test case for ts embed', () => {
1360
1493
  it('preRender called without preRenderId should log error ', () => {
1361
1494
  createRootEleForEmbed();
1362
1495
 
1363
- spyOn(console, 'error');
1496
+ spyOn(logger, 'error');
1364
1497
  const libEmbed = new LiveboardEmbed('#tsEmbedDiv', {
1365
1498
  liveboardId: 'myLiveboardId',
1366
1499
  });
1367
1500
  libEmbed.preRender();
1368
1501
 
1369
- expect(console.error).toHaveBeenCalledWith('PreRender id is required for preRender');
1502
+ expect(logger.error).toHaveBeenCalledWith('PreRender id is required for preRender');
1370
1503
  });
1371
1504
 
1372
1505
  it('showPreRender should preRender if not available', async () => {
@@ -1414,7 +1547,7 @@ describe('Unit test case for ts embed', () => {
1414
1547
 
1415
1548
  libEmbed.preRender();
1416
1549
  await waitFor(() => !!getIFrameEl());
1417
- const warnSpy = jest.spyOn(console, 'warn');
1550
+ const warnSpy = jest.spyOn(logger, 'warn');
1418
1551
  const newEmbed = new LiveboardEmbed('#tsEmbedDiv', {
1419
1552
  preRenderId: 'i-am-preRendered',
1420
1553
  liveboardId: 'awdawda',
@@ -1433,10 +1566,10 @@ describe('Unit test case for ts embed', () => {
1433
1566
  liveboardId: 'myLiveboardId',
1434
1567
  });
1435
1568
  spyOn(libEmbed, 'preRender');
1436
- spyOn(console, 'error');
1569
+ spyOn(logger, 'error');
1437
1570
  libEmbed.showPreRender();
1438
1571
  expect(libEmbed.preRender).toHaveBeenCalledTimes(0);
1439
- expect(console.error).toHaveBeenCalledTimes(1);
1572
+ expect(logger.error).toHaveBeenCalledTimes(1);
1440
1573
  });
1441
1574
 
1442
1575
  it('should get underlying iframe', async () => {
@@ -1464,16 +1597,16 @@ describe('Unit test case for ts embed', () => {
1464
1597
  );
1465
1598
  });
1466
1599
  it('should log error if sync is called before preRender', async () => {
1467
- jest.spyOn(console, 'error').mockImplementation(jest.fn());
1600
+ jest.spyOn(logger, 'error').mockImplementation(jest.fn());
1468
1601
  const libEmbed = new LiveboardEmbed('#tsEmbedDiv', {
1469
1602
  liveboardId: 'myLiveboardId',
1470
1603
  preRenderId: 'test',
1471
1604
  });
1472
1605
  await libEmbed.syncPreRenderStyle();
1473
- expect(console.error).toBeCalledWith(
1606
+ expect(logger.error).toBeCalledWith(
1474
1607
  'PreRender should be called before using syncPreRenderStyle',
1475
1608
  );
1476
- (console.error as any).mockClear();
1609
+ (logger.error as any).mockClear();
1477
1610
  });
1478
1611
  });
1479
1612
  });