@thoughtspot/visual-embed-sdk 1.52.1 → 1.52.2-beta.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 (217) hide show
  1. package/cjs/package.json +10 -3
  2. package/cjs/src/contracts/host-event-contracts.d.ts +49 -11
  3. package/cjs/src/contracts/host-event-contracts.d.ts.map +1 -1
  4. package/cjs/src/embed/app.d.ts +4 -3
  5. package/cjs/src/embed/app.d.ts.map +1 -1
  6. package/cjs/src/embed/app.js.map +1 -1
  7. package/cjs/src/embed/app.spec.js +10 -0
  8. package/cjs/src/embed/app.spec.js.map +1 -1
  9. package/cjs/src/embed/auto-frame-renderer.spec.js +24 -13
  10. package/cjs/src/embed/auto-frame-renderer.spec.js.map +1 -1
  11. package/cjs/src/embed/conversation.d.ts +1 -0
  12. package/cjs/src/embed/conversation.d.ts.map +1 -1
  13. package/cjs/src/embed/conversation.js +3 -3
  14. package/cjs/src/embed/conversation.js.map +1 -1
  15. package/cjs/src/embed/conversation.spec.js +35 -24
  16. package/cjs/src/embed/conversation.spec.js.map +1 -1
  17. package/cjs/src/embed/embedConfig.spec.js +2 -1
  18. package/cjs/src/embed/embedConfig.spec.js.map +1 -1
  19. package/cjs/src/embed/hostEventClient/host-event-client.d.ts +2 -2
  20. package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  21. package/cjs/src/embed/hostEventClient/host-event-client.js +16 -10
  22. package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
  23. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +14 -8
  24. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  25. package/cjs/src/embed/hostEventClient/utils.d.ts +9 -0
  26. package/cjs/src/embed/hostEventClient/utils.d.ts.map +1 -1
  27. package/cjs/src/embed/hostEventClient/utils.js +49 -3
  28. package/cjs/src/embed/hostEventClient/utils.js.map +1 -1
  29. package/cjs/src/embed/hostEventClient/utils.spec.js +151 -0
  30. package/cjs/src/embed/hostEventClient/utils.spec.js.map +1 -1
  31. package/cjs/src/embed/liveboard.d.ts +4 -3
  32. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  33. package/cjs/src/embed/liveboard.js +17 -12
  34. package/cjs/src/embed/liveboard.js.map +1 -1
  35. package/cjs/src/embed/liveboard.spec.js +2 -1
  36. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  37. package/cjs/src/embed/spotter-utils.d.ts +8 -1
  38. package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
  39. package/cjs/src/embed/spotter-utils.js +14 -1
  40. package/cjs/src/embed/spotter-utils.js.map +1 -1
  41. package/cjs/src/embed/spotter-utils.spec.js +26 -0
  42. package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
  43. package/cjs/src/embed/ts-embed.d.ts +35 -10
  44. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  45. package/cjs/src/embed/ts-embed.js +108 -73
  46. package/cjs/src/embed/ts-embed.js.map +1 -1
  47. package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
  48. package/cjs/src/embed/ts-embed.spec.js +203 -30
  49. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  50. package/cjs/src/errors.js +1 -1
  51. package/cjs/src/errors.js.map +1 -1
  52. package/cjs/src/index.d.ts +2 -1
  53. package/cjs/src/index.d.ts.map +1 -1
  54. package/cjs/src/index.js +3 -1
  55. package/cjs/src/index.js.map +1 -1
  56. package/cjs/src/react/all-types-export.d.ts +1 -1
  57. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  58. package/cjs/src/react/all-types-export.js +2 -1
  59. package/cjs/src/react/all-types-export.js.map +1 -1
  60. package/cjs/src/types.d.ts +45 -22
  61. package/cjs/src/types.d.ts.map +1 -1
  62. package/cjs/src/types.js +44 -21
  63. package/cjs/src/types.js.map +1 -1
  64. package/cjs/src/utils/authService/tokenizedAuthService.spec.js +2 -1
  65. package/cjs/src/utils/authService/tokenizedAuthService.spec.js.map +1 -1
  66. package/cjs/src/utils/custom-actions.spec.js +4 -2
  67. package/cjs/src/utils/custom-actions.spec.js.map +1 -1
  68. package/cjs/src/utils/filterConverter.d.ts +106 -0
  69. package/cjs/src/utils/filterConverter.d.ts.map +1 -0
  70. package/cjs/src/utils/filterConverter.js +215 -0
  71. package/cjs/src/utils/filterConverter.js.map +1 -0
  72. package/cjs/src/utils/filterConverter.spec.d.ts +2 -0
  73. package/cjs/src/utils/filterConverter.spec.d.ts.map +1 -0
  74. package/cjs/src/utils/filterConverter.spec.js +709 -0
  75. package/cjs/src/utils/filterConverter.spec.js.map +1 -0
  76. package/cjs/src/utils/processData.spec.js +2 -1
  77. package/cjs/src/utils/processData.spec.js.map +1 -1
  78. package/dist/{index-C1pmYb5H.js → index-BrJMbt8r.js} +1 -1
  79. package/dist/src/contracts/host-event-contracts.d.ts +49 -11
  80. package/dist/src/contracts/host-event-contracts.d.ts.map +1 -1
  81. package/dist/src/embed/app.d.ts +4 -3
  82. package/dist/src/embed/app.d.ts.map +1 -1
  83. package/dist/src/embed/conversation.d.ts +1 -0
  84. package/dist/src/embed/conversation.d.ts.map +1 -1
  85. package/dist/src/embed/hostEventClient/host-event-client.d.ts +2 -2
  86. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  87. package/dist/src/embed/hostEventClient/utils.d.ts +9 -0
  88. package/dist/src/embed/hostEventClient/utils.d.ts.map +1 -1
  89. package/dist/src/embed/liveboard.d.ts +4 -3
  90. package/dist/src/embed/liveboard.d.ts.map +1 -1
  91. package/dist/src/embed/spotter-utils.d.ts +8 -1
  92. package/dist/src/embed/spotter-utils.d.ts.map +1 -1
  93. package/dist/src/embed/ts-embed.d.ts +35 -10
  94. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  95. package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
  96. package/dist/src/index.d.ts +2 -1
  97. package/dist/src/index.d.ts.map +1 -1
  98. package/dist/src/react/all-types-export.d.ts +1 -1
  99. package/dist/src/react/all-types-export.d.ts.map +1 -1
  100. package/dist/src/types.d.ts +45 -22
  101. package/dist/src/types.d.ts.map +1 -1
  102. package/dist/src/utils/filterConverter.d.ts +106 -0
  103. package/dist/src/utils/filterConverter.d.ts.map +1 -0
  104. package/dist/src/utils/filterConverter.spec.d.ts +2 -0
  105. package/dist/src/utils/filterConverter.spec.d.ts.map +1 -0
  106. package/dist/tsembed-react.es.js +252 -126
  107. package/dist/tsembed-react.js +251 -125
  108. package/dist/tsembed.es.js +460 -127
  109. package/dist/tsembed.js +459 -125
  110. package/dist/visual-embed-sdk-react-full.d.ts +233 -49
  111. package/dist/visual-embed-sdk-react.d.ts +139 -49
  112. package/dist/visual-embed-sdk.d.ts +233 -49
  113. package/lib/package.json +10 -3
  114. package/lib/src/contracts/host-event-contracts.d.ts +49 -11
  115. package/lib/src/contracts/host-event-contracts.d.ts.map +1 -1
  116. package/lib/src/embed/app.d.ts +4 -3
  117. package/lib/src/embed/app.d.ts.map +1 -1
  118. package/lib/src/embed/app.js.map +1 -1
  119. package/lib/src/embed/app.spec.js +10 -0
  120. package/lib/src/embed/app.spec.js.map +1 -1
  121. package/lib/src/embed/auto-frame-renderer.spec.js +24 -13
  122. package/lib/src/embed/auto-frame-renderer.spec.js.map +1 -1
  123. package/lib/src/embed/conversation.d.ts +1 -0
  124. package/lib/src/embed/conversation.d.ts.map +1 -1
  125. package/lib/src/embed/conversation.js +4 -4
  126. package/lib/src/embed/conversation.js.map +1 -1
  127. package/lib/src/embed/conversation.spec.js +35 -24
  128. package/lib/src/embed/conversation.spec.js.map +1 -1
  129. package/lib/src/embed/embedConfig.spec.js +2 -1
  130. package/lib/src/embed/embedConfig.spec.js.map +1 -1
  131. package/lib/src/embed/hostEventClient/host-event-client.d.ts +2 -2
  132. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  133. package/lib/src/embed/hostEventClient/host-event-client.js +17 -11
  134. package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
  135. package/lib/src/embed/hostEventClient/host-event-client.spec.js +14 -8
  136. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  137. package/lib/src/embed/hostEventClient/utils.d.ts +9 -0
  138. package/lib/src/embed/hostEventClient/utils.d.ts.map +1 -1
  139. package/lib/src/embed/hostEventClient/utils.js +47 -2
  140. package/lib/src/embed/hostEventClient/utils.js.map +1 -1
  141. package/lib/src/embed/hostEventClient/utils.spec.js +152 -1
  142. package/lib/src/embed/hostEventClient/utils.spec.js.map +1 -1
  143. package/lib/src/embed/liveboard.d.ts +4 -3
  144. package/lib/src/embed/liveboard.d.ts.map +1 -1
  145. package/lib/src/embed/liveboard.js +17 -12
  146. package/lib/src/embed/liveboard.js.map +1 -1
  147. package/lib/src/embed/liveboard.spec.js +2 -1
  148. package/lib/src/embed/liveboard.spec.js.map +1 -1
  149. package/lib/src/embed/spotter-utils.d.ts +8 -1
  150. package/lib/src/embed/spotter-utils.d.ts.map +1 -1
  151. package/lib/src/embed/spotter-utils.js +12 -0
  152. package/lib/src/embed/spotter-utils.js.map +1 -1
  153. package/lib/src/embed/spotter-utils.spec.js +27 -1
  154. package/lib/src/embed/spotter-utils.spec.js.map +1 -1
  155. package/lib/src/embed/ts-embed.d.ts +35 -10
  156. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  157. package/lib/src/embed/ts-embed.js +109 -74
  158. package/lib/src/embed/ts-embed.js.map +1 -1
  159. package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
  160. package/lib/src/embed/ts-embed.spec.js +203 -30
  161. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  162. package/lib/src/errors.js +1 -1
  163. package/lib/src/errors.js.map +1 -1
  164. package/lib/src/index.d.ts +2 -1
  165. package/lib/src/index.d.ts.map +1 -1
  166. package/lib/src/index.js +2 -1
  167. package/lib/src/index.js.map +1 -1
  168. package/lib/src/react/all-types-export.d.ts +1 -1
  169. package/lib/src/react/all-types-export.d.ts.map +1 -1
  170. package/lib/src/react/all-types-export.js +1 -1
  171. package/lib/src/react/all-types-export.js.map +1 -1
  172. package/lib/src/types.d.ts +45 -22
  173. package/lib/src/types.d.ts.map +1 -1
  174. package/lib/src/types.js +44 -21
  175. package/lib/src/types.js.map +1 -1
  176. package/lib/src/utils/authService/tokenizedAuthService.spec.js +2 -1
  177. package/lib/src/utils/authService/tokenizedAuthService.spec.js.map +1 -1
  178. package/lib/src/utils/custom-actions.spec.js +4 -2
  179. package/lib/src/utils/custom-actions.spec.js.map +1 -1
  180. package/lib/src/utils/filterConverter.d.ts +106 -0
  181. package/lib/src/utils/filterConverter.d.ts.map +1 -0
  182. package/lib/src/utils/filterConverter.js +210 -0
  183. package/lib/src/utils/filterConverter.js.map +1 -0
  184. package/lib/src/utils/filterConverter.spec.d.ts +2 -0
  185. package/lib/src/utils/filterConverter.spec.d.ts.map +1 -0
  186. package/lib/src/utils/filterConverter.spec.js +707 -0
  187. package/lib/src/utils/filterConverter.spec.js.map +1 -0
  188. package/lib/src/utils/processData.spec.js +2 -1
  189. package/lib/src/utils/processData.spec.js.map +1 -1
  190. package/lib/src/visual-embed-sdk.d.ts +233 -49
  191. package/package.json +10 -3
  192. package/src/contracts/host-event-contracts.ts +55 -11
  193. package/src/embed/app.spec.ts +15 -0
  194. package/src/embed/app.ts +4 -3
  195. package/src/embed/auto-frame-renderer.spec.ts +24 -13
  196. package/src/embed/conversation.spec.ts +38 -27
  197. package/src/embed/conversation.ts +4 -4
  198. package/src/embed/embedConfig.spec.ts +2 -1
  199. package/src/embed/hostEventClient/host-event-client.spec.ts +14 -8
  200. package/src/embed/hostEventClient/host-event-client.ts +18 -10
  201. package/src/embed/hostEventClient/utils.spec.ts +176 -1
  202. package/src/embed/hostEventClient/utils.ts +51 -2
  203. package/src/embed/liveboard.spec.ts +4 -3
  204. package/src/embed/liveboard.ts +21 -15
  205. package/src/embed/spotter-utils.spec.ts +29 -0
  206. package/src/embed/spotter-utils.ts +16 -0
  207. package/src/embed/ts-embed.spec.ts +245 -30
  208. package/src/embed/ts-embed.ts +107 -74
  209. package/src/errors.ts +1 -1
  210. package/src/index.ts +10 -0
  211. package/src/react/all-types-export.ts +4 -0
  212. package/src/types.ts +44 -21
  213. package/src/utils/authService/tokenizedAuthService.spec.ts +2 -1
  214. package/src/utils/custom-actions.spec.ts +4 -2
  215. package/src/utils/filterConverter.spec.ts +801 -0
  216. package/src/utils/filterConverter.ts +304 -0
  217. package/src/utils/processData.spec.ts +2 -1
