@thoughtspot/visual-embed-sdk 1.26.6 → 1.26.7

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 (263) hide show
  1. package/README.md +2 -2
  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 +16 -9
  6. package/cjs/src/auth.js.map +1 -1
  7. package/cjs/src/embed/app.d.ts +15 -15
  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 +1 -1
  14. package/cjs/src/embed/base.d.ts.map +1 -1
  15. package/cjs/src/embed/base.js +9 -6
  16. package/cjs/src/embed/base.js.map +1 -1
  17. package/cjs/src/embed/base.spec.js +4 -3
  18. package/cjs/src/embed/base.spec.js.map +1 -1
  19. package/cjs/src/embed/embed.spec.js +2 -1
  20. package/cjs/src/embed/embed.spec.js.map +1 -1
  21. package/cjs/src/embed/embedConfig.d.ts +2 -1
  22. package/cjs/src/embed/embedConfig.d.ts.map +1 -1
  23. package/cjs/src/embed/embedConfig.js +2 -0
  24. package/cjs/src/embed/embedConfig.js.map +1 -1
  25. package/cjs/src/embed/events.spec.js +3 -2
  26. package/cjs/src/embed/events.spec.js.map +1 -1
  27. package/cjs/src/embed/liveboard.d.ts +35 -23
  28. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  29. package/cjs/src/embed/liveboard.js +8 -4
  30. package/cjs/src/embed/liveboard.js.map +1 -1
  31. package/cjs/src/embed/liveboard.spec.js +2 -1
  32. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  33. package/cjs/src/embed/sage.d.ts +48 -30
  34. package/cjs/src/embed/sage.d.ts.map +1 -1
  35. package/cjs/src/embed/sage.js +7 -6
  36. package/cjs/src/embed/sage.js.map +1 -1
  37. package/cjs/src/embed/sage.spec.js +3 -3
  38. package/cjs/src/embed/sage.spec.js.map +1 -1
  39. package/cjs/src/embed/search-bar.d.ts +22 -6
  40. package/cjs/src/embed/search-bar.d.ts.map +1 -1
  41. package/cjs/src/embed/search-bar.js.map +1 -1
  42. package/cjs/src/embed/search.d.ts +35 -16
  43. package/cjs/src/embed/search.d.ts.map +1 -1
  44. package/cjs/src/embed/search.js +10 -6
  45. package/cjs/src/embed/search.js.map +1 -1
  46. package/cjs/src/embed/search.spec.js +10 -0
  47. package/cjs/src/embed/search.spec.js.map +1 -1
  48. package/cjs/src/embed/ts-embed.d.ts +2 -1
  49. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  50. package/cjs/src/embed/ts-embed.js +45 -22
  51. package/cjs/src/embed/ts-embed.js.map +1 -1
  52. package/cjs/src/embed/ts-embed.spec.js +153 -32
  53. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  54. package/cjs/src/index.d.ts +2 -2
  55. package/cjs/src/index.d.ts.map +1 -1
  56. package/cjs/src/index.js +2 -1
  57. package/cjs/src/index.js.map +1 -1
  58. package/cjs/src/mixpanel-service.d.ts.map +1 -1
  59. package/cjs/src/mixpanel-service.js +2 -1
  60. package/cjs/src/mixpanel-service.js.map +1 -1
  61. package/cjs/src/react/index.d.ts +1 -1
  62. package/cjs/src/react/index.d.ts.map +1 -1
  63. package/cjs/src/react/index.js +2 -1
  64. package/cjs/src/react/index.js.map +1 -1
  65. package/cjs/src/react/index.spec.js +2 -2
  66. package/cjs/src/react/index.spec.js.map +1 -1
  67. package/cjs/src/types.d.ts +742 -237
  68. package/cjs/src/types.d.ts.map +1 -1
  69. package/cjs/src/types.js +653 -169
  70. package/cjs/src/types.js.map +1 -1
  71. package/cjs/src/utils/authService/authService.d.ts.map +1 -1
  72. package/cjs/src/utils/authService/authService.js +3 -2
  73. package/cjs/src/utils/authService/authService.js.map +1 -1
  74. package/cjs/src/utils/authService/authService.spec.js +3 -2
  75. package/cjs/src/utils/authService/authService.spec.js.map +1 -1
  76. package/cjs/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
  77. package/cjs/src/utils/authService/tokenizedAuthService.js +2 -1
  78. package/cjs/src/utils/authService/tokenizedAuthService.js.map +1 -1
  79. package/cjs/src/utils/graphql/answerService/answerService.d.ts +2 -4
  80. package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  81. package/cjs/src/utils/graphql/answerService/answerService.js +2 -4
  82. package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -1
  83. package/cjs/src/utils/logger.d.ts +18 -0
  84. package/cjs/src/utils/logger.d.ts.map +1 -0
  85. package/cjs/src/utils/logger.js +80 -0
  86. package/cjs/src/utils/logger.js.map +1 -0
  87. package/cjs/src/utils/logger.spec.d.ts +25 -0
  88. package/cjs/src/utils/logger.spec.d.ts.map +1 -0
  89. package/cjs/src/utils/logger.spec.js +116 -0
  90. package/cjs/src/utils/logger.spec.js.map +1 -0
  91. package/cjs/src/utils/processData.d.ts +6 -0
  92. package/cjs/src/utils/processData.d.ts.map +1 -1
  93. package/cjs/src/utils/processData.js +5 -1
  94. package/cjs/src/utils/processData.js.map +1 -1
  95. package/cjs/src/utils/processTrigger.js +1 -1
  96. package/dist/src/auth.d.ts +4 -4
  97. package/dist/src/auth.d.ts.map +1 -1
  98. package/dist/src/embed/app.d.ts +15 -15
  99. package/dist/src/embed/app.d.ts.map +1 -1
  100. package/dist/src/embed/base.d.ts +1 -1
  101. package/dist/src/embed/base.d.ts.map +1 -1
  102. package/dist/src/embed/embedConfig.d.ts +2 -1
  103. package/dist/src/embed/embedConfig.d.ts.map +1 -1
  104. package/dist/src/embed/liveboard.d.ts +35 -23
  105. package/dist/src/embed/liveboard.d.ts.map +1 -1
  106. package/dist/src/embed/sage.d.ts +48 -30
  107. package/dist/src/embed/sage.d.ts.map +1 -1
  108. package/dist/src/embed/search-bar.d.ts +22 -6
  109. package/dist/src/embed/search-bar.d.ts.map +1 -1
  110. package/dist/src/embed/search.d.ts +35 -16
  111. package/dist/src/embed/search.d.ts.map +1 -1
  112. package/dist/src/embed/ts-embed.d.ts +2 -1
  113. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  114. package/dist/src/index.d.ts +2 -2
  115. package/dist/src/index.d.ts.map +1 -1
  116. package/dist/src/mixpanel-service.d.ts.map +1 -1
  117. package/dist/src/react/index.d.ts +1 -1
  118. package/dist/src/react/index.d.ts.map +1 -1
  119. package/dist/src/types.d.ts +742 -237
  120. package/dist/src/types.d.ts.map +1 -1
  121. package/dist/src/utils/authService/authService.d.ts.map +1 -1
  122. package/dist/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
  123. package/dist/src/utils/graphql/answerService/answerService.d.ts +2 -4
  124. package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  125. package/dist/src/utils/logger.d.ts +18 -0
  126. package/dist/src/utils/logger.d.ts.map +1 -0
  127. package/dist/src/utils/logger.spec.d.ts +25 -0
  128. package/dist/src/utils/logger.spec.d.ts.map +1 -0
  129. package/dist/src/utils/processData.d.ts +6 -0
  130. package/dist/src/utils/processData.d.ts.map +1 -1
  131. package/dist/tsembed-react.es.js +3716 -3107
  132. package/dist/tsembed-react.js +3620 -3012
  133. package/dist/tsembed.es.js +9830 -9212
  134. package/dist/tsembed.js +15079 -14462
  135. package/dist/visual-embed-sdk-react-full.d.ts +923 -332
  136. package/dist/visual-embed-sdk-react.d.ts +923 -332
  137. package/dist/visual-embed-sdk.d.ts +923 -332
  138. package/lib/package.json +1 -1
  139. package/lib/src/auth.d.ts +4 -4
  140. package/lib/src/auth.d.ts.map +1 -1
  141. package/lib/src/auth.js +17 -10
  142. package/lib/src/auth.js.map +1 -1
  143. package/lib/src/embed/app.d.ts +15 -15
  144. package/lib/src/embed/app.d.ts.map +1 -1
  145. package/lib/src/embed/app.js +4 -3
  146. package/lib/src/embed/app.js.map +1 -1
  147. package/lib/src/embed/app.spec.js +5 -4
  148. package/lib/src/embed/app.spec.js.map +1 -1
  149. package/lib/src/embed/base.d.ts +1 -1
  150. package/lib/src/embed/base.d.ts.map +1 -1
  151. package/lib/src/embed/base.js +9 -6
  152. package/lib/src/embed/base.js.map +1 -1
  153. package/lib/src/embed/base.spec.js +5 -4
  154. package/lib/src/embed/base.spec.js.map +1 -1
  155. package/lib/src/embed/embed.spec.js +2 -1
  156. package/lib/src/embed/embed.spec.js.map +1 -1
  157. package/lib/src/embed/embedConfig.d.ts +2 -1
  158. package/lib/src/embed/embedConfig.d.ts.map +1 -1
  159. package/lib/src/embed/embedConfig.js +2 -0
  160. package/lib/src/embed/embedConfig.js.map +1 -1
  161. package/lib/src/embed/events.spec.js +3 -2
  162. package/lib/src/embed/events.spec.js.map +1 -1
  163. package/lib/src/embed/liveboard.d.ts +35 -23
  164. package/lib/src/embed/liveboard.d.ts.map +1 -1
  165. package/lib/src/embed/liveboard.js +8 -4
  166. package/lib/src/embed/liveboard.js.map +1 -1
  167. package/lib/src/embed/liveboard.spec.js +2 -1
  168. package/lib/src/embed/liveboard.spec.js.map +1 -1
  169. package/lib/src/embed/sage.d.ts +48 -30
  170. package/lib/src/embed/sage.d.ts.map +1 -1
  171. package/lib/src/embed/sage.js +7 -6
  172. package/lib/src/embed/sage.js.map +1 -1
  173. package/lib/src/embed/sage.spec.js +3 -3
  174. package/lib/src/embed/sage.spec.js.map +1 -1
  175. package/lib/src/embed/search-bar.d.ts +22 -6
  176. package/lib/src/embed/search-bar.d.ts.map +1 -1
  177. package/lib/src/embed/search-bar.js.map +1 -1
  178. package/lib/src/embed/search.d.ts +35 -16
  179. package/lib/src/embed/search.d.ts.map +1 -1
  180. package/lib/src/embed/search.js +11 -7
  181. package/lib/src/embed/search.js.map +1 -1
  182. package/lib/src/embed/search.spec.js +10 -0
  183. package/lib/src/embed/search.spec.js.map +1 -1
  184. package/lib/src/embed/ts-embed.d.ts +2 -1
  185. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  186. package/lib/src/embed/ts-embed.js +48 -25
  187. package/lib/src/embed/ts-embed.js.map +1 -1
  188. package/lib/src/embed/ts-embed.spec.js +153 -32
  189. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  190. package/lib/src/index.d.ts +2 -2
  191. package/lib/src/index.d.ts.map +1 -1
  192. package/lib/src/index.js +2 -2
  193. package/lib/src/index.js.map +1 -1
  194. package/lib/src/mixpanel-service.d.ts.map +1 -1
  195. package/lib/src/mixpanel-service.js +2 -1
  196. package/lib/src/mixpanel-service.js.map +1 -1
  197. package/lib/src/react/index.d.ts +1 -1
  198. package/lib/src/react/index.d.ts.map +1 -1
  199. package/lib/src/react/index.js +1 -1
  200. package/lib/src/react/index.js.map +1 -1
  201. package/lib/src/react/index.spec.js +2 -2
  202. package/lib/src/react/index.spec.js.map +1 -1
  203. package/lib/src/types.d.ts +742 -237
  204. package/lib/src/types.d.ts.map +1 -1
  205. package/lib/src/types.js +652 -168
  206. package/lib/src/types.js.map +1 -1
  207. package/lib/src/utils/authService/authService.d.ts.map +1 -1
  208. package/lib/src/utils/authService/authService.js +3 -2
  209. package/lib/src/utils/authService/authService.js.map +1 -1
  210. package/lib/src/utils/authService/authService.spec.js +4 -3
  211. package/lib/src/utils/authService/authService.spec.js.map +1 -1
  212. package/lib/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
  213. package/lib/src/utils/authService/tokenizedAuthService.js +2 -1
  214. package/lib/src/utils/authService/tokenizedAuthService.js.map +1 -1
  215. package/lib/src/utils/graphql/answerService/answerService.d.ts +2 -4
  216. package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  217. package/lib/src/utils/graphql/answerService/answerService.js +2 -4
  218. package/lib/src/utils/graphql/answerService/answerService.js.map +1 -1
  219. package/lib/src/utils/logger.d.ts +18 -0
  220. package/lib/src/utils/logger.d.ts.map +1 -0
  221. package/lib/src/utils/logger.js +74 -0
  222. package/lib/src/utils/logger.js.map +1 -0
  223. package/lib/src/utils/logger.spec.d.ts +25 -0
  224. package/lib/src/utils/logger.spec.d.ts.map +1 -0
  225. package/lib/src/utils/logger.spec.js +93 -0
  226. package/lib/src/utils/logger.spec.js.map +1 -0
  227. package/lib/src/utils/processData.d.ts +6 -0
  228. package/lib/src/utils/processData.d.ts.map +1 -1
  229. package/lib/src/utils/processData.js +4 -1
  230. package/lib/src/utils/processData.js.map +1 -1
  231. package/lib/src/utils/processTrigger.js +1 -1
  232. package/lib/src/visual-embed-sdk.d.ts +927 -336
  233. package/package.json +1 -1
  234. package/src/auth.ts +20 -13
  235. package/src/embed/app.spec.ts +5 -4
  236. package/src/embed/app.ts +23 -22
  237. package/src/embed/base.spec.ts +6 -5
  238. package/src/embed/base.ts +18 -11
  239. package/src/embed/embed.spec.ts +2 -1
  240. package/src/embed/embedConfig.ts +2 -0
  241. package/src/embed/events.spec.ts +3 -2
  242. package/src/embed/liveboard.spec.ts +2 -1
  243. package/src/embed/liveboard.ts +43 -27
  244. package/src/embed/sage.spec.ts +3 -3
  245. package/src/embed/sage.ts +54 -36
  246. package/src/embed/search-bar.tsx +22 -6
  247. package/src/embed/search.spec.ts +13 -0
  248. package/src/embed/search.ts +46 -21
  249. package/src/embed/ts-embed.spec.ts +182 -43
  250. package/src/embed/ts-embed.ts +78 -59
  251. package/src/index.ts +2 -0
  252. package/src/mixpanel-service.ts +2 -1
  253. package/src/react/index.spec.tsx +2 -2
  254. package/src/react/index.tsx +1 -0
  255. package/src/types.ts +753 -245
  256. package/src/utils/authService/authService.spec.ts +7 -6
  257. package/src/utils/authService/authService.ts +4 -2
  258. package/src/utils/authService/tokenizedAuthService.ts +2 -1
  259. package/src/utils/graphql/answerService/answerService.ts +2 -4
  260. package/src/utils/logger.spec.ts +108 -0
  261. package/src/utils/logger.ts +88 -0
  262. package/src/utils/processData.ts +4 -1
  263. package/src/utils/processTrigger.ts +1 -1
