@thoughtspot/visual-embed-sdk 1.28.5 → 1.29.0-addfilter.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 (230) hide show
  1. package/README.md +1 -1
  2. package/cjs/package.json +1 -1
  3. package/cjs/src/auth.d.ts.map +1 -1
  4. package/cjs/src/auth.js +2 -2
  5. package/cjs/src/auth.js.map +1 -1
  6. package/cjs/src/authToken.d.ts +1 -1
  7. package/cjs/src/authToken.js +1 -1
  8. package/cjs/src/embed/app.d.ts +58 -7
  9. package/cjs/src/embed/app.d.ts.map +1 -1
  10. package/cjs/src/embed/app.js +40 -4
  11. package/cjs/src/embed/app.js.map +1 -1
  12. package/cjs/src/embed/app.spec.js +11 -0
  13. package/cjs/src/embed/app.spec.js.map +1 -1
  14. package/cjs/src/embed/base.d.ts +1 -1
  15. package/cjs/src/embed/base.d.ts.map +1 -1
  16. package/cjs/src/embed/base.js +6 -6
  17. package/cjs/src/embed/base.js.map +1 -1
  18. package/cjs/src/embed/base.spec.js +1 -1
  19. package/cjs/src/embed/base.spec.js.map +1 -1
  20. package/cjs/src/embed/liveboard.d.ts +8 -2
  21. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  22. package/cjs/src/embed/liveboard.js.map +1 -1
  23. package/cjs/src/embed/search.d.ts +56 -5
  24. package/cjs/src/embed/search.d.ts.map +1 -1
  25. package/cjs/src/embed/search.js +41 -5
  26. package/cjs/src/embed/search.js.map +1 -1
  27. package/cjs/src/embed/search.spec.js +11 -0
  28. package/cjs/src/embed/search.spec.js.map +1 -1
  29. package/cjs/src/embed/ts-embed.d.ts +1 -1
  30. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  31. package/cjs/src/embed/ts-embed.js +12 -6
  32. package/cjs/src/embed/ts-embed.js.map +1 -1
  33. package/cjs/src/embed/ts-embed.spec.js +9 -18
  34. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  35. package/cjs/src/react/index.spec.js +1 -13
  36. package/cjs/src/react/index.spec.js.map +1 -1
  37. package/cjs/src/types.d.ts +58 -31
  38. package/cjs/src/types.d.ts.map +1 -1
  39. package/cjs/src/types.js +44 -20
  40. package/cjs/src/types.js.map +1 -1
  41. package/cjs/src/utils/answerService/answerService.d.ts +34 -0
  42. package/cjs/src/utils/answerService/answerService.d.ts.map +1 -0
  43. package/cjs/src/utils/answerService/answerService.js +142 -0
  44. package/cjs/src/utils/answerService/answerService.js.map +1 -0
  45. package/cjs/src/utils/answerService/answerService.spec.d.ts +1 -0
  46. package/cjs/src/utils/answerService/answerService.spec.d.ts.map +1 -0
  47. package/cjs/src/utils/answerService/answerService.spec.js +1 -0
  48. package/cjs/src/utils/answerService/answerService.spec.js.map +1 -0
  49. package/cjs/src/utils/answerService/graphql-queries.d.ts +6 -0
  50. package/cjs/src/utils/answerService/graphql-queries.d.ts.map +1 -0
  51. package/cjs/src/utils/answerService/graphql-queries.js +123 -0
  52. package/cjs/src/utils/answerService/graphql-queries.js.map +1 -0
  53. package/cjs/src/utils/answerService.d.ts +10 -0
  54. package/cjs/src/utils/answerService.d.ts.map +1 -0
  55. package/cjs/src/utils/answerService.js +61 -0
  56. package/cjs/src/utils/answerService.js.map +1 -0
  57. package/cjs/src/utils/answerService.spec.d.ts +2 -0
  58. package/cjs/src/utils/answerService.spec.d.ts.map +1 -0
  59. package/cjs/src/utils/answerService.spec.js +31 -0
  60. package/cjs/src/utils/answerService.spec.js.map +1 -0
  61. package/cjs/src/utils/authService.d.ts +37 -0
  62. package/cjs/src/utils/authService.d.ts.map +1 -0
  63. package/cjs/src/utils/authService.js +106 -0
  64. package/cjs/src/utils/authService.js.map +1 -0
  65. package/cjs/src/utils/authService.spec.d.ts +2 -0
  66. package/cjs/src/utils/authService.spec.d.ts.map +1 -0
  67. package/cjs/src/utils/authService.spec.js +72 -0
  68. package/cjs/src/utils/authService.spec.js.map +1 -0
  69. package/cjs/src/utils/graphql/answerService/answer-queries.d.ts +1 -0
  70. package/cjs/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -1
  71. package/cjs/src/utils/graphql/answerService/answer-queries.js +8 -1
  72. package/cjs/src/utils/graphql/answerService/answer-queries.js.map +1 -1
  73. package/cjs/src/utils/graphql/answerService/answerService.d.ts +37 -1
  74. package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  75. package/cjs/src/utils/graphql/answerService/answerService.js +60 -0
  76. package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -1
  77. package/cjs/src/utils/graphql/answerService/answerService.spec.js +49 -0
  78. package/cjs/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
  79. package/cjs/src/utils/graphql/answerService/graphql-queries.d.ts +5 -0
  80. package/cjs/src/utils/graphql/answerService/graphql-queries.d.ts.map +1 -0
  81. package/cjs/src/utils/graphql/answerService/graphql-queries.js +80 -0
  82. package/cjs/src/utils/graphql/answerService/graphql-queries.js.map +1 -0
  83. package/cjs/src/utils.d.ts +2 -1
  84. package/cjs/src/utils.d.ts.map +1 -1
  85. package/cjs/src/utils.js +19 -2
  86. package/cjs/src/utils.js.map +1 -1
  87. package/dist/src/auth.d.ts.map +1 -1
  88. package/dist/src/authToken.d.ts +1 -1
  89. package/dist/src/embed/app.d.ts +58 -7
  90. package/dist/src/embed/app.d.ts.map +1 -1
  91. package/dist/src/embed/base.d.ts +1 -1
  92. package/dist/src/embed/base.d.ts.map +1 -1
  93. package/dist/src/embed/liveboard.d.ts +8 -2
  94. package/dist/src/embed/liveboard.d.ts.map +1 -1
  95. package/dist/src/embed/search.d.ts +56 -5
  96. package/dist/src/embed/search.d.ts.map +1 -1
  97. package/dist/src/embed/ts-embed.d.ts +1 -1
  98. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  99. package/dist/src/types.d.ts +58 -31
  100. package/dist/src/types.d.ts.map +1 -1
  101. package/dist/src/utils/answerService.d.ts +10 -0
  102. package/dist/src/utils/answerService.d.ts.map +1 -0
  103. package/dist/src/utils/answerService.spec.d.ts +2 -0
  104. package/dist/src/utils/answerService.spec.d.ts.map +1 -0
  105. package/dist/src/utils/authService.d.ts +37 -0
  106. package/dist/src/utils/authService.d.ts.map +1 -0
  107. package/dist/src/utils/authService.spec.d.ts +2 -0
  108. package/dist/src/utils/authService.spec.d.ts.map +1 -0
  109. package/dist/src/utils/graphql/answerService/answer-queries.d.ts +1 -0
  110. package/dist/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -1
  111. package/dist/src/utils/graphql/answerService/answerService.d.ts +37 -1
  112. package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  113. package/dist/src/utils.d.ts +2 -1
  114. package/dist/src/utils.d.ts.map +1 -1
  115. package/dist/tsembed-react.es.js +7105 -6920
  116. package/dist/tsembed-react.js +7133 -6948
  117. package/dist/tsembed.es.js +7372 -7187
  118. package/dist/tsembed.js +15659 -15474
  119. package/dist/visual-embed-sdk-react-full.d.ts +215 -44
  120. package/dist/visual-embed-sdk-react.d.ts +215 -44
  121. package/dist/visual-embed-sdk.d.ts +215 -44
  122. package/lib/package.json +1 -1
  123. package/lib/src/.index.d.ts.swp +0 -0
  124. package/lib/src/auth.d.ts.map +1 -1
  125. package/lib/src/auth.js +3 -3
  126. package/lib/src/auth.js.map +1 -1
  127. package/lib/src/authToken.d.ts +1 -1
  128. package/lib/src/authToken.js +1 -1
  129. package/lib/src/embed/app.d.ts +58 -7
  130. package/lib/src/embed/app.d.ts.map +1 -1
  131. package/lib/src/embed/app.js +39 -3
  132. package/lib/src/embed/app.js.map +1 -1
  133. package/lib/src/embed/app.spec.js +12 -1
  134. package/lib/src/embed/app.spec.js.map +1 -1
  135. package/lib/src/embed/base.d.ts +1 -1
  136. package/lib/src/embed/base.d.ts.map +1 -1
  137. package/lib/src/embed/base.js +5 -5
  138. package/lib/src/embed/base.js.map +1 -1
  139. package/lib/src/embed/base.spec.js +2 -2
  140. package/lib/src/embed/base.spec.js.map +1 -1
  141. package/lib/src/embed/liveboard.d.ts +8 -2
  142. package/lib/src/embed/liveboard.d.ts.map +1 -1
  143. package/lib/src/embed/liveboard.js +1 -1
  144. package/lib/src/embed/liveboard.js.map +1 -1
  145. package/lib/src/embed/search.d.ts +56 -5
  146. package/lib/src/embed/search.d.ts.map +1 -1
  147. package/lib/src/embed/search.js +41 -5
  148. package/lib/src/embed/search.js.map +1 -1
  149. package/lib/src/embed/search.spec.js +12 -1
  150. package/lib/src/embed/search.spec.js.map +1 -1
  151. package/lib/src/embed/ts-embed.d.ts +1 -1
  152. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  153. package/lib/src/embed/ts-embed.js +15 -9
  154. package/lib/src/embed/ts-embed.js.map +1 -1
  155. package/lib/src/embed/ts-embed.spec.js +9 -18
  156. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  157. package/lib/src/react/index.spec.js +1 -13
  158. package/lib/src/react/index.spec.js.map +1 -1
  159. package/lib/src/types.d.ts +58 -31
  160. package/lib/src/types.d.ts.map +1 -1
  161. package/lib/src/types.js +44 -20
  162. package/lib/src/types.js.map +1 -1
  163. package/lib/src/utils/answerService/answerService.d.ts +34 -0
  164. package/lib/src/utils/answerService/answerService.d.ts.map +1 -0
  165. package/lib/src/utils/answerService/answerService.js +137 -0
  166. package/lib/src/utils/answerService/answerService.js.map +1 -0
  167. package/lib/src/utils/answerService/answerService.spec.d.ts +1 -0
  168. package/lib/src/utils/answerService/answerService.spec.d.ts.map +1 -0
  169. package/lib/src/utils/answerService/answerService.spec.js +1 -0
  170. package/lib/src/utils/answerService/answerService.spec.js.map +1 -0
  171. package/lib/src/utils/answerService/graphql-queries.d.ts +6 -0
  172. package/lib/src/utils/answerService/graphql-queries.d.ts.map +1 -0
  173. package/lib/src/utils/answerService/graphql-queries.js +120 -0
  174. package/lib/src/utils/answerService/graphql-queries.js.map +1 -0
  175. package/lib/src/utils/answerService.d.ts +10 -0
  176. package/lib/src/utils/answerService.d.ts.map +1 -0
  177. package/lib/src/utils/answerService.js +57 -0
  178. package/lib/src/utils/answerService.js.map +1 -0
  179. package/lib/src/utils/answerService.spec.d.ts +2 -0
  180. package/lib/src/utils/answerService.spec.d.ts.map +1 -0
  181. package/lib/src/utils/answerService.spec.js +29 -0
  182. package/lib/src/utils/answerService.spec.js.map +1 -0
  183. package/lib/src/utils/authService/authService.spec.js +1 -1
  184. package/lib/src/utils/authService/authService.spec.js.map +1 -1
  185. package/lib/src/utils/authService.d.ts +37 -0
  186. package/lib/src/utils/authService.d.ts.map +1 -0
  187. package/lib/src/utils/authService.js +97 -0
  188. package/lib/src/utils/authService.js.map +1 -0
  189. package/lib/src/utils/authService.spec.d.ts +2 -0
  190. package/lib/src/utils/authService.spec.d.ts.map +1 -0
  191. package/lib/src/utils/authService.spec.js +70 -0
  192. package/lib/src/utils/authService.spec.js.map +1 -0
  193. package/lib/src/utils/graphql/answerService/answer-queries.d.ts +1 -0
  194. package/lib/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -1
  195. package/lib/src/utils/graphql/answerService/answer-queries.js +7 -0
  196. package/lib/src/utils/graphql/answerService/answer-queries.js.map +1 -1
  197. package/lib/src/utils/graphql/answerService/answerService.d.ts +37 -1
  198. package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  199. package/lib/src/utils/graphql/answerService/answerService.js +61 -1
  200. package/lib/src/utils/graphql/answerService/answerService.js.map +1 -1
  201. package/lib/src/utils/graphql/answerService/answerService.spec.js +51 -2
  202. package/lib/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
  203. package/lib/src/utils/graphql/answerService/graphql-queries.d.ts +5 -0
  204. package/lib/src/utils/graphql/answerService/graphql-queries.d.ts.map +1 -0
  205. package/lib/src/utils/graphql/answerService/graphql-queries.js +77 -0
  206. package/lib/src/utils/graphql/answerService/graphql-queries.js.map +1 -0
  207. package/lib/src/utils.d.ts +2 -1
  208. package/lib/src/utils.d.ts.map +1 -1
  209. package/lib/src/utils.js +17 -1
  210. package/lib/src/utils.js.map +1 -1
  211. package/lib/src/visual-embed-sdk.d.ts +220 -49
  212. package/package.json +1 -1
  213. package/src/auth.ts +6 -6
  214. package/src/authToken.ts +1 -1
  215. package/src/embed/app.spec.ts +22 -1
  216. package/src/embed/app.ts +86 -9
  217. package/src/embed/base.spec.ts +3 -3
  218. package/src/embed/base.ts +14 -14
  219. package/src/embed/liveboard.ts +16 -3
  220. package/src/embed/search.spec.ts +20 -1
  221. package/src/embed/search.ts +85 -11
  222. package/src/embed/ts-embed.spec.ts +26 -34
  223. package/src/embed/ts-embed.ts +49 -39
  224. package/src/react/index.spec.tsx +1 -30
  225. package/src/types.ts +56 -30
  226. package/src/utils/authService/authService.spec.ts +4 -4
  227. package/src/utils/graphql/answerService/answer-queries.ts +8 -0
  228. package/src/utils/graphql/answerService/answerService.spec.ts +58 -2
  229. package/src/utils/graphql/answerService/answerService.ts +71 -2
  230. package/src/utils.ts +21 -2
