@thoughtspot/visual-embed-sdk 1.28.3 → 1.28.5-alpha-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/README.md +1 -1
  2. package/cjs/package.json +2 -1
  3. package/cjs/src/auth.d.ts.map +1 -1
  4. package/cjs/src/auth.js +2 -2
  5. package/cjs/src/auth.js.map +1 -1
  6. package/cjs/src/authToken.d.ts +1 -1
  7. package/cjs/src/authToken.d.ts.map +1 -1
  8. package/cjs/src/authToken.js +9 -2
  9. package/cjs/src/authToken.js.map +1 -1
  10. package/cjs/src/embed/app.d.ts +50 -6
  11. package/cjs/src/embed/app.d.ts.map +1 -1
  12. package/cjs/src/embed/app.js +9 -3
  13. package/cjs/src/embed/app.js.map +1 -1
  14. package/cjs/src/embed/app.spec.js +10 -0
  15. package/cjs/src/embed/app.spec.js.map +1 -1
  16. package/cjs/src/embed/base.d.ts +1 -1
  17. package/cjs/src/embed/base.d.ts.map +1 -1
  18. package/cjs/src/embed/base.js +6 -6
  19. package/cjs/src/embed/base.js.map +1 -1
  20. package/cjs/src/embed/base.spec.js +1 -1
  21. package/cjs/src/embed/base.spec.js.map +1 -1
  22. package/cjs/src/embed/liveboard.d.ts +24 -2
  23. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  24. package/cjs/src/embed/liveboard.js +8 -3
  25. package/cjs/src/embed/liveboard.js.map +1 -1
  26. package/cjs/src/embed/liveboard.spec.js +61 -4
  27. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  28. package/cjs/src/embed/sage.d.ts +4 -4
  29. package/cjs/src/embed/sage.d.ts.map +1 -1
  30. package/cjs/src/embed/sage.js +2 -18
  31. package/cjs/src/embed/sage.js.map +1 -1
  32. package/cjs/src/embed/sage.spec.js +20 -31
  33. package/cjs/src/embed/sage.spec.js.map +1 -1
  34. package/cjs/src/embed/search.d.ts +33 -5
  35. package/cjs/src/embed/search.d.ts.map +1 -1
  36. package/cjs/src/embed/search.js +6 -4
  37. package/cjs/src/embed/search.js.map +1 -1
  38. package/cjs/src/embed/search.spec.js +2 -1
  39. package/cjs/src/embed/search.spec.js.map +1 -1
  40. package/cjs/src/embed/ts-embed.d.ts +1 -1
  41. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  42. package/cjs/src/embed/ts-embed.js +15 -6
  43. package/cjs/src/embed/ts-embed.js.map +1 -1
  44. package/cjs/src/embed/ts-embed.spec.js +27 -18
  45. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  46. package/cjs/src/errors.js +1 -1
  47. package/cjs/src/errors.js.map +1 -1
  48. package/cjs/src/react/index.spec.js +1 -13
  49. package/cjs/src/react/index.spec.js.map +1 -1
  50. package/cjs/src/types.d.ts +114 -15
  51. package/cjs/src/types.d.ts.map +1 -1
  52. package/cjs/src/types.js +68 -7
  53. package/cjs/src/types.js.map +1 -1
  54. package/cjs/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
  55. package/cjs/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
  56. package/cjs/src/utils/authService/tokenizedAuthService.spec.js +32 -0
  57. package/cjs/src/utils/authService/tokenizedAuthService.spec.js.map +1 -0
  58. package/cjs/src/utils/sessionInfoService.d.ts +66 -0
  59. package/cjs/src/utils/sessionInfoService.d.ts.map +1 -0
  60. package/cjs/src/utils/sessionInfoService.js +92 -0
  61. package/cjs/src/utils/sessionInfoService.js.map +1 -0
  62. package/dist/src/auth.d.ts.map +1 -1
  63. package/dist/src/authToken.d.ts +1 -1
  64. package/dist/src/authToken.d.ts.map +1 -1
  65. package/dist/src/embed/app.d.ts +50 -6
  66. package/dist/src/embed/app.d.ts.map +1 -1
  67. package/dist/src/embed/base.d.ts +1 -1
  68. package/dist/src/embed/base.d.ts.map +1 -1
  69. package/dist/src/embed/liveboard.d.ts +24 -2
  70. package/dist/src/embed/liveboard.d.ts.map +1 -1
  71. package/dist/src/embed/sage.d.ts +4 -4
  72. package/dist/src/embed/sage.d.ts.map +1 -1
  73. package/dist/src/embed/search.d.ts +33 -5
  74. package/dist/src/embed/search.d.ts.map +1 -1
  75. package/dist/src/embed/ts-embed.d.ts +1 -1
  76. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  77. package/dist/src/types.d.ts +114 -15
  78. package/dist/src/types.d.ts.map +1 -1
  79. package/dist/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
  80. package/dist/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
  81. package/dist/src/utils/sessionInfoService.d.ts +66 -0
  82. package/dist/src/utils/sessionInfoService.d.ts.map +1 -0
  83. package/dist/tsembed-react.es.js +1764 -1691
  84. package/dist/tsembed-react.js +7024 -6951
  85. package/dist/tsembed.es.js +7275 -7202
  86. package/dist/tsembed.js +15449 -15376
  87. package/dist/visual-embed-sdk-react-full.d.ts +223 -30
  88. package/dist/visual-embed-sdk-react.d.ts +223 -30
  89. package/dist/visual-embed-sdk.d.ts +223 -30
  90. package/lib/package.json +2 -1
  91. package/lib/src/auth.d.ts.map +1 -1
  92. package/lib/src/auth.js +3 -3
  93. package/lib/src/auth.js.map +1 -1
  94. package/lib/src/authToken.d.ts +1 -1
  95. package/lib/src/authToken.d.ts.map +1 -1
  96. package/lib/src/authToken.js +9 -2
  97. package/lib/src/authToken.js.map +1 -1
  98. package/lib/src/embed/app.d.ts +50 -6
  99. package/lib/src/embed/app.d.ts.map +1 -1
  100. package/lib/src/embed/app.js +9 -3
  101. package/lib/src/embed/app.js.map +1 -1
  102. package/lib/src/embed/app.spec.js +10 -0
  103. package/lib/src/embed/app.spec.js.map +1 -1
  104. package/lib/src/embed/base.d.ts +1 -1
  105. package/lib/src/embed/base.d.ts.map +1 -1
  106. package/lib/src/embed/base.js +5 -5
  107. package/lib/src/embed/base.js.map +1 -1
  108. package/lib/src/embed/base.spec.js +2 -2
  109. package/lib/src/embed/base.spec.js.map +1 -1
  110. package/lib/src/embed/liveboard.d.ts +24 -2
  111. package/lib/src/embed/liveboard.d.ts.map +1 -1
  112. package/lib/src/embed/liveboard.js +9 -4
  113. package/lib/src/embed/liveboard.js.map +1 -1
  114. package/lib/src/embed/liveboard.spec.js +61 -4
  115. package/lib/src/embed/liveboard.spec.js.map +1 -1
  116. package/lib/src/embed/sage.d.ts +4 -4
  117. package/lib/src/embed/sage.d.ts.map +1 -1
  118. package/lib/src/embed/sage.js +2 -18
  119. package/lib/src/embed/sage.js.map +1 -1
  120. package/lib/src/embed/sage.spec.js +20 -31
  121. package/lib/src/embed/sage.spec.js.map +1 -1
  122. package/lib/src/embed/search.d.ts +33 -5
  123. package/lib/src/embed/search.d.ts.map +1 -1
  124. package/lib/src/embed/search.js +7 -5
  125. package/lib/src/embed/search.js.map +1 -1
  126. package/lib/src/embed/search.spec.js +2 -1
  127. package/lib/src/embed/search.spec.js.map +1 -1
  128. package/lib/src/embed/ts-embed.d.ts +1 -1
  129. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  130. package/lib/src/embed/ts-embed.js +18 -9
  131. package/lib/src/embed/ts-embed.js.map +1 -1
  132. package/lib/src/embed/ts-embed.spec.js +27 -18
  133. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  134. package/lib/src/errors.js +1 -1
  135. package/lib/src/errors.js.map +1 -1
  136. package/lib/src/react/index.spec.js +1 -13
  137. package/lib/src/react/index.spec.js.map +1 -1
  138. package/lib/src/types.d.ts +114 -15
  139. package/lib/src/types.d.ts.map +1 -1
  140. package/lib/src/types.js +68 -7
  141. package/lib/src/types.js.map +1 -1
  142. package/lib/src/utils/authService/authService.spec.js +1 -1
  143. package/lib/src/utils/authService/authService.spec.js.map +1 -1
  144. package/lib/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
  145. package/lib/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
  146. package/lib/src/utils/authService/tokenizedAuthService.spec.js +29 -0
  147. package/lib/src/utils/authService/tokenizedAuthService.spec.js.map +1 -0
  148. package/lib/src/utils/sessionInfoService.d.ts +66 -0
  149. package/lib/src/utils/sessionInfoService.d.ts.map +1 -0
  150. package/lib/src/utils/sessionInfoService.js +85 -0
  151. package/lib/src/utils/sessionInfoService.js.map +1 -0
  152. package/lib/src/visual-embed-sdk.d.ts +228 -35
  153. package/package.json +2 -1
  154. package/src/auth.ts +6 -6
  155. package/src/authToken.ts +9 -2
  156. package/src/embed/app.spec.ts +15 -0
  157. package/src/embed/app.ts +67 -8
  158. package/src/embed/base.spec.ts +3 -3
  159. package/src/embed/base.ts +14 -14
  160. package/src/embed/liveboard.spec.ts +82 -9
  161. package/src/embed/liveboard.ts +42 -5
  162. package/src/embed/sage.spec.ts +20 -35
  163. package/src/embed/sage.ts +4 -21
  164. package/src/embed/search.spec.ts +2 -1
  165. package/src/embed/search.ts +45 -10
  166. package/src/embed/ts-embed.spec.ts +48 -34
  167. package/src/embed/ts-embed.ts +52 -39
  168. package/src/errors.ts +1 -1
  169. package/src/react/index.spec.tsx +1 -30
  170. package/src/types.ts +114 -15
  171. package/src/utils/authService/authService.spec.ts +4 -4
