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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/cjs/package.json +6 -24
  2. package/cjs/src/css-variables.d.ts +46 -3
  3. package/cjs/src/css-variables.d.ts.map +1 -1
  4. package/cjs/src/embed/app.d.ts +47 -27
  5. package/cjs/src/embed/app.d.ts.map +1 -1
  6. package/cjs/src/embed/app.js +10 -1
  7. package/cjs/src/embed/app.js.map +1 -1
  8. package/cjs/src/embed/app.spec.js +32 -0
  9. package/cjs/src/embed/app.spec.js.map +1 -1
  10. package/cjs/src/embed/base.d.ts +35 -33
  11. package/cjs/src/embed/base.d.ts.map +1 -1
  12. package/cjs/src/embed/base.js +35 -33
  13. package/cjs/src/embed/base.js.map +1 -1
  14. package/cjs/src/embed/embed.spec.js +0 -19
  15. package/cjs/src/embed/embed.spec.js.map +1 -1
  16. package/cjs/src/embed/liveboard.d.ts +42 -0
  17. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  18. package/cjs/src/embed/liveboard.js +6 -1
  19. package/cjs/src/embed/liveboard.js.map +1 -1
  20. package/cjs/src/embed/liveboard.spec.js +43 -0
  21. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  22. package/cjs/src/embed/search.d.ts +0 -26
  23. package/cjs/src/embed/search.d.ts.map +1 -1
  24. package/cjs/src/embed/search.js.map +1 -1
  25. package/cjs/src/embed/ts-embed.d.ts +0 -1
  26. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  27. package/cjs/src/embed/ts-embed.js +8 -12
  28. package/cjs/src/embed/ts-embed.js.map +1 -1
  29. package/cjs/src/embed/ts-embed.spec.js +0 -9
  30. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  31. package/cjs/src/mixpanel-service.d.ts +4 -0
  32. package/cjs/src/mixpanel-service.d.ts.map +1 -1
  33. package/cjs/src/mixpanel-service.js +4 -0
  34. package/cjs/src/mixpanel-service.js.map +1 -1
  35. package/cjs/src/tokenizedFetch.d.ts.map +1 -1
  36. package/cjs/src/tokenizedFetch.js +5 -1
  37. package/cjs/src/tokenizedFetch.js.map +1 -1
  38. package/cjs/src/types.d.ts +179 -22
  39. package/cjs/src/types.d.ts.map +1 -1
  40. package/cjs/src/types.js +143 -12
  41. package/cjs/src/types.js.map +1 -1
  42. package/cjs/src/utils/authService/authService.spec.js +3 -1
  43. package/cjs/src/utils/authService/authService.spec.js.map +1 -1
  44. package/cjs/src/utils/graphql/answerService/answer-queries.d.ts +1 -0
  45. package/cjs/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -1
  46. package/cjs/src/utils/graphql/answerService/answer-queries.js +9 -2
  47. package/cjs/src/utils/graphql/answerService/answer-queries.js.map +1 -1
  48. package/cjs/src/utils/graphql/answerService/answerService.d.ts +15 -0
  49. package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  50. package/cjs/src/utils/graphql/answerService/answerService.js +25 -0
  51. package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -1
  52. package/cjs/src/utils/graphql/answerService/answerService.spec.js +53 -0
  53. package/cjs/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
  54. package/cjs/src/utils/graphql/graphql-request.spec.d.ts +2 -0
  55. package/cjs/src/utils/graphql/graphql-request.spec.d.ts.map +1 -0
  56. package/cjs/src/utils/graphql/graphql-request.spec.js +36 -0
  57. package/cjs/src/utils/graphql/graphql-request.spec.js.map +1 -0
  58. package/cjs/src/utils/processData.js +2 -2
  59. package/cjs/src/utils/processData.js.map +1 -1
  60. package/cjs/src/utils/processData.spec.js +14 -0
  61. package/cjs/src/utils/processData.spec.js.map +1 -1
  62. package/cjs/src/utils/processTrigger.d.ts +1 -0
  63. package/cjs/src/utils/processTrigger.d.ts.map +1 -1
  64. package/cjs/src/utils/processTrigger.js +3 -3
  65. package/cjs/src/utils/processTrigger.js.map +1 -1
  66. package/cjs/src/utils/processTrigger.spec.js +10 -0
  67. package/cjs/src/utils/processTrigger.spec.js.map +1 -1
  68. package/cjs/src/utils.d.ts.map +1 -1
  69. package/cjs/src/utils.js +1 -3
  70. package/cjs/src/utils.js.map +1 -1
  71. package/dist/src/css-variables.d.ts +46 -3
  72. package/dist/src/css-variables.d.ts.map +1 -1
  73. package/dist/src/embed/app.d.ts +47 -27
  74. package/dist/src/embed/app.d.ts.map +1 -1
  75. package/dist/src/embed/base.d.ts +35 -33
  76. package/dist/src/embed/base.d.ts.map +1 -1
  77. package/dist/src/embed/liveboard.d.ts +42 -0
  78. package/dist/src/embed/liveboard.d.ts.map +1 -1
  79. package/dist/src/embed/search.d.ts +0 -26
  80. package/dist/src/embed/search.d.ts.map +1 -1
  81. package/dist/src/embed/ts-embed.d.ts +0 -1
  82. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  83. package/dist/src/mixpanel-service.d.ts +4 -0
  84. package/dist/src/mixpanel-service.d.ts.map +1 -1
  85. package/dist/src/tokenizedFetch.d.ts.map +1 -1
  86. package/dist/src/types.d.ts +179 -22
  87. package/dist/src/types.d.ts.map +1 -1
  88. package/dist/src/utils/graphql/answerService/answer-queries.d.ts +1 -0
  89. package/dist/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -1
  90. package/dist/src/utils/graphql/answerService/answerService.d.ts +15 -0
  91. package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  92. package/dist/src/utils/graphql/graphql-request.spec.d.ts +2 -0
  93. package/dist/src/utils/graphql/graphql-request.spec.d.ts.map +1 -0
  94. package/dist/src/utils/processTrigger.d.ts +1 -0
  95. package/dist/src/utils/processTrigger.d.ts.map +1 -1
  96. package/dist/src/utils.d.ts.map +1 -1
  97. package/dist/tsembed-react.es.js +442 -107
  98. package/dist/tsembed-react.js +385 -106
  99. package/dist/tsembed.es.js +477 -140
  100. package/dist/tsembed.js +420 -139
  101. package/dist/visual-embed-sdk-react-full.d.ts +368 -112
  102. package/dist/visual-embed-sdk-react.d.ts +368 -112
  103. package/dist/visual-embed-sdk.d.ts +368 -112
  104. package/lib/package.json +6 -24
  105. package/lib/src/css-variables.d.ts +46 -3
  106. package/lib/src/css-variables.d.ts.map +1 -1
  107. package/lib/src/embed/app.d.ts +47 -27
  108. package/lib/src/embed/app.d.ts.map +1 -1
  109. package/lib/src/embed/app.js +10 -1
  110. package/lib/src/embed/app.js.map +1 -1
  111. package/lib/src/embed/app.spec.js +32 -0
  112. package/lib/src/embed/app.spec.js.map +1 -1
  113. package/lib/src/embed/base.d.ts +35 -33
  114. package/lib/src/embed/base.d.ts.map +1 -1
  115. package/lib/src/embed/base.js +35 -33
  116. package/lib/src/embed/base.js.map +1 -1
  117. package/lib/src/embed/embed.spec.js +0 -19
  118. package/lib/src/embed/embed.spec.js.map +1 -1
  119. package/lib/src/embed/liveboard.d.ts +42 -0
  120. package/lib/src/embed/liveboard.d.ts.map +1 -1
  121. package/lib/src/embed/liveboard.js +6 -1
  122. package/lib/src/embed/liveboard.js.map +1 -1
  123. package/lib/src/embed/liveboard.spec.js +43 -0
  124. package/lib/src/embed/liveboard.spec.js.map +1 -1
  125. package/lib/src/embed/search.d.ts +0 -26
  126. package/lib/src/embed/search.d.ts.map +1 -1
  127. package/lib/src/embed/search.js.map +1 -1
  128. package/lib/src/embed/ts-embed.d.ts +0 -1
  129. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  130. package/lib/src/embed/ts-embed.js +8 -12
  131. package/lib/src/embed/ts-embed.js.map +1 -1
  132. package/lib/src/embed/ts-embed.spec.js +0 -9
  133. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  134. package/lib/src/mixpanel-service.d.ts +4 -0
  135. package/lib/src/mixpanel-service.d.ts.map +1 -1
  136. package/lib/src/mixpanel-service.js +4 -0
  137. package/lib/src/mixpanel-service.js.map +1 -1
  138. package/lib/src/tokenizedFetch.d.ts.map +1 -1
  139. package/lib/src/tokenizedFetch.js +5 -1
  140. package/lib/src/tokenizedFetch.js.map +1 -1
  141. package/lib/src/types.d.ts +179 -22
  142. package/lib/src/types.d.ts.map +1 -1
  143. package/lib/src/types.js +143 -12
  144. package/lib/src/types.js.map +1 -1
  145. package/lib/src/utils/authService/authService.spec.js +3 -1
  146. package/lib/src/utils/authService/authService.spec.js.map +1 -1
  147. package/lib/src/utils/graphql/answerService/answer-queries.d.ts +1 -0
  148. package/lib/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -1
  149. package/lib/src/utils/graphql/answerService/answer-queries.js +8 -1
  150. package/lib/src/utils/graphql/answerService/answer-queries.js.map +1 -1
  151. package/lib/src/utils/graphql/answerService/answerService.d.ts +15 -0
  152. package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  153. package/lib/src/utils/graphql/answerService/answerService.js +25 -0
  154. package/lib/src/utils/graphql/answerService/answerService.js.map +1 -1
  155. package/lib/src/utils/graphql/answerService/answerService.spec.js +54 -1
  156. package/lib/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
  157. package/lib/src/utils/graphql/graphql-request.spec.d.ts +2 -0
  158. package/lib/src/utils/graphql/graphql-request.spec.d.ts.map +1 -0
  159. package/lib/src/utils/graphql/graphql-request.spec.js +33 -0
  160. package/lib/src/utils/graphql/graphql-request.spec.js.map +1 -0
  161. package/lib/src/utils/processData.js +2 -2
  162. package/lib/src/utils/processData.js.map +1 -1
  163. package/lib/src/utils/processData.spec.js +14 -0
  164. package/lib/src/utils/processData.spec.js.map +1 -1
  165. package/lib/src/utils/processTrigger.d.ts +1 -0
  166. package/lib/src/utils/processTrigger.d.ts.map +1 -1
  167. package/lib/src/utils/processTrigger.js +1 -1
  168. package/lib/src/utils/processTrigger.js.map +1 -1
  169. package/lib/src/utils/processTrigger.spec.js +10 -0
  170. package/lib/src/utils/processTrigger.spec.js.map +1 -1
  171. package/lib/src/utils.d.ts.map +1 -1
  172. package/lib/src/utils.js +1 -3
  173. package/lib/src/utils.js.map +1 -1
  174. package/lib/src/visual-embed-sdk.d.ts +368 -112
  175. package/package.json +6 -24
  176. package/src/css-variables.ts +49 -3
  177. package/src/embed/app.spec.ts +47 -0
  178. package/src/embed/app.ts +54 -26
  179. package/src/embed/base.ts +35 -33
  180. package/src/embed/embed.spec.ts +0 -22
  181. package/src/embed/liveboard.spec.ts +62 -0
  182. package/src/embed/liveboard.ts +52 -0
  183. package/src/embed/search.ts +0 -26
  184. package/src/embed/ts-embed.spec.ts +0 -11
  185. package/src/embed/ts-embed.ts +9 -12
  186. package/src/mixpanel-service.ts +4 -0
  187. package/src/tokenizedFetch.ts +5 -1
  188. package/src/types.ts +180 -21
  189. package/src/utils/authService/authService.spec.ts +3 -1
  190. package/src/utils/graphql/answerService/answer-queries.ts +9 -1
  191. package/src/utils/graphql/answerService/answerService.spec.ts +69 -0
  192. package/src/utils/graphql/answerService/answerService.ts +35 -0
  193. package/src/utils/graphql/graphql-request.spec.ts +38 -0
  194. package/src/utils/processData.spec.ts +16 -0
  195. package/src/utils/processData.ts +2 -2
  196. package/src/utils/processTrigger.spec.ts +19 -0
  197. package/src/utils/processTrigger.ts +1 -1
  198. package/src/utils.ts +1 -3