package/src/types.ts CHANGED
@@ -146,7 +146,6 @@ export enum AuthType {
146
146
  * .then((data) => data.token);
147
147
  * }
148
148
  * });
149
- * });
150
149
  * ```
151
150
  */
152
151
  TrustedAuthToken = 'AuthServer',
@@ -496,7 +495,6 @@ export interface EmbedConfig {
496
495
  * @version SDK: 1.12.0 | ThoughtSpot: 8.4.0.cl, 8.4.1.sw*
497
496
  */
498
497
  suppressSearchEmbedBetaWarning?: boolean;
499
-
500
498
  /**
501
499
  * Hide `beta` alert warning message for SageEmbed.
502
500
  *
@@ -675,6 +673,7 @@ export interface ViewConfig {
675
673
  * object inside your app. Specify the values in pixels or percentage.
676
674
  *
677
675
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1
676
+ *
678
677
  * @example
679
678
  * ```js
680
679
  * const embed = new LiveboardEmbed('#embed', {
@@ -714,7 +713,6 @@ export interface ViewConfig {
714
713
  disabledActions?: Action[];
715
714
  /**
716
715
  * The tooltip to display for disabled actions.
717
- *
718
716
  * @version SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
719
717
  * @example
720
718
  * ```js
@@ -732,6 +730,7 @@ export interface ViewConfig {
732
730
  * Use this to hide an action.
733
731
  *
734
732
  * @version SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
733
+ *
735
734
  * @example
736
735
  * ```js
737
736
  * const embed = new LiveboardEmbed('#embed', {
@@ -752,6 +751,7 @@ export interface ViewConfig {
752
751
  *
753
752
  * @version SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
754
753
  * @important
754
+ *
755
755
  * @example
756
756
  * ```js
757
757
  * const embed = new LiveboardEmbed('#embed', {
@@ -765,6 +765,7 @@ export interface ViewConfig {
765
765
  * Show alert messages and toast messages in the embedded view.
766
766
  *
767
767
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
768
+ *
768
769
  * @example
769
770
  * ```js
770
771
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -779,6 +780,7 @@ export interface ViewConfig {
779
780
  * visualization, or Liveboard.
780
781
  *
781
782
  * @version SDK: 1.9.4 | ThoughtSpot 8.1.0.cl, 8.4.1.sw
783
+ *
782
784
  * @example
783
785
  * ```js
784
786
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -799,6 +801,7 @@ export interface ViewConfig {
799
801
  * visualization, or Liveboard.
800
802
  *
801
803
  * @version SDK : 1.25.0 | Thoughtspot: 9.2.0.cl, 9.5.0.sw
804
+ *
802
805
  * @example
803
806
  * ```js
804
807
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -833,7 +836,6 @@ export interface ViewConfig {
833
836
  * Warning: This option is for advanced use only and is used internally
834
837
  * to control embed behavior in non-regular ways. We do not publish the
835
838
  * list of supported keys and values associated with each.
836
- *
837
839
  * @example
838
840
  * ```js
839
841
  * const embed = new LiveboardEmbed('#embed', {
@@ -860,6 +862,7 @@ export interface ViewConfig {
860
862
  * child inside it.
861
863
  *
862
864
  * @version SDK: 1.2.0 | Thoughtspot: 9.0.0.cl, 9.0.0.sw
865
+ *
863
866
  * @example
864
867
  * ```js
865
868
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -945,8 +948,6 @@ export interface ViewConfig {
945
948
  * Hide the home page modules
946
949
  * For example: hiddenHomepageModules = [HomepageModule.MyLibrary]
947
950
  *
948
- *
949
- *
950
951
  * **Note**: This option does not apply to the classic homepage.
951
952
  * To access the updated modular homepage, set
952
953
  * `modularHomeExperience` to `true` (available as Early Access feature in 9.12.5.cl).
@@ -959,13 +960,13 @@ export interface ViewConfig {
959
960
  * hiddenHomepageModules : [HomepageModule.Favorite,HomepageModule.Learning],
960
961
  * })
961
962
  * ```
963
+ *
962
964
  */
963
965
  hiddenHomepageModules?: HomepageModule[];
964
966
  /**
965
967
  * reordering the home page modules
966
968
  * eg: reorderedHomepageModules = [HomepageModule.MyLibrary, HomepageModule.Watchlist]
967
969
  *
968
- *
969
970
  * **Note**: This option does not apply to the classic homepage.
970
971
  * To access the updated modular homepage, set
971
972
  * `modularHomeExperience` to `true` (available as Early Access feature in 9.12.5.cl).
@@ -988,6 +989,7 @@ export interface ViewConfig {
988
989
  * Use either `visibleTabs` or `hiddenTabs`.
989
990
  *
990
991
  * @version SDK: 1.26.0 | Thoughtspot: 9.7.0.cl
992
+ *
991
993
  * @example
992
994
  * ```js
993
995
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -1013,8 +1015,6 @@ export interface ViewConfig {
1013
1015
  * })
1014
1016
  * ```
1015
1017
  *
1016
- *
1017
- *
1018
1018
  * **Note**: This option does not apply to the classic homepage.
1019
1019
  * To access the updated modular homepage, set
1020
1020
  * `modularHomeExperience` to `true` (available as Early Access feature in 9.12.5.cl).
@@ -1048,6 +1048,7 @@ export interface ViewConfig {
1048
1048
  * @type {boolean}
1049
1049
  * @default false
1050
1050
  * @version SDK: 1.24.0 | ThoughtSpot:9.4.0.cl, 9.4.0.sw
1051
+ *
1051
1052
  * @example
1052
1053
  * ```js
1053
1054
  * // Disable tracking PreRender size in the configuration
@@ -1244,7 +1245,7 @@ export interface RuntimeFilter {
1244
1245
  * a single operand, whereas other operators like BW and IN accept multiple
1245
1246
  * operands.
1246
1247
  */
1247
- values: (number | boolean | string)[];
1248
+ values: (number | boolean | string | bigint)[];
1248
1249
  }
1249
1250
  /**
1250
1251
  * A filter that can be applied to ThoughtSpot Answers, Liveboards, or
@@ -1479,19 +1480,14 @@ export enum EmbedEvent {
1479
1480
  /**
1480
1481
  * An error has occurred. This event is fired for the following error types:
1481
1482
  *
1482
- * `API`: API call failure error.
1483
- *
1484
- * `FULLSCREEN`: Error when presenting a Liveboard or visualization in full screen mode.
1485
- *
1486
- * `SINGLE_VALUE_FILTER`: Error due to multiple values in the single value filter.
1483
+ * `API` - API call failure error.
1484
+ * `FULLSCREEN` - Error when presenting a Liveboard or visualization in full screen mode.
1485
+ * `SINGLE_VALUE_FILTER` - Error due to multiple values in the single value filter.
1486
+ * `NON_EXIST_FILTER` - Error due to a non-existent filter.
1487
+ * `INVALID_DATE_VALUE` - Invalid date value error.
1488
+ * `INVALID_OPERATOR` - Use of invalid operator during filter application.
1487
1489
  *
1488
- * `NON_EXIST_FILTER`: Error due to a non-existent filter.
1489
- *
1490
- * `INVALID_DATE_VALUE`: Invalid date value error.
1491
- *
1492
- * `INVALID_OPERATOR`: Use of invalid operator during filter application.
1493
- *
1494
- * For more information, see https://developers.thoughtspot.com/docs/events-app-integration#errorType.
1490
+ * For more information, see https://developers.thoughtspot.com/docs/events-app-integration#errorType
1495
1491
  *
1496
1492
  * @returns error - An error object or message
1497
1493
  *
@@ -1605,7 +1601,7 @@ export enum EmbedEvent {
1605
1601
  /**
1606
1602
  * Emitted when the embed does not have cookie access. This happens
1607
1603
  * when Safari and other Web browsers block third-party cookies
1608
- * are blocked by default.
1604
+ * are blocked by default. `NoCookieAccess` can trigger
1609
1605
  *
1610
1606
  * @example
1611
1607
  *```js
@@ -1648,7 +1644,7 @@ export enum EmbedEvent {
1648
1644
  /**
1649
1645
  * Emitted when the Liveboard shell loads.
1650
1646
  * You can use this event as a hook to trigger
1651
- * actions on the rendered Liveboard.
1647
+ * other events on the rendered Liveboard.
1652
1648
  *
1653
1649
  * @version SDK: 1.9.1 | ThoughtSpot: 8.1.0.cl, 8.4.1.sw
1654
1650
  * @example
@@ -1702,7 +1698,7 @@ export enum EmbedEvent {
1702
1698
  /**
1703
1699
  * Emitted when the download action is triggered on an answer
1704
1700
  *
1705
- * **Note**: This event is deprecated in v1.21.0.
1701
+ * **Note**: This event is deprecated in v1.21.0.
1706
1702
  * To fire an event when a download action is initiated on a chart or table,
1707
1703
  * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPDF`, `EmbedEvent.DownloadAsCSV`,
1708
1704
  * or `EmbedEvent.DownloadAsXLSX`
@@ -1785,7 +1781,7 @@ export enum EmbedEvent {
1785
1781
  * //emit when action starts
1786
1782
  * appEmbed.on(EmbedEvent.AnswerDelete, payload => {
1787
1783
  * console.log('delete answer', payload)}, {start: true })
1788
- * //emit when action is completed
1784
+ * //trigger when action is completed
1789
1785
  * appEmbed.on(EmbedEvent.AnswerDelete, payload => {
1790
1786
  * console.log('delete answer', payload)})
1791
1787
  *```
@@ -2117,7 +2113,7 @@ export enum EmbedEvent {
2117
2113
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.5.0.sw
2118
2114
  * @example
2119
2115
  *```js
2120
- * liveboardEmbed.on(EmbedEvent.CrossFilterChanged, {
2116
+ * liveboardEmbed.trigger(HostEvent.CrossFilterChanged, {
2121
2117
  * vizId: '730496d6-6903-4601-937e-2c691821af3c'})
2122
2118
  *```
2123
2119
  */
@@ -2145,14 +2141,14 @@ export enum EmbedEvent {
2145
2141
  * Returns filter type and name, column name and ID, and runtime
2146
2142
  * filter details.
2147
2143
  *
2148
- * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.0.sw
2149
2144
  * @example
2150
2145
  *
2151
2146
  *```js
2152
2147
  * LiveboardEmbed.on(EmbedEvent.FilterChanged, (payload) => {
2153
2148
  * console.log('payload', payload);
2154
2149
  * })
2155
- *```
2150
+ *
2151
+ * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.0.sw
2156
2152
  */
2157
2153
  FilterChanged = 'filterChanged',
2158
2154
  /**
@@ -2240,6 +2236,24 @@ export enum EmbedEvent {
2240
2236
  * @version SDK : 1.28.0 | ThoughtSpot: 9.10.5.cl
2241
2237
  */
2242
2238
  Rename = 'rename',
2239
+ /**
2240
+ * Emitted when user wants to intercept the search execution
2241
+ *
2242
+ * Make isOnBeforeGetVizDataEnabled : true to use this embed
2243
+ * event
2244
+ *
2245
+ *```js
2246
+ * searchEmbed.on(EmbedEvent.OnBeforeGetVizData, (payload, responder) => {
2247
+ * responder({
2248
+ * data: {
2249
+ * execute: true,
2250
+ * error: {errorText: "My own customised error"}
2251
+ * }})
2252
+ * })
2253
+ *```
2254
+ * @version SDK : 1.29.0 | Thoughtspot : 10.1.0.cl
2255
+ */
2256
+ OnBeforeGetVizDataIntercept = 'onBeforeGetVizDataIntercept',
2243
2257
  }
2244
2258
 
2245
2259
  /**
@@ -3045,6 +3059,16 @@ export enum HostEvent {
3045
3059
  * @version SDK: 1.29.0 | Thoughtspot: 10.1.0.cl
3046
3060
  */
3047
3061
  ResetLiveboardPersonalisedView = 'ResetLiveboardPersonalisedView',
3062
+ /**
3063
+ * Trigger CreateLiveboard for liveboard list page & Pin Modal
3064
+ *
3065
+ * @example
3066
+ * ```js
3067
+ * liveboardEmbed.trigger(HostEvent.CreateLiveboard);
3068
+ *
3069
+ * @version SDK: 1.29.0 | Thoughtspot: 10.1.0.cl
3070
+ */
3071
+ CreateLiveboard = 'CreateLiveboard',
3048
3072
  }
3049
3073
 
3050
3074
  /**
@@ -3146,13 +3170,15 @@ export enum Param {
3146
3170
  ClientLogLevel = 'clientLogLevel',
3147
3171
  OverrideNativeConsole = 'overrideConsoleLogs',
3148
3172
  enableAskSage = 'enableAskSage',
3149
- CollapseSearchBarInitially= 'collapseSearchBarInitially',
3173
+ CollapseSearchBarInitially = 'collapseSearchBarInitially',
3174
+ DataPanelCustomGroupsAccordionInitialState = 'dataPanelCustomGroupsAccordionInitialState',
3150
3175
  EnableCustomColumnGroups = 'enableCustomColumnGroups',
3151
3176
  DateFormatLocale = 'dateFormatLocale',
3152
3177
  NumberFormatLocale = 'numberFormatLocale',
3153
3178
  CurrencyFormat = 'currencyFormat',
3154
3179
  Enable2ColumnLayout = 'enable2ColumnLayout',
3155
3180
  IsFullAppEmbed = 'isFullAppEmbed',
3181
+ IsOnBeforeGetVizDataInterceptEnabled = 'isOnBeforeGetVizDataInterceptEnabled',
3156
3182
  }
3157
3183
 
3158
3184
  /**
@@ -1,11 +1,11 @@
1
1
  import {
2
- EndPoints,
3
- fetchAuthPostService,
4
- fetchAuthService,
2
+ fetchSessionInfoService,
5
3
  fetchAuthTokenService,
4
+ fetchAuthService,
6
5
  fetchBasicAuthService,
7
- fetchSessionInfoService,
6
+ fetchAuthPostService,
8
7
  verifyTokenService,
8
+ EndPoints,
9
9
  } from '.';
10
10
  import { logger } from '../logger';
11
11
 
@@ -53,6 +53,14 @@ export const addColumns = `
53
53
  }
54
54
  `;
55
55
 
56
+ export const addFilter = `
57
+ mutation AddUpdateFilter($session: BachSessionIdInput!, $params: AddUpdateFilterInput!) {
58
+ Answer__addUpdateFilter(session: $session, params: $params) {
59
+ ${bachSessionId}
60
+ }
61
+ }
62
+ `;
63
+
56
64
  export const getAnswerData = `
57
65
  query GetTableWithHeadlineData($session: BachSessionIdInput!, $deadline: Int!, $dataPaginationParams: DataPaginationParamsInput!) {
58
66
  getAnswer(session: $session) {
@@ -1,7 +1,7 @@
1
1
  import 'jest-fetch-mock';
2
- import { AuthType, VizPoint } from '../../../types';
2
+ import { AuthType, RuntimeFilterOp, VizPoint } from '../../../types';
3
3
  import { AnswerService } from './answerService';
4
- import { getAnswerData, removeColumns } from './answer-queries';
4
+ import { getAnswerData, removeColumns, addFilter } from './answer-queries';
5
5
  import * as authTokenInstance from '../../../authToken';
6
6
  import * as tokenizedFetch from '../../../tokenizedFetch';
7
7
  import * as embedConfigInstance from '../../../embed/embedConfig';
@@ -266,4 +266,60 @@ describe('Answer service tests', () => {
266
266
  const answerService = createAnswerService({}, null);
267
267
  await expect(answerService.getUnderlyingDataForPoint(['col2'])).rejects.toThrow();
268
268
  });
269
+
270
+ test('addFilter should call the right API', async () => {
271
+ fetchMock.mockResponses(
272
+ JSON.stringify({
273
+ data: {
274
+ getSourceDetailById: [{
275
+ columns: [{
276
+ id: 'id1',
277
+ name: 'col1',
278
+ }],
279
+ }],
280
+ },
281
+ }),
282
+ JSON.stringify({
283
+ data: {
284
+ Answer__addUpdateFilter: {
285
+ id: {
286
+ genNo: 2,
287
+ },
288
+ },
289
+ },
290
+ }),
291
+ );
292
+ const answerService = createAnswerService({
293
+ sources: [{
294
+ header: {
295
+ guid: 'source1',
296
+ },
297
+ }],
298
+ });
299
+ const session = await answerService.addFilter('col1', RuntimeFilterOp.IN, [2]);
300
+ expect(fetchMock).toHaveBeenCalledWith(
301
+ 'https://tshost/prism/?op=AddUpdateFilter',
302
+ expect.objectContaining({
303
+ body: JSON.stringify({
304
+ operationName: 'AddUpdateFilter',
305
+ query: addFilter,
306
+ variables: {
307
+ session: defaultSession,
308
+ params: {
309
+ filterContent: [{
310
+ filterType: 'IN',
311
+ value: [{
312
+ type: 'DOUBLE',
313
+ doubleValue: 2,
314
+ }],
315
+ }],
316
+ filterGroupId: {
317
+ logicalColumnId: 'id1',
318
+ },
319
+ },
320
+ },
321
+ }),
322
+ }),
323
+ );
324
+ });
269
325
  });
@@ -1,6 +1,8 @@
1
1
  import { tokenizedFetch } from '../../../tokenizedFetch';
2
- import type { ColumnValue, VizPoint } from '../../../types';
3
- import { deepMerge, removeTypename } from '../../../utils';
2
+ import type {
3
+ ColumnValue, RuntimeFilter, RuntimeFilterOp, VizPoint,
4
+ } from '../../../types';
5
+ import { deepMerge, getTypeFromValue, removeTypename } from '../../../utils';
4
6
  import { graphqlQuery } from '../graphql-request';
5
7
  import { getSourceDetail } from '../sourceService';
6
8
  import * as queries from './answer-queries';
@@ -37,6 +39,16 @@ export interface UnderlyingDataPoint {
37
39
  * const data = await underlying.fetchData(0, 100);
38
40
  * })
39
41
  * ```
42
+ * @example
43
+ * ```js
44
+ * embed.on(EmbedEvent.Data, async (e) => {
45
+ * const service = await embed.getAnswerService();
46
+ * await service.addColumns([
47
+ * "<column guid>"
48
+ * ]);
49
+ * console.log(await service.fetchData());
50
+ * });
51
+ * ```
40
52
  * @version SDK: 1.25.0| ThoughtSpot: 9.10.0.cl
41
53
  * @group Events
42
54
  */
@@ -100,6 +112,63 @@ export class AnswerService {
100
112
  );
101
113
  }