@@ -7287,6 +7287,12 @@ export declare enum HostEvent {
7287
7287
  * ```js
7288
7288
  * const data = await liveboardEmbed.trigger(HostEvent.GetFilters);
7289
7289
  * console.log('data', data);
7290
+ * // {
7291
+ * // liveboardFilters: [ ... ],
7292
+ * // runtimeFilters: [
7293
+ * // { columnName: "Region", operator: "IN", values: ["West"] }
7294
+ * // ]
7295
+ * // }
7290
7296
  * ```
7291
7297
  * @example
7292
7298
  * ```js
@@ -7311,9 +7317,9 @@ export declare enum HostEvent {
7311
7317
  *
7312
7318
  * Each filter object must include the following attributes:
7313
7319
  *
7314
- * `column` - Name of the column to filter on.
7320
+ * `columnName` - Name of the column to filter on.
7315
7321
  *
7316
- * `oper` - Filter operator, for example, EQ, IN, CONTAINS.
7322
+ * `operator` - Filter operator, for example, EQ, IN, CONTAINS.
7317
7323
  * For information about the supported filter operators,
7318
7324
  * see link:https://developers.thoughtspot.com/docs/runtime-filters#rtOperator[Developer Documentation].
7319
7325
  *
@@ -7340,8 +7346,8 @@ export declare enum HostEvent {
7340
7346
  *
7341
7347
  * liveboardEmbed.trigger(HostEvent.UpdateFilters, {
7342
7348
  * filter: {
7343
- * column: "item type",
7344
- * oper: "IN",
7349
+ * columnName: "item type",
7350
+ * operator: "IN",
7345
7351
  * values: ["bags","shirts"]
7346
7352
  * }
7347
7353
  * });
@@ -7351,8 +7357,8 @@ export declare enum HostEvent {
7351
7357
  *
7352
7358
  * liveboardEmbed.trigger(HostEvent.UpdateFilters, {
7353
7359
  * filter: {
7354
- * column: "date",
7355
- * oper: "EQ",
7360
+ * columnName: "date",
7361
+ * operator: "EQ",
7356
7362
  * values: ["JULY","2023"],
7357
7363
  * type: "MONTH_YEAR"
7358
7364
  * }
@@ -7363,18 +7369,18 @@ export declare enum HostEvent {
7363
7369
  * ```js
7364
7370
  * liveboardEmbed.trigger(HostEvent.UpdateFilters, {
7365
7371
  * filters: [{
7366
- * column: "Item Type",
7367
- * oper: 'IN',
7372
+ * columnName: "Item Type",
7373
+ * operator: 'IN',
7368
7374
  * values: ["bags","shirts"]
7369
7375
  * },
7370
7376
  * {
7371
- * column: "Region",
7372
- * oper: 'IN',
7377
+ * columnName: "Region",
7378
+ * operator: 'IN',
7373
7379
  * values: ["West","Midwest"]
7374
7380
  * },
7375
7381
  * {
7376
- * column: "Date",
7377
- * oper: 'EQ',
7382
+ * columnName: "Date",
7383
+ * operator: 'EQ',
7378
7384
  * values: ["2023-07-31"],
7379
7385
  * type: "EXACT_DATE"
7380
7386
  * }]
@@ -7388,13 +7394,13 @@ export declare enum HostEvent {
7388
7394
  * ```js
7389
7395
  * liveboardEmbed.trigger(HostEvent.UpdateFilters, {
7390
7396
  * filters: [{
7391
- * column: "(Sample) Retail - Apparel::city",
7392
- * oper: 'IN',
7397
+ * columnName: "(Sample) Retail - Apparel::city",
7398
+ * operator: 'IN',
7393
7399
  * values: ["atlanta"]
7394
7400
  * },
7395
7401
  * {
7396
- * column: "(Sample) Retail - Apparel::Region",
7397
- * oper: 'IN',
7402
+ * columnName: "(Sample) Retail - Apparel::Region",
7403
+ * operator: 'IN',
7398
7404
  * values: ["West","Midwest"]
7399
7405
  * }]
7400
7406
  * });
@@ -7405,8 +7411,8 @@ export declare enum HostEvent {
7405
7411
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
7406
7412
  * liveboardEmbed.trigger(HostEvent.UpdateFilters, {
7407
7413
  * filter: {
7408
- * column: "item type",
7409
- * oper: "IN",
7414
+ * columnName: "item type",
7415
+ * operator: "IN",
7410
7416
  * values: ["shoes", "boots"]
7411
7417
  * }
7412
7418
  * }, ContextType.Liveboard);
@@ -7416,8 +7422,8 @@ export declare enum HostEvent {
7416
7422
  * // Scope the filter to a specific Liveboard tab
7417
7423
  * liveboardEmbed.trigger(HostEvent.UpdateFilters, {
7418
7424
  * filter: {
7419
- * column: "item type",
7420
- * oper: "IN",
7425
+ * columnName: "item type",
7426
+ * operator: "IN",
7421
7427
  * values: ["bags", "shirts"],
7422
7428
  * applicability: {
7423
7429
  * level: "TAB",
@@ -7426,6 +7432,12 @@ export declare enum HostEvent {
7426
7432
  * }
7427
7433
  * });
7428
7434
  * ```
7435
+ * Use `columnName` and `operator` - the same spelling as
7436
+ * {@link RuntimeFilter}. The older `column` and `oper` spellings are
7437
+ * deprecated; they are still accepted, but pass only one spelling of each
7438
+ * field, never both. To reapply the filter state captured from
7439
+ * {@link EmbedEvent.FilterChanged}, use `convertFilterChangedToUpdateFiltersPayload`
7440
+ * to convert its payload into the shape expected here.
7429
7441
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
7430
7442
  */
7431
7443
  UpdateFilters = "updateFilters",
@@ -10467,7 +10479,19 @@ export declare enum Action {
10467
10479
  * }
10468
10480
  * ```
10469
10481
  */
10470
- DeleteCollection = "deleteCollection"
10482
+ DeleteCollection = "deleteCollection",
10483
+ /**
10484
+ * Controls the visibility of the "Customize homepage" button on the
10485
+ * embedded home page.
10486
+ * @version SDK: 1.55.0 | ThoughtSpot Cloud: 26.12.0.cl
10487
+ * @example
10488
+ * ```js
10489
+ * {
10490
+ * hiddenActions: [Action.CustomizeHomepage],
10491
+ * }
10492
+ * ```
10493
+ */
10494
+ CustomizeHomepage = "customizeHomepage"
10471
10495
  }
10472
10496
  export declare enum PrefetchFeatures {
10473
10497
  FullApp = "FullApp",
@@ -11882,23 +11906,61 @@ export interface UpdateCrossFilterRequest {
11882
11906
  conditions: CrossFilterCondition[];
11883
11907
  }
11884
11908
  /**
11885
- * A single filter entry for {@link HostEvent.UpdateFilters}. Supports both
11886
- * the current (columnName/operator) and legacy (column/oper) field names.
11909
+ * The column to filter on. Supply `columnName`. A filter with no column is
11910
+ * rejected at runtime, and passing both spellings silently discards the
11911
+ * `column` one.
11912
+ *
11913
+ * When several columns share a name, qualify it as
11914
+ * `WORKSHEET_NAME::COLUMN_NAME`, for example
11915
+ * `"(Sample) Retail - Apparel::city"`.
11887
11916
  */
11888
- export interface HostFilterUpdate {
11889
- columnName?: string;
11917
+ export type HostFilterUpdateColumn = {
11918
+ /**
11919
+ * Name of the column to filter on, optionally qualified as
11920
+ * `WORKSHEET_NAME::COLUMN_NAME`.
11921
+ */
11922
+ columnName: string;
11923
+ column?: never;
11924
+ } | {
11925
+ /**
11926
+ * @deprecated Use `columnName`, which matches {@link RuntimeFilter} and
11927
+ * the rest of the SDK. Still accepted, but not alongside `columnName`.
11928
+ */
11929
+ column: string;
11930
+ columnName?: never;
11931
+ };
11932
+ /**
11933
+ * The filter operator. Supply `operator`. A filter with no operator is
11934
+ * rejected at runtime, and passing both spellings silently discards the
11935
+ * `oper` one.
11936
+ */
11937
+ export type HostFilterUpdateOperator = {
11938
+ /** Filter operator, for example EQ, IN, CONTAINS. */
11939
+ operator: string;
11940
+ oper?: never;
11941
+ } | {
11942
+ /**
11943
+ * @deprecated Use `operator`, which matches {@link RuntimeFilter} and
11944
+ * the rest of the SDK. Still accepted, but not alongside `operator`.
11945
+ */
11946
+ oper: string;
11947
+ operator?: never;
11948
+ };
11949
+ /**
11950
+ * A single filter entry for {@link HostEvent.UpdateFilters}.
11951
+ *
11952
+ * Use `columnName` and `operator` - the spelling used by
11953
+ * {@link RuntimeFilter} and by the payload
11954
+ * `convertFilterChangedToUpdateFiltersPayload` produces.
11955
+ */
11956
+ export type HostFilterUpdate = HostFilterUpdateColumn & HostFilterUpdateOperator & {
11890
11957
  columnId?: string;
11891
- operator?: string;
11892
- values: Array<string | number | boolean>;
11958
+ values: Array<string | number | boolean | bigint>;
11893
11959
  type?: string;
11894
11960
  datePeriod?: string;
11895
11961
  negate?: boolean;
11896
- /** Legacy field name for columnName. */
11897
- column?: string;
11898
- /** Legacy field name for operator. */
11899
- oper?: string;
11900
11962
  applicability?: Applicability;
11901
- }
11963
+ };
11902
11964
  /**
11903
11965
  * Request payload for {@link HostEvent.UpdateFilters} (singular or plural
11904
11966
  * form).
@@ -12157,8 +12219,8 @@ declare class HostEventClient {
12157
12219
  protected handleDrillDownEvent(payload: HostEventRequest<HostEvent.DrillDown>, context?: ContextType): Promise<any>;
12158
12220
  /**
12159
12221
  * Dispatches a host event using the appropriate channel:
12160
- * 1. If the embedded app supports UI passthrough for this event, use it (custom handler or getter).
12161
- * 2. Otherwise fall back to the legacy host event channel.
12222
+ * 1. If the embedded app supports UI passthrough for this event, use it (custom
12223
+ * handler or getter). 2. Otherwise fall back to the legacy host event channel.
12162
12224
  *
12163
12225
  * @param hostEvent - The host event to trigger
12164
12226
  * @param payload - Optional payload for the event
@@ -12233,7 +12295,7 @@ declare class TsEmbed {
12233
12295
  private defaultHiddenActions;
12234
12296
  private resizeObserver;
12235
12297
  private preRenderContainerEl;
12236
- private containerScrollListener;
12298
+ /** Last height the embedded app reported, once fullHeight has measured one. */
12237
12299
  protected hostEventClient: HostEventClient;
12238
12300
  protected isReadyForRenderPromise: Promise<void>;
12239
12301
  protected shouldWaitForRenderPromise: boolean;
@@ -12489,10 +12551,26 @@ declare class TsEmbed {
12489
12551
  */
12490
12552
  private createPreRenderPlaceholder;
12491
12553
  /**
12492
- * Resolves the configured preRenderContainer to a live element, falling
12493
- * back to `document.body`. A string selector is re-queried on every call so
12494
- * a remounted container (E.g.: React replacing the node) resolves to the
12495
- * fresh element; an element passed directly cannot be re-resolved.
12554
+ * Resolves the configured preRenderContainer to a live element. A string
12555
+ * selector is re-queried on every call so a remounted container (E.g.: React
12556
+ * replacing the node) resolves to the fresh element; an element passed
12557
+ * directly cannot be re-resolved.
12558
+ *
12559
+ * With nothing configured the frame goes into the host element's nearest
12560
+ * scrolling ancestor, falling back to `document.body`.
12561
+ *
12562
+ * The wrapper is absolutely positioned, so it follows the page for free —
12563
+ * but only while it sits inside whatever scrolls. `document.body` is right
12564
+ * only when the document itself is the scroller; an app that scrolls an
12565
+ * inner element instead left the frame pinned to the viewport while the page
12566
+ * moved under it (SCAL-338563). Being inside the scroller also lets wheel
12567
+ * events chain out of the frame into it, which they cannot do from
12568
+ * `document.body`.
12569
+ *
12570
+ * A scrolling ancestor is layout chrome rather than route content, so it
12571
+ * outlives the embed in practice; and if it does go, the host element goes
12572
+ * with it and this instance is remounting anyway.
12573
+ * `reconcilePreRenderContainer` re-runs this on a detached container.
12496
12574
  */
12497
12575
  private resolvePreRenderContainerTarget;
12498
12576
  private inheritPreRenderContainer;
@@ -12509,8 +12587,9 @@ declare class TsEmbed {
12509
12587
  * Re-attaches the wrapper to a live container when the previously resolved
12510
12588
  * one has been detached or no longer holds the wrapper — e.g. the host app
12511
12589
  * remounted a custom preRenderContainer, which would otherwise leave a stale
12512
- * reference and collapse the wrapper. Only string selectors can be
12513
- * re-resolved; a container passed as an element is left untouched.
12590
+ * reference and collapse the wrapper. Selectors and the auto-resolved
12591
+ * scrolling ancestor are both re-resolved; a container passed as an element
12592
+ * is left untouched, as there is nothing to re-query.
12514
12593
  */
12515
12594
  private reconcilePreRenderContainer;
12516
12595
  protected insertIntoDOMForPreRender(child: string | Node): void;
@@ -12726,9 +12805,17 @@ declare class TsEmbed {
12726
12805
  */
12727
12806
  private restorePreRenderContainerPosition;
12728
12807
  /**
12729
- * Detaches and clears the container scroll listener, if one is attached.
12808
+ * Re-sizes the wrapper when its placeholder changes size.
12809
+ *
12810
+ * Position deliberately has no equivalent. An absolutely positioned wrapper
12811
+ * follows its containing block for free, so a correctly placed frame is the
12812
+ * browser's job and costs nothing; repositioning it on scroll would mean a
12813
+ * layout read and a style write per frame to compensate for placing it in
12814
+ * the wrong box. Size is the one thing the browser will not do for us: the
12815
+ * placeholder grows when the embedded app reports a new height, and the
12816
+ * wrapper has to be told.
12730
12817
  */
12731
- private removeContainerScrollListener;
12818
+ private observePreRenderSize;
12732
12819
  /**
12733
12820
  * Destroys the ThoughtSpot embed, and remove any nodes from the DOM.
12734
12821
  * @version SDK: 1.19.1 | ThoughtSpot: *
@@ -14078,6 +14165,7 @@ export interface SpotterAppInitData extends DefaultAppInitData {
14078
14165
  spotterShareConversationConfig?: SpotterShareConversationConfig;
14079
14166
  visualOverridesParams?: VisualizationOverrides | null;
14080
14167
  starterPrompts?: StarterPromptsConfig;
14168
+ spotterAnalystConfig?: SpotterAnalystConfig;
14081
14169
  };
14082
14170
  }
14083
14171
  declare class SpotterEmbed extends TsEmbed {
@@ -14799,9 +14887,10 @@ export interface AppViewConfig extends AllEmbedViewConfig, FullHeightViewConfig
14799
14887
  */
14800
14888
  isPNGInScheduledEmailsEnabled?: boolean;
14801
14889
  /**
14802
- * Enables the 'what you see is what you get' PDF export for Liveboards. Each tab is rendered on a single page
14803
- * following the exact UI layout, instead of splitting visualizations across multiple A4 pages.
14804
- * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.8.0.cl.
14890
+ * Enables the 'what you see is what you get' PDF export for Liveboards. Each tab is
14891
+ * rendered on a single page following the exact UI layout, instead of splitting
14892
+ * visualizations across multiple A4 pages. This feature is GA from SDK version
14893
+ * 1.51.0 and ThoughtSpot version 26.8.0.cl.
14805
14894
  *
14806
14895
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
14807
14896
  * @type {boolean}
@@ -15485,9 +15574,10 @@ export interface LiveboardViewConfig extends BaseViewConfig, FullHeightViewConfi
15485
15574
  */
15486
15575
  isPNGInScheduledEmailsEnabled?: boolean;
15487
15576
  /**
15488
- * Enables the 'what you see is what you get' PDF export for Liveboards. Each tab is rendered on a single page
15489
- * following the exact UI layout, instead of splitting visualizations across multiple A4 pages.
15490
- * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.8.0.cl.
15577
+ * Enables the 'what you see is what you get' PDF export for Liveboards. Each tab is
15578
+ * rendered on a single page following the exact UI layout, instead of splitting
15579
+ * visualizations across multiple A4 pages. This feature is GA from SDK version
15580
+ * 1.51.0 and ThoughtSpot version 26.8.0.cl.
15491
15581
  *
15492
15582
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
15493
15583
  * @type {boolean}
@@ -15911,6 +16001,100 @@ declare const getEmbedConfig: () => EmbedConfig;
15911
16001
  * @param eventProps
15912
16002
  */
15913
16003
  export declare function uploadMixpanelEvent(eventId: string, eventProps?: {}): void;
16004
+ export interface FilterChangedFilterContentValue {
16005
+ key?: string | number | boolean | null;
16006
+ }
16007
+ export interface FilterChangedFilterContent {
16008
+ filterType?: string;
16009
+ negate?: boolean;
16010
+ value?: FilterChangedFilterContentValue[];
16011
+ }
16012
+ export interface FilterChangedDateFilterValue {
16013
+ type?: string;
16014
+ op?: string;
16015
+ epoch?: string | number | null;
16016
+ dateRange?: {
16017
+ lowEpoch?: string | number | null;
16018
+ highEpoch?: string | number | null;
16019
+ };
16020
+ monthName?: string;
16021
+ quarterName?: string;
16022
+ yearName?: string;
16023
+ number?: number | null;
16024
+ datePeriod?: string;
16025
+ includeCurrentPeriod?: boolean | null;
16026
+ }
16027
+ export interface FilterChangedDateFilterContent {
16028
+ negate?: boolean;
16029
+ dateFilter?: FilterChangedDateFilterValue;
16030
+ }
16031
+ export interface FilterChangedFilter {
16032
+ filterContent?: FilterChangedFilterContent[];
16033
+ dateFilterContent?: FilterChangedDateFilterContent[];
16034
+ }
16035
+ export interface FilterChangedFilterGroup {
16036
+ columnInfo?: {
16037
+ name?: string;
16038
+ };
16039
+ filters?: FilterChangedFilter[];
16040
+ /**
16041
+ * Scope of the filter - `LIVEBOARD`, `TAB` or `GROUP`. Present from
16042
+ * SDK 1.53.0 / ThoughtSpot 26.10.0.cl. Omitted means Liveboard level.
16043
+ */
16044
+ applicability?: Applicability;
16045
+ }
16046
+ /**
16047
+ * Shape of the payload received via `LiveboardEmbed.on(EmbedEvent.FilterChanged, ...)`.
16048
+ */
16049
+ export interface FilterChangedPayload {
16050
+ liveboardFilters?: FilterChangedFilterGroup[];
16051
+ runtimeFilters?: RuntimeFilter[];
16052
+ }
16053
+ export interface UpdateFiltersFilterParam {
16054
+ columnName: string;
16055
+ operator: string;
16056
+ values: (string | number | boolean | bigint)[];
16057
+ type?: string;
16058
+ datePeriod?: string;
16059
+ negate?: boolean;
16060
+ includeCurrentPeriod?: boolean;
16061
+ applicability?: Applicability;
16062
+ }
16063
+ /**
16064
+ * Shape expected by `liveboardEmbed.trigger(HostEvent.UpdateFilters, ...)`.
16065
+ */
16066
+ export interface UpdateFiltersPayload {
16067
+ filters: UpdateFiltersFilterParam[];
16068
+ }
16069
+ /**
16070
+ * Converts the payload emitted by {@link EmbedEvent.FilterChanged} into the
16071
+ * payload shape expected by {@link HostEvent.UpdateFilters}, so the same
16072
+ * filter state can be captured and re-applied later, for example on a
16073
+ * subsequent page load.
16074
+ *
16075
+ * Both the Liveboard filters and the runtime filters present in the
16076
+ * `FilterChanged` payload are included in the returned `filters` array.
16077
+ *
16078
+ * Note: a column with multiple date-filter conditions (e.g. an OR of two
16079
+ * date ranges) is not guaranteed to round-trip losslessly - `HostEvent.UpdateFilters`
16080
+ * treats date filters as replace-not-merge per column, so only the last
16081
+ * converted entry for such a column will apply.
16082
+ * @param filterChangedPayload The filter state carried by the
16083
+ * `EmbedEvent.FilterChanged` callback, which is `payload.data` - the
16084
+ * callback argument is the event envelope, and the filters sit under its
16085
+ * `data` key.
16086
+ * @example
16087
+ * ```js
16088
+ * let savedFilters;
16089
+ * liveboardEmbed.on(EmbedEvent.FilterChanged, (payload) => {
16090
+ * savedFilters = convertFilterChangedToUpdateFiltersPayload(payload.data);
16091
+ * });
16092
+ *
16093
+ * // later, e.g. after a fresh page load
16094
+ * liveboardEmbed.trigger(HostEvent.UpdateFilters, savedFilters);
16095
+ * ```
16096
+ */
16097
+ export declare function convertFilterChangedToUpdateFiltersPayload(filterChangedPayload: FilterChangedPayload): UpdateFiltersPayload;
15914
16098
  /**
15915
16099
  * Resets the auth token and a new token will be fetched on the next request.
15916
16100
  * @example