@@ -322,7 +322,6 @@
322
322
  };
323
323
  const getCustomisations = (embedConfig, viewConfig) => {
324
324
  var _a, _b, _c, _d;
325
- const customCssUrlFromEmbedConfig = embedConfig.customCssUrl;
326
325
  const customizationsFromViewConfig = viewConfig.customizations;
327
326
  const customizationsFromEmbedConfig = embedConfig.customizations
328
327
  || embedConfig.customisations;
@@ -335,8 +334,7 @@
335
334
  ...(_b = customizationsFromViewConfig === null || customizationsFromViewConfig === void 0 ? void 0 : customizationsFromViewConfig.style) === null || _b === void 0 ? void 0 : _b.customCSS,
336
335
  },
337
336
  customCSSUrl: ((_c = customizationsFromViewConfig === null || customizationsFromViewConfig === void 0 ? void 0 : customizationsFromViewConfig.style) === null || _c === void 0 ? void 0 : _c.customCSSUrl)
338
- || ((_d = customizationsFromEmbedConfig === null || customizationsFromEmbedConfig === void 0 ? void 0 : customizationsFromEmbedConfig.style) === null || _d === void 0 ? void 0 : _d.customCSSUrl)
339
- || customCssUrlFromEmbedConfig,
337
+ || ((_d = customizationsFromEmbedConfig === null || customizationsFromEmbedConfig === void 0 ? void 0 : customizationsFromEmbedConfig.style) === null || _d === void 0 ? void 0 : _d.customCSSUrl),
340
338
  },
