@thoughtspot/visual-embed-sdk 1.40.1-alpha.1 → 1.40.1-alpha.3

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 (430) hide show
  1. package/cjs/package.json +7 -6
  2. package/cjs/src/css-variables.d.ts +316 -0
  3. package/cjs/src/css-variables.d.ts.map +1 -1
  4. package/cjs/src/embed/app.d.ts +6 -1
  5. package/cjs/src/embed/app.d.ts.map +1 -1
  6. package/cjs/src/embed/app.js +27 -1
  7. package/cjs/src/embed/app.js.map +1 -1
  8. package/cjs/src/embed/app.spec.js +72 -5
  9. package/cjs/src/embed/app.spec.js.map +1 -1
  10. package/cjs/src/embed/conversation.d.ts +63 -2
  11. package/cjs/src/embed/conversation.d.ts.map +1 -1
  12. package/cjs/src/embed/conversation.js +9 -1
  13. package/cjs/src/embed/conversation.js.map +1 -1
  14. package/cjs/src/embed/conversation.spec.js +102 -0
  15. package/cjs/src/embed/conversation.spec.js.map +1 -1
  16. package/cjs/src/embed/liveboard.d.ts +11 -2
  17. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  18. package/cjs/src/embed/liveboard.js +24 -17
  19. package/cjs/src/embed/liveboard.js.map +1 -1
  20. package/cjs/src/embed/liveboard.spec.js +202 -2
  21. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  22. package/cjs/src/embed/ts-embed.d.ts +22 -7
  23. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  24. package/cjs/src/embed/ts-embed.js +74 -56
  25. package/cjs/src/embed/ts-embed.js.map +1 -1
  26. package/cjs/src/embed/ts-embed.spec.js +175 -3
  27. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  28. package/cjs/src/types.d.ts +190 -55
  29. package/cjs/src/types.d.ts.map +1 -1
  30. package/cjs/src/types.js +157 -52
  31. package/cjs/src/types.js.map +1 -1
  32. package/cjs/src/utils/liveboardService/liveboardService.d.ts +21 -6
  33. package/cjs/src/utils/liveboardService/liveboardService.d.ts.map +1 -1
  34. package/cjs/src/utils/liveboardService/liveboardService.js +21 -6
  35. package/cjs/src/utils/liveboardService/liveboardService.js.map +1 -1
  36. package/cjs/src/utils/processData.d.ts.map +1 -1
  37. package/cjs/src/utils/processData.js +10 -0
  38. package/cjs/src/utils/processData.js.map +1 -1
  39. package/cjs/src/utils/processData.spec.js +11 -0
  40. package/cjs/src/utils/processData.spec.js.map +1 -1
  41. package/dist/{index-D1pyb7RG.js → es/index-BwesxE_h.js} +0 -2
  42. package/dist/es/index.js +17539 -0
  43. package/dist/es/react/index.js +24039 -0
  44. package/dist/es/react/src/auth.d.ts +171 -0
  45. package/dist/es/react/src/auth.d.ts.map +1 -0
  46. package/dist/es/react/src/auth.spec.d.ts +15 -0
  47. package/dist/es/react/src/auth.spec.d.ts.map +1 -0
  48. package/dist/es/react/src/authToken.d.ts +17 -0
  49. package/dist/es/react/src/authToken.d.ts.map +1 -0
  50. package/dist/es/react/src/authToken.spec.d.ts +2 -0
  51. package/dist/es/react/src/authToken.spec.d.ts.map +1 -0
  52. package/dist/es/react/src/config.d.ts +21 -0
  53. package/dist/es/react/src/config.d.ts.map +1 -0
  54. package/dist/es/react/src/config.spec.d.ts +5 -0
  55. package/dist/es/react/src/config.spec.d.ts.map +1 -0
  56. package/dist/es/react/src/css-variables.d.ts +384 -0
  57. package/dist/es/react/src/css-variables.d.ts.map +1 -0
  58. package/dist/es/react/src/embed/app.d.ts +478 -0
  59. package/dist/es/react/src/embed/app.d.ts.map +1 -0
  60. package/dist/es/react/src/embed/app.spec.d.ts +2 -0
  61. package/dist/es/react/src/embed/app.spec.d.ts.map +1 -0
  62. package/dist/es/react/src/embed/base.d.ts +136 -0
  63. package/dist/es/react/src/embed/base.d.ts.map +1 -0
  64. package/dist/es/react/src/embed/base.spec.d.ts +2 -0
  65. package/dist/es/react/src/embed/base.spec.d.ts.map +1 -0
  66. package/dist/es/react/src/embed/bodyless-conversation.d.ts +26 -0
  67. package/dist/es/react/src/embed/bodyless-conversation.d.ts.map +1 -0
  68. package/dist/es/react/src/embed/bodyless-conversation.spec.d.ts +2 -0
  69. package/dist/es/react/src/embed/bodyless-conversation.spec.d.ts.map +1 -0
  70. package/dist/es/react/src/embed/conversation.d.ts +43 -0
  71. package/dist/es/react/src/embed/conversation.d.ts.map +1 -0
  72. package/dist/es/react/src/embed/conversation.spec.d.ts +2 -0
  73. package/dist/es/react/src/embed/conversation.spec.d.ts.map +1 -0
  74. package/dist/es/react/src/embed/embed.spec.d.ts +2 -0
  75. package/dist/es/react/src/embed/embed.spec.d.ts.map +1 -0
  76. package/dist/es/react/src/embed/embedConfig.d.ts +17 -0
  77. package/dist/es/react/src/embed/embedConfig.d.ts.map +1 -0
  78. package/dist/es/react/src/embed/events.spec.d.ts +2 -0
  79. package/dist/es/react/src/embed/events.spec.d.ts.map +1 -0
  80. package/dist/es/react/src/embed/liveboard.d.ts +379 -0
  81. package/dist/es/react/src/embed/liveboard.d.ts.map +1 -0
  82. package/dist/es/react/src/embed/liveboard.spec.d.ts +2 -0
  83. package/dist/es/react/src/embed/liveboard.spec.d.ts.map +1 -0
  84. package/dist/es/react/src/embed/pinboard.spec.d.ts +2 -0
  85. package/dist/es/react/src/embed/pinboard.spec.d.ts.map +1 -0
  86. package/dist/es/react/src/embed/sage.d.ts +148 -0
  87. package/dist/es/react/src/embed/sage.d.ts.map +1 -0
  88. package/dist/es/react/src/embed/sage.spec.d.ts +2 -0
  89. package/dist/es/react/src/embed/sage.spec.d.ts.map +1 -0
  90. package/dist/es/react/src/embed/search-bar.d.ts +93 -0
  91. package/dist/es/react/src/embed/search-bar.d.ts.map +1 -0
  92. package/dist/es/react/src/embed/search.d.ts +282 -0
  93. package/dist/es/react/src/embed/search.d.ts.map +1 -0
  94. package/dist/es/react/src/embed/search.spec.d.ts +2 -0
  95. package/dist/es/react/src/embed/search.spec.d.ts.map +1 -0
  96. package/dist/es/react/src/embed/ts-embed-trigger.spec.d.ts +2 -0
  97. package/dist/es/react/src/embed/ts-embed-trigger.spec.d.ts.map +1 -0
  98. package/dist/es/react/src/embed/ts-embed.d.ts +374 -0
  99. package/dist/es/react/src/embed/ts-embed.d.ts.map +1 -0
  100. package/dist/es/react/src/embed/ts-embed.spec.d.ts +2 -0
  101. package/dist/es/react/src/embed/ts-embed.spec.d.ts.map +1 -0
  102. package/dist/es/react/src/errors.d.ts +19 -0
  103. package/dist/es/react/src/errors.d.ts.map +1 -0
  104. package/dist/es/react/src/index.d.ts +29 -0
  105. package/dist/es/react/src/index.d.ts.map +1 -0
  106. package/dist/es/react/src/mixpanel-service.d.ts +35 -0
  107. package/dist/es/react/src/mixpanel-service.d.ts.map +1 -0
  108. package/dist/es/react/src/mixpanel-service.spec.d.ts +2 -0
  109. package/dist/es/react/src/mixpanel-service.spec.d.ts.map +1 -0
  110. package/dist/es/react/src/react/all-types-export.d.ts +3 -0
  111. package/dist/es/react/src/react/all-types-export.d.ts.map +1 -0
  112. package/dist/es/react/src/react/all-types-export.spec.d.ts +2 -0
  113. package/dist/es/react/src/react/all-types-export.spec.d.ts.map +1 -0
  114. package/dist/es/react/src/react/index.d.ts +254 -0
  115. package/dist/es/react/src/react/index.d.ts.map +1 -0
  116. package/dist/es/react/src/react/index.spec.d.ts +3 -0
  117. package/dist/es/react/src/react/index.spec.d.ts.map +1 -0
  118. package/dist/es/react/src/react/util.d.ts +19 -0
  119. package/dist/es/react/src/react/util.d.ts.map +1 -0
  120. package/dist/es/react/src/test/test-utils.d.ts +61 -0
  121. package/dist/es/react/src/test/test-utils.d.ts.map +1 -0
  122. package/dist/es/react/src/tokenizedFetch.d.ts +18 -0
  123. package/dist/es/react/src/tokenizedFetch.d.ts.map +1 -0
  124. package/dist/es/react/src/types.d.ts +4363 -0
  125. package/dist/es/react/src/types.d.ts.map +1 -0
  126. package/dist/es/react/src/utils/authService/authService.d.ts +45 -0
  127. package/dist/es/react/src/utils/authService/authService.d.ts.map +1 -0
  128. package/dist/es/react/src/utils/authService/authService.spec.d.ts +2 -0
  129. package/dist/es/react/src/utils/authService/authService.spec.d.ts.map +1 -0
  130. package/dist/es/react/src/utils/authService/index.d.ts +3 -0
  131. package/dist/es/react/src/utils/authService/index.d.ts.map +1 -0
  132. package/dist/es/react/src/utils/authService/tokenizedAuthService.d.ts +22 -0
  133. package/dist/es/react/src/utils/authService/tokenizedAuthService.d.ts.map +1 -0
  134. package/dist/es/react/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
  135. package/dist/es/react/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
  136. package/dist/es/react/src/utils/global-styles.d.ts +2 -0
  137. package/dist/es/react/src/utils/global-styles.d.ts.map +1 -0
  138. package/dist/es/react/src/utils/global-styles.spec.d.ts +2 -0
  139. package/dist/es/react/src/utils/global-styles.spec.d.ts.map +1 -0
  140. package/dist/es/react/src/utils/graphql/answerService/answer-queries.d.ts +10 -0
  141. package/dist/es/react/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -0
  142. package/dist/es/react/src/utils/graphql/answerService/answerService.d.ts +180 -0
  143. package/dist/es/react/src/utils/graphql/answerService/answerService.d.ts.map +1 -0
  144. package/dist/es/react/src/utils/graphql/answerService/answerService.spec.d.ts +2 -0
  145. package/dist/es/react/src/utils/graphql/answerService/answerService.spec.d.ts.map +1 -0
  146. package/dist/es/react/src/utils/graphql/graphql-request.d.ts +15 -0
  147. package/dist/es/react/src/utils/graphql/graphql-request.d.ts.map +1 -0
  148. package/dist/es/react/src/utils/graphql/graphql-request.spec.d.ts +2 -0
  149. package/dist/es/react/src/utils/graphql/graphql-request.spec.d.ts.map +1 -0
  150. package/dist/es/react/src/utils/graphql/nlsService/conversation-queries.d.ts +3 -0
  151. package/dist/es/react/src/utils/graphql/nlsService/conversation-queries.d.ts.map +1 -0
  152. package/dist/es/react/src/utils/graphql/nlsService/conversation-service.d.ts +12 -0
  153. package/dist/es/react/src/utils/graphql/nlsService/conversation-service.d.ts.map +1 -0
  154. package/dist/es/react/src/utils/graphql/nlsService/nls-answer-queries.d.ts +2 -0
  155. package/dist/es/react/src/utils/graphql/nlsService/nls-answer-queries.d.ts.map +1 -0
  156. package/dist/es/react/src/utils/graphql/nlsService/nls-answer-service.d.ts +17 -0
  157. package/dist/es/react/src/utils/graphql/nlsService/nls-answer-service.d.ts.map +1 -0
  158. package/dist/es/react/src/utils/graphql/nlsService/nls-answer-service.spec.d.ts +2 -0
  159. package/dist/es/react/src/utils/graphql/nlsService/nls-answer-service.spec.d.ts.map +1 -0
  160. package/dist/es/react/src/utils/graphql/preview-service.d.ts +9 -0
  161. package/dist/es/react/src/utils/graphql/preview-service.d.ts.map +1 -0
  162. package/dist/es/react/src/utils/graphql/preview-service.spec.d.ts +2 -0
  163. package/dist/es/react/src/utils/graphql/preview-service.spec.d.ts.map +1 -0
  164. package/dist/es/react/src/utils/graphql/sourceService.d.ts +8 -0
  165. package/dist/es/react/src/utils/graphql/sourceService.d.ts.map +1 -0
  166. package/dist/es/react/src/utils/graphql/sourceService.spec.d.ts +2 -0
  167. package/dist/es/react/src/utils/graphql/sourceService.spec.d.ts.map +1 -0
  168. package/dist/es/react/src/utils/liveboardService/liveboardService.d.ts +16 -0
  169. package/dist/es/react/src/utils/liveboardService/liveboardService.d.ts.map +1 -0
  170. package/dist/es/react/src/utils/liveboardService/liveboardService.spec.d.ts +2 -0
  171. package/dist/es/react/src/utils/liveboardService/liveboardService.spec.d.ts.map +1 -0
  172. package/dist/es/react/src/utils/logger.d.ts +18 -0
  173. package/dist/es/react/src/utils/logger.d.ts.map +1 -0
  174. package/dist/es/react/src/utils/logger.spec.d.ts +25 -0
  175. package/dist/es/react/src/utils/logger.spec.d.ts.map +1 -0
  176. package/dist/es/react/src/utils/processData.d.ts +22 -0
  177. package/dist/es/react/src/utils/processData.d.ts.map +1 -0
  178. package/dist/es/react/src/utils/processData.spec.d.ts +2 -0
  179. package/dist/es/react/src/utils/processData.spec.d.ts.map +1 -0
  180. package/dist/es/react/src/utils/processTrigger.d.ts +16 -0
  181. package/dist/es/react/src/utils/processTrigger.d.ts.map +1 -0
  182. package/dist/es/react/src/utils/processTrigger.spec.d.ts +2 -0
  183. package/dist/es/react/src/utils/processTrigger.spec.d.ts.map +1 -0
  184. package/dist/es/react/src/utils/reporting.d.ts +16 -0
  185. package/dist/es/react/src/utils/reporting.d.ts.map +1 -0
  186. package/dist/es/react/src/utils/reporting.spec.d.ts +2 -0
  187. package/dist/es/react/src/utils/reporting.spec.d.ts.map +1 -0
  188. package/dist/es/react/src/utils/sessionInfoService.d.ts +66 -0
  189. package/dist/es/react/src/utils/sessionInfoService.d.ts.map +1 -0
  190. package/dist/es/react/src/utils.d.ts +104 -0
  191. package/dist/es/react/src/utils.d.ts.map +1 -0
  192. package/dist/es/react/src/utils.spec.d.ts +2 -0
  193. package/dist/es/react/src/utils.spec.d.ts.map +1 -0
  194. package/dist/es/src/auth.d.ts +171 -0
  195. package/dist/es/src/auth.d.ts.map +1 -0
  196. package/dist/es/src/auth.spec.d.ts +15 -0
  197. package/dist/es/src/auth.spec.d.ts.map +1 -0
  198. package/dist/es/src/authToken.d.ts +17 -0
  199. package/dist/es/src/authToken.d.ts.map +1 -0
  200. package/dist/es/src/authToken.spec.d.ts +2 -0
  201. package/dist/es/src/authToken.spec.d.ts.map +1 -0
  202. package/dist/es/src/config.d.ts +21 -0
  203. package/dist/es/src/config.d.ts.map +1 -0
  204. package/dist/es/src/config.spec.d.ts +5 -0
  205. package/dist/es/src/config.spec.d.ts.map +1 -0
  206. package/dist/es/src/css-variables.d.ts +384 -0
  207. package/dist/es/src/css-variables.d.ts.map +1 -0
  208. package/dist/es/src/embed/app.d.ts +478 -0
  209. package/dist/es/src/embed/app.d.ts.map +1 -0
  210. package/dist/es/src/embed/app.spec.d.ts +2 -0
  211. package/dist/es/src/embed/app.spec.d.ts.map +1 -0
  212. package/dist/es/src/embed/base.d.ts +136 -0
  213. package/dist/es/src/embed/base.d.ts.map +1 -0
  214. package/dist/es/src/embed/base.spec.d.ts +2 -0
  215. package/dist/es/src/embed/base.spec.d.ts.map +1 -0
  216. package/dist/es/src/embed/bodyless-conversation.d.ts +26 -0
  217. package/dist/es/src/embed/bodyless-conversation.d.ts.map +1 -0
  218. package/dist/es/src/embed/bodyless-conversation.spec.d.ts +2 -0
  219. package/dist/es/src/embed/bodyless-conversation.spec.d.ts.map +1 -0
  220. package/dist/es/src/embed/conversation.d.ts +43 -0
  221. package/dist/es/src/embed/conversation.d.ts.map +1 -0
  222. package/dist/es/src/embed/conversation.spec.d.ts +2 -0
  223. package/dist/es/src/embed/conversation.spec.d.ts.map +1 -0
  224. package/dist/es/src/embed/embed.spec.d.ts +2 -0
  225. package/dist/es/src/embed/embed.spec.d.ts.map +1 -0
  226. package/dist/es/src/embed/embedConfig.d.ts +17 -0
  227. package/dist/es/src/embed/embedConfig.d.ts.map +1 -0
  228. package/dist/es/src/embed/events.spec.d.ts +2 -0
  229. package/dist/es/src/embed/events.spec.d.ts.map +1 -0
  230. package/dist/es/src/embed/liveboard.d.ts +379 -0
  231. package/dist/es/src/embed/liveboard.d.ts.map +1 -0
  232. package/dist/es/src/embed/liveboard.spec.d.ts +2 -0
  233. package/dist/es/src/embed/liveboard.spec.d.ts.map +1 -0
  234. package/dist/es/src/embed/pinboard.spec.d.ts +2 -0
  235. package/dist/es/src/embed/pinboard.spec.d.ts.map +1 -0
  236. package/dist/es/src/embed/sage.d.ts +148 -0
  237. package/dist/es/src/embed/sage.d.ts.map +1 -0
  238. package/dist/es/src/embed/sage.spec.d.ts +2 -0
  239. package/dist/es/src/embed/sage.spec.d.ts.map +1 -0
  240. package/dist/es/src/embed/search-bar.d.ts +93 -0
  241. package/dist/es/src/embed/search-bar.d.ts.map +1 -0
  242. package/dist/es/src/embed/search.d.ts +282 -0
  243. package/dist/es/src/embed/search.d.ts.map +1 -0
  244. package/dist/es/src/embed/search.spec.d.ts +2 -0
  245. package/dist/es/src/embed/search.spec.d.ts.map +1 -0
  246. package/dist/es/src/embed/ts-embed-trigger.spec.d.ts +2 -0
  247. package/dist/es/src/embed/ts-embed-trigger.spec.d.ts.map +1 -0
  248. package/dist/es/src/embed/ts-embed.d.ts +374 -0
  249. package/dist/es/src/embed/ts-embed.d.ts.map +1 -0
  250. package/dist/es/src/embed/ts-embed.spec.d.ts +2 -0
  251. package/dist/es/src/embed/ts-embed.spec.d.ts.map +1 -0
  252. package/dist/es/src/errors.d.ts +19 -0
  253. package/dist/es/src/errors.d.ts.map +1 -0
  254. package/dist/es/src/index.d.ts +29 -0
  255. package/dist/es/src/index.d.ts.map +1 -0
  256. package/dist/es/src/mixpanel-service.d.ts +35 -0
  257. package/dist/es/src/mixpanel-service.d.ts.map +1 -0
  258. package/dist/es/src/mixpanel-service.spec.d.ts +2 -0
  259. package/dist/es/src/mixpanel-service.spec.d.ts.map +1 -0
  260. package/dist/es/src/react/all-types-export.d.ts +3 -0
  261. package/dist/es/src/react/all-types-export.d.ts.map +1 -0
  262. package/dist/es/src/react/all-types-export.spec.d.ts +2 -0
  263. package/dist/es/src/react/all-types-export.spec.d.ts.map +1 -0
  264. package/dist/es/src/react/index.d.ts +254 -0
  265. package/dist/es/src/react/index.d.ts.map +1 -0
  266. package/dist/es/src/react/index.spec.d.ts +3 -0
  267. package/dist/es/src/react/index.spec.d.ts.map +1 -0
  268. package/dist/es/src/react/util.d.ts +19 -0
  269. package/dist/es/src/react/util.d.ts.map +1 -0
  270. package/dist/es/src/test/test-utils.d.ts +61 -0
  271. package/dist/es/src/test/test-utils.d.ts.map +1 -0
  272. package/dist/es/src/tokenizedFetch.d.ts +18 -0
  273. package/dist/es/src/tokenizedFetch.d.ts.map +1 -0
  274. package/dist/es/src/types.d.ts +4363 -0
  275. package/dist/es/src/types.d.ts.map +1 -0
  276. package/dist/es/src/utils/authService/authService.d.ts +45 -0
  277. package/dist/es/src/utils/authService/authService.d.ts.map +1 -0
  278. package/dist/es/src/utils/authService/authService.spec.d.ts +2 -0
  279. package/dist/es/src/utils/authService/authService.spec.d.ts.map +1 -0
  280. package/dist/es/src/utils/authService/index.d.ts +3 -0
  281. package/dist/es/src/utils/authService/index.d.ts.map +1 -0
  282. package/dist/es/src/utils/authService/tokenizedAuthService.d.ts +22 -0
  283. package/dist/es/src/utils/authService/tokenizedAuthService.d.ts.map +1 -0
  284. package/dist/es/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
  285. package/dist/es/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
  286. package/dist/es/src/utils/global-styles.d.ts +2 -0
  287. package/dist/es/src/utils/global-styles.d.ts.map +1 -0
  288. package/dist/es/src/utils/global-styles.spec.d.ts +2 -0
  289. package/dist/es/src/utils/global-styles.spec.d.ts.map +1 -0
  290. package/dist/es/src/utils/graphql/answerService/answer-queries.d.ts +10 -0
  291. package/dist/es/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -0
  292. package/dist/es/src/utils/graphql/answerService/answerService.d.ts +180 -0
  293. package/dist/es/src/utils/graphql/answerService/answerService.d.ts.map +1 -0
  294. package/dist/es/src/utils/graphql/answerService/answerService.spec.d.ts +2 -0
  295. package/dist/es/src/utils/graphql/answerService/answerService.spec.d.ts.map +1 -0
  296. package/dist/es/src/utils/graphql/graphql-request.d.ts +15 -0
  297. package/dist/es/src/utils/graphql/graphql-request.d.ts.map +1 -0
  298. package/dist/es/src/utils/graphql/graphql-request.spec.d.ts +2 -0
  299. package/dist/es/src/utils/graphql/graphql-request.spec.d.ts.map +1 -0
  300. package/dist/es/src/utils/graphql/nlsService/conversation-queries.d.ts +3 -0
  301. package/dist/es/src/utils/graphql/nlsService/conversation-queries.d.ts.map +1 -0
  302. package/dist/es/src/utils/graphql/nlsService/conversation-service.d.ts +12 -0
  303. package/dist/es/src/utils/graphql/nlsService/conversation-service.d.ts.map +1 -0
  304. package/dist/es/src/utils/graphql/nlsService/nls-answer-queries.d.ts +2 -0
  305. package/dist/es/src/utils/graphql/nlsService/nls-answer-queries.d.ts.map +1 -0
  306. package/dist/es/src/utils/graphql/nlsService/nls-answer-service.d.ts +17 -0
  307. package/dist/es/src/utils/graphql/nlsService/nls-answer-service.d.ts.map +1 -0
  308. package/dist/es/src/utils/graphql/nlsService/nls-answer-service.spec.d.ts +2 -0
  309. package/dist/es/src/utils/graphql/nlsService/nls-answer-service.spec.d.ts.map +1 -0
  310. package/dist/es/src/utils/graphql/preview-service.d.ts +9 -0
  311. package/dist/es/src/utils/graphql/preview-service.d.ts.map +1 -0
  312. package/dist/es/src/utils/graphql/preview-service.spec.d.ts +2 -0
  313. package/dist/es/src/utils/graphql/preview-service.spec.d.ts.map +1 -0
  314. package/dist/es/src/utils/graphql/sourceService.d.ts +8 -0
  315. package/dist/es/src/utils/graphql/sourceService.d.ts.map +1 -0
  316. package/dist/es/src/utils/graphql/sourceService.spec.d.ts +2 -0
  317. package/dist/es/src/utils/graphql/sourceService.spec.d.ts.map +1 -0
  318. package/dist/es/src/utils/liveboardService/liveboardService.d.ts +16 -0
  319. package/dist/es/src/utils/liveboardService/liveboardService.d.ts.map +1 -0
  320. package/dist/es/src/utils/liveboardService/liveboardService.spec.d.ts +2 -0
  321. package/dist/es/src/utils/liveboardService/liveboardService.spec.d.ts.map +1 -0
  322. package/dist/es/src/utils/logger.d.ts +18 -0
  323. package/dist/es/src/utils/logger.d.ts.map +1 -0
  324. package/dist/es/src/utils/logger.spec.d.ts +25 -0
  325. package/dist/es/src/utils/logger.spec.d.ts.map +1 -0
  326. package/dist/es/src/utils/processData.d.ts +22 -0
  327. package/dist/es/src/utils/processData.d.ts.map +1 -0
  328. package/dist/es/src/utils/processData.spec.d.ts +2 -0
  329. package/dist/es/src/utils/processData.spec.d.ts.map +1 -0
  330. package/dist/es/src/utils/processTrigger.d.ts +16 -0
  331. package/dist/es/src/utils/processTrigger.d.ts.map +1 -0
  332. package/dist/es/src/utils/processTrigger.spec.d.ts +2 -0
  333. package/dist/es/src/utils/processTrigger.spec.d.ts.map +1 -0
  334. package/dist/es/src/utils/reporting.d.ts +16 -0
  335. package/dist/es/src/utils/reporting.d.ts.map +1 -0
  336. package/dist/es/src/utils/reporting.spec.d.ts +2 -0
  337. package/dist/es/src/utils/reporting.spec.d.ts.map +1 -0
  338. package/dist/es/src/utils/sessionInfoService.d.ts +66 -0
  339. package/dist/es/src/utils/sessionInfoService.d.ts.map +1 -0
  340. package/dist/es/src/utils.d.ts +104 -0
  341. package/dist/es/src/utils.d.ts.map +1 -0
  342. package/dist/es/src/utils.spec.d.ts +2 -0
  343. package/dist/es/src/utils.spec.d.ts.map +1 -0
  344. package/dist/{index-CmEQfuE3.js → index-B0uCTBbm.js} +1 -1
  345. package/dist/src/css-variables.d.ts +316 -0
  346. package/dist/src/css-variables.d.ts.map +1 -1
  347. package/dist/src/embed/app.d.ts +6 -1
  348. package/dist/src/embed/app.d.ts.map +1 -1
  349. package/dist/src/embed/bodyless-conversation.d.ts +4 -0
  350. package/dist/src/embed/bodyless-conversation.d.ts.map +1 -1
  351. package/dist/src/embed/conversation.d.ts +63 -2
  352. package/dist/src/embed/conversation.d.ts.map +1 -1
  353. package/dist/src/embed/liveboard.d.ts +10 -0
  354. package/dist/src/embed/liveboard.d.ts.map +1 -1
  355. package/dist/src/embed/ts-embed.d.ts +22 -0
  356. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  357. package/dist/src/react/index.d.ts +2 -0
  358. package/dist/src/react/index.d.ts.map +1 -1
  359. package/dist/src/types.d.ts +379 -31
  360. package/dist/src/types.d.ts.map +1 -1
  361. package/dist/src/utils/graphql/nlsService/conversation-service.d.ts.map +1 -1
  362. package/dist/src/utils/liveboardService/liveboardService.d.ts +21 -6
  363. package/dist/src/utils/liveboardService/liveboardService.d.ts.map +1 -1
  364. package/dist/src/utils/processData.d.ts.map +1 -1
  365. package/dist/tsembed-react.es.js +507 -52
  366. package/dist/tsembed-react.js +506 -51
  367. package/dist/tsembed.es.js +528 -58
  368. package/dist/tsembed.js +527 -57
  369. package/dist/visual-embed-sdk-react-full.d.ts +813 -39
  370. package/dist/visual-embed-sdk-react.d.ts +813 -39
  371. package/dist/visual-embed-sdk.d.ts +811 -39
  372. package/lib/package.json +7 -6
  373. package/lib/src/css-variables.d.ts +316 -0
  374. package/lib/src/css-variables.d.ts.map +1 -1
  375. package/lib/src/embed/app.d.ts +6 -1
  376. package/lib/src/embed/app.d.ts.map +1 -1
  377. package/lib/src/embed/app.js +27 -1
  378. package/lib/src/embed/app.js.map +1 -1
  379. package/lib/src/embed/app.spec.js +72 -5
  380. package/lib/src/embed/app.spec.js.map +1 -1
  381. package/lib/src/embed/conversation.d.ts +63 -2
  382. package/lib/src/embed/conversation.d.ts.map +1 -1
  383. package/lib/src/embed/conversation.js +10 -2
  384. package/lib/src/embed/conversation.js.map +1 -1
  385. package/lib/src/embed/conversation.spec.js +104 -2
  386. package/lib/src/embed/conversation.spec.js.map +1 -1
  387. package/lib/src/embed/liveboard.d.ts +11 -2
  388. package/lib/src/embed/liveboard.d.ts.map +1 -1
  389. package/lib/src/embed/liveboard.js +24 -17
  390. package/lib/src/embed/liveboard.js.map +1 -1
  391. package/lib/src/embed/liveboard.spec.js +202 -2
  392. package/lib/src/embed/liveboard.spec.js.map +1 -1
  393. package/lib/src/embed/ts-embed.d.ts +22 -7
  394. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  395. package/lib/src/embed/ts-embed.js +74 -56
  396. package/lib/src/embed/ts-embed.js.map +1 -1
  397. package/lib/src/embed/ts-embed.spec.js +175 -3
  398. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  399. package/lib/src/types.d.ts +190 -55
  400. package/lib/src/types.d.ts.map +1 -1
  401. package/lib/src/types.js +157 -52
  402. package/lib/src/types.js.map +1 -1
  403. package/lib/src/utils/liveboardService/liveboardService.d.ts +21 -6
  404. package/lib/src/utils/liveboardService/liveboardService.d.ts.map +1 -1
  405. package/lib/src/utils/liveboardService/liveboardService.js +21 -6
  406. package/lib/src/utils/liveboardService/liveboardService.js.map +1 -1
  407. package/lib/src/utils/processData.d.ts.map +1 -1
  408. package/lib/src/utils/processData.js +10 -0
  409. package/lib/src/utils/processData.js.map +1 -1
  410. package/lib/src/utils/processData.spec.js +11 -0
  411. package/lib/src/utils/processData.spec.js.map +1 -1
  412. package/lib/src/visual-embed-sdk.d.ts +812 -40
  413. package/package.json +8 -6
  414. package/src/css-variables.ts +396 -1
  415. package/src/embed/app.spec.ts +102 -5
  416. package/src/embed/app.ts +29 -0
  417. package/src/embed/conversation.spec.ts +131 -5
  418. package/src/embed/conversation.ts +85 -10
  419. package/src/embed/liveboard.spec.ts +261 -2
  420. package/src/embed/liveboard.ts +25 -18
  421. package/src/embed/ts-embed.spec.ts +346 -114
  422. package/src/embed/ts-embed.ts +80 -65
  423. package/src/types.ts +190 -55
  424. package/src/utils/liveboardService/liveboardService.ts +21 -6
  425. package/src/utils/processData.spec.ts +12 -0
  426. package/src/utils/processData.ts +10 -0
  427. package/dist/index-DeFzsyFF.js +0 -7371
  428. package/dist/index-Dpf0rd6w.js +0 -7371
  429. package/dist/index-UuEbsISo.js +0 -7447
  430. package/dist/index-e3Uw3YFO.js +0 -7371