package/src/embed/sage.ts CHANGED
@@ -18,14 +18,14 @@ import { V1Embed } from './ts-embed';
18
18
  */
19
19
  export interface SearchOptions {
20
20
  /**
21
- * The query string to pre-fill in natual language search bar
21
+ * The query string to pass for Natural Language Search.
22
22
  */
23
23
  searchQuery: string;
24
24
  /**
25
- * Boolean to determine if the search should be executed or not.
26
- * if it is executed, put the focus on the results.
27
- * if it’s not executed, put the focus in the search bar - at the end of
28
- * the tokens
25
+ * Boolean to define if the search should be executed or not.
26
+ * If it is executed, the focus is placed on the results.
27
+ * If it’s not executed, the focus is placed at the end of
28
+ * the token string in the search bar.
29
29
  */
30
30
  executeSearch?: boolean;
31
31
  }
@@ -34,7 +34,7 @@ export interface SearchOptions {
34
34
  * The configuration attributes for the embedded Natural language search view. Based on
35
35
  * GPT and LLM.
36
36
  *
37
- * @version: SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.1-sw
37
+ * @version: SDK: 1.23.0 | ThoughtSpot: 9.8.0.cl, 9.8.0.sw
38
38
  * @group Embed components
39
39
  */
40
40
  export interface SageViewConfig
@@ -43,11 +43,11 @@ export interface SageViewConfig
43
43
  'hiddenHomepageModules' | 'hiddenHomeLeftNavItems' | 'hiddenTabs' | 'visibleTabs' | 'reorderedHomepageModules'
44
44
  > {
45
45
  /**
46
- * If set to true, a list of liveboard and answers related
46
+ * If set to true, a list of Liveboard and Answers related
47
47
  * to the natural language search will be shown below the
48
48
  * AI generated answer.
49
49
  *
50
- * @deprecated Currently liveboard and answers related
50
+ * @deprecated Currently Liveboard and Answers related
51
51
  * to the natural language search will not be shown for sage
52
52
  * embed
53
53
  */
@@ -64,57 +64,75 @@ export interface SageViewConfig
64
64
  */
65
65
  isProductTour?: boolean;
66
66
  /**
67
- * flag to hide search bar title. default false.
67
+ * Show or hide the search bar title.
68
68
  *
69
- * @version SDK: 1.26.0 | Thoughtspot: 9.8.0.cl
69
+ * @version SDK: 1.26.0 | Thoughtspot: 9.8.0.cl, 9.8.0.sw
70
70
  */
71
71
  hideSearchBarTitle?: boolean;
72
72
  /**
73
- * flag to disable Sage Answer header(`AI Answer` title section on top of the Sage
74
- * answer). default false.
73
+ * Show or hide the Answer header, that is, the `AI Answer` title
74
+ * at the top of the Answer page.
75
75
  *
76
- * @version SDK: 1.26.0 | Thoughtspot: 9.9.0.cl
76
+ * @version SDK: 1.26.0 | Thoughtspot: 9.10.0.cl
77
77
  */
78
78
  hideSageAnswerHeader?: boolean;
79
79
  /**
80
- * flag to disable changing worksheet. default false.
80
+ * Disable the worksheet selection option.
81
81
  *
82
- * @version SDK: 1.26.0 | Thoughtspot: 9.9.0.cl
82
+ * @version SDK: 1.26.0 | Thoughtspot: 9.8.0.cl, 9.8.0.sw
83
83
  */
84
84
  disableWorksheetChange?: boolean;
85
85
  /**
86
- * flag to hide worksheet selector. default false.
86
+ * Hide the worksheet selection panel.
87
+ *
88
+ * @version SDK: 1.26.0 | Thoughtspot: 9.8.0.cl, 9.8.0.sw
87
89
  */
88
90
  hideWorksheetSelector?: boolean;
89
91
  /**
90
- * If set to true, the search bar auto complete search suggestions will not be shown.
91
- * default false
92
+ * Show or hide autocomplete suggestions for the search query string.
92
93
  *
93
- * @version SDK: 1.26.0 | Thoughtspot: 9.9.0.cl
94
+ * @version SDK: 1.26.0 | Thoughtspot: 9.8.0.cl, 9.8.0.sw
94
95
  */
95
96
  hideAutocompleteSuggestions?: boolean;
96
97
  /**
97
- * If set to false, the auto complete search suggestions not be shown
98
+ * Show or hide autocomplete suggestions for the search query string.
98
99
  *
99
- * @deprecated currently, object suggestions will not be shown for sage embed
100
- * earlier this flag was used to show Auto complete suggestions
100
+ * @deprecated
101
+ * Currently, the object suggestions will not be shown for Natural Language Search.
102
+ * You can use {@link hideAutocompleteSuggestions} instead.
101
103
  */
102
104
  showObjectSuggestions?: boolean;
103
105
  /**
104
- * If set to true, sample questions would be hidden to user.
105
- * These sample questions are autogenerated based on selected datasource.
106
+ * Show or hide sample questions.
107
+ * The sample questions are autogenerated based on the worksheet
108
+ * selected for the search operation.
106
109
  *
107
- * @version SDK: 1.26.0 | Thoughtspot: 9.10.0.cl
110
+ * @version SDK: 1.26.0 | Thoughtspot: 9.8.0.cl, 9.8.0.sw
108
111
  */
109
112
  hideSampleQuestions?: boolean;
110
113
  /**
111
- * The data source GUID to set on load.
114
+ * The data source GUID (Worksheet GUID) to set on load.
112
115
  */
113
116
  dataSource?: string;
114
117
  /**
115
- * Configuration for search options
118
+ * Includes the following properties:
116
119
  *
117
- * @version SDK: 1.26.0 | Thoughtspot: 9.8.0.cl
120
+ * `searchQuery`: The search query string to pass in the search bar.
121
+ * Supports Natural Language Search queries.
122
+ *
123
+ * `executeSearch`: Boolean to define if the search should be executed or not.
124
+ * If it is executed, the focus is placed on the results.
125
+ * If it’s not executed, the focus is placed at the end of
126
+ * the token string in the search bar.
127
+ *
128
+ * @example
129
+ * ```js
130
+ * searchOptions: {
131
+ * searchQuery: 'average sales by country and product type',
132
+ * executeSearch: true,
133
+ * }
134
+ * ```
135
+ * @version SDK: 1.26.0 | Thoughtspot: 9.8.0.cl, 9.8.0.sw
118
136
  */
119
137
  searchOptions?: SearchOptions;
120
138
  }
@@ -129,7 +147,7 @@ export const HiddenActionItemByDefaultForSageEmbed = [
129
147
  Action.Share,
130
148
  ];
131
149
  /**
132
- * Embed ThoughtSpot LLM and GPT based natural language search component.
150
+ * Embed ThoughtSpot LLM and GPT-based Natural Language Search component.
133
151
  *
134
152
  * @version: SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.1-sw
135
153
  * @group Embed components
@@ -193,7 +211,7 @@ export class SageEmbed extends V1Embed {
193
211
  *
194
212
  * @returns {string} iframe url
195
213
  */
196
- private getIFrameSrc() {
214
+ public getIFrameSrc(): string {
197
215
  const path = 'eureka';
198
216
  const postHashObj = {};
199
217
  const tsPostHashParams = this.getThoughtSpotPostUrlParams();
@@ -202,15 +220,15 @@ export class SageEmbed extends V1Embed {
202
220
  } = this.viewConfig;
203
221
 
204
222
  if (dataSource) postHashObj[Param.WorksheetId] = dataSource;
205
- if (searchOptions?.searchQuery) {
206
- postHashObj[Param.Query] = searchOptions?.searchQuery;
207
- if (searchOptions.executeSearch) {
208
- postHashObj[Param.executeSearch] = true;
209
- }
223
+ if (searchOptions?.searchQuery && searchOptions.executeSearch) {
224
+ postHashObj[Param.executeSearch] = true;
210
225
  }
226
+
211
227
  let sagePostHashParams = new URLSearchParams(postHashObj).toString();
212
228
  if (sagePostHashParams) sagePostHashParams = `${tsPostHashParams ? '&' : '?'}${sagePostHashParams}`;
213
-
229
+ if (searchOptions?.searchQuery) sagePostHashParams += `${sagePostHashParams ? '&' : '?'}${[Param.Query]}=${encodeURIComponent(searchOptions.searchQuery)}`;
230
+ // use encodeURIComponent for query instead of URLSearchParams
231
+ // as it adds + instead of %20 for spaces
214
232
  return `${this.getRootIframeSrc()}/embed/${path}${tsPostHashParams}${sagePostHashParams}`;
215
233
  }
216
234
 
@@ -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
  });
@@ -7,34 +7,35 @@
7
7
  * @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
8
8
  */
9
9
 
10
+ import { getReleaseVersion } from '../auth';
11
+ import { ERROR_MESSAGE } from '../errors';
10
12
  import {
11
- DataSourceVisualMode, DOMSelector, Param, Action, ViewConfig,
13
+ Action, DOMSelector, DataSourceVisualMode, Param, ViewConfig,
12
14
  } from '../types';
13
15
  import {
14
- getQueryParamString,
15
16
  checkReleaseVersionInBeta,
16
17
  getFilterQuery,
18
+ getQueryParamString,
17
19
  getRuntimeParameters,
18
20
  } from '../utils';
19
- import { TsEmbed } from './ts-embed';
20
- import { ERROR_MESSAGE } from '../errors';
21
21
  import { getAuthPromise } from './base';
22
- import { getReleaseVersion } from '../auth';
23
22
  import { getEmbedConfig } from './embedConfig';
23
+ import { TsEmbed } from './ts-embed';
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,11 +60,11 @@ 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
  */
@@ -85,9 +86,9 @@ export interface SearchViewConfig
85
86
  forceTable?: boolean;
86
87
  /**
87
88
  * The array of data source GUIDs to set on load.
88
- * Only a single dataSource supported currently.
89
+ * Only a single data source is supported currently.
89
90
  *
90
- * @deprecated Use dataSource instead
91
+ * @deprecated Use `dataSource` instead.
91
92
  */
92
93
  dataSources?: string[];
93
94
  /**
@@ -99,11 +100,29 @@ export interface SearchViewConfig
99
100
  /**
100
101
  * The initial search query to load the answer with.
101
102
  *
102
- * @deprecated Use {@link searchOptions} instead
103
+ * @deprecated
104
+ *
105
+ * Use {@link searchOptions} instead.
103
106
  */
104
107
  searchQuery?: string;
105
108
  /**
106
- * Configuration for search options
109
+ * Configuration for search options.
110
+ * Includes the following properties:
111
+ *
112
+ * `searchTokenString`: Search tokens to pass in the query.
113
+ *
114
+ * `executeSearch`: Boolean to define if the search should be executed or not.
115
+ * If it is executed, the focus is placed on the results.
116
+ * If it’s not executed, the focus is placed at the end of
117
+ * the token string in the search bar.
118
+ *
119
+ * @example
120
+ * ```js
121
+ * searchOptions: {
122
+ * searchTokenString: '[quantity purchased] [region]',
123
+ * executeSearch: true,
124
+ * }
125
+ * ```
107
126
  */
108
127
  searchOptions?: SearchOptions;
109
128
  /**
@@ -111,10 +130,10 @@ export interface SearchViewConfig
111
130
  */
112
131
  answerId?: string;
113
132
  /**
114
- * If set to true, search page will render without the Search Bar
133
+ * If set to true, the search page will render without the Search Bar
115
134
  * The chart/table should still be visible.
116
135
  *
117
- * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
136
+ * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.5.0.sw
118
137
  */
119
138
  hideSearchBar?: boolean;
120
139
  /**
@@ -183,6 +202,7 @@ export class SearchEmbed extends TsEmbed {
183
202
  dataSource,
184
203
  dataSources,
185
204
  excludeRuntimeFiltersfromURL,
205
+ hideSearchBar,
186
206
  dataPanelV2 = false,
187
207
  useLastSelectedSources = false,
188
208
  runtimeParameters,
@@ -219,6 +239,10 @@ export class SearchEmbed extends TsEmbed {
219
239
  queryParams[Param.ForceTable] = true;
220
240
  }
221
241
 
242
+ if (hideSearchBar) {
243
+ queryParams[Param.HideSearchBar] = true;
244
+ }
245
+
222
246
  queryParams[Param.DataPanelV2Enabled] = dataPanelV2;
223
247
  queryParams[Param.DataSourceMode] = this.getDataSourceMode();
224
248
 
@@ -251,7 +275,8 @@ export class SearchEmbed extends TsEmbed {
251
275
  * @param answerId The GUID of a saved answer
252
276
  * @param dataSources A list of data source GUIDs
253
277
  */
254
- private getIFrameSrc(answerId: string) {
278
+ public getIFrameSrc(): string {
279
+ const { answerId } = this.viewConfig;
255
280
  const answerPath = answerId ? `saved-answer/${answerId}` : 'answer';
256
281
  const tsPostHashParams = this.getThoughtSpotPostUrlParams();
257
282
 
@@ -265,7 +290,7 @@ export class SearchEmbed extends TsEmbed {
265
290
  super.render();
266
291
  const { answerId } = this.viewConfig;
267
292
 
268
- const src = this.getIFrameSrc(answerId);
293
+ const src = this.getIFrameSrc();
269
294
  this.renderIFrame(src);
270
295
  getAuthPromise().then(() => {
271
296
  if (