341
339
  content: {
342
340
  ...customizationsFromEmbedConfig === null || customizationsFromEmbedConfig === void 0 ? void 0 : customizationsFromEmbedConfig.content,
@@ -1582,21 +1580,61 @@
1582
1580
  */
1583
1581
  EmbedEvent["Rename"] = "rename";
1584
1582
  /**
1585
- * Emitted when user wants to intercept the search execution
1583
+ * Emitted if the user wants to intercept the search execution
1584
+ * and implement logic to decide whether to run the search or not
1586
1585
  *
1587
- * Set IsOnBeforeGetVizDataInterceptEnabled : true to use
1588
- * this embed event
1586
+ * Prerequisite: Set isOnBeforeGetVizDataInterceptEnabled : true
1587
+ * for this embed event to get emitted.
1589
1588
  *
1589
+ * @param: payload
1590
+ * @param: responder
1591
+ * Contains elements that lets developers define whether ThoughtSpot
1592
+ * will run the search or not, and if not, which error message to provide.
1593
+ *
1594
+ * execute: When execute returns true, the search will be run.
1595
+ * When execute returns false, the search will not be executed.
1596
+ *
1597
+ * error: Developers can customize the user facing message when execute is
1598
+ * set to false using the error parameter in responder
1599
+ *
1600
+ * @version SDK : 1.29.0 | Thoughtspot : 10.2.0.cl
1601
+ *
1602
+ * @example
1590
1603
  *```js
1591
- * searchEmbed.on(EmbedEvent.OnBeforeGetVizDataIntercept,
1604
+ * .on(EmbedEvent.OnBeforeGetVizDataIntercept,
1592
1605
  * (payload, responder) => {
1593
1606
  * responder({
1594
1607
  * data: {
1595
- * execute: true,
1596
- * }})
1608
+ * execute:false,
1609
+ * error: {
1610
+ * //Provide a custom error message to explain to your end user
1611
+ * //why their search did not run
1612
+ * errorText: "This search query cannot be run.
1613
+ * Please contact your administrator for more details."
1614
+ * }
1615
+ * }})
1616
+ * })
1617
+ * ```
1618
+ *
1619
+ *```js
1620
+ * .on(EmbedEvent.OnBeforeGetVizDataIntercept,
1621
+ * (payload, responder) => {
1622
+ * const query = payload.data.data.answer.search_query
1623
+ * responder({
1624
+ * data: {
1625
+ * // returns true as long as the query does not include
1626
+ * // both the 'sales' AND the 'county' column
1627
+ * execute: !(query.includes("sales")&&query.includes("county")),
1628
+ * error: {
1629
+ * //Provide a custom error message to explain to your end user
1630
+ * // why their search did not run, and which searches are accepted by your custom logic.
1631
+ * errorText: "You can't use this query :" + query + ".
1632
+ * The 'sales' measures can never be used at the 'county' level.
1633
+ * Please try another measure, or remove 'county' from your search."
1634
+ * }
1635
+ * }})
1597
1636
  * })
1598
1637
  *```
1599
- * @version SDK : 1.29.0 | Thoughtspot : 10.2.0.cl
1600
1638
  */
1601
1639
  EmbedEvent["OnBeforeGetVizDataIntercept"] = "onBeforeGetVizDataIntercept";
1602
1640
  /**
@@ -1693,6 +1731,15 @@
1693
1731
  * @hidden
1694
1732
  */
1695
1733
  HostEvent["Reload"] = "reload";
1734
+ /**
1735
+ * Get current iframe src
1736
+ * @example
1737
+ * ```js
1738
+ * const frameUrl = AppEmbed.trigger(HostEvent.GetIframeUrl)
1739
+ * ```
1740
+ * @version SDK: 1.35.0 | Thoughtspot: 10.4.0.cl
1741
+ */
1742
+ HostEvent["GetIframeUrl"] = "GetIframeUrl";
1696
1743
  /**
1697
1744
  * Display specific visualizations on a Liveboard.
1698
1745
  * @param - An array of GUIDs of the visualization to show. The visualization IDs not passed
@@ -2294,11 +2341,24 @@
2294
2341
  * filter: {
2295
2342
  * column: "item type",
2296
2343
  * oper: "IN",
2297
- * values: ["bags","shirts"],
2344
+ * values: ["bags","shirts"]
2298
2345
  * }
2299
2346
  * });
2300
2347
  * ```
2301
2348
  * @example
2349
+ * ```js
2350
+ *
2351
+ * liveboardEmbed.trigger(HostEvent.UpdateFilters, {
2352
+ * filter: {
2353
+ * column: "date",
2354
+ * oper: "EQ",
2355
+ * values: ["JULY","2023"],
2356
+ * type: "MONTH_YEAR"
2357
+ * }
2358
+ * });
2359
+ * ```
2360
+ *
2361
+ * @example
2302
2362
  *
2303
2363
  * ```js
2304
2364
  * liveboardEmbed.trigger(HostEvent.UpdateFilters, {
@@ -2315,7 +2375,8 @@
2315
2375
  * {
2316
2376
  * column: "Date",
2317
2377
  * oper: 'EQ',
2318
- * values: ["1656680400"]
2378
+ * values: ["2023-07-31"],
2379
+ * types: "EXACT_DATE"
2319
2380
  * }]
2320
2381
  * });
2321
2382
  * ```
@@ -2505,7 +2566,6 @@
2505
2566
  Param["ViewPortHeight"] = "viewPortHeight";
2506
2567
  Param["ViewPortWidth"] = "viewPortWidth";
2507
2568
  Param["VisibleActions"] = "visibleAction";
2508
- Param["CustomCSSUrl"] = "customCssUrl";
2509
2569
  Param["DisableLoginRedirect"] = "disableLoginRedirect";
2510
2570
  Param["visibleVizs"] = "pinboardVisibleVizs";
2511
2571
  Param["LiveboardV2Enabled"] = "isPinboardV2Enabled";
@@ -2564,6 +2624,9 @@
2564
2624
  Param["FocusSearchBarOnRender"] = "focusSearchBarOnRender";
2565
2625
  Param["DisableRedirectionLinksInNewTab"] = "disableRedirectionLinksInNewTab";
2566
2626
  Param["HomePageSearchBarMode"] = "homePageSearchBarMode";
2627
+ Param["ShowLiveboardVerifiedBadge"] = "showLiveboardVerifiedBadge";
2628
+ Param["ShowLiveboardReverifyBanner"] = "showLiveboardReverifyBanner";
2629
+ Param["LiveboardHeaderV2"] = "isLiveboardHeaderV2Enabled";
2567
2630
  })(Param || (Param = {}));
2568
2631
  (function (Action) {
2569
2632
  /**
@@ -3459,7 +3522,7 @@
3459
3522
  *
3460
3523
  * @version SDK: 1.32.0 | Thoughtspot: 10.1.0.cl
3461
3524
  */
3462
- Action["CreateLiveboard"] = "CreateLiveboard";
3525
+ Action["CreateLiveboard"] = "createLiveboard";
3463
3526
  /**
3464
3527
  * Action ID for to hide Verified Liveboard Banner
3465
3528
  * @example
@@ -3550,6 +3613,16 @@
3550
3613
  * @version SDK: 1.34.0 | Thoughtspot: 10.3.0.cl
3551
3614
  */
3552
3615
  Action["UnsubscribeScheduleHomepage"] = "unsubscribeScheduleHomepage";
3616
+ /**
3617
+ * The **Manage Tags** action on Homepage Favourite Module.
3618
+ *
3619
+ * @example
3620
+ * ```js
3621
+ * disabledActions: [Action.ManageTags]
3622
+ * ```
3623
+ * @version SDK : 1.34.0 | Thoughtspot: 10.3.0.cl
3624
+ */
3625
+ Action["ManageTags"] = "manageTags";
3553
3626
  /**
3554
3627
  * Action ID for delete schedule action on schedule on homepage
3555
3628
  * @example
@@ -6164,7 +6237,11 @@
6164
6237
  const tokenizedFetch = async (input, init) => {
6165
6238
  const embedConfig = getEmbedConfig();
6166
6239
  if (embedConfig.authType !== AuthType.TrustedAuthTokenCookieless) {
6167
- return fetch(input, init);
6240
+ return fetch(input, {
6241
+ // ensure cookies are included for the non cookie-less api calls.
6242
+ credentials: 'include',
6243
+ ...init,
6244
+ });
6168
6245
  }
6169
6246
  const req = new Request(input, init);
6170
6247
  const authToken = await getAuthenticationToken(embedConfig);
@@ -6373,7 +6450,6 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
6373
6450
  isDiscoverable
6374
6451
  isHidden
6375
6452
  modifiedAt
6376
- tags
6377
6453
  }
6378
6454
  visualizations {
6379
6455
  ... on TableViz {
@@ -6418,6 +6494,14 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
6418
6494
  }
6419
6495
  }
6420
6496
  }
6497
+ `;
6498
+ const getSQLQuery = `
6499
+ mutation GetSQLQuery($session: BachSessionIdInput!) {
6500
+ Answer__getQuery(session: $session) {
6501
+ ${bachSessionId}
6502
+ sql
6503
+ }
6504
+ }
6421
6505
  `;
6422
6506
 
6423
6507
  // eslint-disable-next-line no-shadow
@@ -6549,6 +6633,10 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
6549
6633
  },
6550
6634
  });
6551
6635
  }
6636
+ async getSQLQuery() {
6637
+ const { sql } = await this.executeQuery(getSQLQuery, {});
6638
+ return sql;
6639
+ }
6552
6640
  /**
6553
6641
  * Fetch data from the answer.
6554
6642
  * @param offset
@@ -6583,6 +6671,20 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
6583
6671
  credentials: 'include',
6584
6672
  });
6585
6673
  }
6674
+ /**
6675
+ * Fetch the data for the answer as a PNG blob. This might be
6676
+ * quicker for larger data.
6677
+ * @param userLocale
6678
+ * @param omitBackground Omit the background in the PNG
6679
+ * @param deviceScaleFactor The scale factor for the PNG
6680
+ * @return Response
6681
+ */
6682
+ async fetchPNGBlob(userLocale = 'en-us', omitBackground = false, deviceScaleFactor = 2) {
6683
+ const fetchUrl = this.getFetchPNGBlobUrl(userLocale, omitBackground, deviceScaleFactor);
6684
+ return tokenizedFetch(fetchUrl, {
6685
+ credentials: 'include',
6686
+ });
6687
+ }
6586
6688
  /**
6587
6689
  * Just get the internal URL for this answer's data
6588
6690
  * as a CSV blob.
@@ -6593,6 +6695,13 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
6593
6695
  getFetchCSVBlobUrl(userLocale = 'en-us', includeInfo = false) {
6594
6696
  return `${this.thoughtSpotHost}/prism/download/answer/csv?sessionId=${this.session.sessionId}&genNo=${this.session.genNo}&userLocale=${userLocale}&exportFileName=data&hideCsvHeader=${!includeInfo}`;
6595
6697
  }
6698
+ /**
6699
+ * Just get the internal URL for this answer's data
6700
+ * as a PNG blob.
6701
+ */
6702
+ getFetchPNGBlobUrl(userLocale = 'en-us', omitBackground = false, deviceScaleFactor = 2) {
6703
+ return `${this.thoughtSpotHost}/prism/download/answer/png?sessionId=${this.session.sessionId}&deviceScaleFactor=${deviceScaleFactor}&omitBackground=${omitBackground}&genNo=${this.session.genNo}&userLocale=${userLocale}&exportFileName=data`;
6704
+ }
6596
6705
  /**
6597
6706
  * Get underlying data given a point and the output column names.
6598
6707
  * In case of a context menu action, the selectedPoints are
@@ -6799,7 +6908,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
6799
6908
 
6800
6909
  var Config = {
6801
6910
  DEBUG: false,
6802
- LIB_VERSION: '2.45.0'
6911
+ LIB_VERSION: '2.47.0'
6803
6912
  };
6804
6913
 
6805
6914
  // since es6 imports are static and we run unit tests from the console, window won't be defined when importing this file
@@ -7629,20 +7738,24 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
7629
7738
 
7630
7739
  _.UUID = (function() {
7631
7740
 
7632
- // Time/ticks information
7633
- // 1*new Date() is a cross browser version of Date.now()
7741
+ // Time-based entropy
7634
7742
  var T = function() {
7635
- var d = 1 * new Date(),
7636
- i = 0;
7637
-
7638
- // this while loop figures how many browser ticks go by
7639
- // before 1*new Date() returns a new number, ie the amount
7640
- // of ticks that go by per millisecond
7641
- while (d == 1 * new Date()) {
7642
- i++;
7743
+ var time = 1 * new Date(); // cross-browser version of Date.now()
7744
+ var ticks;
7745
+ if (window$1.performance && window$1.performance.now) {
7746
+ ticks = window$1.performance.now();
7747
+ } else {
7748
+ // fall back to busy loop
7749
+ ticks = 0;
7750
+
7751
+ // this while loop figures how many browser ticks go by
7752
+ // before 1*new Date() returns a new number, ie the amount
7753
+ // of ticks that go by per millisecond
7754
+ while (time == 1 * new Date()) {
7755
+ ticks++;
7756
+ }
7643
7757
  }
7644
-
7645
- return d.toString(16) + i.toString(16);
7758
+ return time.toString(16) + Math.floor(ticks).toString(16);
7646
7759
  };
7647
7760
 
7648
7761
  // Math.Random entropy
@@ -8209,21 +8322,42 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
8209
8322
  };
8210
8323
  })();
8211
8324
 
8325
+ var CAMPAIGN_KEYWORDS = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term'];
8326
+ var CLICK_IDS = ['dclid', 'fbclid', 'gclid', 'ko_click_id', 'li_fat_id', 'msclkid', 'ttclid', 'twclid', 'wbraid'];
8327
+
8212
8328
  _.info = {
8213
- campaignParams: function() {
8214
- var campaign_keywords = 'utm_source utm_medium utm_campaign utm_content utm_term'.split(' '),
8215
- kw = '',
8329
+ campaignParams: function(default_value) {
8330
+ var kw = '',
8216
8331
  params = {};
8217
- _.each(campaign_keywords, function(kwkey) {
8332
+ _.each(CAMPAIGN_KEYWORDS, function(kwkey) {
8218
8333
  kw = _.getQueryParam(document$1.URL, kwkey);
8219
8334
  if (kw.length) {
8220
8335
  params[kwkey] = kw;
8336
+ } else if (default_value !== undefined) {
8337
+ params[kwkey] = default_value;
8338
+ }
8339
+ });
8340
+
8341
+ return params;
8342
+ },
8343
+
8344
+ clickParams: function() {
8345
+ var id = '',
8346
+ params = {};
8347
+ _.each(CLICK_IDS, function(idkey) {
8348
+ id = _.getQueryParam(document$1.URL, idkey);
8349
+ if (id.length) {
8350
+ params[idkey] = id;
8221
8351
  }
8222
8352
  });
8223
8353
 
8224
8354
  return params;
8225
8355
  },
8226
8356
 
8357
+ marketingParams: function() {
8358
+ return _.extend(_.info.campaignParams(), _.info.clickParams());
8359
+ },
8360
+
8227
8361
  searchEngine: function(referrer) {
8228
8362
  if (referrer.search('https?://(.*)google.([^/?]*)') === 0) {
8229
8363
  return 'google';
@@ -8420,12 +8554,13 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
8420
8554
  });
8421
8555
  },
8422
8556
 
8423
- pageviewInfo: function(page) {
8557
+ mpPageViewProperties: function() {
8424
8558
  return _.strip_empty_properties({
8425
- 'mp_page': page,
8426
- 'mp_referrer': document$1.referrer,
8427
- 'mp_browser': _.info.browser(userAgent, navigator.vendor, windowOpera),
8428
- 'mp_platform': _.info.os()
8559
+ 'current_page_title': document$1.title,
8560
+ 'current_domain': window$1.location.hostname,
8561
+ 'current_url_path': window$1.location.pathname,
8562
+ 'current_url_protocol': window$1.location.protocol,
8563
+ 'current_url_search': window$1.location.search
8429
8564
  });
8430
8565
  }
8431
8566
  };
@@ -9092,6 +9227,9 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
9092
9227
 
9093
9228
  this.stopped = !this.libConfig['batch_autostart'];
9094
9229
  this.consecutiveRemovalFailures = 0;
9230
+
9231
+ // extra client-side dedupe
9232
+ this.itemIdsSentSuccessfully = {};
9095
9233
  };
9096
9234
 
9097
9235
  /**
@@ -9184,7 +9322,34 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
9184
9322
  payload = this.beforeSendHook(payload);
9185
9323
  }
9186
9324
  if (payload) {
9187
- dataForRequest.push(payload);
9325
+ // mp_sent_by_lib_version prop captures which lib version actually
9326
+ // sends each event (regardless of which version originally queued
9327
+ // it for sending)
9328
+ if (payload['event'] && payload['properties']) {
9329
+ payload['properties'] = _.extend(
9330
+ {},
9331
+ payload['properties'],
9332
+ {'mp_sent_by_lib_version': Config.LIB_VERSION}
9333
+ );
9334
+ }
9335
+ var addPayload = true;
9336
+ var itemId = item['id'];
9337
+ if (itemId) {
9338
+ if ((this.itemIdsSentSuccessfully[itemId] || 0) > 5) {
9339
+ this.reportError('[dupe] item ID sent too many times, not sending', {
9340
+ item: item,
9341
+ batchSize: batch.length,
9342
+ timesSent: this.itemIdsSentSuccessfully[itemId]
9343
+ });
9344
+ addPayload = false;
9345
+ }
9346
+ } else {
9347
+ this.reportError('[dupe] found item with no ID', {item: item});
9348
+ }
9349
+
9350
+ if (addPayload) {
9351
+ dataForRequest.push(payload);
9352
+ }
9188
9353
  }
9189
9354
  transformedItems[item['id']] = payload;
9190
9355
  }, this);
@@ -9267,6 +9432,24 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
9267
9432
  }
9268
9433
  }, this)
9269
9434
  );
9435
+
9436
+ // client-side dedupe
9437
+ _.each(batch, _.bind(function(item) {
9438
+ var itemId = item['id'];
9439
+ if (itemId) {
9440
+ this.itemIdsSentSuccessfully[itemId] = this.itemIdsSentSuccessfully[itemId] || 0;
9441
+ this.itemIdsSentSuccessfully[itemId]++;
9442
+ if (this.itemIdsSentSuccessfully[itemId] > 5) {
9443
+ this.reportError('[dupe] item ID sent too many times', {
9444
+ item: item,
9445
+ batchSize: batch.length,
9446
+ timesSent: this.itemIdsSentSuccessfully[itemId]
9447
+ });
9448
+ }
9449
+ } else {
9450
+ this.reportError('[dupe] found item with no ID while removing', {item: item});
9451
+ }
9452
+ }, this));
9270
9453
  }
9271
9454
 
9272
9455
  } catch(err) {
@@ -10112,24 +10295,25 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
10112
10295
  });
10113
10296
 
10114
10297
  /*
10115
- * Record that you have charged the current user a certain amount
10116
- * of money. Charges recorded with track_charge() will appear in the
10117
- * Mixpanel revenue report.
10118
- *
10119
- * ### Usage:
10120
- *
10121
- * // charge a user $50
10122
- * mixpanel.people.track_charge(50);
10123
- *
10124
- * // charge a user $30.50 on the 2nd of january
10125
- * mixpanel.people.track_charge(30.50, {
10126
- * '$time': new Date('jan 1 2012')
10127
- * });
10128
- *
10129
- * @param {Number} amount The amount of money charged to the current user
10130
- * @param {Object} [properties] An associative array of properties associated with the charge
10131
- * @param {Function} [callback] If provided, the callback will be called when the server responds
10132
- */
10298
+ * Record that you have charged the current user a certain amount
10299
+ * of money. Charges recorded with track_charge() will appear in the
10300
+ * Mixpanel revenue report.
10301
+ *
10302
+ * ### Usage:
10303
+ *
10304
+ * // charge a user $50
10305
+ * mixpanel.people.track_charge(50);
10306
+ *
10307
+ * // charge a user $30.50 on the 2nd of january
10308
+ * mixpanel.people.track_charge(30.50, {
10309
+ * '$time': new Date('jan 1 2012')
10310
+ * });
10311
+ *
10312
+ * @param {Number} amount The amount of money charged to the current user
10313
+ * @param {Object} [properties] An associative array of properties associated with the charge
10314
+ * @param {Function} [callback] If provided, the callback will be called when the server responds
10315
+ * @deprecated
10316
+ */
10133
10317
  MixpanelPeople.prototype.track_charge = addOptOutCheckMixpanelPeople(function(amount, properties, callback) {
10134
10318
  if (!_.isNumber(amount)) {
10135
10319
  amount = parseFloat(amount);
@@ -10145,15 +10329,16 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
10145
10329
  });
10146
10330
 
10147
10331
  /*
10148
- * Permanently clear all revenue report transactions from the
10149
- * current user's people analytics profile.
10150
- *
10151
- * ### Usage:
10152
- *
10153
- * mixpanel.people.clear_charges();
10154
- *
10155
- * @param {Function} [callback] If provided, the callback will be called after tracking the event.
10156
- */
10332
+ * Permanently clear all revenue report transactions from the
10333
+ * current user's people analytics profile.
10334
+ *
10335
+ * ### Usage:
10336
+ *
10337
+ * mixpanel.people.clear_charges();
10338
+ *
10339
+ * @param {Function} [callback] If provided, the callback will be called after tracking the event.
10340
+ * @deprecated
10341
+ */
10157
10342
  MixpanelPeople.prototype.clear_charges = function(callback) {
10158
10343
  return this.set('$transactions', [], callback);
10159
10344
  };
@@ -10553,13 +10738,6 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
10553
10738
  }
10554
10739
  };