@@ -12,7 +12,6 @@ import {
12
12
  const defaultConfig: SageViewConfig = {
13
13
  disableWorksheetChange: false,
14
14
  hideWorksheetSelector: false,
15
- hideSearchBarTitle: false,
16
15
  hideSageAnswerHeader: false,
17
16
  hideAutocompleteSuggestions: false,
18
17
  hideSampleQuestions: false,
@@ -36,22 +35,22 @@ describe('Sage embed tests', () => {
36
35
 
37
36
  test('should render sage', async () => {
38
37
  const sageEmbed = new SageEmbed(getRootEl(), defaultConfig);
39
- sageEmbed.render();
38
+ await sageEmbed.render();
40
39
  await executeAfterWait(() => {
41
40
  expectUrlMatch(
42
41
  getIFrameSrc(),
43
- `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSearchBarTitle=false&hideSageAnswerHeader=false&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka`,
42
+ `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSageAnswerHeader=false&hideAction=%5B%22reportError%22%5D#/embed/eureka`,
44
43
  );
45
44
  });
46
45
  });
47
46
 
48
47
  test('should render sage with product tour flag set', async () => {
49
48
  const sageEmbed = new SageEmbed(getRootEl(), { ...defaultConfig, isProductTour: true });
50
- sageEmbed.render();
49
+ await sageEmbed.render();
51
50
  await executeAfterWait(() => {
52
51
  expectUrlMatch(
53
52
  getIFrameSrc(),
54
- `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=true&hideSearchBarTitle=false&hideSageAnswerHeader=false&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka`,
53
+ `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=true&hideSageAnswerHeader=false&hideAction=%5B%22reportError%22%5D#/embed/eureka`,
55
54
  );
56
55
  });
57
56
  });
@@ -61,11 +60,11 @@ describe('Sage embed tests', () => {
61
60
  ...defaultConfig,
62
61
  disableWorksheetChange: true,
63
62
  });
64
- sageEmbed.render();
63
+ await sageEmbed.render();
65
64
  await executeAfterWait(() => {
66
65
  expectUrlMatch(
67
66
  getIFrameSrc(),
68
- `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=true&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSearchBarTitle=false&hideSageAnswerHeader=false&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka`,
67
+ `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=true&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSageAnswerHeader=false&hideAction=%5B%22reportError%22%5D#/embed/eureka`,
69
68
  );
70
69
  });
71
70
  });
@@ -75,25 +74,11 @@ describe('Sage embed tests', () => {
75
74
  ...defaultConfig,
76
75
  hideWorksheetSelector: true,
77
76
  });
78
- sageEmbed.render();
77
+ await sageEmbed.render();
79
78
  await executeAfterWait(() => {
80
79
  expectUrlMatch(
81
80
  getIFrameSrc(),
82
- `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=true&hideEurekaSuggestions=false&isProductTour=false&hideSearchBarTitle=false&hideSageAnswerHeader=false&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka`,
83
- );
84
- });
85
- });
86
-
87
- test('should render sage with hideSearchBarTitle flag', async () => {
88
- const sageEmbed = new SageEmbed(getRootEl(), {
89
- ...defaultConfig,
90
- hideSearchBarTitle: true,
91
- });
92
- sageEmbed.render();
93
- await executeAfterWait(() => {
94
- expectUrlMatch(
95
- getIFrameSrc(),
96
- `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSearchBarTitle=true&hideSageAnswerHeader=false&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka`,
81
+ `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=true&hideEurekaSuggestions=false&isProductTour=false&hideSageAnswerHeader=false&hideAction=%5B%22reportError%22%5D#/embed/eureka`,
97
82
  );
98
83
  });
99
84
  });
