@thoughtspot/visual-embed-sdk 1.33.0-alpha.2 → 1.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/cjs/package.json +6 -24
  2. package/cjs/src/css-variables.d.ts +46 -3
  3. package/cjs/src/css-variables.d.ts.map +1 -1
  4. package/cjs/src/embed/app.d.ts +47 -27
  5. package/cjs/src/embed/app.d.ts.map +1 -1
  6. package/cjs/src/embed/app.js +10 -1
  7. package/cjs/src/embed/app.js.map +1 -1
  8. package/cjs/src/embed/app.spec.js +32 -0
  9. package/cjs/src/embed/app.spec.js.map +1 -1
  10. package/cjs/src/embed/base.d.ts +35 -33
  11. package/cjs/src/embed/base.d.ts.map +1 -1
  12. package/cjs/src/embed/base.js +35 -33
  13. package/cjs/src/embed/base.js.map +1 -1
  14. package/cjs/src/embed/embed.spec.js +0 -19
  15. package/cjs/src/embed/embed.spec.js.map +1 -1
  16. package/cjs/src/embed/liveboard.d.ts +42 -0
  17. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  18. package/cjs/src/embed/liveboard.js +6 -1
  19. package/cjs/src/embed/liveboard.js.map +1 -1
  20. package/cjs/src/embed/liveboard.spec.js +43 -0
  21. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  22. package/cjs/src/embed/search.d.ts +0 -26
  23. package/cjs/src/embed/search.d.ts.map +1 -1
  24. package/cjs/src/embed/search.js.map +1 -1
  25. package/cjs/src/embed/ts-embed.d.ts +0 -1
  26. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  27. package/cjs/src/embed/ts-embed.js +8 -12
  28. package/cjs/src/embed/ts-embed.js.map +1 -1
  29. package/cjs/src/embed/ts-embed.spec.js +0 -9
  30. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  31. package/cjs/src/mixpanel-service.d.ts +4 -0
  32. package/cjs/src/mixpanel-service.d.ts.map +1 -1
  33. package/cjs/src/mixpanel-service.js +4 -0
  34. package/cjs/src/mixpanel-service.js.map +1 -1
  35. package/cjs/src/tokenizedFetch.d.ts.map +1 -1
  36. package/cjs/src/tokenizedFetch.js +5 -1
  37. package/cjs/src/tokenizedFetch.js.map +1 -1
  38. package/cjs/src/types.d.ts +179 -22
  39. package/cjs/src/types.d.ts.map +1 -1
  40. package/cjs/src/types.js +143 -12
  41. package/cjs/src/types.js.map +1 -1
  42. package/cjs/src/utils/authService/authService.spec.js +3 -1
  43. package/cjs/src/utils/authService/authService.spec.js.map +1 -1
  44. package/cjs/src/utils/graphql/answerService/answer-queries.d.ts +1 -0
  45. package/cjs/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -1
  46. package/cjs/src/utils/graphql/answerService/answer-queries.js +9 -2
  47. package/cjs/src/utils/graphql/answerService/answer-queries.js.map +1 -1
  48. package/cjs/src/utils/graphql/answerService/answerService.d.ts +15 -0
  49. package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  50. package/cjs/src/utils/graphql/answerService/answerService.js +25 -0
  51. package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -1
  52. package/cjs/src/utils/graphql/answerService/answerService.spec.js +53 -0
  53. package/cjs/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
  54. package/cjs/src/utils/graphql/graphql-request.spec.d.ts +2 -0
  55. package/cjs/src/utils/graphql/graphql-request.spec.d.ts.map +1 -0
  56. package/cjs/src/utils/graphql/graphql-request.spec.js +36 -0
  57. package/cjs/src/utils/graphql/graphql-request.spec.js.map +1 -0
  58. package/cjs/src/utils/processData.js +2 -2
  59. package/cjs/src/utils/processData.js.map +1 -1
  60. package/cjs/src/utils/processData.spec.js +14 -0
  61. package/cjs/src/utils/processData.spec.js.map +1 -1
  62. package/cjs/src/utils/processTrigger.d.ts +1 -0
  63. package/cjs/src/utils/processTrigger.d.ts.map +1 -1
  64. package/cjs/src/utils/processTrigger.js +3 -3
  65. package/cjs/src/utils/processTrigger.js.map +1 -1
  66. package/cjs/src/utils/processTrigger.spec.js +10 -0
  67. package/cjs/src/utils/processTrigger.spec.js.map +1 -1
  68. package/cjs/src/utils.d.ts.map +1 -1
  69. package/cjs/src/utils.js +1 -3
  70. package/cjs/src/utils.js.map +1 -1
  71. package/dist/src/css-variables.d.ts +46 -3
  72. package/dist/src/css-variables.d.ts.map +1 -1
  73. package/dist/src/embed/app.d.ts +47 -27
  74. package/dist/src/embed/app.d.ts.map +1 -1
  75. package/dist/src/embed/base.d.ts +35 -33
  76. package/dist/src/embed/base.d.ts.map +1 -1
  77. package/dist/src/embed/liveboard.d.ts +42 -0
  78. package/dist/src/embed/liveboard.d.ts.map +1 -1
  79. package/dist/src/embed/search.d.ts +0 -26
  80. package/dist/src/embed/search.d.ts.map +1 -1
  81. package/dist/src/embed/ts-embed.d.ts +0 -1
  82. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  83. package/dist/src/mixpanel-service.d.ts +4 -0
  84. package/dist/src/mixpanel-service.d.ts.map +1 -1
  85. package/dist/src/tokenizedFetch.d.ts.map +1 -1
  86. package/dist/src/types.d.ts +179 -22
  87. package/dist/src/types.d.ts.map +1 -1
  88. package/dist/src/utils/graphql/answerService/answer-queries.d.ts +1 -0
  89. package/dist/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -1
  90. package/dist/src/utils/graphql/answerService/answerService.d.ts +15 -0
  91. package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  92. package/dist/src/utils/graphql/graphql-request.spec.d.ts +2 -0
  93. package/dist/src/utils/graphql/graphql-request.spec.d.ts.map +1 -0
  94. package/dist/src/utils/processTrigger.d.ts +1 -0
  95. package/dist/src/utils/processTrigger.d.ts.map +1 -1
  96. package/dist/src/utils.d.ts.map +1 -1
  97. package/dist/tsembed-react.es.js +442 -107
  98. package/dist/tsembed-react.js +385 -106
  99. package/dist/tsembed.es.js +477 -140
  100. package/dist/tsembed.js +420 -139
  101. package/dist/visual-embed-sdk-react-full.d.ts +368 -112
  102. package/dist/visual-embed-sdk-react.d.ts +368 -112
  103. package/dist/visual-embed-sdk.d.ts +368 -112
  104. package/lib/package.json +6 -24
  105. package/lib/src/css-variables.d.ts +46 -3
  106. package/lib/src/css-variables.d.ts.map +1 -1
  107. package/lib/src/embed/app.d.ts +47 -27
  108. package/lib/src/embed/app.d.ts.map +1 -1
  109. package/lib/src/embed/app.js +10 -1
  110. package/lib/src/embed/app.js.map +1 -1
  111. package/lib/src/embed/app.spec.js +32 -0
  112. package/lib/src/embed/app.spec.js.map +1 -1
  113. package/lib/src/embed/base.d.ts +35 -33
  114. package/lib/src/embed/base.d.ts.map +1 -1
  115. package/lib/src/embed/base.js +35 -33
  116. package/lib/src/embed/base.js.map +1 -1
  117. package/lib/src/embed/embed.spec.js +0 -19
  118. package/lib/src/embed/embed.spec.js.map +1 -1
  119. package/lib/src/embed/liveboard.d.ts +42 -0
  120. package/lib/src/embed/liveboard.d.ts.map +1 -1
  121. package/lib/src/embed/liveboard.js +6 -1
  122. package/lib/src/embed/liveboard.js.map +1 -1
  123. package/lib/src/embed/liveboard.spec.js +43 -0
  124. package/lib/src/embed/liveboard.spec.js.map +1 -1
  125. package/lib/src/embed/search.d.ts +0 -26
  126. package/lib/src/embed/search.d.ts.map +1 -1
  127. package/lib/src/embed/search.js.map +1 -1
  128. package/lib/src/embed/ts-embed.d.ts +0 -1
  129. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  130. package/lib/src/embed/ts-embed.js +8 -12
  131. package/lib/src/embed/ts-embed.js.map +1 -1
  132. package/lib/src/embed/ts-embed.spec.js +0 -9
  133. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  134. package/lib/src/mixpanel-service.d.ts +4 -0
  135. package/lib/src/mixpanel-service.d.ts.map +1 -1
  136. package/lib/src/mixpanel-service.js +4 -0
  137. package/lib/src/mixpanel-service.js.map +1 -1
  138. package/lib/src/tokenizedFetch.d.ts.map +1 -1
  139. package/lib/src/tokenizedFetch.js +5 -1
  140. package/lib/src/tokenizedFetch.js.map +1 -1
  141. package/lib/src/types.d.ts +179 -22
  142. package/lib/src/types.d.ts.map +1 -1
  143. package/lib/src/types.js +143 -12
  144. package/lib/src/types.js.map +1 -1
  145. package/lib/src/utils/authService/authService.spec.js +3 -1
  146. package/lib/src/utils/authService/authService.spec.js.map +1 -1
  147. package/lib/src/utils/graphql/answerService/answer-queries.d.ts +1 -0
  148. package/lib/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -1
  149. package/lib/src/utils/graphql/answerService/answer-queries.js +8 -1
  150. package/lib/src/utils/graphql/answerService/answer-queries.js.map +1 -1
  151. package/lib/src/utils/graphql/answerService/answerService.d.ts +15 -0
  152. package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  153. package/lib/src/utils/graphql/answerService/answerService.js +25 -0
  154. package/lib/src/utils/graphql/answerService/answerService.js.map +1 -1
  155. package/lib/src/utils/graphql/answerService/answerService.spec.js +54 -1
  156. package/lib/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
  157. package/lib/src/utils/graphql/graphql-request.spec.d.ts +2 -0
  158. package/lib/src/utils/graphql/graphql-request.spec.d.ts.map +1 -0
  159. package/lib/src/utils/graphql/graphql-request.spec.js +33 -0
  160. package/lib/src/utils/graphql/graphql-request.spec.js.map +1 -0
  161. package/lib/src/utils/processData.js +2 -2
  162. package/lib/src/utils/processData.js.map +1 -1
  163. package/lib/src/utils/processData.spec.js +14 -0
  164. package/lib/src/utils/processData.spec.js.map +1 -1
  165. package/lib/src/utils/processTrigger.d.ts +1 -0
  166. package/lib/src/utils/processTrigger.d.ts.map +1 -1
  167. package/lib/src/utils/processTrigger.js +1 -1
  168. package/lib/src/utils/processTrigger.js.map +1 -1
  169. package/lib/src/utils/processTrigger.spec.js +10 -0
  170. package/lib/src/utils/processTrigger.spec.js.map +1 -1
  171. package/lib/src/utils.d.ts.map +1 -1
  172. package/lib/src/utils.js +1 -3
  173. package/lib/src/utils.js.map +1 -1
  174. package/lib/src/visual-embed-sdk.d.ts +368 -112
  175. package/package.json +6 -24
  176. package/src/css-variables.ts +49 -3
  177. package/src/embed/app.spec.ts +47 -0
  178. package/src/embed/app.ts +54 -26
  179. package/src/embed/base.ts +35 -33
  180. package/src/embed/embed.spec.ts +0 -22
  181. package/src/embed/liveboard.spec.ts +62 -0
  182. package/src/embed/liveboard.ts +52 -0
  183. package/src/embed/search.ts +0 -26
  184. package/src/embed/ts-embed.spec.ts +0 -11
  185. package/src/embed/ts-embed.ts +9 -12
  186. package/src/mixpanel-service.ts +4 -0
  187. package/src/tokenizedFetch.ts +5 -1
  188. package/src/types.ts +180 -21
  189. package/src/utils/authService/authService.spec.ts +3 -1
  190. package/src/utils/graphql/answerService/answer-queries.ts +9 -1
  191. package/src/utils/graphql/answerService/answerService.spec.ts +69 -0
  192. package/src/utils/graphql/answerService/answerService.ts +35 -0
  193. package/src/utils/graphql/graphql-request.spec.ts +38 -0
  194. package/src/utils/processData.spec.ts +16 -0
  195. package/src/utils/processData.ts +2 -2
  196. package/src/utils/processTrigger.spec.ts +19 -0
  197. package/src/utils/processTrigger.ts +1 -1
  198. package/src/utils.ts +1 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thoughtspot/visual-embed-sdk",