10555
10740
 
10556
- MixpanelPersistence.prototype.update_campaign_params = function() {
10557
- if (!this.campaign_params_saved) {
10558
- this.register_once(_.info.campaignParams());
10559
- this.campaign_params_saved = true;
10560
- }
10561
- };
10562
-
10563
10741
  MixpanelPersistence.prototype.update_search_keyword = function(referrer) {
10564
10742
  this.register(_.info.searchInfo(referrer));
10565
10743
  };
@@ -10842,6 +11020,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
10842
11020
  /** @const */ var PRIMARY_INSTANCE_NAME = 'mixpanel';
10843
11021
  /** @const */ var PAYLOAD_TYPE_BASE64 = 'base64';
10844
11022
  /** @const */ var PAYLOAD_TYPE_JSON = 'json';
11023
+ /** @const */ var DEVICE_ID_PREFIX = '$device:';
10845
11024
 
10846
11025
 
10847
11026
  /*
@@ -10883,6 +11062,9 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
10883
11062
  'cookie_domain': '',
10884
11063
  'cookie_name': '',
10885
11064
  'loaded': NOOP_FUNC,
11065
+ 'track_marketing': true,
11066
+ 'track_pageview': false,
11067
+ 'skip_first_touch_marketing': false,
10886
11068
  'store_google': true,
10887
11069
  'save_referrer': true,
10888
11070
  'test': false,
@@ -10949,6 +11131,25 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
10949
11131
  instance['people'] = new MixpanelPeople();
10950
11132
  instance['people']._init(instance);
10951
11133
 
11134
+ if (!instance.get_config('skip_first_touch_marketing')) {
11135
+ // We need null UTM params in the object because
11136
+ // UTM parameters act as a tuple. If any UTM param
11137
+ // is present, then we set all UTM params including
11138
+ // empty ones together
11139
+ var utm_params = _.info.campaignParams(null);
11140
+ var initial_utm_params = {};
11141
+ var has_utm = false;
11142
+ _.each(utm_params, function(utm_value, utm_key) {
11143
+ initial_utm_params['initial_' + utm_key] = utm_value;
11144
+ if (utm_value) {
11145
+ has_utm = true;
11146
+ }
11147
+ });
11148
+ if (has_utm) {
11149
+ instance['people'].set_once(initial_utm_params);
11150
+ }
11151
+ }
11152
+
10952
11153
  // if any instance on the page has debug = true, we set the
10953
11154
  // global debug to be true
10954
11155
  Config.DEBUG = Config.DEBUG || instance.get_config('debug');
@@ -10980,7 +11181,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
10980
11181
  * mixpanel.library_name.track(...);
10981
11182
  *
10982
11183
  * @param {String} token Your Mixpanel API token
10983
- * @param {Object} [config] A dictionary of config options to override. <a href="https://github.com/mixpanel/mixpanel-js/blob/8b2e1f7b/src/mixpanel-core.js#L87-L110">See a list of default config options</a>.
11184
+ * @param {Object} [config] A dictionary of config options to override. <a href="https://github.com/mixpanel/mixpanel-js/blob/v2.46.0/src/mixpanel-core.js#L88-L127">See a list of default config options</a>.
10984
11185
  * @param {String} [name] The name for the new mixpanel instance that you want created
10985
11186
  */
