@thoughtspot/visual-embed-sdk 1.28.2 → 1.28.4

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 (129) hide show
  1. package/cjs/package.json +2 -1
  2. package/cjs/src/embed/app.d.ts +38 -0
  3. package/cjs/src/embed/app.d.ts.map +1 -1
  4. package/cjs/src/embed/app.js +7 -1
  5. package/cjs/src/embed/app.js.map +1 -1
  6. package/cjs/src/embed/app.spec.js +10 -0
  7. package/cjs/src/embed/app.spec.js.map +1 -1
  8. package/cjs/src/embed/liveboard.d.ts +16 -0
  9. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  10. package/cjs/src/embed/liveboard.js +8 -3
  11. package/cjs/src/embed/liveboard.js.map +1 -1
  12. package/cjs/src/embed/liveboard.spec.js +61 -4
  13. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  14. package/cjs/src/embed/sage.d.ts +4 -4
  15. package/cjs/src/embed/sage.d.ts.map +1 -1
  16. package/cjs/src/embed/sage.js +2 -18
  17. package/cjs/src/embed/sage.js.map +1 -1
  18. package/cjs/src/embed/sage.spec.js +20 -31
  19. package/cjs/src/embed/sage.spec.js.map +1 -1
  20. package/cjs/src/embed/search.d.ts +22 -0
  21. package/cjs/src/embed/search.d.ts.map +1 -1
  22. package/cjs/src/embed/search.js +3 -1
  23. package/cjs/src/embed/search.js.map +1 -1
  24. package/cjs/src/embed/search.spec.js +2 -1
  25. package/cjs/src/embed/search.spec.js.map +1 -1
  26. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  27. package/cjs/src/embed/ts-embed.js +9 -0
  28. package/cjs/src/embed/ts-embed.js.map +1 -1
  29. package/cjs/src/embed/ts-embed.spec.js +18 -0
  30. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  31. package/cjs/src/errors.js +1 -1
  32. package/cjs/src/errors.js.map +1 -1
  33. package/cjs/src/react/index.spec.js +1 -1
  34. package/cjs/src/react/index.spec.js.map +1 -1
  35. package/cjs/src/types.d.ts +106 -9
  36. package/cjs/src/types.d.ts.map +1 -1
  37. package/cjs/src/types.js +87 -4
  38. package/cjs/src/types.js.map +1 -1
  39. package/cjs/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
  40. package/cjs/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
  41. package/cjs/src/utils/authService/tokenizedAuthService.spec.js +32 -0
  42. package/cjs/src/utils/authService/tokenizedAuthService.spec.js.map +1 -0
  43. package/cjs/src/utils/sessionInfoService.d.ts +66 -0
  44. package/cjs/src/utils/sessionInfoService.d.ts.map +1 -0
  45. package/cjs/src/utils/sessionInfoService.js +92 -0
  46. package/cjs/src/utils/sessionInfoService.js.map +1 -0
  47. package/dist/src/embed/app.d.ts +38 -0
  48. package/dist/src/embed/app.d.ts.map +1 -1
  49. package/dist/src/embed/liveboard.d.ts +16 -0
  50. package/dist/src/embed/liveboard.d.ts.map +1 -1
  51. package/dist/src/embed/sage.d.ts +4 -4
  52. package/dist/src/embed/sage.d.ts.map +1 -1
  53. package/dist/src/embed/search.d.ts +22 -0
  54. package/dist/src/embed/search.d.ts.map +1 -1
  55. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  56. package/dist/src/types.d.ts +106 -9
  57. package/dist/src/types.d.ts.map +1 -1
  58. package/dist/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
  59. package/dist/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
  60. package/dist/src/utils/sessionInfoService.d.ts +66 -0
  61. package/dist/src/utils/sessionInfoService.d.ts.map +1 -0
  62. package/dist/tsembed-react.es.js +117 -28
  63. package/dist/tsembed-react.js +117 -28
  64. package/dist/tsembed.es.js +117 -28
  65. package/dist/tsembed.js +117 -28
  66. package/dist/visual-embed-sdk-react-full.d.ts +185 -12
  67. package/dist/visual-embed-sdk-react.d.ts +185 -12
  68. package/dist/visual-embed-sdk.d.ts +185 -12
  69. package/lib/package.json +2 -1
  70. package/lib/src/embed/app.d.ts +38 -0
  71. package/lib/src/embed/app.d.ts.map +1 -1
  72. package/lib/src/embed/app.js +7 -1
  73. package/lib/src/embed/app.js.map +1 -1
  74. package/lib/src/embed/app.spec.js +10 -0
  75. package/lib/src/embed/app.spec.js.map +1 -1
  76. package/lib/src/embed/liveboard.d.ts +16 -0
  77. package/lib/src/embed/liveboard.d.ts.map +1 -1
  78. package/lib/src/embed/liveboard.js +8 -3
  79. package/lib/src/embed/liveboard.js.map +1 -1
  80. package/lib/src/embed/liveboard.spec.js +61 -4
  81. package/lib/src/embed/liveboard.spec.js.map +1 -1
  82. package/lib/src/embed/sage.d.ts +4 -4
  83. package/lib/src/embed/sage.d.ts.map +1 -1
  84. package/lib/src/embed/sage.js +2 -18
  85. package/lib/src/embed/sage.js.map +1 -1
  86. package/lib/src/embed/sage.spec.js +20 -31
  87. package/lib/src/embed/sage.spec.js.map +1 -1
  88. package/lib/src/embed/search.d.ts +22 -0
  89. package/lib/src/embed/search.d.ts.map +1 -1
  90. package/lib/src/embed/search.js +3 -1
  91. package/lib/src/embed/search.js.map +1 -1
  92. package/lib/src/embed/search.spec.js +2 -1
  93. package/lib/src/embed/search.spec.js.map +1 -1
  94. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  95. package/lib/src/embed/ts-embed.js +9 -0
  96. package/lib/src/embed/ts-embed.js.map +1 -1
  97. package/lib/src/embed/ts-embed.spec.js +18 -0
  98. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  99. package/lib/src/errors.js +1 -1
  100. package/lib/src/errors.js.map +1 -1
  101. package/lib/src/react/index.spec.js +1 -1
  102. package/lib/src/react/index.spec.js.map +1 -1
  103. package/lib/src/types.d.ts +106 -9
  104. package/lib/src/types.d.ts.map +1 -1
  105. package/lib/src/types.js +87 -4
  106. package/lib/src/types.js.map +1 -1
  107. package/lib/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
  108. package/lib/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
  109. package/lib/src/utils/authService/tokenizedAuthService.spec.js +29 -0
  110. package/lib/src/utils/authService/tokenizedAuthService.spec.js.map +1 -0
  111. package/lib/src/utils/sessionInfoService.d.ts +66 -0
  112. package/lib/src/utils/sessionInfoService.d.ts.map +1 -0
  113. package/lib/src/utils/sessionInfoService.js +85 -0
  114. package/lib/src/utils/sessionInfoService.js.map +1 -0
  115. package/lib/src/visual-embed-sdk.d.ts +186 -13
  116. package/package.json +2 -1
  117. package/src/embed/app.spec.ts +15 -0
  118. package/src/embed/app.ts +48 -0
  119. package/src/embed/liveboard.spec.ts +82 -9
  120. package/src/embed/liveboard.ts +26 -2
  121. package/src/embed/sage.spec.ts +20 -35
  122. package/src/embed/sage.ts +4 -21
  123. package/src/embed/search.spec.ts +2 -1
  124. package/src/embed/search.ts +26 -0
  125. package/src/embed/ts-embed.spec.ts +22 -0
  126. package/src/embed/ts-embed.ts +9 -0
  127. package/src/errors.ts +1 -1
  128. package/src/react/index.spec.tsx +1 -1
  129. package/src/types.ts +106 -8