102
114
 
115
+ /**
116
+ * Add columns by names and return updated answer session.
117
+ *
118
+ * @param columnNames
119
+ * @returns
120
+ * @example
121
+ * ```js
122
+ * embed.on(EmbedEvent.Data, async (e) => {
123
+ * const service = await embed.getAnswerService();
124
+ * await service.addColumnsByNames([
125
+ * "col name 1",
126
+ * "col name 2"
127
+ * ]);
128
+ * console.log(await service.fetchData());
129
+ * });
130
+ */
131
+ public async addColumnsByNames(columnNames: string[]) {
132
+ const sourceDetail = await this.getSourceDetail();
133
+ const columnGuids = getGuidsFromColumnNames(sourceDetail, columnNames);
134
+ return this.addColumns([...columnGuids]);
135
+ }
136
+
137
+ /**
138
+ * Add a filter to the answer.
139
+ *
140
+ * @param columnName
141
+ * @param operator
142
+ * @param values
143
+ * @returns
144
+ */
145
+ public async addFilter(columnName: string, operator: RuntimeFilterOp, values: RuntimeFilter['values']) {
146
+ const sourceDetail = await this.getSourceDetail();
147
+ const columnGuids = getGuidsFromColumnNames(sourceDetail, [columnName]);
148
+ return this.executeQuery(
149
+ queries.addFilter,
150
+ {
151
+ params: {
152
+ filterContent: [{
153
+ filterType: operator,
154
+ value: values.map(
155
+ (v) => {
156
+ const type = getTypeFromValue(v);
157
+ return {
158
+ type: type.toUpperCase(),
159
+ [`${type}Value`]: v,
160
+ };
161
+ },
162
+ ),
163
+ }],
164
+ filterGroupId: {
165
+ logicalColumnId: columnGuids.values().next().value,
166
+ },
167
+ },
168
+ },
169
+ );
170
+ }
171
+
103
172
  /**
104
173
  * Fetch data from the answer.
105
174
  *
package/src/utils.ts CHANGED
@@ -26,14 +26,19 @@ import {
26
26
  *
27
27
  * @param runtimeFilters
28
28
  */
