@thoughtspot/visual-embed-sdk 1.52.0 → 1.52.2-beta

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 (385) hide show
  1. package/cjs/package.json +19 -4
  2. package/cjs/src/contracts/contracts.spec.d.ts +2 -0
  3. package/cjs/src/contracts/contracts.spec.d.ts.map +1 -0
  4. package/cjs/src/contracts/contracts.spec.js +345 -0
  5. package/cjs/src/contracts/contracts.spec.js.map +1 -0
  6. package/cjs/src/contracts/embed-event-payloads.d.ts +73 -0
  7. package/cjs/src/contracts/embed-event-payloads.d.ts.map +1 -0
  8. package/cjs/src/contracts/embed-event-payloads.js +3 -0
  9. package/cjs/src/contracts/embed-event-payloads.js.map +1 -0
  10. package/cjs/src/contracts/host-event-contracts.d.ts +416 -0
  11. package/cjs/src/contracts/host-event-contracts.d.ts.map +1 -0
  12. package/cjs/src/contracts/host-event-contracts.js +3 -0
  13. package/cjs/src/contracts/host-event-contracts.js.map +1 -0
  14. package/cjs/src/contracts/index.d.ts +22 -0
  15. package/cjs/src/contracts/index.d.ts.map +1 -0
  16. package/cjs/src/contracts/index.js +33 -0
  17. package/cjs/src/contracts/index.js.map +1 -0
  18. package/cjs/src/contracts/ui-passthrough-contracts.d.ts +277 -0
  19. package/cjs/src/contracts/ui-passthrough-contracts.d.ts.map +1 -0
  20. package/cjs/src/{embed/hostEventClient/contracts.js → contracts/ui-passthrough-contracts.js} +6 -2
  21. package/cjs/src/contracts/ui-passthrough-contracts.js.map +1 -0
  22. package/cjs/src/embed/app.d.ts +21 -143
  23. package/cjs/src/embed/app.d.ts.map +1 -1
  24. package/cjs/src/embed/app.js +21 -121
  25. package/cjs/src/embed/app.js.map +1 -1
  26. package/cjs/src/embed/app.spec.js +80 -26
  27. package/cjs/src/embed/app.spec.js.map +1 -1
  28. package/cjs/src/embed/auto-frame-renderer.js +1 -1
  29. package/cjs/src/embed/auto-frame-renderer.js.map +1 -1
  30. package/cjs/src/embed/auto-frame-renderer.spec.js +24 -13
  31. package/cjs/src/embed/auto-frame-renderer.spec.js.map +1 -1
  32. package/cjs/src/embed/bodyless-conversation.js +1 -1
  33. package/cjs/src/embed/bodyless-conversation.js.map +1 -1
  34. package/cjs/src/embed/conversation.d.ts +1 -0
  35. package/cjs/src/embed/conversation.d.ts.map +1 -1
  36. package/cjs/src/embed/conversation.js +4 -4
  37. package/cjs/src/embed/conversation.js.map +1 -1
  38. package/cjs/src/embed/conversation.spec.js +35 -24
  39. package/cjs/src/embed/conversation.spec.js.map +1 -1
  40. package/cjs/src/embed/embedConfig.spec.js +2 -1
  41. package/cjs/src/embed/embedConfig.spec.js.map +1 -1
  42. package/cjs/src/embed/events.spec.js +12 -2
  43. package/cjs/src/embed/events.spec.js.map +1 -1
  44. package/cjs/src/embed/hostEventClient/host-event-client.d.ts +5 -4
  45. package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  46. package/cjs/src/embed/hostEventClient/host-event-client.js +34 -23
  47. package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
  48. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +50 -44
  49. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  50. package/cjs/src/embed/hostEventClient/utils.d.ts +10 -1
  51. package/cjs/src/embed/hostEventClient/utils.d.ts.map +1 -1
  52. package/cjs/src/embed/hostEventClient/utils.js +52 -6
  53. package/cjs/src/embed/hostEventClient/utils.js.map +1 -1
  54. package/cjs/src/embed/hostEventClient/utils.spec.js +151 -0
  55. package/cjs/src/embed/hostEventClient/utils.spec.js.map +1 -1
  56. package/cjs/src/embed/liveboard.d.ts +13 -164
  57. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  58. package/cjs/src/embed/liveboard.js +72 -135
  59. package/cjs/src/embed/liveboard.js.map +1 -1
  60. package/cjs/src/embed/liveboard.spec.js +213 -29
  61. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  62. package/cjs/src/embed/search-bar.js +1 -1
  63. package/cjs/src/embed/search-bar.js.map +1 -1
  64. package/cjs/src/embed/search.d.ts +14 -0
  65. package/cjs/src/embed/search.d.ts.map +1 -1
  66. package/cjs/src/embed/search.js +5 -2
  67. package/cjs/src/embed/search.js.map +1 -1
  68. package/cjs/src/embed/search.spec.js +85 -0
  69. package/cjs/src/embed/search.spec.js.map +1 -1
  70. package/cjs/src/embed/spotter-utils.d.ts +8 -1
  71. package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
  72. package/cjs/src/embed/spotter-utils.js +14 -1
  73. package/cjs/src/embed/spotter-utils.js.map +1 -1
  74. package/cjs/src/embed/spotter-utils.spec.js +26 -0
  75. package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
  76. package/cjs/src/embed/ts-embed.d.ts +20 -22
  77. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  78. package/cjs/src/embed/ts-embed.js +171 -66
  79. package/cjs/src/embed/ts-embed.js.map +1 -1
  80. package/cjs/src/embed/ts-embed.spec.js +486 -38
  81. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  82. package/cjs/src/errors.js +1 -1
  83. package/cjs/src/errors.js.map +1 -1
  84. package/cjs/src/full-height.d.ts +137 -0
  85. package/cjs/src/full-height.d.ts.map +1 -0
  86. package/cjs/src/full-height.js +272 -0
  87. package/cjs/src/full-height.js.map +1 -0
  88. package/cjs/src/full-height.spec.d.ts +2 -0
  89. package/cjs/src/full-height.spec.d.ts.map +1 -0
  90. package/cjs/src/full-height.spec.js +835 -0
  91. package/cjs/src/full-height.spec.js.map +1 -0
  92. package/cjs/src/index.d.ts +5 -3
  93. package/cjs/src/index.d.ts.map +1 -1
  94. package/cjs/src/index.js +6 -4
  95. package/cjs/src/index.js.map +1 -1
  96. package/cjs/src/react/all-types-export.d.ts +1 -1
  97. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  98. package/cjs/src/react/all-types-export.js +2 -1
  99. package/cjs/src/react/all-types-export.js.map +1 -1
  100. package/cjs/src/react/all-types-export.parity.spec.js +55 -3
  101. package/cjs/src/react/all-types-export.parity.spec.js.map +1 -1
  102. package/cjs/src/types.d.ts +584 -24
  103. package/cjs/src/types.d.ts.map +1 -1
  104. package/cjs/src/types.js +370 -22
  105. package/cjs/src/types.js.map +1 -1
  106. package/cjs/src/utils/authService/tokenizedAuthService.spec.js +2 -1
  107. package/cjs/src/utils/authService/tokenizedAuthService.spec.js.map +1 -1
  108. package/cjs/src/utils/custom-actions.spec.js +4 -2
  109. package/cjs/src/utils/custom-actions.spec.js.map +1 -1
  110. package/cjs/src/utils/filterConverter.d.ts +106 -0
  111. package/cjs/src/utils/filterConverter.d.ts.map +1 -0
  112. package/cjs/src/utils/filterConverter.js +215 -0
  113. package/cjs/src/utils/filterConverter.js.map +1 -0
  114. package/cjs/src/utils/filterConverter.spec.d.ts +2 -0
  115. package/cjs/src/utils/filterConverter.spec.d.ts.map +1 -0
  116. package/cjs/src/utils/filterConverter.spec.js +709 -0
  117. package/cjs/src/utils/filterConverter.spec.js.map +1 -0
  118. package/cjs/src/utils/processData.spec.js +2 -1
  119. package/cjs/src/utils/processData.spec.js.map +1 -1
  120. package/cjs/src/utils/processTrigger.d.ts +3 -1
  121. package/cjs/src/utils/processTrigger.d.ts.map +1 -1
  122. package/cjs/src/utils/processTrigger.js +19 -51
  123. package/cjs/src/utils/processTrigger.js.map +1 -1
  124. package/cjs/src/utils/transport/iframe-transport.d.ts +55 -0
  125. package/cjs/src/utils/transport/iframe-transport.d.ts.map +1 -0
  126. package/cjs/src/utils/transport/iframe-transport.js +108 -0
  127. package/cjs/src/utils/transport/iframe-transport.js.map +1 -0
  128. package/cjs/src/utils/transport/iframe-transport.spec.d.ts +2 -0
  129. package/cjs/src/utils/transport/iframe-transport.spec.d.ts.map +1 -0
  130. package/cjs/src/utils/transport/iframe-transport.spec.js +140 -0
  131. package/cjs/src/utils/transport/iframe-transport.spec.js.map +1 -0
  132. package/cjs/src/utils.d.ts +18 -0
  133. package/cjs/src/utils.d.ts.map +1 -1
  134. package/cjs/src/utils.js +39 -1
  135. package/cjs/src/utils.js.map +1 -1
  136. package/cjs/src/utils.spec.js +62 -0
  137. package/cjs/src/utils.spec.js.map +1 -1
  138. package/dist/{index-BMppCU63.js → index-CcBYlGo9.js} +1 -1
  139. package/dist/src/contracts/contracts.spec.d.ts +2 -0
  140. package/dist/src/contracts/contracts.spec.d.ts.map +1 -0
  141. package/dist/src/contracts/embed-event-payloads.d.ts +73 -0
  142. package/dist/src/contracts/embed-event-payloads.d.ts.map +1 -0
  143. package/dist/src/contracts/host-event-contracts.d.ts +416 -0
  144. package/dist/src/contracts/host-event-contracts.d.ts.map +1 -0
  145. package/dist/src/contracts/index.d.ts +22 -0
  146. package/dist/src/contracts/index.d.ts.map +1 -0
  147. package/dist/src/contracts/ui-passthrough-contracts.d.ts +277 -0
  148. package/dist/src/contracts/ui-passthrough-contracts.d.ts.map +1 -0
  149. package/dist/src/embed/app.d.ts +21 -143
  150. package/dist/src/embed/app.d.ts.map +1 -1
  151. package/dist/src/embed/conversation.d.ts +1 -0
  152. package/dist/src/embed/conversation.d.ts.map +1 -1
  153. package/dist/src/embed/hostEventClient/host-event-client.d.ts +5 -4
  154. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  155. package/dist/src/embed/hostEventClient/utils.d.ts +10 -1
  156. package/dist/src/embed/hostEventClient/utils.d.ts.map +1 -1
  157. package/dist/src/embed/liveboard.d.ts +13 -164
  158. package/dist/src/embed/liveboard.d.ts.map +1 -1
  159. package/dist/src/embed/search.d.ts +14 -0
  160. package/dist/src/embed/search.d.ts.map +1 -1
  161. package/dist/src/embed/spotter-utils.d.ts +8 -1
  162. package/dist/src/embed/spotter-utils.d.ts.map +1 -1
  163. package/dist/src/embed/ts-embed.d.ts +20 -22
  164. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  165. package/dist/src/full-height.d.ts +137 -0
  166. package/dist/src/full-height.d.ts.map +1 -0
  167. package/dist/src/full-height.spec.d.ts +2 -0
  168. package/dist/src/full-height.spec.d.ts.map +1 -0
  169. package/dist/src/index.d.ts +5 -3
  170. package/dist/src/index.d.ts.map +1 -1
  171. package/dist/src/react/all-types-export.d.ts +1 -1
  172. package/dist/src/react/all-types-export.d.ts.map +1 -1
  173. package/dist/src/types.d.ts +584 -24
  174. package/dist/src/types.d.ts.map +1 -1
  175. package/dist/src/utils/filterConverter.d.ts +106 -0
  176. package/dist/src/utils/filterConverter.d.ts.map +1 -0
  177. package/dist/src/utils/filterConverter.spec.d.ts +2 -0
  178. package/dist/src/utils/filterConverter.spec.d.ts.map +1 -0
  179. package/dist/src/utils/processTrigger.d.ts +3 -1
  180. package/dist/src/utils/processTrigger.d.ts.map +1 -1
  181. package/dist/src/utils/transport/iframe-transport.d.ts +55 -0
  182. package/dist/src/utils/transport/iframe-transport.d.ts.map +1 -0
  183. package/dist/src/utils/transport/iframe-transport.spec.d.ts +2 -0
  184. package/dist/src/utils/transport/iframe-transport.spec.d.ts.map +1 -0
  185. package/dist/src/utils.d.ts +18 -0
  186. package/dist/src/utils.d.ts.map +1 -1
  187. package/dist/tsembed-react.es.js +1144 -412
  188. package/dist/tsembed-react.js +1143 -411
  189. package/dist/tsembed.es.js +1357 -418
  190. package/dist/tsembed.js +1352 -412
  191. package/dist/visual-embed-sdk-react-full.d.ts +1514 -651
  192. package/dist/visual-embed-sdk-react.d.ts +1351 -632
  193. package/dist/visual-embed-sdk.d.ts +1508 -668
  194. package/lib/package.json +19 -4
  195. package/lib/src/contracts/contracts.spec.d.ts +2 -0
  196. package/lib/src/contracts/contracts.spec.d.ts.map +1 -0
  197. package/lib/src/contracts/contracts.spec.js +342 -0
  198. package/lib/src/contracts/contracts.spec.js.map +1 -0
  199. package/lib/src/contracts/embed-event-payloads.d.ts +73 -0
  200. package/lib/src/contracts/embed-event-payloads.d.ts.map +1 -0
  201. package/lib/src/contracts/embed-event-payloads.js +2 -0
  202. package/lib/src/contracts/embed-event-payloads.js.map +1 -0
  203. package/lib/src/contracts/host-event-contracts.d.ts +416 -0
  204. package/lib/src/contracts/host-event-contracts.d.ts.map +1 -0
  205. package/lib/src/contracts/host-event-contracts.js +2 -0
  206. package/lib/src/contracts/host-event-contracts.js.map +1 -0
  207. package/lib/src/contracts/index.d.ts +22 -0
  208. package/lib/src/contracts/index.d.ts.map +1 -0
  209. package/lib/src/contracts/index.js +22 -0
  210. package/lib/src/contracts/index.js.map +1 -0
  211. package/lib/src/contracts/ui-passthrough-contracts.d.ts +277 -0
  212. package/lib/src/contracts/ui-passthrough-contracts.d.ts.map +1 -0
  213. package/lib/src/{embed/hostEventClient/contracts.js → contracts/ui-passthrough-contracts.js} +6 -2
  214. package/lib/src/contracts/ui-passthrough-contracts.js.map +1 -0
  215. package/lib/src/embed/app.d.ts +21 -143
  216. package/lib/src/embed/app.d.ts.map +1 -1
  217. package/lib/src/embed/app.js +23 -123
  218. package/lib/src/embed/app.js.map +1 -1
  219. package/lib/src/embed/app.spec.js +80 -26
  220. package/lib/src/embed/app.spec.js.map +1 -1
  221. package/lib/src/embed/auto-frame-renderer.js +1 -1
  222. package/lib/src/embed/auto-frame-renderer.js.map +1 -1
  223. package/lib/src/embed/auto-frame-renderer.spec.js +24 -13
  224. package/lib/src/embed/auto-frame-renderer.spec.js.map +1 -1
  225. package/lib/src/embed/bodyless-conversation.js +1 -1
  226. package/lib/src/embed/bodyless-conversation.js.map +1 -1
  227. package/lib/src/embed/conversation.d.ts +1 -0
  228. package/lib/src/embed/conversation.d.ts.map +1 -1
  229. package/lib/src/embed/conversation.js +5 -5
  230. package/lib/src/embed/conversation.js.map +1 -1
  231. package/lib/src/embed/conversation.spec.js +35 -24
  232. package/lib/src/embed/conversation.spec.js.map +1 -1
  233. package/lib/src/embed/embedConfig.spec.js +2 -1
  234. package/lib/src/embed/embedConfig.spec.js.map +1 -1
  235. package/lib/src/embed/events.spec.js +12 -2
  236. package/lib/src/embed/events.spec.js.map +1 -1
  237. package/lib/src/embed/hostEventClient/host-event-client.d.ts +5 -4
  238. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  239. package/lib/src/embed/hostEventClient/host-event-client.js +19 -8
  240. package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
  241. package/lib/src/embed/hostEventClient/host-event-client.spec.js +15 -9
  242. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  243. package/lib/src/embed/hostEventClient/utils.d.ts +10 -1
  244. package/lib/src/embed/hostEventClient/utils.d.ts.map +1 -1
  245. package/lib/src/embed/hostEventClient/utils.js +48 -3
  246. package/lib/src/embed/hostEventClient/utils.js.map +1 -1
  247. package/lib/src/embed/hostEventClient/utils.spec.js +152 -1
  248. package/lib/src/embed/hostEventClient/utils.spec.js.map +1 -1
  249. package/lib/src/embed/liveboard.d.ts +13 -164
  250. package/lib/src/embed/liveboard.d.ts.map +1 -1
  251. package/lib/src/embed/liveboard.js +73 -136
  252. package/lib/src/embed/liveboard.js.map +1 -1
  253. package/lib/src/embed/liveboard.spec.js +213 -29
  254. package/lib/src/embed/liveboard.spec.js.map +1 -1
  255. package/lib/src/embed/search-bar.js +1 -1
  256. package/lib/src/embed/search-bar.js.map +1 -1
  257. package/lib/src/embed/search.d.ts +14 -0
  258. package/lib/src/embed/search.d.ts.map +1 -1
  259. package/lib/src/embed/search.js +5 -2
  260. package/lib/src/embed/search.js.map +1 -1
  261. package/lib/src/embed/search.spec.js +85 -0
  262. package/lib/src/embed/search.spec.js.map +1 -1
  263. package/lib/src/embed/spotter-utils.d.ts +8 -1
  264. package/lib/src/embed/spotter-utils.d.ts.map +1 -1
  265. package/lib/src/embed/spotter-utils.js +12 -0
  266. package/lib/src/embed/spotter-utils.js.map +1 -1
  267. package/lib/src/embed/spotter-utils.spec.js +27 -1
  268. package/lib/src/embed/spotter-utils.spec.js.map +1 -1
  269. package/lib/src/embed/ts-embed.d.ts +20 -22
  270. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  271. package/lib/src/embed/ts-embed.js +171 -66
  272. package/lib/src/embed/ts-embed.js.map +1 -1
  273. package/lib/src/embed/ts-embed.spec.js +484 -36
  274. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  275. package/lib/src/errors.js +1 -1
  276. package/lib/src/errors.js.map +1 -1
  277. package/lib/src/full-height.d.ts +137 -0
  278. package/lib/src/full-height.d.ts.map +1 -0
  279. package/lib/src/full-height.js +268 -0
  280. package/lib/src/full-height.js.map +1 -0
  281. package/lib/src/full-height.spec.d.ts +2 -0
  282. package/lib/src/full-height.spec.d.ts.map +1 -0
  283. package/lib/src/full-height.spec.js +833 -0
  284. package/lib/src/full-height.spec.js.map +1 -0
  285. package/lib/src/index.d.ts +5 -3
  286. package/lib/src/index.d.ts.map +1 -1
  287. package/lib/src/index.js +3 -2
  288. package/lib/src/index.js.map +1 -1
  289. package/lib/src/react/all-types-export.d.ts +1 -1
  290. package/lib/src/react/all-types-export.d.ts.map +1 -1
  291. package/lib/src/react/all-types-export.js +1 -1
  292. package/lib/src/react/all-types-export.js.map +1 -1
  293. package/lib/src/react/all-types-export.parity.spec.js +55 -3
  294. package/lib/src/react/all-types-export.parity.spec.js.map +1 -1
  295. package/lib/src/types.d.ts +584 -24
  296. package/lib/src/types.d.ts.map +1 -1
  297. package/lib/src/types.js +370 -22
  298. package/lib/src/types.js.map +1 -1
  299. package/lib/src/utils/authService/tokenizedAuthService.spec.js +2 -1
  300. package/lib/src/utils/authService/tokenizedAuthService.spec.js.map +1 -1
  301. package/lib/src/utils/custom-actions.spec.js +4 -2
  302. package/lib/src/utils/custom-actions.spec.js.map +1 -1
  303. package/lib/src/utils/filterConverter.d.ts +106 -0
  304. package/lib/src/utils/filterConverter.d.ts.map +1 -0
  305. package/lib/src/utils/filterConverter.js +210 -0
  306. package/lib/src/utils/filterConverter.js.map +1 -0
  307. package/lib/src/utils/filterConverter.spec.d.ts +2 -0
  308. package/lib/src/utils/filterConverter.spec.d.ts.map +1 -0
  309. package/lib/src/utils/filterConverter.spec.js +707 -0
  310. package/lib/src/utils/filterConverter.spec.js.map +1 -0
  311. package/lib/src/utils/processData.spec.js +2 -1
  312. package/lib/src/utils/processData.spec.js.map +1 -1
  313. package/lib/src/utils/processTrigger.d.ts +3 -1
  314. package/lib/src/utils/processTrigger.d.ts.map +1 -1
  315. package/lib/src/utils/processTrigger.js +19 -51
  316. package/lib/src/utils/processTrigger.js.map +1 -1
  317. package/lib/src/utils/transport/iframe-transport.d.ts +55 -0
  318. package/lib/src/utils/transport/iframe-transport.d.ts.map +1 -0
  319. package/lib/src/utils/transport/iframe-transport.js +101 -0
  320. package/lib/src/utils/transport/iframe-transport.js.map +1 -0
  321. package/lib/src/utils/transport/iframe-transport.spec.d.ts +2 -0
  322. package/lib/src/utils/transport/iframe-transport.spec.d.ts.map +1 -0
  323. package/lib/src/utils/transport/iframe-transport.spec.js +138 -0
  324. package/lib/src/utils/transport/iframe-transport.spec.js.map +1 -0
  325. package/lib/src/utils.d.ts +18 -0
  326. package/lib/src/utils.d.ts.map +1 -1
  327. package/lib/src/utils.js +37 -0
  328. package/lib/src/utils.js.map +1 -1
  329. package/lib/src/utils.spec.js +63 -1
  330. package/lib/src/utils.spec.js.map +1 -1
  331. package/lib/src/visual-embed-sdk.d.ts +1508 -668
  332. package/package.json +19 -4
  333. package/src/contracts/contracts.spec.ts +392 -0
  334. package/src/contracts/embed-event-payloads.ts +83 -0
  335. package/src/contracts/host-event-contracts.ts +500 -0
  336. package/src/contracts/index.ts +53 -0
  337. package/src/contracts/ui-passthrough-contracts.ts +301 -0
  338. package/src/embed/app.spec.ts +101 -34
  339. package/src/embed/app.ts +42 -268
  340. package/src/embed/auto-frame-renderer.spec.ts +24 -13
  341. package/src/embed/auto-frame-renderer.ts +1 -1
  342. package/src/embed/bodyless-conversation.ts +1 -1
  343. package/src/embed/conversation.spec.ts +38 -27
  344. package/src/embed/conversation.ts +5 -5
  345. package/src/embed/embedConfig.spec.ts +2 -1
  346. package/src/embed/events.spec.ts +14 -2
  347. package/src/embed/hostEventClient/host-event-client.spec.ts +16 -10
  348. package/src/embed/hostEventClient/host-event-client.ts +31 -10
  349. package/src/embed/hostEventClient/utils.spec.ts +176 -1
  350. package/src/embed/hostEventClient/utils.ts +53 -3
  351. package/src/embed/liveboard.spec.ts +261 -41
  352. package/src/embed/liveboard.ts +85 -300
  353. package/src/embed/search-bar.tsx +1 -1
  354. package/src/embed/search.spec.ts +103 -0
  355. package/src/embed/search.ts +21 -1
  356. package/src/embed/spotter-utils.spec.ts +29 -0
  357. package/src/embed/spotter-utils.ts +16 -0
  358. package/src/embed/ts-embed.spec.ts +650 -36
  359. package/src/embed/ts-embed.ts +205 -76
  360. package/src/errors.ts +1 -1
  361. package/src/full-height.spec.ts +1008 -0
  362. package/src/full-height.ts +361 -0
  363. package/src/index.ts +103 -5
  364. package/src/react/all-types-export.parity.spec.ts +63 -3
  365. package/src/react/all-types-export.ts +49 -0
  366. package/src/types.ts +584 -22
  367. package/src/utils/authService/tokenizedAuthService.spec.ts +2 -1
  368. package/src/utils/custom-actions.spec.ts +4 -2
  369. package/src/utils/filterConverter.spec.ts +801 -0
  370. package/src/utils/filterConverter.ts +304 -0
  371. package/src/utils/processData.spec.ts +2 -1
  372. package/src/utils/processTrigger.ts +28 -58
  373. package/src/utils/transport/iframe-transport.spec.ts +177 -0
  374. package/src/utils/transport/iframe-transport.ts +122 -0
  375. package/src/utils.spec.ts +71 -0
  376. package/src/utils.ts +38 -0
  377. package/cjs/src/embed/hostEventClient/contracts.d.ts +0 -231
  378. package/cjs/src/embed/hostEventClient/contracts.d.ts.map +0 -1
  379. package/cjs/src/embed/hostEventClient/contracts.js.map +0 -1
  380. package/dist/src/embed/hostEventClient/contracts.d.ts +0 -231
  381. package/dist/src/embed/hostEventClient/contracts.d.ts.map +0 -1
  382. package/lib/src/embed/hostEventClient/contracts.d.ts +0 -231
  383. package/lib/src/embed/hostEventClient/contracts.d.ts.map +0 -1
  384. package/lib/src/embed/hostEventClient/contracts.js.map +0 -1
  385. package/src/embed/hostEventClient/contracts.ts +0 -262