@@ -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
  });
@@ -228,6 +228,28 @@ export interface SearchViewConfig
228
228
  * @version: SDK: 1.24.0
229
229
  */
230
230
  useLastSelectedSources?: boolean;
231
+ /**
232
+ * To set the initial state of the search bar in case of saved-answers.
233
+ *
234
+ * @default false
235
+ * @version SDK: 1.32.0 | Thoughtspot: 10.0.0.cl
236
+ */
237
+ collapseSearchBarInitially?: boolean;
238
+ /**
239
+ * To enable custom column groups in data panel v2
240
+ *
241
+ * @version SDK: 1.32.0 | Thoughtspot: 10.0.0.cl
242
+ * @default false
243
+ *
244
+ * @example
245
+ * ```js
246
+ * const embed = new SearchEmbed('#tsEmbed', {
247
+ * ... // other options
248
+ * enableCustomColumnGroups: true,
249
+ * });
250
+ * ```
251
+ */
252
+ enableCustomColumnGroups?: boolean;
231
253
  }
232
254
 
233
255
  export const HiddenActionItemByDefaultForSearchEmbed = [
@@ -285,6 +307,8 @@ export class SearchEmbed extends TsEmbed {
285
307
  dataPanelV2 = false,
286
308
  useLastSelectedSources = false,
287
309
  runtimeParameters,
310
+ collapseSearchBarInitially = false,
311
+ enableCustomColumnGroups = false,
288
312
  } = this.viewConfig;
289
313
  const queryParams = this.getBaseQueryParams();
290
314
 
@@ -331,6 +355,8 @@ export class SearchEmbed extends TsEmbed {
331
355
  }
332
356
 
333
357
  queryParams[Param.searchEmbed] = true;
358
+ queryParams[Param.CollapseSearchBarInitially] = collapseSearchBarInitially;
359
+ queryParams[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
334
360
  let query = '';
335
361
  const queryParamsString = getQueryParamString(queryParams, true);
336
362
  if (queryParamsString) {
@@ -1331,6 +1331,28 @@ describe('Unit test case for ts embed', () => {
1331
1331
  done();
1332
1332
  });
1333
1333
  });
1334
+
1335
+ it('Should set the override locale for number/date and currency format', async () => {
1336
+ jest.spyOn(baseInstance, 'getAuthPromise').mockResolvedValue(true);
1337
+ init({
1338
+ thoughtSpotHost: 'tshost',
1339
+ authType: AuthType.None,
1340
+ numberFormatLocale: 'en-US',
1341
+ dateFormatLocale: 'en-IN',
1342
+ currencyFormat: 'USD',
1343
+ });
1344
+ const appEmbed = new AppEmbed(getRootEl(), {
1345
+ frameParams: {
1346
+ width: '100%',
1347
+ height: '100%',
1348
+ },
1349
+ });
1350
+ await appEmbed.render();
1351
+ expectUrlMatchesWithParams(
1352
+ getIFrameSrc(),
1353
+ `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&numberFormatLocale=en-US&dateFormatLocale=en-IN&currencyFormat=USD${defaultParamsPost}#/home`,
1354
+ );
1355
+ });
1334
1356
  });