@@ -1,10 +1,8 @@
1
- import {
2
- SpotterEmbed,
3
- SpotterEmbedViewConfig,
4
- } from './conversation';
1
+ import { SpotterEmbed, SpotterEmbedViewConfig, ConversationEmbed } from './conversation';
2
+ import { TsEmbed } from './ts-embed';
5
3
  import * as authInstance from '../auth';
6
4
  import { Action, init } from '../index';
7
- import { AuthType, Param } from '../types';
5
+ import { AuthType, Param, RuntimeFilterOp } from '../types';
8
6
  import {
9
7
  getDocumentBody,
10
8
  getIFrameSrc,
@@ -180,4 +178,132 @@ describe('ConversationEmbed', () => {
180
178
  `http://${thoughtSpotHost}/v2/?${defaultParams}&${Param.DisableActions}=[%22${Action.InConversationTraining}%22]&${Param.DisableActionReason}=${disabledReason}&isSpotterExperienceEnabled=true&enableDataPanelV2=true#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`,
181
179
  );
182
180
  });
181
+
182
+ it('should render the conversation embed with runtime filters', async () => {
183
+ const viewConfig: SpotterEmbedViewConfig = {
184
+ worksheetId: 'worksheetId',
185
+ searchOptions: {
186
+ searchQuery: 'searchQuery',
187
+ },
188
+ runtimeFilters: [
189
+ {
190
+ columnName: 'revenue',
191
+ operator: RuntimeFilterOp.EQ,
192
+ values: [1000],
193
+ },
194
+ ],
195
+ };
196
+
197
+ const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig);
198
+ await conversationEmbed.render();
199
+ expectUrlMatchesWithParams(
200
+ getIFrameSrc(),
201
+ `http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true&col1=revenue&op1=EQ&val1=1000#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`,
202
+ );
203
+ });
204
+
205
+ it('should render the conversation embed with runtime parameters', async () => {
206
+ const viewConfig: SpotterEmbedViewConfig = {
207
+ worksheetId: 'worksheetId',
208
+ searchOptions: {
209
+ searchQuery: 'searchQuery',
210
+ },
211
+ runtimeParameters: [
212
+ {
213
+ name: 'Date Range',
214
+ value: '30',
215
+ },
216
+ ],
217
+ };
218
+
219
+ const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig);
220
+ await conversationEmbed.render();
221
+ expectUrlMatchesWithParams(
222
+ getIFrameSrc(),
223
+ `http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true&param1=Date%20Range&paramVal1=30#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`,
224
+ );
225
+ });
226
+
227
+ it('should render the conversation embed with runtime parameters excluded from URL', async () => {
228
+ const viewConfig: SpotterEmbedViewConfig = {
229
+ worksheetId: 'worksheetId',
230
+ searchOptions: {
231
+ searchQuery: 'searchQuery',
232
+ },
233
+ runtimeParameters: [
234
+ {
235
+ name: 'Date Range',
236
+ value: '30',
237
+ },
238
+ {
239
+ name: 'Region',
240
+ value: 'North America',
241
+ },
242
+ ],
243
+ excludeRuntimeParametersfromURL: true,
244
+ };
245
+
246
+ const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig);
247
+ await conversationEmbed.render();
248
+ expectUrlMatchesWithParams(
249
+ getIFrameSrc(),
250
+ `http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`,
251
+ );
252
+ });
253
+
254
+ it('should render the conversation embed with both runtime filters and parameters', async () => {
255
+ const viewConfig: SpotterEmbedViewConfig = {
256
+ worksheetId: 'worksheetId',
257
+ searchOptions: {
258
+ searchQuery: 'searchQuery',
259
+ },
260
+ runtimeParameters: [
261
+ {
262
+ name: 'Date Range',
263
+ value: '30',
264
+ },
265
+ ],
266
+ runtimeFilters: [
267
+ {
268
+ columnName: 'revenue',
269
+ operator: RuntimeFilterOp.EQ,
270
+ values: [1000],
271
+ },
272
+ ],
273
+ excludeRuntimeParametersfromURL: false,
274
+ excludeRuntimeFiltersfromURL: false,
275
+ };
276
+
277
+ const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig);
278
+ await conversationEmbed.render();
279
+ expectUrlMatchesWithParams(
280
+ getIFrameSrc(),
281
+ `http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true&col1=revenue&op1=EQ&val1=1000&param1=Date%20Range&paramVal1=30#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`,
282
+ );
283
+ });
284
+
285
+ it('should ensure deprecated ConversationEmbed class maintains same functionality as SpotterEmbed', async () => {
286
+ const viewConfig: SpotterEmbedViewConfig = {
287
+ worksheetId: 'worksheetId',
288
+ searchOptions: {
289
+ searchQuery: 'searchQuery',
290
+ },
291
+ runtimeParameters: [
292
+ {
293
+ name: 'Date Range',
294
+ value: '30',
295
+ },
296
+ ],
297
+ };
298
+
299
+ // Test with deprecated class
300
+ const conversationEmbed = new ConversationEmbed(getRootEl(), viewConfig);
301
+ await conversationEmbed.render();
302
+
303
+ // Verify it generates the same URL structure as SpotterEmbed
304
+ expectUrlMatchesWithParams(
305
+ getIFrameSrc(),
306
+ `http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true&param1=Date%20Range&paramVal1=30#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`,
307
+ );
308
+ });
183
309
  });