3
- "version": "1.33.0-alpha.2",
3
+ "version": "1.33.0",
4
4
  "description": "ThoughtSpot Embed SDK",
5
5
  "module": "lib/src/index.js",
6
6
  "main": "dist/tsembed.js",
@@ -38,18 +38,13 @@
38
38
  "size-limit": [
39
39
  {
40
40
  "path": "dist/tsembed.js",
41
- "limit": "48 kB"
41
+ "limit": "49 kB"
42
42
  }
43
43
  ],
44
44
  "scripts": {
45
45
  "lint": "eslint 'src/**'",
46
46
  "lint:fix": "eslint 'src/**/*.*' --fix",
47
47
  "tsc": "tsc -p . --incremental false; tsc -p . --incremental false --module commonjs --outDir cjs",
48
- "start": "gatsby develop",
49
- "build:gatsby": "npm run clean:gatsby && gatsby build --prefix-paths",
50
- "build:gatsby:noprefix": "npm run clean:gatsby && gatsby build",
51
- "serve:gatsby": "gatsby serve",
52
- "clean:gatsby": "gatsby clean",
53
48
  "build-and-publish": "npm run build:gatsby && npm run publish",
54
49
  "bundle-dts-file": "dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts",
55
50
  "bundle-dts": "dts-bundle --name ../../dist/visual-embed-sdk --main lib/src/index.d.ts --outputAsModuleFolder=true",
@@ -57,11 +52,9 @@
57
52
  "bundle-dts-react-full": "dts-bundle --name ../../../dist/visual-embed-sdk-react-full --main lib/src/react/all-types-export.d.ts --outputAsModuleFolder=true",
58
53
  "build": "rollup -c",
59
54
  "watch": "rollup -cw",
60
- "docs-cmd": "node scripts/gatsby-commands.js",
61
- "docgen": "typedoc --tsconfig tsconfig.json --theme typedoc-theme",
55
+ "docgen": "typedoc --tsconfig tsconfig.json --theme typedoc-theme --json static/typedoc/typedoc.json --disableOutputCheck",
62
56
  "test-sdk": "jest -c jest.config.sdk.js --runInBand",
63
- "test-docs": "jest -c jest.config.docs.js",
64
- "test": "npm run test-sdk && npm run test-docs",
57
+ "test": "npm run test-sdk",
65
58
  "posttest": "cat ./coverage/sdk/lcov.info | coveralls",
66
59
  "is-publish-allowed": "node scripts/is-publish-allowed.js",
67
60
  "prepublishOnly": "npm run is-publish-allowed && npm run test && npm run tsc && npm run bundle-dts-file && npm run bundle-dts && npm run bundle-dts-react && npm run bundle-dts-react-full && npm run build",
@@ -84,7 +77,7 @@
84
77
  "gatsby-plugin-vercel": "^1.0.3",
85
78
  "html-react-parser": "^1.4.12",
86
79
  "lodash": "^4.17.21",
87
- "mixpanel-browser": "^2.45.0",
80
+ "mixpanel-browser": "2.47.0",
88
81
  "ts-deepmerge": "^6.0.2",
89
82
  "tslib": "^2.5.3",
90
83
  "use-deep-compare-effect": "^1.8.1"
@@ -104,6 +97,7 @@
104
97
  "@testing-library/user-event": "^13.1.8",
105
98
  "@types/jest": "^22.2.3",
106
99
  "@types/mixpanel-browser": "^2.35.6",
100
+ "@types/lodash": "^4.17.0",
107
101
  "@types/react-test-renderer": "^17.0.1",
108
102
  "@typescript-eslint/eslint-plugin": "^4.6.0",
109
103
  "@typescript-eslint/parser": "^4.6.0",
@@ -122,18 +116,6 @@
122
116
  "eslint-plugin-prettier": "^3.1.4",
123
117
  "eslint-plugin-react-hooks": "^4.2.0",
124
118
  "fs-extra": "^10.0.0",
125
- "gatsby": "3.13.1",
126
- "gatsby-plugin-algolia": "^0.22.2",
127
- "gatsby-plugin-catch-links": "^3.1.0",
128
- "gatsby-plugin-env-variables": "^2.1.0",
129
- "gatsby-plugin-intl": "^0.3.3",
130
- "gatsby-plugin-manifest": "^3.2.0",
131
- "gatsby-plugin-output": "^0.1.3",
132
- "gatsby-plugin-sass": "6.7.0",
133
- "gatsby-plugin-sitemap": "^4.10.0",
134
- "gatsby-source-filesystem": "3.1.0",
135
- "gatsby-transformer-asciidoc": "2.1.0",
136
- "gatsby-transformer-rehype": "2.0.0",
137
119
  "gh-pages": "^3.1.0",
138
120
  "highlight.js": "^10.6.0",
139
121
  "html-to-text": "^8.0.0",
@@ -24,9 +24,12 @@ export interface CustomCssVariables {
24
24
  '--ts-var-root-text-transform'?: string;
25
25
 
26
26
  /**
27
- * application color, it replaces #2770EF which is rd-color(blue,base) and
28
- * its similar colors like rd-color(blue,60), rd-color(accent, base) and
29
- * rd-color(text, accent) in the app.
27
+ * Font color of the text on toggle buttons such as
28
+ * **All**, **Answers**, and **Liveboards** on the Home page (Classic experience),
29
+ * the text color of the chart and table tiles on Home page (New modular Homepage experience),
30
+ * and title text on the AI-generated charts and tables.
31
+ * The default color code is #2770EF.
32
+ *
30
33
  */
31
34
  '--ts-var-application-color'?: string;
32
35
 
@@ -163,6 +166,11 @@ export interface CustomCssVariables {
163
166
  */
164
167
  '--ts-var-button--primary--hover-background'?: string;
165
168
 
169
+ /**
170
+ * Backgroud color of the primary buttons when active.
171
+ */
172
+ '--ts-var-button--primary--active-background'?: string;
173
+
166
174
  /**
167
175
  * Font color of the text on the secondary buttons.
168
176
  */
@@ -183,6 +191,11 @@ export interface CustomCssVariables {
183
191
  */
184
192
  '--ts-var-button--secondary--hover-background'?: string;
185
193
 
194
+ /**
195
+ * Backgroud color of the secondary buttons when active.
196
+ */
197
+ '--ts-var-button--secondary--active-background'?: string;
198
+
186
199
  /**
187
200
  * Font color of the tertiary button. For example, the *Undo*, *Redo*, and *Reset*
188
201
  * buttons on the *Search* page.
@@ -199,6 +212,11 @@ export interface CustomCssVariables {
199
212
  */
200
213
  '--ts-var-button--tertiary--hover-background'?: string;
201
214
 
215
+ /**
216
+ * Backgroud color of the tertiary buttons when active.
217
+ */
218
+ '--ts-var-button--tertiary--active-background'?: string;
219
+
202
220
  /**
203
221
  * Font color of the title text of a visualization or Answer.
204
222
  */
@@ -416,4 +434,32 @@ export interface CustomCssVariables {
416
434
  * Background for favorite carousel find your favorites card in modular home.
417
435
  */
418
436
  '--ts-var-home-favorite-suggestion-card-background'?: string;
437
+ /**
438
+ * Border color of checkbox in error state.
439
+ */
440
+ '--ts-var-checkbox-error-border'?: string;
441
+ /**
442
+ * Border color of checkbox.
443
+ */
444
+ '--ts-var-checkbox-border-color'?: string;
445
+ /**
446
+ * Border color of checkbox in hover state.
447
+ */
448
+ '--ts-var-checkbox-hover-border'?: string;
449
+ /**
450
+ * Border and font color of checkbox in active state.
451
+ */
452
+ '--ts-var-checkbox-active-color'?: string;
453
+ /**
454
+ * Border color and font color of checkbox in checked state.
455
+ */
456
+ '--ts-var-checkbox-checked-color'?: string;
457
+ /**
458
+ * Border and font color of checkbox in disabled state.
459
+ */
460
+ '--ts-var-checkbox-checked-disabled'?: string;
461
+ /**
462
+ * Background color of checkbox.
463
+ */
464
+ '--ts-var-checkbox-background-color'?: string;
419
465
  }
@@ -138,6 +138,7 @@ describe('App embed tests', () => {
138
138
  [Page.Data]: 'data/tables',
139
139
  [Page.Home]: 'home',
140
140
  [Page.SpotIQ]: 'insights/results',
141
+ [Page.Monitor]: 'insights/monitor-alerts',
141
142
  };
142
143
 
143
144
  const pageIds = Object.keys(pageRouteMap);
@@ -170,6 +171,7 @@ describe('App embed tests', () => {
170
171
  [Page.Data]: 'data/tables',
171
172
  [Page.Home]: 'home',
172
173
  [Page.SpotIQ]: 'home/spotiq-analysis',
174
+ [Page.Monitor]: 'home/monitor-alerts',
173
175
  };
174
176
 
175
177
  const pageIdsForModularHomes = Object.keys(pageRouteMapForModularHome);
@@ -373,6 +375,51 @@ describe('App embed tests', () => {
373
375
  });
374
376
  });
375
377
 
378
+ test('Should add isLiveboardCompactHeaderEnabled flag to the iframe src', async () => {
379
+ const appEmbed = new AppEmbed(getRootEl(), {
380
+ ...defaultViewConfig,
381
+ isLiveboardCompactHeaderEnabled: false,
382
+ } as AppViewConfig);
383
+
384
+ appEmbed.render();
385
+ await executeAfterWait(() => {
386
+ expectUrlMatchesWithParams(
387
+ getIFrameSrc(),
388
+ `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&isLiveboardHeaderV2Enabled=false${defaultParams}${defaultParamsPost}#/home`,
389
+ );
390
+ });
391
+ });
392
+
393
+ test('Should add showLiveboardReverifyBanner flag to the iframe src', async () => {
394
+ const appEmbed = new AppEmbed(getRootEl(), {
395
+ ...defaultViewConfig,
396
+ showLiveboardReverifyBanner: false,
397
+ } as AppViewConfig);
398
+
399
+ appEmbed.render();
400
+ await executeAfterWait(() => {
401
+ expectUrlMatchesWithParams(
402
+ getIFrameSrc(),
403
+ `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&showLiveboardReverifyBanner=false${defaultParams}${defaultParamsPost}#/home`,
404
+ );
405
+ });
406
+ });
407
+
408
+ test('Should add showLiveboardVerifiedBadge flag to the iframe src', async () => {
409
+ const appEmbed = new AppEmbed(getRootEl(), {
410
+ ...defaultViewConfig,
411
+ showLiveboardVerifiedBadge: false,
412
+ } as AppViewConfig);
413
+
414
+ appEmbed.render();
415
+ await executeAfterWait(() => {
416
+ expectUrlMatchesWithParams(
417
+ getIFrameSrc(),
418
+ `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&showLiveboardVerifiedBadge=false${defaultParams}${defaultParamsPost}#/home`,
419
+ );
420
+ });
421
+ });
422
+
376
423
  test('Should add default values of flags to the iframe src', async () => {
377
424
  const appEmbed = new AppEmbed(getRootEl(), {
378
425
  ...defaultViewConfig,
package/src/embed/app.ts CHANGED
@@ -53,6 +53,10 @@ export enum Page {
53
53
  * SpotIQ listing page
54
54
  */
55
55
  SpotIQ = 'insights',
56
+ /**
57
+ * Monitor Alerts Page
58
+ */
59
+ Monitor = 'monitor'
56
60
  }
57
61
 
58
62
  /**
@@ -265,19 +269,6 @@ export interface AppViewConfig extends Omit<ViewConfig, 'visibleTabs'> {
265
269
  * ```
266
270
  */
267
271
  fullHeight?: boolean;
268
- /**
269
- * Flag to control Data panel experience
270
- * @default true
271
- * @version SDK: 1.26.0 | Thoughtspot: 9.7.0.cl
272
- * @example
273
- * ```js
274
- * const embed = new AppEmbed('#tsEmbed', {
275
- * ... // other options
276
- * dataPanelV2: true,
277
- * })
278
- * ```
279
- */
280
- dataPanelV2?: boolean;
281
272
  /**
282
273
  * Show or hide Liveboard header
283
274
  * @version SDK: 1.26.0 | Thoughtspot: 9.7.0.cl
@@ -355,19 +346,6 @@ export interface AppViewConfig extends Omit<ViewConfig, 'visibleTabs'> {
355
346
  * @deprecated Use {@link collapseSearchBar} instead
356
347
  */
357
348
  collapseSearchBarInitially?: boolean;
358
- /**
359
- * To enable custom column groups in data panel v2.
360
- * @version SDK: 1.32.0 | Thoughtspot: 10.0.0.cl
361
- * @default false
362
- * @example
363
- * ```js
364
- * const embed = new AppEmbed('#embed', {
365
- * ... // other app view config
366
- * enableCustomColumnGroups: true,
367
- * });
368
- * ```
369
- */
370
- enableCustomColumnGroups?: boolean;
371
349
  /**
372
350
  * This controls the initial behaviour of custom column groups accordion.
373
351
  * It takes DataPanelCustomColumnGroupsAccordionState enum values as input.
@@ -411,6 +389,48 @@ export interface AppViewConfig extends Omit<ViewConfig, 'visibleTabs'> {
411
389
  * @version SDK : 1.33.0 | Thoughtspot : 10.2.0.cl
412
390
  */
413
391
  homePageSearchBarMode?: HomePageSearchBarMode;
392
+ /**
393
+ * This flag is used to enable the compact header in liveboard
394
+ * @type {boolean}
395
+ * @default false
396
+ * @version SDK: 1.35.0 | ThoughtSpot:10.3.0.cl
397
+ * @example
398
+ * ```js
399
+ * const embed = new AppEmbed('#embed-container', {
400
+ * ... // other options
401
+ * isLiveboardCompactHeaderEnabled: true,
402
+ * })
403
+ * ```
404
+ */
405
+ isLiveboardCompactHeaderEnabled?: boolean;
406
+ /**
407
+ * This flag is used to show/hide verified Icon in liveboard compact header
408
+ * @type {boolean}
409
+ * @default true
410
+ * @version SDK: 1.35.0 | ThoughtSpot:10.4.0.cl
411
+ * @example
412
+ * ```js
413
+ * const embed = new AppEmbed('#embed-container', {
414
+ * ... // other options
415
+ * showLiveboardVerifiedBadge: true,
416
+ * })
417
+ * ```
418
+ */
419
+ showLiveboardVerifiedBadge?: boolean;
420
+ /**
421
+ * This flag is used to show/hide re-verify banner in liveboard compact header
422
+ * @type {boolean}
423
+ * @default true
424
+ * @version SDK: 1.35.0 | ThoughtSpot:10.4.0.cl
425
+ * @example
426
+ * ```js
427
+ * const embed = new AppEmbed('#embed-container', {
428
+ * ... // other options
429
+ * showLiveboardReverifyBanner: true,
430
+ * })
431
+ * ```
432
+ */
433
+ showLiveboardReverifyBanner?: boolean;
414
434
  }
415
435
 
416
436
  /**
@@ -463,6 +483,9 @@ export class AppEmbed extends V1Embed {
463
483
  /* eslint-disable-next-line max-len */
464
484
  dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL,
465
485
  collapseSearchBar = true,
486
+ isLiveboardCompactHeaderEnabled = false,
487
+ showLiveboardVerifiedBadge = true,
488
+ showLiveboardReverifyBanner = true,
466
489
  homePageSearchBarMode,
467
490
  } = this.viewConfig;
468
491
 
@@ -477,6 +500,9 @@ export class AppEmbed extends V1Embed {
477
500
  params[Param.ShowLiveboardDescription] = !!showLiveboardDescription;
478
501
  params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
479
502
  params[Param.IsFullAppEmbed] = true;
503
+ params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
504
+ params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
505
+ params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
480
506
 
481
507
  params = this.getBaseQueryParams(params);
482
508
 
@@ -595,6 +621,8 @@ export class AppEmbed extends V1Embed {
595
621
  return 'data/tables';
596
622
  case Page.SpotIQ:
597
623
  return modularHomeExperience ? 'home/spotiq-analysis' : 'insights/results';
624
+ case Page.Monitor:
625
+ return modularHomeExperience ? 'home/monitor-alerts' : 'insights/monitor-alerts';
598
626
  case Page.Home:
599
627
  default:
600
628
  return 'home';
package/src/embed/base.ts CHANGED
@@ -260,22 +260,23 @@ export const renderInQueue = (fn: (next?: (val?: any) => void) => Promise<any>):
260
260
  /**
261
261
  * Imports TML representation of the metadata objects into ThoughtSpot.
262
262
  * @param data
263
+ * @returns imports TML data into ThoughtSpot
263
264
  * @example
264
265
  * ```js
265
- * executeTML({
266
- * //Array of metadata Tmls
267
- metadata_tmls: [
268
- "'\''{\"guid\":\"9bd202f5-d431-44bf-9a07-b4f7be372125\",
269
- \"liveboard\":{\"name\":\"Parameters Liveboard\"}}'\''"
270
- ],
271
- import_policy: 'PARTIAL', // Specifies the import policy for the TML import.
272
- create_new: false, // If selected, creates TML objects with new GUIDs.
273
- }).then(result => {
274
- console.log(result);
275
- }).catch(error => {
276
- console.error(error);
277
- });
278
- *
266
+ * executeTML({
267
+ * //Array of metadata Tmls in string format
268
+ * metadata_tmls: [
269
+ * "'\''{\"guid\":\"9bd202f5-d431-44bf-9a07-b4f7be372125\",
270
+ * \"liveboard\":{\"name\":\"Parameters Liveboard\"}}'\''"
271
+ * ],
272
+ * import_policy: 'PARTIAL', // Specifies the import policy for the TML import.
273
+ * create_new: false, // If selected, creates TML objects with new GUIDs.
274
+ * }).then(result => {
275
+ * console.log(result);
276
+ * }).catch(error => {
277
+ * console.error(error);
278
+ * });
279
+ *```
279
280
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
280
281
  * @group Global methods
281
282
  */
@@ -320,27 +321,28 @@ export const executeTML = async (data: executeTMLInput): Promise<any> => {
320
321
  * Exports TML representation of the metadata objects from ThoughtSpot in JSON or YAML
321
322
  * format.
322
323
  * @param data
324
+ * @returns exports TML data
323
325
  * @example
324
326
  * ```js
325
- exportTML({
326
- metadata: [
327
- {
328
- type: "LIVEBOARD", //Metadata Type
329
- identifier: "9bd202f5-d431-44bf-9a07-b4f7be372125" //Metadata Id
330
- }
331
- ],
332
- export_associated: false,//indicates whether to export associated metadata objects
333
- export_fqn: false, //Adds FQNs of the referenced objects.For example, if you are
334
- //exporting a Liveboard and its associated objects, the API
335
- //returns the Liveboard TML data with the FQNs of the referenced
336
- //worksheet. If the exported TML data includes FQNs, you don't need
337
- //to manually add FQNs of the referenced objects during TML import.
338
- edoc_format: "JSON" //It takes JSON or YAML value
339
- }).then(result => {
340
- console.log(result);
341
- }).catch(error => {
342
- console.error(error);
343
- });
327
+ * exportTML({
328
+ * metadata: [
329
+ * {
330
+ * type: "LIVEBOARD", //Metadata Type
331
+ * identifier: "9bd202f5-d431-44bf-9a07-b4f7be372125" //Metadata Id
332
+ * }
333
+ * ],
334
+ * export_associated: false,//indicates whether to export associated metadata objects
335
+ * export_fqn: false, //Adds FQNs of the referenced objects.For example, if you are
336
+ * //exporting a Liveboard and its associated objects, the API
337
+ * //returns the Liveboard TML data with the FQNs of the referenced
338
+ * //worksheet. If the exported TML data includes FQNs, you don't need
339
+ * //to manually add FQNs of the referenced objects during TML import.
340
+ * edoc_format: "JSON" //It takes JSON or YAML value
341
+ * }).then(result => {
342
+ * console.log(result);
343
+ * }).catch(error => {
344
+ * console.error(error);
345
+ * });
344
346
  * ```
345
347
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
346
348
  * @group Global methods
@@ -53,25 +53,3 @@ describe('test view config', () => {
53
53
  });
54
54
  });
55
55
  });
56
-
57
- describe('Custom CSS Url', () => {
58
- beforeEach(() => {
59
- document.body.innerHTML = getDocumentBody();
60
- });
61
-
62
- test('passing customCssUrl should set the correct query params on the iframe', async (done) => {
63
- init({
64
- thoughtSpotHost,
65
- authType: AuthType.None,
66
- customCssUrl: 'bla.com/foo.css',
67
- });
68
-
69
- const embed = new SearchEmbed(getRootEl(), defaultViewConfig);
70
- embed.render();
71
- executeAfterWait(() => {
72
- const iframe = getIFrameEl();
73
- expect(iframe.src.includes('customCssUrl=bla.com/foo.css')).toBe(true);
74
- done();
75
- });
76
- });
77
- });
@@ -67,6 +67,20 @@ describe('Liveboard/viz embed tests', () => {
67
67
  });
68
68
  });
69
69
 
70
+ test('should render liveboard with data panel v2 flag set to true by default', async () => {
71
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
72
+ ...defaultViewConfig,
73
+ liveboardId,
74
+ } as LiveboardViewConfig);
75
+ liveboardEmbed.render();
76
+ await executeAfterWait(() => {
77
+ expectUrlMatchesWithParams(
78
+ getIFrameSrc(),
79
+ `http://${thoughtSpotHost}/?embedApp=true${defaultParams}${prefixParams}&enableDataPanelV2=true#/embed/viz/${liveboardId}`,
80
+ );
81
+ });
82
+ });
83
+
70
84
  test('should set disabled actions', async () => {
71
85
  const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
72
86
  disabledActions: [Action.DownloadAsCsv, Action.DownloadAsPdf, Action.DownloadAsXlsx],
@@ -227,6 +241,54 @@ describe('Liveboard/viz embed tests', () => {
227
241
  });
228
242
  });
229
243
 
244
+ test('Should add isLiveboardCompactHeaderEnabled flag to the iframe src', async () => {
245
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
246
+ ...defaultViewConfig,
247
+ liveboardId,
248
+ isLiveboardCompactHeaderEnabled: false,
249
+ } as LiveboardViewConfig);
250
+
251
+ liveboardEmbed.render();
252
+ await executeAfterWait(() => {
253
+ expectUrlMatchesWithParams(
254
+ getIFrameSrc(),
255
+ `http://${thoughtSpotHost}/?embedApp=true${defaultParams}&isLiveboardHeaderV2Enabled=false${prefixParams}#/embed/viz/${liveboardId}`,
256
+ );
257
+ });
258
+ });
259
+
260
+ test('Should add showLiveboardReverifyBanner flag to the iframe src', async () => {
261
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
262
+ ...defaultViewConfig,
263
+ liveboardId,
264
+ showLiveboardReverifyBanner: false,
265
+ } as LiveboardViewConfig);
266
+
267
+ liveboardEmbed.render();
268
+ await executeAfterWait(() => {
269
+ expectUrlMatchesWithParams(
270
+ getIFrameSrc(),
271
+ `http://${thoughtSpotHost}/?embedApp=true${defaultParams}&showLiveboardReverifyBanner=false${prefixParams}#/embed/viz/${liveboardId}`,
272
+ );
273
+ });
274
+ });
275
+
276
+ test('Should add showLiveboardVerifiedBadge flag to the iframe src', async () => {
277
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
278
+ ...defaultViewConfig,
279
+ liveboardId,
280
+ showLiveboardVerifiedBadge: false,
281
+ } as LiveboardViewConfig);
282
+
283
+ liveboardEmbed.render();
284
+ await executeAfterWait(() => {
285
+ expectUrlMatchesWithParams(
286
+ getIFrameSrc(),
287
+ `http://${thoughtSpotHost}/?embedApp=true${defaultParams}&showLiveboardVerifiedBadge=false${prefixParams}#/embed/viz/${liveboardId}`,
288
+ );
289
+ });
290
+ });
291
+
230
292
  test('should not append runtime filters in URL if excludeRuntimeFiltersfromURL is true', async () => {
231
293
  const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
232
294
  ...defaultViewConfig,
@@ -284,6 +284,48 @@ export interface LiveboardViewConfig
284
284
  * @version SDK: 1.32.0 | ThoughtSpot: 10.0.0.cl
285
285
  */
286
286
  showPreviewLoader?: boolean;
287
+ /**
288
+ * This flag is used to enable the compact header in liveboard
289
+ * @type {boolean}
290
+ * @default false
291
+ * @version SDK: 1.35.0 | ThoughtSpot:10.3.0.cl
292
+ * @example
293
+ * ```js
294
+ * const embed = new LiveboardEmbed('#embed-container', {
295
+ * ... // other options
296
+ * isLiveboardCompactHeaderEnabled: true,
297
+ * })
298
+ * ```
299
+ */
300
+ isLiveboardCompactHeaderEnabled?: boolean;
301
+ /**
302
+ * This flag is used to show/hide verified Icon in liveboard compact header
303
+ * @type {boolean}
304
+ * @default true
305
+ * @version SDK: 1.35.0 | ThoughtSpot:10.4.0.cl
306
+ * @example
307
+ * ```js
308
+ * const embed = new LiveboardEmbed('#embed-container', {
309
+ * ... // other options
310
+ * showLiveboardVerifiedBadge: true,
311
+ * })
312
+ * ```
313
+ */
314
+ showLiveboardVerifiedBadge?: boolean;
315
+ /**
316
+ * This flag is used to show/hide re-verify banner in liveboard compact header
317
+ * @type {boolean}
318
+ * @default true
319
+ * @version SDK: 1.35.0 | ThoughtSpot:10.4.0.cl
320
+ * @example
321
+ * ```js
322
+ * const embed = new LiveboardEmbed('#embed-container', {
323
+ * ... // other options
324
+ * showLiveboardReverifyBanner: true,
325
+ * })
326
+ * ```
327
+ */
328
+ showLiveboardReverifyBanner?: boolean;
287
329
  }
288
330
 
289
331
  /**
@@ -338,8 +380,13 @@ export class LiveboardEmbed extends V1Embed {
338
380
  showLiveboardDescription,
339
381
  showLiveboardTitle,
340
382
  isLiveboardHeaderSticky = true,
383
+ isLiveboardCompactHeaderEnabled = false,
384
+ showLiveboardVerifiedBadge = true,
385
+ showLiveboardReverifyBanner = true,
341
386
  enableAskSage,
342
387
  enable2ColumnLayout,
388
+ dataPanelV2 = true,
389
+ enableCustomColumnGroups = false,
343
390
  } = this.viewConfig;
344
391
 
345
392
  const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
@@ -387,7 +434,12 @@ export class LiveboardEmbed extends V1Embed {
387
434
  }
388
435
 
389
436
  params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
437
+ params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
438
+ params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
439
+ params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
390
440
 
441
+ params[Param.DataPanelV2Enabled] = dataPanelV2;
442
+ params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
391
443
  const queryParams = getQueryParamString(params, true);
392
444
 
393
445
  return queryParams;
@@ -227,19 +227,6 @@ export interface SearchViewConfig
227
227
  * ```
228
228
  */
229
229
  hideSearchBar?: boolean;
230
- /**
231
- * Flag to control Data panel experience
232
- * @default true
233
- * @version SDK: 1.26.0 | Thoughtspot: 9.7.0.cl
234
- * @example
235
- * ```js
236
- * const embed = new SearchEmbed('#tsEmbed', {
237
- * ... // other options
238
- * dataPanelV2:false,
239
- * })
240
- * ```
241
- */
242
- dataPanelV2?: boolean;
243
230
  /**
244
231
  * Flag to set if last selected dataSource should be used
245
232
  * @version: SDK: 1.24.0
@@ -252,19 +239,6 @@ export interface SearchViewConfig
252
239
  * @deprecated Use {@link collapseSearchBar} instead
253
240
  */
254
241
  collapseSearchBarInitially?: boolean;
255
- /**
256
- * To enable custom column groups in data panel v2
257
- * @version SDK: 1.32.0 | Thoughtspot: 10.0.0.cl
258
- * @default false
259
- * @example
260
- * ```js
261
- * const embed = new SearchEmbed('#tsEmbed', {
262
- * ... // other options
263
- * enableCustomColumnGroups: true,
264
- * });
265
- * ```
266
- */
267
- enableCustomColumnGroups?: boolean;
268
242
  /**
269
243
  * Flag to enable onBeforeSearchExecute Embed Event
270
244
  * @version: SDK: 1.29.0 | Thoughtspot: 10.1.0.cl