10986
11187
  MixpanelLib.prototype.init = function (token, config, name) {
@@ -11018,7 +11219,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11018
11219
  // default to JSON payload for standard mixpanel.com API hosts
11019
11220
  if (!('api_payload_format' in config)) {
11020
11221
  var api_host = config['api_host'] || DEFAULT_CONFIG['api_host'];
11021
- if (api_host.match(/\.mixpanel\.com$/)) {
11222
+ if (api_host.match(/\.mixpanel\.com/)) {
11022
11223
  variable_features['api_payload_format'] = PAYLOAD_TYPE_JSON;
11023
11224
  }
11024
11225
  }
@@ -11089,10 +11290,14 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11089
11290
  // or the device id if something was already stored
11090
11291
  // in the persitence
11091
11292
  this.register_once({
11092
- 'distinct_id': uuid,
11293
+ 'distinct_id': DEVICE_ID_PREFIX + uuid,
11093
11294
  '$device_id': uuid
11094
11295
  }, '');
11095
11296
  }
11297
+
11298
+ if (this.get_config('track_pageview')) {
11299
+ this.track_pageview();
11300
+ }
11096
11301
  };
11097
11302
 
11098
11303
  // Private methods
@@ -11106,7 +11311,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11106
11311
  MixpanelLib.prototype._set_default_superprops = function() {
11107
11312
  this['persistence'].update_search_keyword(document$1.referrer);
11108
11313
  if (this.get_config('store_google')) {
11109
- this['persistence'].update_campaign_params();
11314
+ this.register(_.info.campaignParams(), {persistent: false});
11110
11315
  }
11111
11316
  if (this.get_config('save_referrer')) {
11112
11317
  this['persistence'].update_referrer_info(document$1.referrer);
@@ -11588,6 +11793,10 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11588
11793
 
11589
11794
  this._set_default_superprops();
11590
11795
 
11796
+ var marketing_properties = this.get_config('track_marketing')
11797
+ ? _.info.marketingParams()
11798
+ : {};
11799
+
11591
11800
  // note: extend writes to the first object, so lets make sure we
11592
11801
  // don't write to the persistence properties object and info
11593
11802
  // properties object by passing in a new object
@@ -11596,6 +11805,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11596
11805
  properties = _.extend(
11597
11806
  {},
11598
11807
  _.info.properties(),
11808
+ marketing_properties,
11599
11809
  this['persistence'].properties(),
11600
11810
  this.unpersisted_superprops,
11601
11811
  properties
@@ -11756,17 +11966,54 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11756
11966
  };
11757
11967
 
11758
11968
  /**
11759
- * Track mp_page_view event. This is now ignored by the server.
11969
+ * Track a default Mixpanel page view event, which includes extra default event properties to
11970
+ * improve page view data. The `config.track_pageview` option for <a href="#mixpanelinit">mixpanel.init()</a>
11971
+ * may be turned on for tracking page loads automatically.
11760
11972
  *
11761
- * @param {String} [page] The url of the page to record. If you don't include this, it defaults to the current url.
11762
- * @deprecated
11973
+ * ### Usage
11974
+ *
11975
+ * // track a default $mp_web_page_view event
11976
+ * mixpanel.track_pageview();
11977
+ *
11978
+ * // track a page view event with additional event properties
11979
+ * mixpanel.track_pageview({'ab_test_variant': 'card-layout-b'});
11980
+ *
11981
+ * // example approach to track page views on different page types as event properties
11982
+ * mixpanel.track_pageview({'page': 'pricing'});
11983
+ * mixpanel.track_pageview({'page': 'homepage'});
11984
+ *
11985
+ * // UNCOMMON: Tracking a page view event with a custom event_name option. NOT expected to be used for
11986
+ * // individual pages on the same site or product. Use cases for custom event_name may be page
11987
+ * // views on different products or internal applications that are considered completely separate
11988
+ * mixpanel.track_pageview({'page': 'customer-search'}, {'event_name': '[internal] Admin Page View'});
11989
+ *
11990
+ * @param {Object} [properties] An optional set of additional properties to send with the page view event
11991
+ * @param {Object} [options] Page view tracking options
11992
+ * @param {String} [options.event_name] - Alternate name for the tracking event
11993
+ * @returns {Boolean|Object} If the tracking request was successfully initiated/queued, an object
11994
+ * with the tracking payload sent to the API server is returned; otherwise false.
11763
11995
  */
11764
- MixpanelLib.prototype.track_pageview = function(page) {
11765
- if (_.isUndefined(page)) {
11766
- page = document$1.location.href;
11996
+ MixpanelLib.prototype.track_pageview = addOptOutCheckMixpanelLib(function(properties, options) {
11997
+ if (typeof properties !== 'object') {
11998
+ properties = {};
11767
11999
  }
11768
- this.track('mp_page_view', _.info.pageviewInfo(page));
11769
- };
12000
+ options = options || {};
12001
+ var event_name = options['event_name'] || '$mp_web_page_view';
12002
+
12003
+ var default_page_properties = _.extend(
12004
+ _.info.mpPageViewProperties(),
12005
+ _.info.campaignParams(),
12006
+ _.info.clickParams()
12007
+ );
12008
+
12009
+ var event_properties = _.extend(
12010
+ {},
12011
+ default_page_properties,
12012
+ properties
12013
+ );
12014
+
12015
+ return this.track(event_name, event_properties);
12016
+ });
11770
12017
 
11771
12018
  /**
11772
12019
  * Track clicks on a set of document elements. Selector must be a
@@ -12015,7 +12262,15 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12015
12262
  // _unset_callback:function A callback to be run if and when the People unset queue is flushed
12016
12263
 
12017
12264
  var previous_distinct_id = this.get_distinct_id();
12018
- this.register({'$user_id': new_distinct_id});
12265
+ if (new_distinct_id && previous_distinct_id !== new_distinct_id) {
12266
+ // we allow the following condition if previous distinct_id is same as new_distinct_id
12267
+ // so that you can force flush people updates for anonymous profiles.
12268
+ if (typeof new_distinct_id === 'string' && new_distinct_id.indexOf(DEVICE_ID_PREFIX) === 0) {
12269
+ this.report_error('distinct_id cannot have $device: prefix');
12270
+ return -1;
12271
+ }
12272
+ this.register({'$user_id': new_distinct_id});
12273
+ }
12019
12274
 
12020
12275
  if (!this.get_property('$device_id')) {
12021
12276
  // The persisted distinct id might not actually be a device id at all
@@ -12056,7 +12311,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12056
12311
  this._flags.identify_called = false;
12057
12312
  var uuid = _.UUID();
12058
12313
  this.register_once({
12059
- 'distinct_id': uuid,
12314
+ 'distinct_id': DEVICE_ID_PREFIX + uuid,
12060
12315
  '$device_id': uuid
12061
12316
  }, '');
12062
12317
  };
@@ -12181,8 +12436,8 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12181
12436
  * // batching or retry mechanisms.
12182
12437
  * api_transport: 'XHR'
12183
12438
  *
12184
- * // turn on request-batching/queueing/retry
12185
- * batch_requests: false,
12439
+ * // request-batching/queueing/retry
12440
+ * batch_requests: true,
12186
12441
  *
12187
12442
  * // maximum number of events/updates to send in a single
12188
12443
  * // network request
@@ -12254,10 +12509,20 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12254
12509
  * // secure, meaning they will only be transmitted over https
12255
12510
  * secure_cookie: false
12256
12511
  *
12512
+ * // disables enriching user profiles with first touch marketing data
12513
+ * skip_first_touch_marketing: false
12514
+ *
12257
12515
  * // the amount of time track_links will
12258
12516
  * // wait for Mixpanel's servers to respond
12259
12517
  * track_links_timeout: 300
12260
12518
  *
12519
+ * // adds any UTM parameters and click IDs present on the page to any events fired
12520
+ * track_marketing: true
12521
+ *
12522
+ * // enables automatic page view tracking using default page view events through
12523
+ * // the track_pageview() method
12524
+ * track_pageview: false
12525
+ *
12261
12526
  * // if you set upgrade to be true, the library will check for
12262
12527
  * // a cookie from our old js library and import super
12263
12528
  * // properties from it, then the old cookie is deleted
@@ -12782,6 +13047,10 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12782
13047
  // Needed to avoid error in CJS builds on some bundlers.
12783
13048
  const mixpanelLib = mixpanel_cjs || mixpanel$1;
12784
13049
  let mixpanelInstance;
13050
+ /**
13051
+ * Enum of mixpanel events
13052
+ * @hidden
13053
+ */
12785
13054
  const MIXPANEL_EVENT = {
12786
13055
  VISUAL_SDK_RENDER_START: 'visual-sdk-render-start',
12787
13056
  VISUAL_SDK_CALLED_INIT: 'visual-sdk-called-init',
@@ -13765,8 +14034,8 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
13765
14034
  * @param containerEl
13766
14035
  */
13767
14036
  function processAuthFailure(e, containerEl) {
13768
- const { loginFailedMessage, authType } = getEmbedConfig();
13769
- if (authType !== AuthType.None) {
14037
+ const { loginFailedMessage, authType, disableLoginFailurePage } = getEmbedConfig();
14038
+ if (authType !== AuthType.None && !disableLoginFailurePage) {
13770
14039
  // eslint-disable-next-line no-param-reassign
13771
14040
  containerEl.innerHTML = loginFailedMessage;
13772
14041
  notifyAuthFailure(AuthFailureType.OTHER);
@@ -13867,7 +14136,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
13867
14136
  });
13868
14137
  }
13869
14138
 
13870
- var name="@thoughtspot/visual-embed-sdk";var version="1.33.0-alpha.2";var description="ThoughtSpot Embed SDK";var module="lib/src/index.js";var main="dist/tsembed.js";var types="lib/src/index.d.ts";var files=["dist/**","lib/**","src/**","cjs/**"];var exports$1={".":{"import":"./lib/src/index.js",require:"./cjs/src/index.js",types:"./lib/src/index.d.ts"},"./react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"},"./lib/src/react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"}};var typesVersions={"*":{react:["./lib/src/react/all-types-export.d.ts"]}};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p . --incremental false; tsc -p . --incremental false --module commonjs --outDir cjs",start:"gatsby develop","build:gatsby":"npm run clean:gatsby && gatsby build --prefix-paths","build:gatsby:noprefix":"npm run clean:gatsby && gatsby build","serve:gatsby":"gatsby serve","clean:gatsby":"gatsby clean","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts-file":"dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts","bundle-dts":"dts-bundle --name ../../dist/visual-embed-sdk --main lib/src/index.d.ts --outputAsModuleFolder=true","bundle-dts-react":"dts-bundle --name ../../../dist/visual-embed-sdk-react --main lib/src/react/index.d.ts --outputAsModuleFolder=true","bundle-dts-react-full":"dts-bundle --name ../../../dist/visual-embed-sdk-react-full --main lib/src/react/all-types-export.d.ts --outputAsModuleFolder=true",build:"rollup -c",watch:"rollup -cw","docs-cmd":"node scripts/gatsby-commands.js",docgen:"typedoc --tsconfig tsconfig.json --theme typedoc-theme","test-sdk":"jest -c jest.config.sdk.js --runInBand","test-docs":"jest -c jest.config.docs.js",test:"npm run test-sdk && npm run test-docs",posttest:"cat ./coverage/sdk/lcov.info | coveralls","is-publish-allowed":"node scripts/is-publish-allowed.js",prepublishOnly:"npm run is-publish-allowed && npm run test && npm run tsc && npm run bundle-dts-file && npm run bundle-dts && npm run bundle-dts-react && npm run bundle-dts-react-full && npm run build","check-size":"npm run build && size-limit","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest",dev:"vite -c vite.local.config.ts"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={algoliasearch:"^4.10.5",classnames:"^2.3.1",dompurify:"^2.3.4","eslint-plugin-comment-length":"^0.9.2","eslint-plugin-jsdoc":"^46.9.0",eventemitter3:"^4.0.7","gatsby-plugin-vercel":"^1.0.3","html-react-parser":"^1.4.12",lodash:"^4.17.21","mixpanel-browser":"^2.45.0","ts-deepmerge":"^6.0.2",tslib:"^2.5.3","use-deep-compare-effect":"^1.8.1"};var devDependencies={"@mdx-js/mdx":"^1.6.22","@mdx-js/react":"^1.6.22","@react-icons/all-files":"^4.1.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^11.2.1","@rollup/plugin-replace":"^5.0.2","@size-limit/preset-big-lib":"^8.2.6","@testing-library/dom":"^7.31.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^11.2.7","@testing-library/user-event":"^13.1.8","@types/jest":"^22.2.3","@types/mixpanel-browser":"^2.35.6","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0",asciidoctor:"^2.2.1","babel-jest":"^26.6.3","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1",coveralls:"^3.1.0","current-git-branch":"^1.1.0","dts-bundle":"^0.7.3",eslint:"^7.12.1","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.15.0","eslint-import-resolver-typescript":"^2.3.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.1.4","eslint-plugin-react-hooks":"^4.2.0","fs-extra":"^10.0.0",gatsby:"3.13.1","gatsby-plugin-algolia":"^0.22.2","gatsby-plugin-catch-links":"^3.1.0","gatsby-plugin-env-variables":"^2.1.0","gatsby-plugin-intl":"^0.3.3","gatsby-plugin-manifest":"^3.2.0","gatsby-plugin-output":"^0.1.3","gatsby-plugin-sass":"6.7.0","gatsby-plugin-sitemap":"^4.10.0","gatsby-source-filesystem":"3.1.0","gatsby-transformer-asciidoc":"2.1.0","gatsby-transformer-rehype":"2.0.0","gh-pages":"^3.1.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^1.1.1",jest:"^26.6.3","jest-fetch-mock":"^3.0.3",jsdom:"^17.0.0","node-sass":"^8.0.0",prettier:"2.1.2",react:"^16.14.0","react-dom":"^16.14.0","react-resizable":"^1.11.0","react-resize-detector":"^6.6.0","react-test-renderer":"^17.0.2","react-use-flexsearch":"^0.1.1",rollup:"2.30.0","rollup-plugin-typescript2":"0.27.3","ts-jest":"^26.5.5","ts-loader":"8.0.4",typedoc:"0.21.6","typedoc-plugin-toc-group":"thoughtspot/typedoc-plugin-toc-group",typescript:"^4.9.4","url-search-params-polyfill":"^8.1.0",util:"^0.12.4",vite:"^5.3.4"};var author="ThoughtSpot";var email="support@thoughtspot.com";var license="ThoughtSpot Development Tools End User License Agreement";var directories={lib:"lib"};var repository={type:"git",url:"git+https://github.com/thoughtspot/visual-embed-sdk.git"};var publishConfig={registry:"https://registry.npmjs.org"};var keywords=["thoughtspot","everywhere","embedded","embed","sdk","analytics"];var bugs={url:"https://github.com/thoughtspot/visual-embed-sdk/issues"};var homepage="https://github.com/thoughtspot/visual-embed-sdk#readme";var globals={window:{}};var pkgInfo = {name:name,version:version,description:description,module:module,main:main,types:types,files:files,exports:exports$1,typesVersions:typesVersions,"size-limit":[{path:"dist/tsembed.js",limit:"48 kB"}],scripts:scripts,peerDependencies:peerDependencies,dependencies:dependencies,devDependencies:devDependencies,author:author,email:email,license:license,directories:directories,repository:repository,publishConfig:publishConfig,keywords:keywords,bugs:bugs,homepage:homepage,globals:globals};
14139
+ var name="@thoughtspot/visual-embed-sdk";var version="1.33.0";var description="ThoughtSpot Embed SDK";var module="lib/src/index.js";var main="dist/tsembed.js";var types="lib/src/index.d.ts";var files=["dist/**","lib/**","src/**","cjs/**"];var exports$1={".":{"import":"./lib/src/index.js",require:"./cjs/src/index.js",types:"./lib/src/index.d.ts"},"./react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"},"./lib/src/react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"}};var typesVersions={"*":{react:["./lib/src/react/all-types-export.d.ts"]}};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p . --incremental false; tsc -p . --incremental false --module commonjs --outDir cjs","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts-file":"dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts","bundle-dts":"dts-bundle --name ../../dist/visual-embed-sdk --main lib/src/index.d.ts --outputAsModuleFolder=true","bundle-dts-react":"dts-bundle --name ../../../dist/visual-embed-sdk-react --main lib/src/react/index.d.ts --outputAsModuleFolder=true","bundle-dts-react-full":"dts-bundle --name ../../../dist/visual-embed-sdk-react-full --main lib/src/react/all-types-export.d.ts --outputAsModuleFolder=true",build:"rollup -c",watch:"rollup -cw",docgen:"typedoc --tsconfig tsconfig.json --theme typedoc-theme --json static/typedoc/typedoc.json --disableOutputCheck","test-sdk":"jest -c jest.config.sdk.js --runInBand",test:"npm run test-sdk",posttest:"cat ./coverage/sdk/lcov.info | coveralls","is-publish-allowed":"node scripts/is-publish-allowed.js",prepublishOnly:"npm run is-publish-allowed && npm run test && npm run tsc && npm run bundle-dts-file && npm run bundle-dts && npm run bundle-dts-react && npm run bundle-dts-react-full && npm run build","check-size":"npm run build && size-limit","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest",dev:"vite -c vite.local.config.ts"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={algoliasearch:"^4.10.5",classnames:"^2.3.1",dompurify:"^2.3.4","eslint-plugin-comment-length":"^0.9.2","eslint-plugin-jsdoc":"^46.9.0",eventemitter3:"^4.0.7","gatsby-plugin-vercel":"^1.0.3","html-react-parser":"^1.4.12",lodash:"^4.17.21","mixpanel-browser":"2.47.0","ts-deepmerge":"^6.0.2",tslib:"^2.5.3","use-deep-compare-effect":"^1.8.1"};var devDependencies={"@mdx-js/mdx":"^1.6.22","@mdx-js/react":"^1.6.22","@react-icons/all-files":"^4.1.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^11.2.1","@rollup/plugin-replace":"^5.0.2","@size-limit/preset-big-lib":"^8.2.6","@testing-library/dom":"^7.31.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^11.2.7","@testing-library/user-event":"^13.1.8","@types/jest":"^22.2.3","@types/mixpanel-browser":"^2.35.6","@types/lodash":"^4.17.0","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0",asciidoctor:"^2.2.1","babel-jest":"^26.6.3","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1",coveralls:"^3.1.0","current-git-branch":"^1.1.0","dts-bundle":"^0.7.3",eslint:"^7.12.1","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.15.0","eslint-import-resolver-typescript":"^2.3.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.1.4","eslint-plugin-react-hooks":"^4.2.0","fs-extra":"^10.0.0","gh-pages":"^3.1.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^1.1.1",jest:"^26.6.3","jest-fetch-mock":"^3.0.3",jsdom:"^17.0.0","node-sass":"^8.0.0",prettier:"2.1.2",react:"^16.14.0","react-dom":"^16.14.0","react-resizable":"^1.11.0","react-resize-detector":"^6.6.0","react-test-renderer":"^17.0.2","react-use-flexsearch":"^0.1.1",rollup:"2.30.0","rollup-plugin-typescript2":"0.27.3","ts-jest":"^26.5.5","ts-loader":"8.0.4",typedoc:"0.21.6","typedoc-plugin-toc-group":"thoughtspot/typedoc-plugin-toc-group",typescript:"^4.9.4","url-search-params-polyfill":"^8.1.0",util:"^0.12.4",vite:"^5.3.4"};var author="ThoughtSpot";var email="support@thoughtspot.com";var license="ThoughtSpot Development Tools End User License Agreement";var directories={lib:"lib"};var repository={type:"git",url:"git+https://github.com/thoughtspot/visual-embed-sdk.git"};var publishConfig={registry:"https://registry.npmjs.org"};var keywords=["thoughtspot","everywhere","embedded","embed","sdk","analytics"];var bugs={url:"https://github.com/thoughtspot/visual-embed-sdk/issues"};var homepage="https://github.com/thoughtspot/visual-embed-sdk#readme";var globals={window:{}};var pkgInfo = {name:name,version:version,description:description,module:module,main:main,types:types,files:files,exports:exports$1,typesVersions:typesVersions,"size-limit":[{path:"dist/tsembed.js",limit:"49 kB"}],scripts:scripts,peerDependencies:peerDependencies,dependencies:dependencies,devDependencies:devDependencies,author:author,email:email,license:license,directories:directories,repository:repository,publishConfig:publishConfig,keywords:keywords,bugs:bugs,homepage:homepage,globals:globals};
13871
14140
 