@@ -953,7 +953,7 @@ describe('Liveboard/viz embed tests', () => {
953
953
  const spySetIFrameHeight = jest.spyOn(myObject, 'setIFrameHeight');
954
954
 
955
955
  myObject.render();
956
- myObject.setIframeHeightForNonEmbedLiveboard({
956
+ myObject.fullHeightController.handleRouteChange({
957
957
  data: { currentPath: '/embed/viz/' },
958
958
  type: 'Route',
959
959
  });
@@ -971,7 +971,7 @@ describe('Liveboard/viz embed tests', () => {
971
971
  const spySetIFrameHeight = jest.spyOn(myObject, 'setIFrameHeight');
972
972
 
973
973
  myObject.render();
974
- myObject.setIframeHeightForNonEmbedLiveboard({
974
+ myObject.fullHeightController.handleRouteChange({
975
975
  data: { currentPath: '/embed/insights/viz/' },
976
976
  type: 'Route',
977
977
  });
@@ -991,7 +991,7 @@ describe('Liveboard/viz embed tests', () => {
991
991
  .mockImplementation(jest.fn());
992
992
 
993
993
  myObject.render();
994
- myObject.setIframeHeightForNonEmbedLiveboard({
994
+ myObject.fullHeightController.handleRouteChange({
995
995
  data: { currentPath: '/some/other/path/' },
996
996
  type: 'Route',
997
997
  });
@@ -1869,8 +1869,11 @@ describe('Liveboard/viz embed tests', () => {
1869
1869
  );
1870
1870
  expect(iFrame.src).toMatch(/http:\/\/tshost\/.*&isLiveboardEmbed=true.*#$/);
1871
1871
 
1872
+ // Navigate is held behind this show-cycle's
1873
+ // UpdateEmbedParams, so wait out the settle
1874
+ // window (SCAL-336321).
1872
1875
  expect(consoleSpy).toHaveBeenCalledTimes(0);
1873
- });
1876
+ }, 300);
1874
1877
  });
1875
1878
 
1876
1879
  test('it should navigateToLiveboard with liveboard id is not passed with AuthInit event', async () => {
@@ -1932,7 +1935,10 @@ describe('Liveboard/viz embed tests', () => {
1932
1935
  );
1933
1936
  expect(iFrame.src).toMatch(/http:\/\/tshost\/.*&isLiveboardEmbed=true.*#$/);
1934
1937
  expect(consoleSpy).toHaveBeenCalledTimes(0);
1935
- }, 1005);
1938
+ // 1000ms AuthInit fallback + the 200ms settle
1939
+ // window before Navigate goes out (SCAL-336321),
1940
+ // so 1005 is no longer enough.
1941
+ }, 1305);
1936
1942
  });
1937
1943
 
1938
1944
 
@@ -2059,12 +2065,6 @@ describe('Liveboard/viz embed tests', () => {
2059
2065
  fullHeight: true,
2060
2066
  } as LiveboardViewConfig);
2061
2067
 
2062
- expect((liveboardEmbed as any).viewConfig.lazyLoadingForFullHeight).toBe(true);
2063
- expect(
2064
- (liveboardEmbed as any).viewConfig.enableScrollableContainerLazyLoading,
2065
- ).toBe(true);
2066
- expect((liveboardEmbed as any).viewConfig.lazyLoadingMargin).toBe('500px 0px');
2067
-
2068
2068
  await liveboardEmbed.render();
2069
2069
 
2070
2070
  await executeAfterWait(() => {
@@ -2081,11 +2081,14 @@ describe('Liveboard/viz embed tests', () => {
2081
2081
  liveboardId,
2082
2082
  } as LiveboardViewConfig);
2083
2083
 
2084
- expect((liveboardEmbed as any).viewConfig.lazyLoadingForFullHeight).toBeUndefined();
2085
- expect(
2086
- (liveboardEmbed as any).viewConfig.enableScrollableContainerLazyLoading,
2087
- ).toBeUndefined();
2088
- expect((liveboardEmbed as any).viewConfig.lazyLoadingMargin).toBeUndefined();
2084
+ await liveboardEmbed.render();
2085
+
2086
+ await executeAfterWait(() => {
2087
+ const iframeSrc = getIFrameSrc();
2088
+ expect(iframeSrc).not.toContain('isFullHeightPinboard');
2089
+ expect(iframeSrc).not.toContain('isLazyLoadingForEmbedEnabled');
2090
+ expect(iframeSrc).not.toContain('rootMarginForLazyLoad');
2091
+ }, 100);
2089
2092
  });
2090
2093
 
2091
2094
  test('should not write the defaults back onto the caller view config', async () => {
@@ -2109,11 +2112,14 @@ describe('Liveboard/viz embed tests', () => {
2109
2112
  fullHeight: false,
2110
2113
  } as LiveboardViewConfig);
2111
2114
 
2112
- expect((liveboardEmbed as any).viewConfig.lazyLoadingForFullHeight).toBeUndefined();
2113
- expect(
2114
- (liveboardEmbed as any).viewConfig.enableScrollableContainerLazyLoading,
2115
- ).toBeUndefined();
2116
- expect((liveboardEmbed as any).viewConfig.lazyLoadingMargin).toBeUndefined();
2115
+ await liveboardEmbed.render();
2116
+
2117
+ await executeAfterWait(() => {
2118
+ const iframeSrc = getIFrameSrc();
2119
+ expect(iframeSrc).not.toContain('isFullHeightPinboard');
2120
+ expect(iframeSrc).not.toContain('isLazyLoadingForEmbedEnabled');
2121
+ expect(iframeSrc).not.toContain('rootMarginForLazyLoad');
2122
+ }, 100);
2117
2123
  });
2118
2124
 
2119
2125
  test('should default lazyLoadingMargin when lazyLoadingForFullHeight is set explicitly', async () => {
@@ -2124,14 +2130,12 @@ describe('Liveboard/viz embed tests', () => {
2124
2130
  lazyLoadingForFullHeight: true,
2125
2131
  } as LiveboardViewConfig);
2126
2132
 
2127
- expect((liveboardEmbed as any).viewConfig.lazyLoadingMargin).toBe(
2128
- DEFAULT_LAZY_LOADING_MARGIN,
2129
- );
2130
-
2131
2133
  await liveboardEmbed.render();
2132
2134
 
2133
2135
  await executeAfterWait(() => {
2134
- expect(getIFrameSrc()).toContain('rootMarginForLazyLoad=500px%200px');
2136
+ expect(getIFrameSrc()).toContain(
2137
+ `rootMarginForLazyLoad=${encodeURIComponent(DEFAULT_LAZY_LOADING_MARGIN)}`,
2138
+ );
2135
2139
  }, 100);
2136
2140
  });
2137
2141
 
@@ -2370,7 +2374,7 @@ describe('Liveboard/viz embed tests', () => {
2370
2374
  await liveboardEmbed.render();
2371
2375
 
2372
2376
  // Trigger the lazy load data calculation
2373
- (liveboardEmbed as any).sendFullHeightLazyLoadData();
2377
+ (liveboardEmbed as any).fullHeightController.sendVisibleCoordinates();
2374
2378
 
2375
2379
  expect(mockTrigger).toHaveBeenCalledWith(HostEvent.VisibleEmbedCoordinates, {
2376
2380
  top: 0,
@@ -2393,7 +2397,7 @@ describe('Liveboard/viz embed tests', () => {
2393
2397
  await liveboardEmbed.render();
2394
2398
 
2395
2399
  // Trigger the lazy load data calculation
2396
- (liveboardEmbed as any).sendFullHeightLazyLoadData();
2400
+ (liveboardEmbed as any).fullHeightController.sendVisibleCoordinates();
2397
2401
 
2398
2402
  expect(mockTrigger).toHaveBeenCalledWith(HostEvent.VisibleEmbedCoordinates, {
2399
2403
  top: 0,
@@ -2426,7 +2430,7 @@ describe('Liveboard/viz embed tests', () => {
2426
2430
  await liveboardEmbed.render();
2427
2431
 
2428
2432
  // Trigger the lazy load data calculation
2429
- (liveboardEmbed as any).sendFullHeightLazyLoadData();
2433
+ (liveboardEmbed as any).fullHeightController.sendVisibleCoordinates();
2430
2434
 
2431
2435
  expect(mockTrigger).toHaveBeenCalledWith(HostEvent.VisibleEmbedCoordinates, {
2432
2436
  top: 50,
@@ -2538,7 +2542,7 @@ describe('Liveboard/viz embed tests', () => {
2538
2542
  const mockResponder = jest.fn();
2539
2543
 
2540
2544
  // Trigger the handler directly
2541
- (liveboardEmbed as any).requestVisibleEmbedCoordinatesHandler({}, mockResponder);
2545
+ (liveboardEmbed as any).fullHeightController.handleRequestVisibleCoordinates({}, mockResponder);
2542
2546
 
2543
2547
  // Verify the responder was called with the correct data
2544
2548
  expect(mockResponder).toHaveBeenCalledWith({
@@ -2581,6 +2585,22 @@ describe('Liveboard/viz embed tests', () => {
2581
2585
  document.body.innerHTML = getDocumentBody();
2582
2586
  });
2583
2587
 
2588
+ // beforePrerenderVisible() no longer navigates
2589
+ // synchronously: Navigate is held until this show-cycle's
2590
+ // UpdateEmbedParams has been posted and given
2591
+ // UPDATE_EMBED_PARAMS_SETTLE_MS (200ms) to apply
2592
+ // (SCAL-336321). These tests must wait that window out
2593
+ // rather than read the spy inline.
2594
+ const waitForPreRenderNavigate = () => new Promise((resolve) => {
2595
+ setTimeout(resolve, 300);
2596
+ });
2597
+
2598
+ // A home hop waits twice: params settle, then home settle. Generous
2599
+ // margin over the two windows so a slow run does not flake.
2600
+ const waitForHomeHopNavigate = () => new Promise((resolve) => {
2601
+ setTimeout(resolve, 900);
2602
+ });
2603
+
2584
2604
  test('should call navigateToLiveboard after embed container is loaded in beforePrerenderVisible', async () => {
2585
2605
  const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
2586
2606
  liveboardId,
@@ -2603,6 +2623,7 @@ describe('Liveboard/viz embed tests', () => {
2603
2623
  // Simulate embed container becoming ready
2604
2624
  liveboardEmbed.isEmbedContainerLoaded = true;
2605
2625
  liveboardEmbed['executeEmbedContainerReadyCallbacks']();
2626
+ await waitForPreRenderNavigate();
2606
2627
 
2607
2628
  // Now navigateToLiveboard should be called
2608
2629
  expect(navigateToLiveboardSpy).toHaveBeenCalledWith(
@@ -2613,7 +2634,194 @@ describe('Liveboard/viz embed tests', () => {
2613
2634
  );
2614
2635
  });
2615
2636
 
2616
- test('should update currentLiveboardState for prerender object when embed container loads', async () => {
2637
+ test('should route via home when the pre-render is already on this route', async () => {
2638
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
2639
+ liveboardId,
2640
+ vizId,
2641
+ activeTabId,
2642
+ ...defaultViewConfig,
2643
+ });
2644
+
2645
+ // Navigate to the route it is already on is a no-op, so the
2646
+ // liveboard keeps its state. Home unmounts the container.
2647
+ jest.spyOn(liveboardEmbed as any, 'getPreRenderObj').mockReturnValue({
2648
+ currentLiveboardState: {
2649
+ liveboardId,
2650
+ vizId,
2651
+ activeTabId,
2652
+ personalizedViewId: undefined,
2653
+ },
2654
+ } as any);
2655
+ const triggerSpy = jest
2656
+ .spyOn(liveboardEmbed, 'trigger')
2657
+ .mockImplementation(() => Promise.resolve(undefined as any));
2658
+ const navigateToLiveboardSpy = jest
2659
+ .spyOn(liveboardEmbed, 'navigateToLiveboard')
2660
+ .mockImplementation(() => Promise.resolve(undefined));
2661
+
2662
+ liveboardEmbed.isEmbedContainerLoaded = false;
2663
+ liveboardEmbed['beforePrerenderVisible']();
2664
+ liveboardEmbed.isEmbedContainerLoaded = true;
2665
+ liveboardEmbed['executeEmbedContainerReadyCallbacks']();
2666
+ await waitForHomeHopNavigate();
2667
+
2668
+ expect(triggerSpy).toHaveBeenCalledWith(HostEvent.Navigate, 'home');
2669
+ expect(navigateToLiveboardSpy).toHaveBeenCalledWith(
2670
+ liveboardId,
2671
+ vizId,
2672
+ activeTabId,
2673
+ undefined,
2674
+ );
2675
+ // Home first, or we would clear what we just asked for.
2676
+ expect(triggerSpy.mock.invocationCallOrder[0]).toBeLessThan(
2677
+ navigateToLiveboardSpy.mock.invocationCallOrder[0],
2678
+ );
2679
+ });
2680
+
2681
+ test('should not wait for the container to acknowledge the home hop', async () => {
2682
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
2683
+ liveboardId,
2684
+ vizId,
2685
+ activeTabId,
2686
+ ...defaultViewConfig,
2687
+ });
2688
+
2689
+ jest.spyOn(liveboardEmbed as any, 'getPreRenderObj').mockReturnValue({
2690
+ currentLiveboardState: {
2691
+ liveboardId,
2692
+ vizId,
2693
+ activeTabId,
2694
+ personalizedViewId: undefined,
2695
+ },
2696
+ } as any);
2697
+
2698
+ // A real home hop never settles until the 30s trigger timeout.
2699
+ // Awaiting it parked the liveboard on home for that long.
2700
+ jest.spyOn(liveboardEmbed, 'trigger').mockImplementation(
2701
+ (event: any, payload: any) => (event === HostEvent.Navigate && payload === 'home'
2702
+ ? new Promise<any>(() => { /* never settles */ })
2703
+ : Promise.resolve(undefined as any)),
2704
+ );
2705
+ const navigateToLiveboardSpy = jest
2706
+ .spyOn(liveboardEmbed, 'navigateToLiveboard')
2707
+ .mockImplementation(() => Promise.resolve(undefined));
2708
+
2709
+ liveboardEmbed.isEmbedContainerLoaded = false;
2710
+ liveboardEmbed['beforePrerenderVisible']();
2711
+ liveboardEmbed.isEmbedContainerLoaded = true;
2712
+ liveboardEmbed['executeEmbedContainerReadyCallbacks']();
2713
+ await waitForHomeHopNavigate();
2714
+
2715
+ expect(navigateToLiveboardSpy).toHaveBeenCalledWith(
2716
+ liveboardId,
2717
+ vizId,
2718
+ activeTabId,
2719
+ undefined,
2720
+ );
2721
+ });
2722
+
2723
+ test('should not route via home when the embed is showing itself again', async () => {
2724
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
2725
+ liveboardId,
2726
+ vizId,
2727
+ activeTabId,
2728
+ ...defaultViewConfig,
2729
+ });
2730
+
2731
+ // A hide/show of one embed, not a hand-over: the state is this
2732
+ // user's own, so clearing it would lose their session.
2733
+ jest.spyOn(liveboardEmbed as any, 'getPreRenderObj').mockReturnValue(liveboardEmbed);
2734
+ const triggerSpy = jest
2735
+ .spyOn(liveboardEmbed, 'trigger')
2736
+ .mockImplementation(() => Promise.resolve(undefined as any));
2737
+ const navigateToLiveboardSpy = jest
2738
+ .spyOn(liveboardEmbed, 'navigateToLiveboard')
2739
+ .mockImplementation(() => Promise.resolve(undefined));
2740
+
2741
+ liveboardEmbed.isEmbedContainerLoaded = false;
2742
+ liveboardEmbed['beforePrerenderVisible']();
2743
+ liveboardEmbed.isEmbedContainerLoaded = true;
2744
+ liveboardEmbed['executeEmbedContainerReadyCallbacks']();
2745
+ await waitForPreRenderNavigate();
2746
+
2747
+ expect(triggerSpy).not.toHaveBeenCalledWith(HostEvent.Navigate, 'home');
2748
+ expect(navigateToLiveboardSpy).toHaveBeenCalled();
2749
+ });
2750
+
2751
+ test('should not route via home when the pre-render is on another liveboard', async () => {
2752
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
2753
+ liveboardId,
2754
+ vizId,
2755
+ activeTabId,
2756
+ ...defaultViewConfig,
2757
+ });
2758
+
2759
+ jest.spyOn(liveboardEmbed as any, 'getPreRenderObj').mockReturnValue({
2760
+ currentLiveboardState: {
2761
+ liveboardId: 'a-different-liveboard',
2762
+ vizId,
2763
+ activeTabId,
2764
+ personalizedViewId: undefined,
2765
+ },
2766
+ } as any);
2767
+ const triggerSpy = jest
2768
+ .spyOn(liveboardEmbed, 'trigger')
2769
+ .mockImplementation(() => Promise.resolve(undefined as any));
2770
+ const navigateToLiveboardSpy = jest
2771
+ .spyOn(liveboardEmbed, 'navigateToLiveboard')
2772
+ .mockImplementation(() => Promise.resolve(undefined));
2773
+
2774
+ liveboardEmbed.isEmbedContainerLoaded = false;
2775
+ liveboardEmbed['beforePrerenderVisible']();
2776
+ liveboardEmbed.isEmbedContainerLoaded = true;
2777
+ liveboardEmbed['executeEmbedContainerReadyCallbacks']();
2778
+ await waitForPreRenderNavigate();
2779
+
2780
+ // A real route change unmounts the liveboard by itself.
2781
+ expect(triggerSpy).not.toHaveBeenCalledWith(HostEvent.Navigate, 'home');
2782
+ expect(navigateToLiveboardSpy).toHaveBeenCalledWith(
2783
+ liveboardId,
2784
+ vizId,
2785
+ activeTabId,
2786
+ undefined,
2787
+ );
2788
+ });
2789
+
2790
+ test('should not route via home for the same liveboard on a different tab', async () => {
2791
+ const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
2792
+ liveboardId,
2793
+ vizId,
2794
+ activeTabId,
2795
+ ...defaultViewConfig,
2796
+ });
2797
+
2798
+ // Same liveboard, different tab — a real navigation.
2799
+ jest.spyOn(liveboardEmbed as any, 'getPreRenderObj').mockReturnValue({
2800
+ currentLiveboardState: {
2801
+ liveboardId,
2802
+ vizId,
2803
+ activeTabId: 'another-tab',
2804
+ personalizedViewId: undefined,
2805
+ },
2806
+ } as any);
2807
+ const triggerSpy = jest
2808
+ .spyOn(liveboardEmbed, 'trigger')
2809
+ .mockImplementation(() => Promise.resolve(undefined as any));
2810
+ const navigateToLiveboardSpy = jest
2811
+ .spyOn(liveboardEmbed, 'navigateToLiveboard')
2812
+ .mockImplementation(() => Promise.resolve(undefined));
2813
+
2814
+ liveboardEmbed.isEmbedContainerLoaded = false;
2815
+ liveboardEmbed['beforePrerenderVisible']();
2816
+ liveboardEmbed.isEmbedContainerLoaded = true;
2817
+ liveboardEmbed['executeEmbedContainerReadyCallbacks']();
2818
+ await waitForPreRenderNavigate();
2819
+
2820
+ expect(triggerSpy).not.toHaveBeenCalledWith(HostEvent.Navigate, 'home');
2821
+ expect(navigateToLiveboardSpy).toHaveBeenCalled();
2822
+ });
2823
+
2824
+ test('should update currentLiveboardState on the embed showing when the container loads', async () => {
2617
2825
  const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
2618
2826
  liveboardId,
2619
2827
  vizId,
@@ -2621,6 +2829,10 @@ describe('Liveboard/viz embed tests', () => {
2621
2829
  ...defaultViewConfig,
2622
2830
  });
2623
2831
 
2832
+ // The state is written on the embed that is being shown, which is
2833
+ // also the one the pre-render wrapper ends up pointing at. Writing
2834
+ // it on the predecessor left "current" naming a liveboard that
2835
+ // stopped being current one hand-over ago.
2624
2836
  const mockPreRenderObj = {
2625
2837
  currentLiveboardState: {},
2626
2838
  };
@@ -2637,13 +2849,16 @@ describe('Liveboard/viz embed tests', () => {
2637
2849
  // Simulate embed container becoming ready
2638
2850
  liveboardEmbed.isEmbedContainerLoaded = true;
2639
2851
  liveboardEmbed['executeEmbedContainerReadyCallbacks']();
2852
+ await waitForPreRenderNavigate();
2640
2853
 
2641
- // Check that currentLiveboardState was updated
2642
- expect(mockPreRenderObj.currentLiveboardState).toEqual({
2854
+ expect(liveboardEmbed.currentLiveboardState).toEqual({
2643
2855
  liveboardId,
2644
2856
  vizId,
2645
2857
  activeTabId,
2858
+ personalizedViewId: undefined,
2646
2859
  });
2860
+ // and NOT on the instance it took the pre-render over from
2861
+ expect(mockPreRenderObj.currentLiveboardState).toEqual({});
2647
2862
  });
2648
2863
 
2649
2864
  test('should handle beforePrerenderVisible when embed container is already loaded', async () => {
@@ -2661,8 +2876,9 @@ describe('Liveboard/viz embed tests', () => {
2661
2876
 
2662
2877
  // Call beforePrerenderVisible
2663
2878
  liveboardEmbed['beforePrerenderVisible']();
2879
+ await waitForPreRenderNavigate();
2664
2880
 
2665
- // navigateToLiveboard should be called immediately
2881
+ // navigateToLiveboard should be called once the params have settled
2666
2882
  expect(navigateToLiveboardSpy).toHaveBeenCalledWith(
2667
2883
  liveboardId,
2668
2884
  vizId,
@@ -2691,6 +2907,7 @@ describe('Liveboard/viz embed tests', () => {
2691
2907
  // Simulate embed container becoming ready
2692
2908
  liveboardEmbed.isEmbedContainerLoaded = true;
2693
2909
  liveboardEmbed['executeEmbedContainerReadyCallbacks']();
2910
+ await waitForPreRenderNavigate();
2694
2911
 
2695
2912
  // navigateToLiveboard should still be called
2696
2913
  expect(navigateToLiveboardSpy).toHaveBeenCalledWith(
@@ -2720,6 +2937,7 @@ describe('Liveboard/viz embed tests', () => {
2720
2937
 
2721
2938
  // Call beforePrerenderVisible
2722
2939
  liveboardEmbed['beforePrerenderVisible']();
2940
+ await waitForPreRenderNavigate();
2723
2941
 
2724
2942
  // Check that all parameters are passed correctly
2725
2943
  expect(navigateToLiveboardSpy).toHaveBeenCalledWith(
@@ -2743,6 +2961,7 @@ describe('Liveboard/viz embed tests', () => {
2743
2961
 
2744
2962
  // Call beforePrerenderVisible
2745
2963
  liveboardEmbed['beforePrerenderVisible']();
2964
+ await waitForPreRenderNavigate();
2746
2965
 
2747
2966
  // Check that undefined parameters are passed correctly
2748
2967
  expect(navigateToLiveboardSpy).toHaveBeenCalledWith(
@@ -2764,7 +2983,7 @@ describe('Liveboard/viz embed tests', () => {
2764
2983
  minimumHeight: 800,
2765
2984
  });
2766
2985
  await liveboardEmbed.render();
2767
- expect(liveboardEmbed['defaultHeight']).toBe(800);
2986
+ expect(liveboardEmbed['fullHeightController'].minimumHeight).toBe(800);
2768
2987
  });
2769
2988
  test('should set default height to 700 when default height is provided', async () => {
2770
2989
  const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
@@ -2774,7 +2993,7 @@ describe('Liveboard/viz embed tests', () => {
2774
2993
  defaultHeight: 700,
2775
2994
  });
2776
2995
  await liveboardEmbed.render();
2777
- expect(liveboardEmbed['defaultHeight']).toBe(700);
2996
+ expect(liveboardEmbed['fullHeightController'].minimumHeight).toBe(700);
2778
2997
  });
2779
2998
  test('should set default height to 800 when minimum height is provided but default height is not', async () => {
2780
2999
  const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
@@ -2784,7 +3003,7 @@ describe('Liveboard/viz embed tests', () => {
2784
3003
  minimumHeight: 800,
2785
3004
  });
2786
3005
  await liveboardEmbed.render();
2787
- expect(liveboardEmbed['defaultHeight']).toBe(800);
3006
+ expect(liveboardEmbed['fullHeightController'].minimumHeight).toBe(800);
2788
3007
  });
2789
3008
  test('should set default height to 500 when neither default height nor minimum height is provided', async () => {
2790
3009
  const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
@@ -2793,7 +3012,7 @@ describe('Liveboard/viz embed tests', () => {
2793
3012
  fullHeight: true,
2794
3013
  });
2795
3014
  await liveboardEmbed.render();
2796
- expect(liveboardEmbed['defaultHeight']).toBe(500);
3015
+ expect(liveboardEmbed['fullHeightController'].minimumHeight).toBe(500);
2797
3016
  });
2798
3017
  });
2799
3018
  });
@@ -2835,8 +3054,8 @@ describe('LiveboardEmbed updatedSpotterExperience tests', () => {
2835
3054
 
2836
3055
  describe('trigger typing contracts (compile-time)', () => {
2837
3056
  // Enforced by ts-jest at compile time. LiveboardEmbed OVERRIDES
2838
- // TsEmbed.trigger, so its generic defaults must be asserted separately —
2839
- // a bare `PayloadT` on the override silently collapses no-payload
3057
+ // TsEmbed.trigger, so its generic defaults must be asserted separately
3058
+ // — a bare `PayloadT` on the override silently collapses no-payload
2840
3059
  // responses back to `any` for every LiveboardEmbed consumer.
2841
3060
  type IsAny<T> = 0 extends 1 & T ? true : false;
2842
3061
  type Extends<A, B> = A extends B ? true : false;
@@ -2854,7 +3073,8 @@ describe('LiveboardEmbed updatedSpotterExperience tests', () => {
2854
3073
  { numberOfTabs: number; orderedTabIds: string[] }
2855
3074
  > = true;
2856
3075
  const probeUnknownField = (r: TabsResponse) =>
2857
- // @ts-expect-error — field not on the GetTabs contract (was silent when `any`)
3076
+ // @ts-expect-error — field not on the GetTabs contract (was
3077
+ // silent when `any`)
2858
3078
  r.tabCount;
2859
3079
  void probeUnknownField;
2860
3080