1335
1357
 
1336
1358
  describe('When destroyed', () => {
@@ -414,6 +414,15 @@ export class TsEmbed {
414
414
  if (this.embedConfig.pendoTrackingKey) {
415
415
  queryParams[Param.PendoTrackingKey] = this.embedConfig.pendoTrackingKey;
416
416
  }
417
+ if (this.embedConfig.numberFormatLocale) {
418
+ queryParams[Param.NumberFormatLocale] = this.embedConfig.numberFormatLocale;
419
+ }
420
+ if (this.embedConfig.dateFormatLocale) {
421
+ queryParams[Param.DateFormatLocale] = this.embedConfig.dateFormatLocale;
422
+ }
423
+ if (this.embedConfig.currencyFormat) {
424
+ queryParams[Param.CurrencyFormat] = this.embedConfig.currencyFormat;
425
+ }
417
426
 
418
427
  const {
419
428
  disabledActions,
package/src/errors.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export const ERROR_MESSAGE = {
2
2
  INVALID_THOUGHTSPOT_HOST: 'Error parsing ThoughtSpot host. Please provide a valid URL.',
3
- LIVEBOARD_VIZ_ID_VALIDATION: 'Please provide either liveboardId or pinboardId',
3
+ LIVEBOARD_VIZ_ID_VALIDATION: 'Please select a liveboard to embed.',
4
4
  TRIGGER_TIMED_OUT: 'Trigger timedout in getting response',
5
5
  SEARCHEMBED_BETA_WRANING_MESSAGE: 'Search Embed is in Beta in this release.',
6
6
  SAGE_EMBED_BETA_WARNING_MESSAGE: 'Sage Embed is in Beta in this release.',
@@ -49,7 +49,7 @@ describe('React Components', () => {
49
49
  ),
50
50
  ).toBe(true);
51
51
  expect(getIFrameSrc(container)).toBe(
52
- `http://${thoughtSpotHost}/?hostAppUrl=local-host&viewPortHeight=768&viewPortWidth=1024&sdkVersion=${version}&authType=None&blockNonEmbedFullAppAccess=true&hideAction=[%22${Action.ReportError}%22,%22editACopy%22,%22saveAsView%22,%22updateTSL%22,%22editTSL%22,%22onDeleteAnswer%22]&overrideConsoleLogs=true&clientLogLevel=ERROR&enableDataPanelV2=false&dataSourceMode=hide&useLastSelectedSources=false&isSearchEmbed=true#/embed/answer`,
52
+ `http://${thoughtSpotHost}/?hostAppUrl=local-host&viewPortHeight=768&viewPortWidth=1024&sdkVersion=${version}&authType=None&blockNonEmbedFullAppAccess=true&hideAction=[%22${Action.ReportError}%22,%22editACopy%22,%22saveAsView%22,%22updateTSL%22,%22editTSL%22,%22onDeleteAnswer%22]&overrideConsoleLogs=true&clientLogLevel=ERROR&enableDataPanelV2=false&dataSourceMode=hide&useLastSelectedSources=false&isSearchEmbed=true&collapseSearchBarInitially=false&enableCustomColumnGroups=false#/embed/answer`,
53
53
  );
54
54
  });
55
55
 
package/src/types.ts CHANGED
@@ -594,6 +594,24 @@ export interface EmbedConfig {
594
594
  * @version SDK: 1.27.9
595
595
  */
596
596
  disableSDKTracking?: boolean;
597
+ /**
598
+ * Overrides default/user preffered locale for date formatting
599
+ *
600
+ * @version SDK: 1.28.4 | Thoughtspot: 10.0.0.cl, 9.5.0.sw
601
+ */
602
+ dateFormatLocale?: string;
603
+ /**
604
+ * Overrides default/user preffered locale for number formatting
605
+ *
606
+ * @version SDK: 1.28.4 | Thoughtspot: 10.0.0.cl, 9.5.0.sw
607
+ */
608
+ numberFormatLocale?: string;
609
+ /**
610
+ * Format to be used for currency when currency format is set to infer from browser
611
+ *
612
+ * @version SDK: 1.28.4 | Thoughtspot: 10.0.0.cl, 9.5.0.sw
613
+ */
614
+ currencyFormat?: string;
597
615
  }
598
616
 
599
617
  // eslint-disable-next-line @typescript-eslint/no-empty-interface
@@ -913,11 +931,7 @@ export interface ViewConfig {
913
931
  *
914
932
  * **Note**: This option does not apply to the classic homepage.
915
933
  * To access the updated modular homepage, set
916
- <<<<<<< HEAD
917
- * `modularHomeExperience` to `true` (available as Early Access feature in 9.12.0.cl).
918
- =======
919
934
  * `modularHomeExperience` to `true` (available as Early Access feature in 9.12.5.cl).
920
- >>>>>>> 64e22666... typo fixes
921
935
  *
922
936
  * @version SDK: 1.28.0 | Thoughtspot: 9.12.5.cl
923
937
  * @example
@@ -3086,6 +3100,13 @@ export enum Param {
3086
3100
  ClientLogLevel = 'clientLogLevel',
3087
3101
  OverrideNativeConsole = 'overrideConsoleLogs',
3088
3102
  enableAskSage = 'enableAskSage',
3103
+ CollapseSearchBarInitially= 'collapseSearchBarInitially',
3104
+ EnableCustomColumnGroups = 'enableCustomColumnGroups',
3105
+ DateFormatLocale = 'dateFormatLocale',
3106
+ NumberFormatLocale = 'numberFormatLocale',
3107
+ CurrencyFormat = 'currencyFormat',
3108
+ Enable2ColumnLayout = 'enable2ColumnLayout',
3109
+ IsFullAppEmbed = 'isFullAppEmbed',
3089
3110
  }
3090
3111
 
3091
3112
  /**
@@ -3223,6 +3244,18 @@ export enum Action {
3223
3244
  * ```
3224
3245
  */
3225
3246
  AddFilter = 'addFilter',
3247
+ /**
3248
+ * The **Add Data Panel Objects** action on the data panel v2.
3249
+ * Allows to show action menu to add different objects (like
3250
+ * formulas, parameters) in data panel v2.
3251
+ *
3252
+ * @example
3253
+ * ```js
3254
+ * disabledActions: [Action.AddDataPanelObjects]
3255
+ * ```
3256
+ * @version SDK: 1.32.0 | Thoughtspot: 10.0.0.cl
3257
+ */
3258
+ AddDataPanelObjects = 'addDataPanelObjects',
3226
3259
  /**
3227
3260
  * Filter configuration options on a Liveboard and Search page.
3228
3261
  * Allows configuring filter options when adding filters to a
@@ -3265,6 +3298,28 @@ export enum Action {
3265
3298
  * ```
3266
3299
  */
3267
3300
  AddParameter = 'addParameter',
3301
+ /**
3302
+ * The **Add Column Set** action on a Answer.
3303
+ * Allows adding column sets to a Answer.
3304
+ *
3305
+ * @example
3306
+ * ```js
3307
+ * disabledActions: [Action.AddColumnSet]
3308
+ * ```
3309
+ * @version SDK: 1.32.0 | Thoughtspot: 10.0.0.cl
3310
+ */
3311
+ AddColumnSet = 'addSimpleCohort',
3312
+ /**
3313
+ * The **Add Query Set** action on a Answer.
3314
+ * Allows adding query sets to a Answer.
3315
+ *
3316
+ * @example
3317
+ * ```js
3318
+ * disabledActions: [Action.AddQuerySet]
3319
+ * ```
3320
+ * @version SDK: 1.32.0 | Thoughtspot: 10.0.0.cl
3321
+ */
3322
+ AddQuerySet = 'addAdvancedCohort',
3268
3323
  /**
3269
3324
  * @hidden
3270
3325
  */
@@ -3697,6 +3752,28 @@ export enum Action {
3697
3752
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
3698
3753
  */
3699
3754
  CrossFilter = 'context-menu-item-cross-filter',
3755
+ /**
3756
+ * The **Sync to Slack** action on Liveboard visualizations.
3757
+ * Allows sending data to third-party apps Slack
3758
+ *
3759
+ * @example
3760
+ * ```js
3761
+ * disabledActions: [Action.SyncToSlack]
3762
+ * ```
3763
+ * @version @version SDK : 1.32.0 | Thoughtspot: 10.1.0.cl
3764
+ */
3765
+ SyncToSlack = 'syncToSlack',
3766
+ /**
3767
+ * The **Sync to Teams** action on Liveboard visualizations.
3768
+ * Allows sending data to third-party apps Team
3769
+ *
3770
+ * @example
3771
+ * ```js
3772
+ * disabledActions: [Action.SyncToTeams]
3773
+ * ```
3774
+ * @version @version SDK : 1.32.0 | Thoughtspot: 10.1.0.cl
3775
+ */
3776
+ SyncToTeams = 'syncToTeams',
3700
3777
  /**
3701
3778
  * The **Remove** action that appears when cross filters are applied
3702
3779
  * on a Liveboard.
@@ -3939,6 +4016,27 @@ export enum Action {
3939
4016
  */
3940
4017
  LiveboardUsers = 'liveboardUsers',
3941
4018
 
4019
+ /**
4020
+ * Action ID for the Parent TML action
4021
+ * The parent action **TML** must be included to access TML-related options
4022
+ * within the cascading menu (specific to the answer page)
4023
+ *
4024
+ * @example
4025
+ * ```js
4026
+ * // to include specific TML actions
4027
+ * visibleActions: [Action.TML, Action.ExportTML, Action.EditTML]
4028
+ *
4029
+ * ```
4030
+ * @example
4031
+ * ```js
4032
+ * hiddenAction: [Action.TML] // hide all TML actions
4033
+ * disabledActions: [Action.TML] // to disable all TML actions
4034
+ * ```
4035
+ *
4036
+ * @version SDK : 1.28.2 | Thoughtspot: 9.10.5.cl
4037
+ */
4038
+ TML = 'tml',
4039
+
3942
4040
  /**
3943
4041
  * Action ID for to hide Verified Liveboard Banner
3944
4042
  *
@@ -3984,15 +4082,15 @@ export enum Action {
3984
4082
  RemoveFromWatchlist = 'removeFromWatchlist',
3985
4083
 
3986
4084
  /**
3987
- * The **Copy KPI Link** menu action on KPI watchlist.
4085
+ * The **Organise Favourites** action on Homepage Favourite Module.
3988
4086
  *
3989
4087
  * @example
3990
4088
  * ```js
3991
- * disabledActions: [Action.CopyKpiLink]
4089
+ * disabledActions: [Action.OrganiseFavourites]
3992
4090
  * ```
3993
- * @version SDK : 1.27.9 | Thoughtspot: 9.12.5.cl
4091
+ * @version SDK : 1.32.0 | Thoughtspot: 10.0.0.cl
3994
4092
  */
3995
- CopyKpiLink = 'copyKpiLink',
4093
+ OrganiseFavourites = 'organiseFavourites',
3996
4094
 
3997
4095
  /**
3998
4096
  * Action ID for AI Highlights button