13872
14141
  /**
13873
14142
  * Copyright (c) 2022
@@ -14139,7 +14408,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
14139
14408
  * @returns queryParams
14140
14409
  */
14141
14410
  getBaseQueryParams(queryParams = {}) {
14142
- var _a, _b, _c, _d;
14411
+ var _a, _b, _c;
14143
14412
  let hostAppUrl = ((_a = window === null || window === void 0 ? void 0 : window.location) === null || _a === void 0 ? void 0 : _a.host) || '';
14144
14413
  // The below check is needed because TS Cloud firewall, blocks
14145
14414
  // localhost/127.0.0.1 in any url param.
@@ -14182,11 +14451,6 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
14182
14451
  this.handleError('You cannot have both hidden Tabs and visible Tabs');
14183
14452
  return queryParams;
14184
14453
  }
14185
- // TODO remove embedConfig.customCssUrl
14186
- const cssUrlParam = ((_c = customizations === null || customizations === void 0 ? void 0 : customizations.style) === null || _c === void 0 ? void 0 : _c.customCSSUrl) || this.embedConfig.customCssUrl;
14187
- if (cssUrlParam) {
14188
- queryParams[Param.CustomCSSUrl] = cssUrlParam;
14189
- }
14190
14454
  if (disabledActions === null || disabledActions === void 0 ? void 0 : disabledActions.length) {
14191
14455
  queryParams[Param.DisableActions] = disabledActions;
14192
14456
  }