@@ -1,10 +1,10 @@
1
1
  import isUndefined from 'lodash/isUndefined';
2
2
  import { ERROR_MESSAGE } from '../errors';
3
- import { Param, BaseViewConfig } from '../types';
3
+ import { Param, BaseViewConfig, RuntimeFilter, RuntimeParameter } from '../types';
4
4
  import { TsEmbed } from './ts-embed';
5
- import { getQueryParamString } from '../utils';
5
+ import { getQueryParamString, getFilterQuery, getRuntimeParameters } from '../utils';
6
6
 
7
- /**
7
+ /**
8
8
  * Configuration for search options
9
9
  */
10
10
  export interface SearchOptions {
@@ -20,7 +20,8 @@ export interface SearchOptions {
20
20
  */
21
21
  export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAction'> {
22
22
  /**
23
- * The ID of the data source object. For example, Model, View, or Table. Spotter uses this object to query data and generate Answers.
23
+ * The ID of the data source object. For example, Model, View, or Table. Spotter uses
24
+ * this object to query data and generate Answers.
24
25
  */
25
26
  worksheetId: string;
26
27
  /**
@@ -30,7 +31,7 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
30
31
  /**
31
32
  * disableSourceSelection : Disables data source selection
32
33
  * but still display the selected data source.
33
- *
34
+ *
34
35
  * Supported embed types: `SpotterEmbed`
35
36
  * @example
36
37
  * ```js
@@ -44,7 +45,7 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
44
45
  disableSourceSelection?: boolean;
45
46
  /**
46
47
  * hideSourceSelection : Hide data source selection
47
- *
48
+ *
48
49
  * Supported embed types: `SpotterEmbed`
49
50
  * @example
50
51
  * ```js
@@ -58,7 +59,7 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
58
59
  hideSourceSelection?: boolean;
59
60
  /**
60
61
  * Flag to control Data panel experience
61
- *
62
+ *
62
63
  * Supported embed types: `SageEmbed`, `AppEmbed`, `SearchBarEmbed`, `LiveboardEmbed`, `SearchEmbed`
63
64
  * @default false
64
65
  * @version SDK: 1.36.0 | ThoughtSpot Cloud: 10.4.0.cl
@@ -76,7 +77,7 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
76
77
  * showSpotterLimitations : show limitation text
77
78
  * of the spotter underneath the chat input.
78
79
  * default is false.
79
- *
80
+ *
80
81
  * Supported embed types: `SpotterEmbed`
81
82
  * @example
82
83
  * ```js
@@ -91,7 +92,7 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
91
92
  /**
92
93
  * hideSampleQuestions : Hide sample questions on
93
94
  * the initial screen of the conversation.
94
- *
95
+ *
95
96
  * Supported embed types: `SpotterEmbed`
96
97
  * @example
97
98
  * ```js
@@ -103,6 +104,66 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
103
104
  * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
104
105
  */
105
106
  hideSampleQuestions?: boolean;
107
+ /**
108
+ * The list of runtime filters to apply to a search Answer,
109
+ * visualization, or Liveboard.
110
+ *
111
+ * Supported embed types: `SpotterEmbed`
112
+ * @example
113
+ * ```js
114
+ * const embed = new SpotterEmbed('#tsEmbed', {
115
+ * // other embed view config
116
+ * runtimeFilters: [
117
+ * {
118
+ * columnName: 'color',
119
+ * operator: RuntimeFilterOp.EQ,
120
+ * values: ['red'],
121
+ * },
122
+ * ],
123
+ * })
124
+ * ```
125
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.13.0.cl
126
+ */
127
+ runtimeFilters?: RuntimeFilter[];
128
+ /**
129
+ * Flag to control whether runtime filters should be included in the URL.
130
+ * If true, filters will be passed via app initialization payload instead.
131
+ * If false/undefined, filters will be added to URL (default behavior).
132
+ *
133
+ * Supported embed types: `SpotterEmbed`
134
+ * @default false
135
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.13.0.cl
136
+ */
137
+ excludeRuntimeFiltersfromURL?: boolean;
138
+ /**
139
+ * The list of runtime parameters to apply to the conversation.
140
+ *
141
+ * Supported embed types: `SpotterEmbed`
142
+ * @example
143
+ * ```js
144
+ * const embed = new SpotterEmbed('#tsEmbed', {
145
+ * // other embed view config
146
+ * runtimeParameters: [
147
+ * {
148
+ * name: 'Integer Param',
149
+ * value: 10,
150
+ * },
151
+ * ],
152
+ * })
153
+ * ```
154
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.13.0.cl
155
+ */
156
+ runtimeParameters?: RuntimeParameter[];
157
+ /**
158
+ * Flag to control whether runtime parameters should be included in the URL.
159
+ * If true, parameters will be passed via app initialization payload instead.
160
+ * If false/undefined, parameters will be added to URL (default behavior).
161
+ *
162
+ * Supported embed types: `SpotterEmbed`
163
+ * @default false
164
+ * @version SDK: 1.41.0 | ThoughtSpot: 10.13.0.cl
165
+ */
166
+ excludeRuntimeParametersfromURL?: boolean;
106
167
  }
107
168
 
108
169
  /**
@@ -144,6 +205,10 @@ export class SpotterEmbed extends TsEmbed {
144
205
  dataPanelV2,
145
206
  showSpotterLimitations,
146
207
  hideSampleQuestions,
208
+ runtimeFilters,
209
+ excludeRuntimeFiltersfromURL,
210
+ runtimeParameters,
211
+ excludeRuntimeParametersfromURL,
147
212
  } = this.viewConfig;
148
213
  const path = 'insights/conv-assist';
149
214
  if (!worksheetId) {
@@ -175,11 +240,21 @@ export class SpotterEmbed extends TsEmbed {
175
240
  if (queryParamsString) {
176
241
  query = `?${queryParamsString}`;
177
242
  }
243
+
244
+ const filterQuery = getFilterQuery(runtimeFilters || []);
245
+ if (filterQuery && !excludeRuntimeFiltersfromURL) {
246
+ query += `&${filterQuery}`;
247
+ }
248
+
249
+ const parameterQuery = getRuntimeParameters(runtimeParameters || []);
250
+ if (parameterQuery && !excludeRuntimeParametersfromURL) {
251
+ query += `&${parameterQuery}`;
252
+ }
253
+
178
254
  const tsPostHashParams = this.getThoughtSpotPostUrlParams({
179
255
  worksheet: worksheetId,
180
256
  query: searchOptions?.searchQuery || '',
181
257
  });
182
-
183
258
  return `${this.getEmbedBasePath(query)}/embed/${path}${tsPostHashParams}`;
184
259
  }
185
260
 
@@ -25,6 +25,7 @@ import * as tsEmbed from './ts-embed';
25
25
  import * as processTriggerInstance from '../utils/processTrigger';
26
26
  import * as auth from '../auth';
27
27
  import * as previewService from '../utils/graphql/preview-service';
28
+ import * as SessionInfoService from '../utils/sessionInfoService';
28
29
 
29
30
  const defaultViewConfig = {
30
31
  frameParams: {
@@ -367,6 +368,36 @@ describe('Liveboard/viz embed tests', () => {
367
368
  });
368
369
  });
369
370
 
371
+ test('should add liveboardXLSXCSVDownload flag and set value to true to the iframe src', async () => {
372
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
373
+ ...defaultViewConfig,
374
+ liveboardId,
375
+ liveboardXLSXCSVDownload: true,
376
+ } as LiveboardViewConfig);
377
+ liveboardEmbed.render();
378
+ await executeAfterWait(() => {
379
+ expectUrlMatchesWithParams(
380
+ getIFrameSrc(),
381
+ `http://${thoughtSpotHost}/?embedApp=true${defaultParams}&isLiveboardXLSXCSVDownloadEnabled=true${prefixParams}#/embed/viz/${liveboardId}`,
382
+ );
383
+ });
384
+ });
385
+
386
+ test('should add liveboardXLSXCSVDownload flag and set value to false to the iframe src', async () => {
387
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
388
+ ...defaultViewConfig,
389
+ liveboardId,
390
+ liveboardXLSXCSVDownload: false,
391
+ } as LiveboardViewConfig);
392
+ liveboardEmbed.render();
393
+ await executeAfterWait(() => {
394
+ expectUrlMatchesWithParams(
395
+ getIFrameSrc(),
396
+ `http://${thoughtSpotHost}/?embedApp=true${defaultParams}&isLiveboardXLSXCSVDownloadEnabled=false&${prefixParams}#/embed/viz/${liveboardId}`,
397
+ );
398
+ });
399
+ });
400
+
370
401
  test('should not append runtime filters in URL if excludeRuntimeFiltersfromURL is true', async () => {
371
402
  const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
372
403
  ...defaultViewConfig,
@@ -761,7 +792,7 @@ describe('Liveboard/viz embed tests', () => {
761
792
  });
762
793
  });
763
794
 
764
- test('it should navigateToLiveboard with liveboard id is not passed', async (done) => {
795
+ test('it should navigateToLiveboard with liveboard id is not passed with EmbedListenerReady event', async (done) => {
765
796
  mockMessageChannel();
766
797
  const consoleSpy = jest.spyOn(console, 'error');
767
798
  const testPreRenderId = 'testPreRender';
@@ -790,10 +821,19 @@ describe('Liveboard/viz embed tests', () => {
790
821
  libEmbed,
791
822
  );
792
823
 
824
+ await executeAfterWait(() => {
825
+ const iframe = getIFrameEl();
826
+ postMessageToParent(iframe.contentWindow, {
827
+ type: EmbedEvent.EmbedListenerReady,
828
+ });
829
+ });
830
+
793
831
  const testLiveboardId = 'testLiveboardId';
794
832
  const newLibEmbed = new LiveboardEmbed(getRootEl(), {
795
833
  preRenderId: testPreRenderId,
796
834
  liveboardId: testLiveboardId,
835
+ vizId: 'testVizId',
836
+ activeTabId: 'testActiveTabId',
797
837
  });
798
838
  const navigateToLiveboardSpy = jest.spyOn(newLibEmbed, 'navigateToLiveboard');
799
839
  await newLibEmbed.showPreRender();
@@ -804,7 +844,7 @@ describe('Liveboard/viz embed tests', () => {
804
844
  ) as HTMLIFrameElement;
805
845
 
806
846
  // should render the generic link
807
- expect(navigateToLiveboardSpy).toHaveBeenCalledWith(testLiveboardId);
847
+ expect(navigateToLiveboardSpy).toHaveBeenCalledWith(testLiveboardId, 'testVizId', 'testActiveTabId');
808
848
  expect(iFrame.src).toMatch(/http:\/\/tshost\/.*&isLiveboardEmbed=true.*#$/);
809
849
 
810
850
  expect(consoleSpy).toHaveBeenCalledTimes(0);
@@ -812,6 +852,72 @@ describe('Liveboard/viz embed tests', () => {
812
852
  done();
813
853
  });
814
854
  });
855
+
856
+ test('it should navigateToLiveboard with liveboard id is not passed with AuthInit event', async (done) => {
857
+ mockMessageChannel();
858
+ const consoleSpy = jest.spyOn(console, 'error');
859
+ const testPreRenderId = 'testPreRender';
860
+ const libEmbed = new LiveboardEmbed(getRootEl(), {
861
+ preRenderId: testPreRenderId,
862
+ });
863
+
864
+ jest.spyOn(SessionInfoService, 'getSessionInfo').mockResolvedValue({
865
+ releaseVersion: '1.0.0',
866
+ userGUID: '1234567890',
867
+ currentOrgId: 1,
868
+ privileges: [],
869
+ mixpanelToken: '1234567890',
870
+ });
871
+ let resizeObserverCb: any;
872
+ (window as any).ResizeObserver =
873
+ window.ResizeObserver ||
874
+ jest.fn().mockImplementation((resizeObserverCbParam: any) => {
875
+ resizeObserverCb = resizeObserverCbParam;
876
+ return {
877
+ disconnect: jest.fn(),
878
+ observe: jest.fn(),
879
+ unobserve: jest.fn(),
880
+ };
881
+ });
882
+ await libEmbed.preRender();
883
+ await waitFor(() => !!getIFrameEl());
884
+ const ts = '__tsEmbed';
885
+ expect((document.getElementById(libEmbed.getPreRenderIds().wrapper) as any)[ts]).toEqual(
886
+ libEmbed,
887
+ );
888
+ const testLiveboardId = 'testLiveboardId';
889
+ const newLibEmbed = new LiveboardEmbed(getRootEl(), {
890
+ preRenderId: testPreRenderId,
891
+ liveboardId: testLiveboardId,
892
+ vizId: 'testVizId',
893
+ activeTabId: 'testActiveTabId',
894
+ });
895
+ const navigateToLiveboardSpy = jest.spyOn(newLibEmbed, 'navigateToLiveboard');
896
+
897
+ await newLibEmbed.showPreRender();
898
+
899
+ await executeAfterWait(() => {
900
+ const iFrame = document.getElementById(
901
+ newLibEmbed.getPreRenderIds().child,
902
+ ) as HTMLIFrameElement;
903
+ postMessageToParent(iFrame.contentWindow, {
904
+ type: EmbedEvent.AuthInit,
905
+ });
906
+ });
907
+
908
+
909
+ await executeAfterWait(() => {
910
+ const iFrame = document.getElementById(
911
+ libEmbed.getPreRenderIds().child,
912
+ ) as HTMLIFrameElement;
913
+ // should render the generic link
914
+ expect(navigateToLiveboardSpy).toHaveBeenCalledWith(testLiveboardId, 'testVizId', 'testActiveTabId');
915
+ expect(iFrame.src).toMatch(/http:\/\/tshost\/.*&isLiveboardEmbed=true.*#$/);
916
+ expect(consoleSpy).toHaveBeenCalledTimes(0);
917
+ done();
918
+ }, 1005);
919
+ });
920
+
815
921
  });
816
922
 
817
923
  describe('LazyLoadingForFullHeight functionality', () => {
@@ -1085,4 +1191,157 @@ describe('Liveboard/viz embed tests', () => {
1085
1191
  });
1086
1192
  });
1087
1193
  });
1194
+
1195
+ describe('Liveboard Embed Container Loading and PreRender', () => {
1196
+ beforeEach(() => {
1197
+ document.body.innerHTML = getDocumentBody();
1198
+ });
1199
+
1200
+ test('should call navigateToLiveboard after embed container is loaded in beforePrerenderVisible', async () => {
1201
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
1202
+ liveboardId,
1203
+ vizId,
1204
+ activeTabId,
1205
+ ...defaultViewConfig,
1206
+ });
1207
+
1208
+ const navigateToLiveboardSpy = jest.spyOn(liveboardEmbed, 'navigateToLiveboard').mockResolvedValue(undefined);
1209
+
1210
+ // Mock embed container as not loaded initially
1211
+ liveboardEmbed.isEmbedContainerLoaded = false;
1212
+
1213
+ // Call beforePrerenderVisible
1214
+ liveboardEmbed['beforePrerenderVisible']();
1215
+
1216
+ // navigateToLiveboard should not be called immediately
1217
+ expect(navigateToLiveboardSpy).not.toHaveBeenCalled();
1218
+
1219
+ // Simulate embed container becoming ready
1220
+ liveboardEmbed.isEmbedContainerLoaded = true;
1221
+ liveboardEmbed['executeEmbedContainerReadyCallbacks']();
1222
+
1223
+ // Now navigateToLiveboard should be called
1224
+ expect(navigateToLiveboardSpy).toHaveBeenCalledWith(liveboardId, vizId, activeTabId);
1225
+ });
1226
+
1227
+ test('should update currentLiveboardState for prerender object when embed container loads', async () => {
1228
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
1229
+ liveboardId,
1230
+ vizId,
1231
+ activeTabId,
1232
+ ...defaultViewConfig,
1233
+ });
1234
+
1235
+ const mockPreRenderObj = {
1236
+ currentLiveboardState: {},
1237
+ };
1238
+
1239
+ jest.spyOn(liveboardEmbed as any, 'getPreRenderObj').mockReturnValue(mockPreRenderObj as any);
1240
+ jest.spyOn(liveboardEmbed, 'navigateToLiveboard').mockResolvedValue(undefined);
1241
+
1242
+ // Mock embed container as not loaded initially
1243
+ liveboardEmbed.isEmbedContainerLoaded = false;
1244
+
1245
+ // Call beforePrerenderVisible
1246
+ liveboardEmbed['beforePrerenderVisible']();
1247
+
1248
+ // Simulate embed container becoming ready
1249
+ liveboardEmbed.isEmbedContainerLoaded = true;
1250
+ liveboardEmbed['executeEmbedContainerReadyCallbacks']();
1251
+
1252
+ // Check that currentLiveboardState was updated
1253
+ expect(mockPreRenderObj.currentLiveboardState).toEqual({
1254
+ liveboardId,
1255
+ vizId,
1256
+ activeTabId,
1257
+ });
1258
+ });
1259
+
1260
+ test('should handle beforePrerenderVisible when embed container is already loaded', async () => {
1261
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
1262
+ liveboardId,
1263
+ vizId,
1264
+ activeTabId,
1265
+ ...defaultViewConfig,
1266
+ });
1267
+
1268
+ const navigateToLiveboardSpy = jest.spyOn(liveboardEmbed, 'navigateToLiveboard').mockResolvedValue(undefined);
1269
+
1270
+ // Mock embed container as already loaded
1271
+ liveboardEmbed.isEmbedContainerLoaded = true;
1272
+
1273
+ // Call beforePrerenderVisible
1274
+ liveboardEmbed['beforePrerenderVisible']();
1275
+
1276
+ // navigateToLiveboard should be called immediately
1277
+ expect(navigateToLiveboardSpy).toHaveBeenCalledWith(liveboardId, vizId, activeTabId);
1278
+ });
1279
+
1280
+ test('should handle beforePrerenderVisible without prerender object', async () => {
1281
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
1282
+ liveboardId,
1283
+ vizId,
1284
+ activeTabId,
1285
+ ...defaultViewConfig,
1286
+ });
1287
+
1288
+ jest.spyOn(liveboardEmbed as any, 'getPreRenderObj').mockReturnValue(null);
1289
+ const navigateToLiveboardSpy = jest.spyOn(liveboardEmbed, 'navigateToLiveboard').mockResolvedValue(undefined);
1290
+
1291
+ // Mock embed container as not loaded initially
1292
+ liveboardEmbed.isEmbedContainerLoaded = false;
1293
+
1294
+ // Call beforePrerenderVisible
1295
+ liveboardEmbed['beforePrerenderVisible']();
1296
+
1297
+ // Simulate embed container becoming ready
1298
+ liveboardEmbed.isEmbedContainerLoaded = true;
1299
+ liveboardEmbed['executeEmbedContainerReadyCallbacks']();
1300
+
1301
+ // navigateToLiveboard should still be called
1302
+ expect(navigateToLiveboardSpy).toHaveBeenCalledWith(liveboardId, vizId, activeTabId);
1303
+ });
1304
+
1305
+ test('should work with all liveboard parameters', async () => {
1306
+ const customLiveboardId = 'custom-liveboard-id';
1307
+ const customVizId = 'custom-viz-id';
1308
+ const customActiveTabId = 'custom-active-tab-id';
1309
+
1310
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
1311
+ liveboardId: customLiveboardId,
1312
+ vizId: customVizId,
1313
+ activeTabId: customActiveTabId,
1314
+ ...defaultViewConfig,
1315
+ });
1316
+
1317
+ const navigateToLiveboardSpy = jest.spyOn(liveboardEmbed, 'navigateToLiveboard').mockResolvedValue(undefined);
1318
+
1319
+ // Mock embed container as already loaded
1320
+ liveboardEmbed.isEmbedContainerLoaded = true;
1321
+
1322
+ // Call beforePrerenderVisible
1323
+ liveboardEmbed['beforePrerenderVisible']();
1324
+
1325
+ // Check that all parameters are passed correctly
1326
+ expect(navigateToLiveboardSpy).toHaveBeenCalledWith(customLiveboardId, customVizId, customActiveTabId);
1327
+ });
1328
+
1329
+ test('should work with minimal liveboard parameters', async () => {
1330
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
1331
+ liveboardId,
1332
+ ...defaultViewConfig,
1333
+ });
1334
+
1335
+ const navigateToLiveboardSpy = jest.spyOn(liveboardEmbed, 'navigateToLiveboard').mockResolvedValue(undefined);
1336
+
1337
+ // Mock embed container as already loaded
1338
+ liveboardEmbed.isEmbedContainerLoaded = true;
1339
+
1340
+ // Call beforePrerenderVisible
1341
+ liveboardEmbed['beforePrerenderVisible']();
1342
+
1343
+ // Check that undefined parameters are passed correctly
1344
+ expect(navigateToLiveboardSpy).toHaveBeenCalledWith(liveboardId, undefined, undefined);
1345
+ });
1346
+ });
1088
1347
  });