@@ -103,11 +88,11 @@ describe('Sage embed tests', () => {
103
88
  ...defaultConfig,
104
89
  hideSageAnswerHeader: true,
105
90
  });
106
- sageEmbed.render();
91
+ await sageEmbed.render();
107
92
  await executeAfterWait(() => {
108
93
  expectUrlMatch(
109
94
  getIFrameSrc(),
110
- `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSearchBarTitle=false&hideSageAnswerHeader=true&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka`,
95
+ `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSageAnswerHeader=true&hideAction=%5B%22reportError%22%5D#/embed/eureka`,
111
96
  );
112
97
  });
113
98
  });
@@ -117,11 +102,11 @@ describe('Sage embed tests', () => {
117
102
  ...defaultConfig,
118
103
  hideAutocompleteSuggestions: true,
119
104
  });
120
- sageEmbed.render();
105
+ await sageEmbed.render();
121
106
  await executeAfterWait(() => {
122
107
  expectUrlMatch(
123
108
  getIFrameSrc(),
124
- `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=true&isProductTour=false&hideSearchBarTitle=false&hideSageAnswerHeader=false&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka`,
109
+ `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=true&isProductTour=false&hideSageAnswerHeader=false&hideAction=%5B%22reportError%22%5D#/embed/eureka`,
125
110
  );
126
111
  });