@@ -14215,7 +14479,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
14215
14479
  queryParams[Param.ContextMenuTrigger] = false;
14216
14480
  }
14217
14481
  const spriteUrl = (customizations === null || customizations === void 0 ? void 0 : customizations.iconSpriteUrl)
14218
- || ((_d = this.embedConfig.customizations) === null || _d === void 0 ? void 0 : _d.iconSpriteUrl);
14482
+ || ((_c = this.embedConfig.customizations) === null || _c === void 0 ? void 0 : _c.iconSpriteUrl);
14219
14483
  if (spriteUrl) {
14220
14484
  queryParams[Param.IconSpriteUrl] = spriteUrl.replace('https://', '');
14221
14485
  }
@@ -14225,9 +14489,6 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
14225
14489
  if (locale !== undefined) {
14226
14490
  queryParams[Param.Locale] = locale;
14227
14491
  }
14228
- if (additionalFlags && additionalFlags.constructor.name === 'Object') {
14229
- Object.assign(queryParams, additionalFlags);
14230
- }
14231
14492
  if (linkOverride) {
14232
14493
  queryParams[Param.LinkOverride] = linkOverride;
14233
14494
  }
@@ -14239,6 +14500,11 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
14239
14500
  }
14240
14501
  queryParams[Param.OverrideNativeConsole] = true;
