@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.
- package/README.md +1 -1
- package/cjs/package.json +1 -1
- package/cjs/src/auth.d.ts.map +1 -1
- package/cjs/src/auth.js +2 -2
- package/cjs/src/auth.js.map +1 -1
- package/cjs/src/authToken.d.ts +1 -1
- package/cjs/src/authToken.js +1 -1
- package/cjs/src/embed/app.d.ts +58 -7
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +40 -4
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +11 -0
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/base.d.ts +1 -1
- package/cjs/src/embed/base.d.ts.map +1 -1
- package/cjs/src/embed/base.js +6 -6
- package/cjs/src/embed/base.js.map +1 -1
- package/cjs/src/embed/base.spec.js +1 -1
- package/cjs/src/embed/base.spec.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +8 -2
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/search.d.ts +56 -5
- package/cjs/src/embed/search.d.ts.map +1 -1
- package/cjs/src/embed/search.js +41 -5
- package/cjs/src/embed/search.js.map +1 -1
- package/cjs/src/embed/search.spec.js +11 -0
- package/cjs/src/embed/search.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts +1 -1
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +12 -6
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +9 -18
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/react/index.spec.js +1 -13
- package/cjs/src/react/index.spec.js.map +1 -1
- package/cjs/src/types.d.ts +58 -31
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +44 -20
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/answerService/answerService.d.ts +34 -0
- package/cjs/src/utils/answerService/answerService.d.ts.map +1 -0
- package/cjs/src/utils/answerService/answerService.js +142 -0
- package/cjs/src/utils/answerService/answerService.js.map +1 -0
- package/cjs/src/utils/answerService/answerService.spec.d.ts +1 -0
- package/cjs/src/utils/answerService/answerService.spec.d.ts.map +1 -0
- package/cjs/src/utils/answerService/answerService.spec.js +1 -0
- package/cjs/src/utils/answerService/answerService.spec.js.map +1 -0
- package/cjs/src/utils/answerService/graphql-queries.d.ts +6 -0
- package/cjs/src/utils/answerService/graphql-queries.d.ts.map +1 -0
- package/cjs/src/utils/answerService/graphql-queries.js +123 -0
- package/cjs/src/utils/answerService/graphql-queries.js.map +1 -0
- package/cjs/src/utils/answerService.d.ts +10 -0
- package/cjs/src/utils/answerService.d.ts.map +1 -0
- package/cjs/src/utils/answerService.js +61 -0
- package/cjs/src/utils/answerService.js.map +1 -0
- package/cjs/src/utils/answerService.spec.d.ts +2 -0
- package/cjs/src/utils/answerService.spec.d.ts.map +1 -0
- package/cjs/src/utils/answerService.spec.js +31 -0
- package/cjs/src/utils/answerService.spec.js.map +1 -0
- package/cjs/src/utils/authService.d.ts +37 -0
- package/cjs/src/utils/authService.d.ts.map +1 -0
- package/cjs/src/utils/authService.js +106 -0
- package/cjs/src/utils/authService.js.map +1 -0
- package/cjs/src/utils/authService.spec.d.ts +2 -0
- package/cjs/src/utils/authService.spec.d.ts.map +1 -0
- package/cjs/src/utils/authService.spec.js +72 -0
- package/cjs/src/utils/authService.spec.js.map +1 -0
- package/cjs/src/utils/graphql/answerService/answer-queries.d.ts +1 -0
- package/cjs/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -1
- package/cjs/src/utils/graphql/answerService/answer-queries.js +8 -1
- package/cjs/src/utils/graphql/answerService/answer-queries.js.map +1 -1
- package/cjs/src/utils/graphql/answerService/answerService.d.ts +37 -1
- package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/cjs/src/utils/graphql/answerService/answerService.js +60 -0
- package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -1
- package/cjs/src/utils/graphql/answerService/answerService.spec.js +49 -0
- package/cjs/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
- package/cjs/src/utils/graphql/answerService/graphql-queries.d.ts +5 -0
- package/cjs/src/utils/graphql/answerService/graphql-queries.d.ts.map +1 -0
- package/cjs/src/utils/graphql/answerService/graphql-queries.js +80 -0
- package/cjs/src/utils/graphql/answerService/graphql-queries.js.map +1 -0
- package/cjs/src/utils.d.ts +2 -1
- package/cjs/src/utils.d.ts.map +1 -1
- package/cjs/src/utils.js +19 -2
- package/cjs/src/utils.js.map +1 -1
- package/dist/src/auth.d.ts.map +1 -1
- package/dist/src/authToken.d.ts +1 -1
- package/dist/src/embed/app.d.ts +58 -7
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/base.d.ts +1 -1
- package/dist/src/embed/base.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +8 -2
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/search.d.ts +56 -5
- package/dist/src/embed/search.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +1 -1
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/types.d.ts +58 -31
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/answerService.d.ts +10 -0
- package/dist/src/utils/answerService.d.ts.map +1 -0
- package/dist/src/utils/answerService.spec.d.ts +2 -0
- package/dist/src/utils/answerService.spec.d.ts.map +1 -0
- package/dist/src/utils/authService.d.ts +37 -0
- package/dist/src/utils/authService.d.ts.map +1 -0
- package/dist/src/utils/authService.spec.d.ts +2 -0
- package/dist/src/utils/authService.spec.d.ts.map +1 -0
- package/dist/src/utils/graphql/answerService/answer-queries.d.ts +1 -0
- package/dist/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -1
- package/dist/src/utils/graphql/answerService/answerService.d.ts +37 -1
- package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/dist/src/utils.d.ts +2 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +7105 -6920
- package/dist/tsembed-react.js +7133 -6948
- package/dist/tsembed.es.js +7372 -7187
- package/dist/tsembed.js +15659 -15474
- package/dist/visual-embed-sdk-react-full.d.ts +215 -44
- package/dist/visual-embed-sdk-react.d.ts +215 -44
- package/dist/visual-embed-sdk.d.ts +215 -44
- package/lib/package.json +1 -1
- package/lib/src/.index.d.ts.swp +0 -0
- package/lib/src/auth.d.ts.map +1 -1
- package/lib/src/auth.js +3 -3
- package/lib/src/auth.js.map +1 -1
- package/lib/src/authToken.d.ts +1 -1
- package/lib/src/authToken.js +1 -1
- package/lib/src/embed/app.d.ts +58 -7
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +39 -3
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +12 -1
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/base.d.ts +1 -1
- package/lib/src/embed/base.d.ts.map +1 -1
- package/lib/src/embed/base.js +5 -5
- package/lib/src/embed/base.js.map +1 -1
- package/lib/src/embed/base.spec.js +2 -2
- package/lib/src/embed/base.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +8 -2
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +1 -1
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/search.d.ts +56 -5
- package/lib/src/embed/search.d.ts.map +1 -1
- package/lib/src/embed/search.js +41 -5
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/search.spec.js +12 -1
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +1 -1
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +15 -9
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +9 -18
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/react/index.spec.js +1 -13
- package/lib/src/react/index.spec.js.map +1 -1
- package/lib/src/types.d.ts +58 -31
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +44 -20
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/answerService/answerService.d.ts +34 -0
- package/lib/src/utils/answerService/answerService.d.ts.map +1 -0
- package/lib/src/utils/answerService/answerService.js +137 -0
- package/lib/src/utils/answerService/answerService.js.map +1 -0
- package/lib/src/utils/answerService/answerService.spec.d.ts +1 -0
- package/lib/src/utils/answerService/answerService.spec.d.ts.map +1 -0
- package/lib/src/utils/answerService/answerService.spec.js +1 -0
- package/lib/src/utils/answerService/answerService.spec.js.map +1 -0
- package/lib/src/utils/answerService/graphql-queries.d.ts +6 -0
- package/lib/src/utils/answerService/graphql-queries.d.ts.map +1 -0
- package/lib/src/utils/answerService/graphql-queries.js +120 -0
- package/lib/src/utils/answerService/graphql-queries.js.map +1 -0
- package/lib/src/utils/answerService.d.ts +10 -0
- package/lib/src/utils/answerService.d.ts.map +1 -0
- package/lib/src/utils/answerService.js +57 -0
- package/lib/src/utils/answerService.js.map +1 -0
- package/lib/src/utils/answerService.spec.d.ts +2 -0
- package/lib/src/utils/answerService.spec.d.ts.map +1 -0
- package/lib/src/utils/answerService.spec.js +29 -0
- package/lib/src/utils/answerService.spec.js.map +1 -0
- package/lib/src/utils/authService/authService.spec.js +1 -1
- package/lib/src/utils/authService/authService.spec.js.map +1 -1
- package/lib/src/utils/authService.d.ts +37 -0
- package/lib/src/utils/authService.d.ts.map +1 -0
- package/lib/src/utils/authService.js +97 -0
- package/lib/src/utils/authService.js.map +1 -0
- package/lib/src/utils/authService.spec.d.ts +2 -0
- package/lib/src/utils/authService.spec.d.ts.map +1 -0
- package/lib/src/utils/authService.spec.js +70 -0
- package/lib/src/utils/authService.spec.js.map +1 -0
- package/lib/src/utils/graphql/answerService/answer-queries.d.ts +1 -0
- package/lib/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -1
- package/lib/src/utils/graphql/answerService/answer-queries.js +7 -0
- package/lib/src/utils/graphql/answerService/answer-queries.js.map +1 -1
- package/lib/src/utils/graphql/answerService/answerService.d.ts +37 -1
- package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/lib/src/utils/graphql/answerService/answerService.js +61 -1
- package/lib/src/utils/graphql/answerService/answerService.js.map +1 -1
- package/lib/src/utils/graphql/answerService/answerService.spec.js +51 -2
- package/lib/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
- package/lib/src/utils/graphql/answerService/graphql-queries.d.ts +5 -0
- package/lib/src/utils/graphql/answerService/graphql-queries.d.ts.map +1 -0
- package/lib/src/utils/graphql/answerService/graphql-queries.js +77 -0
- package/lib/src/utils/graphql/answerService/graphql-queries.js.map +1 -0
- package/lib/src/utils.d.ts +2 -1
- package/lib/src/utils.d.ts.map +1 -1
- package/lib/src/utils.js +17 -1
- package/lib/src/utils.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +220 -49
- package/package.json +1 -1
- package/src/auth.ts +6 -6
- package/src/authToken.ts +1 -1
- package/src/embed/app.spec.ts +22 -1
- package/src/embed/app.ts +86 -9
- package/src/embed/base.spec.ts +3 -3
- package/src/embed/base.ts +14 -14
- package/src/embed/liveboard.ts +16 -3
- package/src/embed/search.spec.ts +20 -1
- package/src/embed/search.ts +85 -11
- package/src/embed/ts-embed.spec.ts +26 -34
- package/src/embed/ts-embed.ts +49 -39
- package/src/react/index.spec.tsx +1 -30
- package/src/types.ts +56 -30
- package/src/utils/authService/authService.spec.ts +4 -4
- package/src/utils/graphql/answerService/answer-queries.ts +8 -0
- package/src/utils/graphql/answerService/answerService.spec.ts +58 -2
- package/src/utils/graphql/answerService/answerService.ts +71 -2
- 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
|
-
*
|
|
1483
|
-
*
|
|
1484
|
-
*
|
|
1485
|
-
*
|
|
1486
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
* //
|
|
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.
|
|
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
|
-
|
|
3
|
-
fetchAuthPostService,
|
|
4
|
-
fetchAuthService,
|
|
2
|
+
fetchSessionInfoService,
|
|
5
3
|
fetchAuthTokenService,
|
|
4
|
+
fetchAuthService,
|
|
6
5
|
fetchBasicAuthService,
|
|
7
|
-
|
|
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 {
|
|
3
|
-
|
|
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(
|
|
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
|
+
};
|