127
112
  });
@@ -130,11 +115,11 @@ describe('Sage embed tests', () => {
130
115
  const sageEmbed = new SageEmbed(getRootEl(), {
131
116
  showObjectSuggestions: true,
132
117
  });
133
- sageEmbed.render();
118
+ await sageEmbed.render();
134
119
  await executeAfterWait(() => {
135
120
  expectUrlMatch(
136
121
  getIFrameSrc(),
137
- `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSearchBarTitle=false&hideSageAnswerHeader=false&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka`,
122
+ `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSageAnswerHeader=false&hideAction=%5B%22reportError%22%5D#/embed/eureka`,
138
123
  );
139
124
  });
140
125
  });
@@ -144,11 +129,11 @@ describe('Sage embed tests', () => {
144
129
  ...defaultConfig,
145
130
  dataSource: 'worksheet-id',
146
131
  });
147
- sageEmbed.render();
132
+ await sageEmbed.render();
148
133
  await executeAfterWait(() => {
149
134
  expectUrlMatch(
150
135
  getIFrameSrc(),
151
- `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSearchBarTitle=false&hideSageAnswerHeader=false&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka?worksheet=worksheet-id`,
136
+ `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSageAnswerHeader=false&hideAction=%5B%22reportError%22%5D#/embed/eureka?worksheet=worksheet-id`,
152
137
  );
153
138
  });
154
139
  });
@@ -161,11 +146,11 @@ describe('Sage embed tests', () => {
161
146
  searchQuery: 'test query', // also tests for query with spaces
162
147
  },
163
148
  });
164
- sageEmbed.render();
149
+ await sageEmbed.render();
165
150
  await executeAfterWait(() => {
166
151
  expectUrlMatch(
167
152
  getIFrameSrc(),
168
- `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSearchBarTitle=false&hideSageAnswerHeader=false&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka?worksheet=worksheet-id&query=test%20query`,
153
+ `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&isProductTour=false&hideSageAnswerHeader=false&hideAction=%5B%22reportError%22%5D#/embed/eureka?worksheet=worksheet-id&query=test%20query`,
169
154
  );
170
155
  });
171
156
  });
@@ -178,11 +163,11 @@ describe('Sage embed tests', () => {
178
163
  executeSearch: true,
179
164
  },
180
165
  });
181
- sageEmbed.render();
166
+ await sageEmbed.render();
182
167
  await executeAfterWait(() => {
183
168
  expectUrlMatch(
184
169
  getIFrameSrc(),
185
- `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&hideAction=%5B"reportError","save","pin","editACopy","saveAsView","updateTSL","editTSL","onDeleteAnswer","share"%5D#/embed/eureka?executeSearch=true&query=test-query`,
170
+ `http://${thoughtSpotHost}/?embedApp=true&isSageEmbed=true&disableWorksheetChange=false&hideWorksheetSelector=false&hideEurekaSuggestions=false&hideAction=%5B%22reportError%22%5D#/embed/eureka?executeSearch=true&query=test-query`,
186
171
  );
187
172
  });
188
173
  });
package/src/embed/sage.ts CHANGED
@@ -7,9 +7,7 @@
7
7
  * @author Mourya Balabhadra <mourya.balabhadra@thoughtspot.com>
8
8
  */
9
9
 