29
- export const getFilterQuery = (runtimeFilters: RuntimeFilter[]): string => {
29
+ export const getFilterQuery = (runtimeFilters: RuntimeFilter[]): string | null => {
30
30
  if (runtimeFilters && runtimeFilters.length) {
31
31
  const filters = runtimeFilters.map((filter, valueIndex) => {
32
32
  const index = valueIndex + 1;
33
33
  const filterExpr = [];
34
34
  filterExpr.push(`col${index}=${encodeURIComponent(filter.columnName)}`);
35
35
  filterExpr.push(`op${index}=${filter.operator}`);
36
- filterExpr.push(filter.values.map((value) => `val${index}=${encodeURIComponent(value)}`).join('&'));
36
+ filterExpr.push(
37
+ filter.values.map((value) => {
38
+ const encodedValue = typeof value === 'bigint' ? value.toString() : value;
39
+ return `val${index}=${encodeURIComponent(String(encodedValue))}`;
40
+ }).join('&'),
41
+ );
37
42
 
38
43
  return filterExpr.join('&');
39
44
  });
@@ -317,3 +322,17 @@ export const removeStyleProperties = (element: HTMLElement, styleProperties: str
317
322
  };
318
323
 
319
324
  export const isUndefined = (value: any): boolean => value === undefined;
325
+
326
+ // Return if the value is a string, double or boolean.
327
+ export const getTypeFromValue = (value: any): string => {
328
+ if (typeof value === 'string') {
329
+ return 'string';
330
+ }
331
+ if (typeof value === 'number') {
332
+ return 'double';
333
+ }
334
+ if (typeof value === 'boolean') {
335
+ return 'boolean';
336
+ }
337
+ return '';
338
+ };