14241
14502
  queryParams[Param.ClientLogLevel] = this.embedConfig.logLevel;
14503
+ if (additionalFlags && additionalFlags.constructor.name === 'Object') {
14504
+ Object.assign(queryParams, additionalFlags);
14505
+ }
14506
+ // Do not add any flags below this, as we want additional flags to
14507
+ // override other flags
14242
14508
  return queryParams;
14243
14509
  }
14244
14510
  /**
@@ -14832,7 +15098,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
14832
15098
  * @version SDK: 1.25.0 / ThoughtSpot 9.10.0
14833
15099
  */
14834
15100
  async getAnswerService(vizId) {
14835
- const { session } = await this.trigger(exports.HostEvent.GetAnswerSession, vizId);
15101
+ const { session } = await this.trigger(exports.HostEvent.GetAnswerSession, vizId ? { vizId } : {});
14836
15102
  return new AnswerService(session, null, this.embedConfig.thoughtSpotHost);
14837
15103
  }
14838
15104
  }
@@ -14847,7 +15113,6 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
14847
15113
  super(domSelector, viewConfig);
14848
15114
  /**
14849
15115
  * Only for testing purposes.
14850
- *
14851
15116
  * @hidden
14852
15117
  */
14853
15118
  // eslint-disable-next-line camelcase
@@ -15236,6 +15501,10 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
15236
15501
  * SpotIQ listing page
15237
15502
  */
15238
15503
  Page["SpotIQ"] = "insights";
15504
+ /**
15505
+ * Monitor Alerts Page
15506
+ */
15507
+ Page["Monitor"] = "monitor";
15239
15508
  })(exports.Page || (exports.Page = {}));
15240
15509
  /**
15241
15510
  * Define the initial state os column custom group accordions
@@ -15304,7 +15573,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
15304
15573
  getEmbedParams() {
15305
15574
  const { tag, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, hideApplicationSwitcher, hideOrgSwitcher, enableSearchAssist, fullHeight, dataPanelV2 = true, hideLiveboardHeader = false, showLiveboardTitle = true, showLiveboardDescription = true, hideHomepageLeftNav = false, modularHomeExperience = false, isLiveboardHeaderSticky = true, enableAskSage, collapseSearchBarInitially = false, enable2ColumnLayout, enableCustomColumnGroups = false, isOnBeforeGetVizDataInterceptEnabled = false,
15306
15575
  /* eslint-disable-next-line max-len */
15307
- dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState$1.EXPAND_ALL, collapseSearchBar = true, homePageSearchBarMode, } = this.viewConfig;
15576
+ dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState$1.EXPAND_ALL, collapseSearchBar = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, homePageSearchBarMode, } = this.viewConfig;
15308
15577
  let params = {};
15309
15578
  params[Param.EmbedApp] = true;
15310
15579
  params[Param.PrimaryNavHidden] = !showPrimaryNavbar;
@@ -15316,6 +15585,9 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
15316
15585
  params[Param.ShowLiveboardDescription] = !!showLiveboardDescription;
15317
15586
  params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
15318
15587
  params[Param.IsFullAppEmbed] = true;
15588
+ params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
15589
+ params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
15590
+ params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
15319
15591
  params = this.getBaseQueryParams(params);
15320
15592
  if (fullHeight === true) {
15321
15593
  params[Param.fullHeight] = true;
@@ -15395,6 +15667,8 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
15395
15667
  return 'data/tables';
15396
15668
  case exports.Page.SpotIQ:
15397
15669
  return modularHomeExperience ? 'home/spotiq-analysis' : 'insights/results';
15670
+ case exports.Page.Monitor:
15671
+ return modularHomeExperience ? 'home/monitor-alerts' : 'insights/monitor-alerts';
15398
15672
  case exports.Page.Home:
15399
15673
  default:
15400
15674
  return 'home';
@@ -15586,7 +15860,7 @@ query GetEurekaVizSnapshots(
15586
15860
  let params = {};
15587
15861
  params[Param.EmbedApp] = true;
15588
15862
  params = this.getBaseQueryParams(params);
15589
- const { enableVizTransformations, fullHeight, defaultHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, hideLiveboardHeader, showLiveboardDescription, showLiveboardTitle, isLiveboardHeaderSticky = true, enableAskSage, enable2ColumnLayout, } = this.viewConfig;
15863
+ const { enableVizTransformations, fullHeight, defaultHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, hideLiveboardHeader, showLiveboardDescription, showLiveboardTitle, isLiveboardHeaderSticky = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, enableAskSage, enable2ColumnLayout, dataPanelV2 = true, enableCustomColumnGroups = false, } = this.viewConfig;
15590
15864
  const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
15591
15865
  || this.viewConfig.preventPinboardFilterRemoval;
15592
15866
  if (fullHeight === true) {
@@ -15630,6 +15904,11 @@ query GetEurekaVizSnapshots(
15630
15904
  params[Param.enableAskSage] = enableAskSage;
15631
15905
  }
15632
15906
  params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
15907
+ params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
15908
+ params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
15909
+ params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
15910
+ params[Param.DataPanelV2Enabled] = dataPanelV2;
15911
+ params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
15633
15912
  const queryParams = getQueryParamString(params, true);
15634
15913
  return queryParams;
15635
15914
  }