10
- import {
11
- Action, DOMSelector, Param, ViewConfig,
12
- } from '../types';
10
+ import { DOMSelector, Param, ViewConfig } from '../types';
13
11
  import { getQueryParamString } from '../utils';
14
12
  import { V1Embed } from './ts-embed';
15
13
 
@@ -54,7 +52,7 @@ export interface SageViewConfig
54
52
  showObjectResults?: boolean;
55
53
  /**
56
54
  * flag used by the TS product tour page to show the blue search bar
57
- * even after the search is completed. This is different from TSE Sage Embed
55
+ * even after the search is completed. This is different from Thoughtspot Embedded Sage Embed
58
56
  * experience where it mimics closer to the non-embed case.
59
57
  * The Sample questions container is collapsed when this value is set after
60
58
  * does a search.
@@ -65,8 +63,9 @@ export interface SageViewConfig
65
63
  isProductTour?: boolean;
66
64
  /**
67
65
  * Show or hide the search bar title.
66
+ * @version SDK: 1.29.0 | Thoughtspot: 9.8.0.cl, 9.8.0.sw
68
67
  *
69
- * @version SDK: 1.26.0 | Thoughtspot: 9.8.0.cl, 9.8.0.sw
68
+ * @deprecated Thoughtspot: 9.10.0.cl | search bar doesn't have the title from 9.10.0.cl
70
69
  */
71
70
  hideSearchBarTitle?: boolean;
72
71
  /**
@@ -136,16 +135,6 @@ export interface SageViewConfig
136
135
  */
137
136
  searchOptions?: SearchOptions;
138
137
  }
139
- export const HiddenActionItemByDefaultForSageEmbed = [
140
- Action.Save,
141
- Action.Pin,
142
- Action.EditACopy,
143
- Action.SaveAsView,
144
- Action.UpdateTML,
145
- Action.EditTML,
146
- Action.AnswerDelete,
147
- Action.Share,
148
- ];
149
138
  /**
150
139
  * Embed ThoughtSpot LLM and GPT-based Natural Language Search component.
151
140
  *
@@ -178,7 +167,6 @@ export class SageEmbed extends V1Embed {
178
167
  showObjectSuggestions,
179
168
  hideSampleQuestions,
180
169
  isProductTour,
181
- hideSearchBarTitle,
182
170
  hideSageAnswerHeader,
183
171
  hideAutocompleteSuggestions,
184
172
  } = this.viewConfig;
@@ -195,12 +183,7 @@ export class SageEmbed extends V1Embed {
195
183
  }
196
184
  params[Param.HideSampleQuestions] = !!hideSampleQuestions;
197
185
  params[Param.IsProductTour] = !!isProductTour;
198
- params[Param.HideSearchBarTitle] = !!hideSearchBarTitle;
199
186
  params[Param.HideSageAnswerHeader] = !!hideSageAnswerHeader;
200
- params[Param.HideActions] = [
201
- ...(params[Param.HideActions] ?? []),
202
- ...HiddenActionItemByDefaultForSageEmbed,
203
- ];
204
187
 
205
188
  return getQueryParamString(params, true);
206
189
  }
@@ -356,12 +356,13 @@ describe('Search embed tests', () => {
356
356
  const searchEmbed = new SearchEmbed(getRootEl(), {
357
357
  ...defaultViewConfig,
358
358
  answerId,
359
+ collapseSearchBarInitially: true,
359
360
  });
360
361
  searchEmbed.render();
361
362
  await executeAfterWait(() => {
362
363
  expectUrlMatchesWithParams(
363
364
  getIFrameSrc(),
364
- `http://${thoughtSpotHost}/v2/?${defaultParamsWithHiddenActions}&dataSourceMode=expand&useLastSelectedSources=false${prefixParams}#/embed/saved-answer/${answerId}`,
365
+ `http://${thoughtSpotHost}/v2/?${defaultParamsWithHiddenActions}&dataSourceMode=expand&useLastSelectedSources=false&collapseSearchBarInitially=true${prefixParams}#/embed/saved-answer/${answerId}`,
365
366
  );
366
367
  });
367
368
  });
@@ -7,20 +7,24 @@
7
7
  * @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
8
8
  */
9
9
 
10
- import { getReleaseVersion } from '../auth';
11
- import { ERROR_MESSAGE } from '../errors';
12
10
  import {
13
- Action, DOMSelector, DataSourceVisualMode, Param, ViewConfig,
11
+ DataSourceVisualMode,
12
+ DOMSelector,
13
+ Param,
14
+ Action,
15
+ ViewConfig,
14
16
  } from '../types';
15
17
  import {
18
+ getQueryParamString,
16
19
  checkReleaseVersionInBeta,
17
20
  getFilterQuery,
18
- getQueryParamString,
19
21
  getRuntimeParameters,
20
22
  } from '../utils';
23
+ import { TsEmbed } from './ts-embed';
24
+ import { ERROR_MESSAGE } from '../errors';
21
25
  import { getAuthPromise } from './base';
26
+ import { getReleaseVersion } from '../auth';
22
27
  import { getEmbedConfig } from './embedConfig';
23
- import { TsEmbed } from './ts-embed';
24
28
 
25
29
  /**
26
30
  * Configuration for search options.
@@ -59,6 +63,7 @@ export interface SearchViewConfig
59
63
  * but can be expanded manually.
60
64
  *
61
65
  * @version: SDK: 1.1.0 | ThoughtSpot: 8.1.0.sw
66
+ *
62
67
  * @example
63
68
  * ```js
64
69
  * const embed = new SearchEmbed('#tsEmbed', {
@@ -72,6 +77,7 @@ export interface SearchViewConfig
72
77
  * Show or hide the data sources panel.
73
78
  *
74
79
  * @version: SDK: 1.2.0 | ThoughtSpot: 9.1.0.sw
80
+ *
75
81
  * @example
76
82
  * ```js
77
83
  * const embed = new SearchEmbed('#tsEmbed', {
@@ -87,6 +93,7 @@ export interface SearchViewConfig
87
93
  * using raw answer data.
88
94
  *
89
95
  * @version: SDK: 1.2.0 | ThoughtSpot: 9.1.0.sw
96
+ *
90
97
  * @example
91
98
  * ```js
92
99
  * const embed = new SearchEmbed('#tsEmbed', {
@@ -96,14 +103,11 @@ export interface SearchViewConfig
96
103
  * ```
97
104
  */
98
105
  hideResults?: boolean;
99
- /**
100
- * If set to true, expands all the data sources panel.
101
- */
102
- expandAllDataSource?: boolean;
103
106
  /**
104
107
  * If set to true, the Search Assist feature is enabled.
105
108
  *
106
109
  * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1-sw
110
+ *
107
111
  * @example
108
112
  * ```js
109
113
  * const embed = new SearchEmbed('#tsEmbed', {
@@ -118,6 +122,7 @@ export interface SearchViewConfig
118
122
  * format for presenting search data.
119
123
  *
120
124
  * @version: SDK: 1.1.0 | ThoughtSpot: 8.1.0.sw
125
+ *
121
126
  * @example
122
127
  * ```js
123
128
  * const embed = new SearchEmbed('#tsEmbed', {
@@ -131,6 +136,7 @@ export interface SearchViewConfig
131
136
  * Only a single data source is supported currently.
132
137
  *
133
138
  * @deprecated Use `dataSource` instead.
139
+ *
134
140
  * @example
135
141
  * ```js
136
142
  * const embed = new SearchEmbed('#tsEmbed', {
@@ -144,6 +150,7 @@ export interface SearchViewConfig
144
150
  * The array of data source GUIDs to set on load.
145
151
  *
146
152
  * @version: SDK: 1.19.0
153
+ *
147
154
  * @example
148
155
  * ```js
149
156
  * const embed = new SearchEmbed('#tsEmbed', {
@@ -185,6 +192,7 @@ export interface SearchViewConfig
185
192
  * The GUID of a saved answer to load initially.
186
193
  *
187
194
  * @version: SDK: 1.1.0 | ThoughtSpot: 8.1.0.sw
195
+ *
188
196
  * @example
189
197
  * ```js
190
198
  * const embed = new SearchEmbed('#tsEmbed', {
@@ -199,6 +207,7 @@ export interface SearchViewConfig
199
207
  * The chart/table should still be visible.
200
208
  *
201
209
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.5.0.sw
210
+ *
202
211
  * @example
203
212
  * ```js
204
213
  * const embed = new SearchEmbed('#tsEmbed', {
@@ -213,6 +222,7 @@ export interface SearchViewConfig
213
222
  *
214
223
  * @default false
215
224
  * @version SDK: 1.26.0 | Thoughtspot: 9.7.0.cl
225
+ *
216
226
  * @example
217
227
  * ```js
218
228
  * const embed = new SearchEmbed('#tsEmbed', {
@@ -228,6 +238,28 @@ export interface SearchViewConfig
228
238
  * @version: SDK: 1.24.0
229
239
  */
230
240
  useLastSelectedSources?: boolean;
241
+ /**
242
+ * To set the initial state of the search bar in case of saved-answers.
243
+ *
244
+ * @default false
245
+ * @version SDK: 1.32.0 | Thoughtspot: 10.0.0.cl
246
+ */
247
+ collapseSearchBarInitially?: boolean;
248
+ /**
249
+ * To enable custom column groups in data panel v2
250
+ *
251
+ * @version SDK: 1.32.0 | Thoughtspot: 10.0.0.cl
252
+ * @default false
253
+ *
254
+ * @example
255
+ * ```js
256
+ * const embed = new SearchEmbed('#tsEmbed', {
257
+ * ... // other options
258
+ * enableCustomColumnGroups: true,
259
+ * });
260
+ * ```
261
+ */
262
+ enableCustomColumnGroups?: boolean;
231
263
  }
232
264
 
233
265
  export const HiddenActionItemByDefaultForSearchEmbed = [
@@ -273,7 +305,6 @@ export class SearchEmbed extends TsEmbed {
273
305
  protected getEmbedParams(): string {
274
306
  const {
275
307
  hideResults,
276
- expandAllDataSource,
277
308
  enableSearchAssist,
278
309
  forceTable,
279
310
  searchOptions,
@@ -285,6 +316,8 @@ export class SearchEmbed extends TsEmbed {
285
316
  dataPanelV2 = false,
286
317
  useLastSelectedSources = false,
287
318
  runtimeParameters,
319
+ collapseSearchBarInitially = false,
320
+ enableCustomColumnGroups = false,
288
321
  } = this.viewConfig;
289
322
  const queryParams = this.getBaseQueryParams();
290
323
 
@@ -331,6 +364,8 @@ export class SearchEmbed extends TsEmbed {
331
364
  }
332
365
 
333
366
  queryParams[Param.searchEmbed] = true;
367
+ queryParams[Param.CollapseSearchBarInitially] = collapseSearchBarInitially;
368
+ queryParams[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
334
369
  let query = '';
335
370
  const queryParamsString = getQueryParamString(queryParams, true);
336
371
  if (queryParamsString) {
@@ -1,39 +1,39 @@
1
1
  /* eslint-disable dot-notation */
2
- import * as authInstance from '../auth';
3
2
  import { resetCachedAuthToken } from '../authToken';
4
- import * as config from '../config';
5
3
  import {
6
- AppEmbed,
7
4
  AuthType,
5
+ init,
8
6
  EmbedEvent,
9
- LiveboardEmbed,
10
- LiveboardViewConfig,
11
- PinboardEmbed,
12
7
  SearchEmbed,
13
- init,
8
+ PinboardEmbed,
9
+ LiveboardViewConfig,
10
+ AppEmbed,
11
+ LiveboardEmbed,
14
12
  } from '../index';
15
- import * as mixpanelInstance from '../mixpanel-service';
16
- import { MIXPANEL_EVENT } from '../mixpanel-service';
17
13
  import {
18
- createRootEleForEmbed,
19
- defaultParamsForPinboardEmbed,
14
+ Action, HomeLeftNavItem, RuntimeFilter, RuntimeFilterOp, HomepageModule, HostEvent,
15
+ } from '../types';
16
+ import {
20
17
  executeAfterWait,
21
- expectUrlMatchesWithParams,
22
18
  getDocumentBody,
23
19
  getIFrameEl,
24
20
  getIFrameSrc,
25
21
  getRootEl,
26
- mockMessageChannel,
27
22
  postMessageToParent,
23
+ defaultParamsForPinboardEmbed,
28
24
  waitFor,
25
+ expectUrlMatchesWithParams,
26
+ mockMessageChannel,
27
+ createRootEleForEmbed,
29
28
  } from '../test/test-utils';
30
- import {
31
- Action, HomeLeftNavItem, HomepageModule, RuntimeFilter, RuntimeFilterOp,
32
- } from '../types';
29
+ import * as config from '../config';
30
+ import * as tsEmbedInstance from './ts-embed';
31
+ import * as mixpanelInstance from '../mixpanel-service';
32
+ import * as authInstance from '../auth';
33
+ import * as baseInstance from './base';
34
+ import { MIXPANEL_EVENT } from '../mixpanel-service';
33
35
  import * as authService from '../utils/authService/authService';
34
36
  import { logger } from '../utils/logger';
35
- import * as baseInstance from './base';
36
- import * as tsEmbedInstance from './ts-embed';
37
37
 
38
38
  const defaultViewConfig = {
39
39
  frameParams: {
@@ -417,10 +417,8 @@ describe('Unit test case for ts embed', () => {
417
417
  authToken: '',
418
418
  hostConfig: undefined,
419
419
  runtimeFilterParams: null,
420
- hiddenHomeLeftNavItems: [
421
- HomeLeftNavItem.Home,
422
- HomeLeftNavItem.MonitorSubscription,
423
- ],
420
+ hiddenHomeLeftNavItems:
421
+ [HomeLeftNavItem.Home, HomeLeftNavItem.MonitorSubscription],
424
422
  hiddenHomepageModules: [],
425
423
  reorderedHomepageModules: [],
426
424
  },
@@ -649,10 +647,7 @@ describe('Unit test case for ts embed', () => {
649
647
  type: EmbedEvent.APP_INIT,
650
648
  data: {},
651
649
  };
652
- const searchEmbed = new SearchEmbed(getRootEl(), {
653
- ...defaultViewConfig,
654
- preRenderId: 'test',
655
- });
650
+ const searchEmbed = new SearchEmbed(getRootEl(), { ...defaultViewConfig, preRenderId: 'test' });
656
651
  searchEmbed.preRender();
657
652
  const mockPort: any = {
658
653
  postMessage: jest.fn(),
@@ -709,10 +704,7 @@ describe('Unit test case for ts embed', () => {
709
704
  type: EmbedEvent.AuthExpire,
710
705
  data: {},
711
706
  };
712
- const searchEmbed = new SearchEmbed(getRootEl(), {
713
- ...defaultViewConfig,
714
- preRenderId: 'test',
715
- });
707
+ const searchEmbed = new SearchEmbed(getRootEl(), { ...defaultViewConfig, preRenderId: 'test' });
716
708
  jest.spyOn(baseInstance, 'notifyAuthFailure');
717
709
  searchEmbed.preRender();
718
710
  const mockPort: any = {
@@ -1216,7 +1208,7 @@ describe('Unit test case for ts embed', () => {
1216
1208
  expectUrlMatchesWithParams(
1217
1209
  getIFrameSrc(),
1218
1210
  `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&${defaultParamsForPinboardEmbed}`
1219
- + `&foo=bar&baz=1&bool=true${defaultParamsPost}#/home`,
1211
+ + `&foo=bar&baz=1&bool=true${defaultParamsPost}#/home`,
1220
1212
  );
1221
1213
  });
1222
1214
 
@@ -1232,7 +1224,7 @@ describe('Unit test case for ts embed', () => {
1232
1224
  expectUrlMatchesWithParams(
1233
1225
  getIFrameSrc(),
1234
1226
  `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&${defaultParamsForPinboardEmbed}`
1235
- + `&showAlerts=true${defaultParamsPost}#/home`,
1227
+ + `&showAlerts=true${defaultParamsPost}#/home`,
1236
1228
  );
1237
1229
  });
1238
1230
  it('Sets the locale param', async () => {
@@ -1247,7 +1239,7 @@ describe('Unit test case for ts embed', () => {
1247
1239
  expectUrlMatchesWithParams(
1248
1240
  getIFrameSrc(),
1249
1241
  `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&${defaultParamsForPinboardEmbed}`
1250
- + `&locale=ja-JP${defaultParamsPost}#/home`,
1242
+ + `&locale=ja-JP${defaultParamsPost}#/home`,
1251
1243
  );
1252
1244
  });
1253
1245
  it('Sets the iconSprite url', async () => {
@@ -1264,7 +1256,7 @@ describe('Unit test case for ts embed', () => {
1264
1256
  expectUrlMatchesWithParams(
1265
1257
  getIFrameSrc(),
1266
1258
  `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&${defaultParamsForPinboardEmbed}`
1267
- + `&iconSprite=iconSprite.com${defaultParamsPost}#/home`,
1259
+ + `&iconSprite=iconSprite.com${defaultParamsPost}#/home`,
1268
1260
  );
1269
1261
  });
1270
1262
 
@@ -1331,6 +1323,28 @@ describe('Unit test case for ts embed', () => {
1331
1323
  done();
1332
1324
  });
1333
1325
  });
1326
+
1327
+ it('Should set the override locale for number/date and currency format', async () => {
1328
+ jest.spyOn(baseInstance, 'getAuthPromise').mockResolvedValue(true);
1329
+ init({
1330
+ thoughtSpotHost: 'tshost',
1331
+ authType: AuthType.None,
1332
+ numberFormatLocale: 'en-US',
1333
+ dateFormatLocale: 'en-IN',
1334
+ currencyFormat: 'USD',
1335
+ });
1336
+ const appEmbed = new AppEmbed(getRootEl(), {
1337
+ frameParams: {
1338
+ width: '100%',
1339
+ height: '100%',
1340
+ },
1341
+ });
1342
+ await appEmbed.render();
1343
+ expectUrlMatchesWithParams(
1344
+ getIFrameSrc(),
1345
+ `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&numberFormatLocale=en-US&dateFormatLocale=en-IN&currencyFormat=USD${defaultParamsPost}#/home`,
1346
+ );
1347
+ });
1334
1348
  });
1335
1349
 
1336
1350
  describe('When destroyed', () => {