@thoughtspot/visual-embed-sdk 1.48.0 → 1.49.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/cjs/package.json +1 -1
- package/cjs/src/css-variables.d.ts +140 -0
- package/cjs/src/css-variables.d.ts.map +1 -1
- package/cjs/src/embed/app.d.ts +62 -1
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +57 -6
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +191 -1
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/auto-frame-renderer.js +7 -2
- package/cjs/src/embed/auto-frame-renderer.js.map +1 -1
- package/cjs/src/embed/auto-frame-renderer.spec.js +385 -6
- package/cjs/src/embed/auto-frame-renderer.spec.js.map +1 -1
- package/cjs/src/embed/base.d.ts +1 -0
- package/cjs/src/embed/base.d.ts.map +1 -1
- package/cjs/src/embed/base.js +13 -1
- package/cjs/src/embed/base.js.map +1 -1
- package/cjs/src/embed/base.spec.js +21 -0
- package/cjs/src/embed/base.spec.js.map +1 -1
- package/cjs/src/embed/bodyless-conversation.spec.js +86 -0
- package/cjs/src/embed/bodyless-conversation.spec.js.map +1 -1
- package/cjs/src/embed/conversation.d.ts +16 -1
- package/cjs/src/embed/conversation.d.ts.map +1 -1
- package/cjs/src/embed/conversation.js +5 -1
- package/cjs/src/embed/conversation.js.map +1 -1
- package/cjs/src/embed/conversation.spec.js +26 -0
- package/cjs/src/embed/conversation.spec.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +47 -1
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +47 -6
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +129 -1
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/spotter-viz-utils.d.ts +85 -0
- package/cjs/src/embed/spotter-viz-utils.d.ts.map +1 -0
- package/cjs/src/embed/spotter-viz-utils.js +17 -0
- package/cjs/src/embed/spotter-viz-utils.js.map +1 -0
- package/cjs/src/embed/spotter-viz-utils.spec.d.ts +2 -0
- package/cjs/src/embed/spotter-viz-utils.spec.d.ts.map +1 -0
- package/cjs/src/embed/spotter-viz-utils.spec.js +31 -0
- package/cjs/src/embed/spotter-viz-utils.spec.js.map +1 -0
- package/cjs/src/embed/ts-embed.d.ts +58 -38
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +245 -149
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +369 -123
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/index.d.ts +2 -1
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/react/index.d.ts.map +1 -1
- package/cjs/src/react/index.js +3 -0
- package/cjs/src/react/index.js.map +1 -1
- package/cjs/src/types.d.ts +267 -27
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +223 -19
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/authService/tokenizedAuthService.spec.js +6 -7
- package/cjs/src/utils/authService/tokenizedAuthService.spec.js.map +1 -1
- package/cjs/src/utils/logger.js +2 -1
- package/cjs/src/utils/logger.js.map +1 -1
- package/cjs/src/utils/logger.spec.d.ts +1 -0
- package/cjs/src/utils/logger.spec.d.ts.map +1 -1
- package/cjs/src/utils/logger.spec.js +10 -9
- package/cjs/src/utils/logger.spec.js.map +1 -1
- package/cjs/src/utils.d.ts +4 -1
- package/cjs/src/utils.d.ts.map +1 -1
- package/cjs/src/utils.js +107 -10
- package/cjs/src/utils.js.map +1 -1
- package/cjs/src/utils.spec.js +163 -4
- package/cjs/src/utils.spec.js.map +1 -1
- package/dist/{index-Ck-r09gt.js → index-_UGCSSDR.js} +1 -1
- package/dist/src/css-variables.d.ts +140 -0
- package/dist/src/css-variables.d.ts.map +1 -1
- package/dist/src/embed/app.d.ts +62 -1
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/base.d.ts +1 -0
- package/dist/src/embed/base.d.ts.map +1 -1
- package/dist/src/embed/conversation.d.ts +16 -1
- package/dist/src/embed/conversation.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +47 -1
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/spotter-viz-utils.d.ts +85 -0
- package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -0
- package/dist/src/embed/spotter-viz-utils.spec.d.ts +2 -0
- package/dist/src/embed/spotter-viz-utils.spec.d.ts.map +1 -0
- package/dist/src/embed/ts-embed.d.ts +58 -38
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/types.d.ts +267 -27
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/logger.spec.d.ts +1 -0
- package/dist/src/utils/logger.spec.d.ts.map +1 -1
- package/dist/src/utils.d.ts +4 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +3708 -3226
- package/dist/tsembed-react.js +3358 -2876
- package/dist/tsembed.es.js +3713 -3229
- package/dist/tsembed.js +3708 -3224
- package/dist/visual-embed-sdk-react-full.d.ts +643 -63
- package/dist/visual-embed-sdk-react.d.ts +643 -63
- package/dist/visual-embed-sdk.d.ts +658 -65
- package/lib/package.json +1 -1
- package/lib/src/css-variables.d.ts +140 -0
- package/lib/src/css-variables.d.ts.map +1 -1
- package/lib/src/embed/app.d.ts +62 -1
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +58 -7
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +192 -2
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/auto-frame-renderer.js +7 -2
- package/lib/src/embed/auto-frame-renderer.js.map +1 -1
- package/lib/src/embed/auto-frame-renderer.spec.js +387 -8
- package/lib/src/embed/auto-frame-renderer.spec.js.map +1 -1
- package/lib/src/embed/base.d.ts +1 -0
- package/lib/src/embed/base.d.ts.map +1 -1
- package/lib/src/embed/base.js +11 -0
- package/lib/src/embed/base.js.map +1 -1
- package/lib/src/embed/base.spec.js +22 -1
- package/lib/src/embed/base.spec.js.map +1 -1
- package/lib/src/embed/bodyless-conversation.spec.js +86 -0
- package/lib/src/embed/bodyless-conversation.spec.js.map +1 -1
- package/lib/src/embed/conversation.d.ts +16 -1
- package/lib/src/embed/conversation.d.ts.map +1 -1
- package/lib/src/embed/conversation.js +5 -1
- package/lib/src/embed/conversation.js.map +1 -1
- package/lib/src/embed/conversation.spec.js +27 -1
- package/lib/src/embed/conversation.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +47 -1
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +48 -7
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +129 -1
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/spotter-viz-utils.d.ts +85 -0
- package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -0
- package/lib/src/embed/spotter-viz-utils.js +13 -0
- package/lib/src/embed/spotter-viz-utils.js.map +1 -0
- package/lib/src/embed/spotter-viz-utils.spec.d.ts +2 -0
- package/lib/src/embed/spotter-viz-utils.spec.d.ts.map +1 -0
- package/lib/src/embed/spotter-viz-utils.spec.js +29 -0
- package/lib/src/embed/spotter-viz-utils.spec.js.map +1 -0
- package/lib/src/embed/ts-embed.d.ts +58 -38
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +248 -152
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +369 -123
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/index.d.ts +2 -1
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js.map +1 -1
- package/lib/src/react/index.d.ts.map +1 -1
- package/lib/src/react/index.js +3 -0
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/types.d.ts +267 -27
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +223 -19
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/authService/tokenizedAuthService.spec.js +6 -7
- package/lib/src/utils/authService/tokenizedAuthService.spec.js.map +1 -1
- package/lib/src/utils/logger.js +2 -1
- package/lib/src/utils/logger.js.map +1 -1
- package/lib/src/utils/logger.spec.d.ts +1 -0
- package/lib/src/utils/logger.spec.d.ts.map +1 -1
- package/lib/src/utils/logger.spec.js +10 -9
- package/lib/src/utils/logger.spec.js.map +1 -1
- package/lib/src/utils.d.ts +4 -1
- package/lib/src/utils.d.ts.map +1 -1
- package/lib/src/utils.js +103 -9
- package/lib/src/utils.js.map +1 -1
- package/lib/src/utils.spec.js +164 -5
- package/lib/src/utils.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +658 -65
- package/package.json +1 -1
- package/src/css-variables.ts +175 -1
- package/src/embed/app.spec.ts +247 -3
- package/src/embed/app.ts +125 -5
- package/src/embed/auto-frame-renderer.spec.ts +457 -58
- package/src/embed/auto-frame-renderer.ts +7 -2
- package/src/embed/base.spec.ts +25 -1
- package/src/embed/base.ts +19 -5
- package/src/embed/bodyless-conversation.spec.ts +93 -0
- package/src/embed/conversation.spec.ts +34 -0
- package/src/embed/conversation.ts +22 -1
- package/src/embed/liveboard.spec.ts +149 -1
- package/src/embed/liveboard.ts +102 -6
- package/src/embed/spotter-viz-utils.spec.ts +30 -0
- package/src/embed/spotter-viz-utils.ts +94 -0
- package/src/embed/ts-embed.spec.ts +532 -234
- package/src/embed/ts-embed.ts +383 -257
- package/src/index.ts +3 -0
- package/src/react/index.tsx +3 -0
- package/src/types.ts +284 -23
- package/src/utils/authService/tokenizedAuthService.spec.ts +6 -6
- package/src/utils/logger.spec.ts +11 -9
- package/src/utils/logger.ts +2 -2
- package/src/utils.spec.ts +200 -4
- package/src/utils.ts +128 -9
package/package.json
CHANGED
package/src/css-variables.ts
CHANGED
|
@@ -991,4 +991,178 @@ export interface CustomCssVariables {
|
|
|
991
991
|
* Background color of the color palette in the Liveboard styling panel.
|
|
992
992
|
*/
|
|
993
993
|
'--ts-var-liveboard-styling-color-palette-background'?: string;
|
|
994
|
-
|
|
994
|
+
|
|
995
|
+
/**
|
|
996
|
+
* Main panel background of the SpotterViz.
|
|
997
|
+
*/
|
|
998
|
+
'--ts-var-spotterviz-panel-background'?: string;
|
|
999
|
+
|
|
1000
|
+
/**
|
|
1001
|
+
* Background color of the chat input field in SpotterViz.
|
|
1002
|
+
*/
|
|
1003
|
+
'--ts-var-spotterviz-input-background'?: string;
|
|
1004
|
+
|
|
1005
|
+
/**
|
|
1006
|
+
* Placeholder text color of the chat input field in SpotterViz.
|
|
1007
|
+
*/
|
|
1008
|
+
'--ts-var-spotterviz-input-placeholder-color'?: string;
|
|
1009
|
+
|
|
1010
|
+
/**
|
|
1011
|
+
* CTA color of the chat input field in SpotterViz.
|
|
1012
|
+
*/
|
|
1013
|
+
'--ts-var-spotterviz-input-cta-color'?: string;
|
|
1014
|
+
|
|
1015
|
+
/**
|
|
1016
|
+
* CTA hover color of the chat input field in SpotterViz.
|
|
1017
|
+
*/
|
|
1018
|
+
'--ts-var-spotterviz-input-cta-hover-color'?: string;
|
|
1019
|
+
|
|
1020
|
+
/**
|
|
1021
|
+
* Text color for the SpotterViz label in the empty state, displayed below
|
|
1022
|
+
* the SpotterViz icon.
|
|
1023
|
+
*/
|
|
1024
|
+
'--ts-var-spotterviz-emptystate-spotterviz-color'?: string;
|
|
1025
|
+
|
|
1026
|
+
/**
|
|
1027
|
+
* Background color of the starter prompt cards in SpotterViz.
|
|
1028
|
+
*/
|
|
1029
|
+
'--ts-var-spotterviz-prompt-card-background'?: string;
|
|
1030
|
+
|
|
1031
|
+
/**
|
|
1032
|
+
* Background hover color of the starter prompt cards in SpotterViz.
|
|
1033
|
+
*/
|
|
1034
|
+
'--ts-var-spotterviz-prompt-card-hover-background'?: string;
|
|
1035
|
+
|
|
1036
|
+
/**
|
|
1037
|
+
* Primary text color in SpotterViz, also used for tool response text,
|
|
1038
|
+
* upvote/downvote buttons, and other primary content.
|
|
1039
|
+
*/
|
|
1040
|
+
'--ts-var-spotterviz-text-primary'?: string;
|
|
1041
|
+
|
|
1042
|
+
/**
|
|
1043
|
+
* Secondary text color in SpotterViz.
|
|
1044
|
+
*/
|
|
1045
|
+
'--ts-var-spotterviz-text-secondary'?: string;
|
|
1046
|
+
|
|
1047
|
+
/**
|
|
1048
|
+
* Background color of the user chat message bubble in SpotterViz.
|
|
1049
|
+
*/
|
|
1050
|
+
'--ts-var-spotterviz-message-background'?: string;
|
|
1051
|
+
|
|
1052
|
+
/**
|
|
1053
|
+
* Hover color for the user chat message expand button in SpotterViz.
|
|
1054
|
+
*/
|
|
1055
|
+
'--ts-var-spotterviz-usermessage-icon-hover'?: string;
|
|
1056
|
+
|
|
1057
|
+
/**
|
|
1058
|
+
* Background color of the user chat message expand button in SpotterViz.
|
|
1059
|
+
*/
|
|
1060
|
+
'--ts-var-spotterviz-usermessage-icon-background'?: string;
|
|
1061
|
+
|
|
1062
|
+
/**
|
|
1063
|
+
* Color of the thinking step header when in progress in SpotterViz.
|
|
1064
|
+
*/
|
|
1065
|
+
'--ts-var-spotterviz-thinking-inprogress-header-color'?: string;
|
|
1066
|
+
|
|
1067
|
+
/**
|
|
1068
|
+
* Color of the thinking step header when completed in SpotterViz.
|
|
1069
|
+
*/
|
|
1070
|
+
'--ts-var-spotterviz-thinking-completed-header-color'?: string;
|
|
1071
|
+
|
|
1072
|
+
/**
|
|
1073
|
+
* Color of the final completion indicator icon shown when all work is done.
|
|
1074
|
+
* The last green dot which is shown when work is done.
|
|
1075
|
+
*/
|
|
1076
|
+
'--ts-var-spotterviz-thinking-work-done-icon-color'?: string;
|
|
1077
|
+
|
|
1078
|
+
/**
|
|
1079
|
+
* Hover background color for the working/work done CTA in SpotterViz.
|
|
1080
|
+
*/
|
|
1081
|
+
'--ts-var-spotterviz-thinking-cta-hover-background'?: string;
|
|
1082
|
+
|
|
1083
|
+
/**
|
|
1084
|
+
* Background color of tool call panels in SpotterViz.
|
|
1085
|
+
*/
|
|
1086
|
+
'--ts-var-spotterviz-tool-call-background'?: string;
|
|
1087
|
+
|
|
1088
|
+
/**
|
|
1089
|
+
* Color of tool titles and icons in SpotterViz.
|
|
1090
|
+
*/
|
|
1091
|
+
'--ts-var-spotterviz-tool-title-color'?: string;
|
|
1092
|
+
|
|
1093
|
+
/**
|
|
1094
|
+
* Border color of tool call panels in SpotterViz.
|
|
1095
|
+
*/
|
|
1096
|
+
'--ts-var-spotterviz-tool-border-color'?: string;
|
|
1097
|
+
|
|
1098
|
+
/**
|
|
1099
|
+
* Background color of the JSON input panel inside a tool call in SpotterViz.
|
|
1100
|
+
*/
|
|
1101
|
+
'--ts-var-spotterviz-tool-json-input-background'?: string;
|
|
1102
|
+
|
|
1103
|
+
/**
|
|
1104
|
+
* Background color of the upvote/downvote feedback buttons in SpotterViz.
|
|
1105
|
+
*/
|
|
1106
|
+
'--ts-var-spotterviz-tool-feedback-button-background'?: string;
|
|
1107
|
+
|
|
1108
|
+
/**
|
|
1109
|
+
* Hover background color of the upvote/downvote feedback buttons in SpotterViz.
|
|
1110
|
+
*/
|
|
1111
|
+
'--ts-var-spotterviz-tool-feedback-button-hover'?: string;
|
|
1112
|
+
|
|
1113
|
+
/**
|
|
1114
|
+
* Text color of the JSON input panel inside a tool call in SpotterViz.
|
|
1115
|
+
*/
|
|
1116
|
+
'--ts-var-spotterviz-tool-json-input-color'?: string;
|
|
1117
|
+
|
|
1118
|
+
/**
|
|
1119
|
+
* Background color of the last checkpoint section in SpotterViz.
|
|
1120
|
+
*/
|
|
1121
|
+
'--ts-var-spotterviz-last-checkpoint-background'?: string;
|
|
1122
|
+
|
|
1123
|
+
/**
|
|
1124
|
+
* Border color of the last checkpoint section in SpotterViz.
|
|
1125
|
+
*/
|
|
1126
|
+
'--ts-var-spotterviz-last-checkpoint-border'?: string;
|
|
1127
|
+
|
|
1128
|
+
/**
|
|
1129
|
+
* Border color of the Liveboard edit header toolbar.
|
|
1130
|
+
*/
|
|
1131
|
+
'--ts-var-liveboard-edit-toolbar-border'?: string;
|
|
1132
|
+
|
|
1133
|
+
/**
|
|
1134
|
+
* Background color of the selected section in the Liveboard edit header toolbar.
|
|
1135
|
+
*/
|
|
1136
|
+
'--ts-var-liveboard-edit-toolbar-selected-background'?: string;
|
|
1137
|
+
|
|
1138
|
+
/**
|
|
1139
|
+
* Text color of the selected section in the Liveboard edit header toolbar.
|
|
1140
|
+
*/
|
|
1141
|
+
'--ts-var-liveboard-edit-toolbar-selected-text-color'?: string;
|
|
1142
|
+
|
|
1143
|
+
/**
|
|
1144
|
+
* Text color of unselected items in the Liveboard edit header toolbar.
|
|
1145
|
+
*/
|
|
1146
|
+
'--ts-var-liveboard-edit-toolbar-text'?: string;
|
|
1147
|
+
|
|
1148
|
+
/**
|
|
1149
|
+
* Hover background color of unselected items in the Liveboard edit header toolbar.
|
|
1150
|
+
*/
|
|
1151
|
+
'--ts-var-liveboard-edit-toolbar-hover-background'?: string;
|
|
1152
|
+
|
|
1153
|
+
/**
|
|
1154
|
+
* Hover text color of unselected items in the Liveboard edit header toolbar.
|
|
1155
|
+
*/
|
|
1156
|
+
'--ts-var-liveboard-edit-toolbar-hover-text-color'?: string;
|
|
1157
|
+
|
|
1158
|
+
/**
|
|
1159
|
+
* Text color of the SpotterViz footer.
|
|
1160
|
+
*/
|
|
1161
|
+
'--ts-var-spotterviz-footer-text-color'?: string;
|
|
1162
|
+
|
|
1163
|
+
/**
|
|
1164
|
+
* Shared border color used throughout SpotterViz: input box, user message,
|
|
1165
|
+
* header underline, left panel border, thinking step connector and dots.
|
|
1166
|
+
*/
|
|
1167
|
+
'--ts-var-spotterviz-border-color'?: string;
|
|
1168
|
+
}
|
package/src/embed/app.spec.ts
CHANGED
|
@@ -23,6 +23,7 @@ import {
|
|
|
23
23
|
expectUrlMatchesWithParams,
|
|
24
24
|
postMessageToParent,
|
|
25
25
|
testVisualOverridesInEmbed,
|
|
26
|
+
expectUrlToHaveParamsWithValues,
|
|
26
27
|
} from '../test/test-utils';
|
|
27
28
|
import { version } from '../../package.json';
|
|
28
29
|
import * as config from '../config';
|
|
@@ -521,6 +522,18 @@ describe('App embed tests', () => {
|
|
|
521
522
|
});
|
|
522
523
|
});
|
|
523
524
|
|
|
525
|
+
test('Should add homepageVersion=v4 when homePage is Focused to the iframe src', async () => {
|
|
526
|
+
await testUrlParams(
|
|
527
|
+
{
|
|
528
|
+
...defaultViewConfig,
|
|
529
|
+
discoveryExperience: {
|
|
530
|
+
homePage: HomePage.Focused,
|
|
531
|
+
},
|
|
532
|
+
} as AppViewConfig,
|
|
533
|
+
`http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&modularHomeExperience=false&navigationVersion=v2&homepageVersion=v4${defaultParams}${defaultParamsPost}#/home`,
|
|
534
|
+
);
|
|
535
|
+
});
|
|
536
|
+
|
|
524
537
|
test('should set isLiveboardXLSXCSVDownloadEnabled to true in url', async () => {
|
|
525
538
|
const appEmbed = new AppEmbed(getRootEl(), {
|
|
526
539
|
...defaultViewConfig,
|
|
@@ -579,6 +592,141 @@ describe('App embed tests', () => {
|
|
|
579
592
|
});
|
|
580
593
|
});
|
|
581
594
|
|
|
595
|
+
test('should include spotterVizConfig in APP_INIT embedParams when spotterViz is provided', async () => {
|
|
596
|
+
const spotterViz = {
|
|
597
|
+
brandName: 'MyBrand',
|
|
598
|
+
brandHeadline: "Hi, there! I'm",
|
|
599
|
+
description: 'Ask questions about your data',
|
|
600
|
+
inputChatPlaceholder: 'Ask a question...',
|
|
601
|
+
hideStarterPrompts: false,
|
|
602
|
+
customStarterPrompts: [
|
|
603
|
+
{
|
|
604
|
+
id: '001',
|
|
605
|
+
displayText: 'Show revenue by region',
|
|
606
|
+
fullPrompt: 'Show revenue by region',
|
|
607
|
+
},
|
|
608
|
+
{ id: '002', displayText: 'Top customers', fullPrompt: 'Top customers by sales' },
|
|
609
|
+
],
|
|
610
|
+
};
|
|
611
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
612
|
+
...defaultViewConfig,
|
|
613
|
+
spotterViz,
|
|
614
|
+
} as AppViewConfig);
|
|
615
|
+
|
|
616
|
+
mockMessageChannel();
|
|
617
|
+
appEmbed.render();
|
|
618
|
+
|
|
619
|
+
const mockPort: any = { postMessage: jest.fn() };
|
|
620
|
+
await executeAfterWait(() => {
|
|
621
|
+
postMessageToParent(
|
|
622
|
+
getIFrameEl().contentWindow,
|
|
623
|
+
{ type: EmbedEvent.APP_INIT, data: {} },
|
|
624
|
+
mockPort,
|
|
625
|
+
);
|
|
626
|
+
});
|
|
627
|
+
await executeAfterWait(() => {
|
|
628
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
629
|
+
type: EmbedEvent.APP_INIT,
|
|
630
|
+
data: expect.objectContaining({
|
|
631
|
+
embedParams: expect.objectContaining({
|
|
632
|
+
spotterVizConfig: spotterViz,
|
|
633
|
+
}),
|
|
634
|
+
}),
|
|
635
|
+
});
|
|
636
|
+
});
|
|
637
|
+
});
|
|
638
|
+
|
|
639
|
+
test('should pass brandHeadline through spotterVizConfig in APP_INIT', async () => {
|
|
640
|
+
const spotterViz = { brandName: 'MyBrand', brandHeadline: "Hi, there! I'm" };
|
|
641
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
642
|
+
...defaultViewConfig,
|
|
643
|
+
spotterViz,
|
|
644
|
+
} as AppViewConfig);
|
|
645
|
+
|
|
646
|
+
mockMessageChannel();
|
|
647
|
+
appEmbed.render();
|
|
648
|
+
|
|
649
|
+
const mockPort: any = { postMessage: jest.fn() };
|
|
650
|
+
await executeAfterWait(() => {
|
|
651
|
+
postMessageToParent(
|
|
652
|
+
getIFrameEl().contentWindow,
|
|
653
|
+
{ type: EmbedEvent.APP_INIT, data: {} },
|
|
654
|
+
mockPort,
|
|
655
|
+
);
|
|
656
|
+
});
|
|
657
|
+
await executeAfterWait(() => {
|
|
658
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
659
|
+
type: EmbedEvent.APP_INIT,
|
|
660
|
+
data: expect.objectContaining({
|
|
661
|
+
embedParams: expect.objectContaining({
|
|
662
|
+
spotterVizConfig: expect.objectContaining({
|
|
663
|
+
brandHeadline: "Hi, there! I'm",
|
|
664
|
+
}),
|
|
665
|
+
}),
|
|
666
|
+
}),
|
|
667
|
+
});
|
|
668
|
+
});
|
|
669
|
+
});
|
|
670
|
+
|
|
671
|
+
test('should not include spotterVizConfig in APP_INIT when spotterViz is not provided', async () => {
|
|
672
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
673
|
+
...defaultViewConfig,
|
|
674
|
+
} as AppViewConfig);
|
|
675
|
+
|
|
676
|
+
mockMessageChannel();
|
|
677
|
+
appEmbed.render();
|
|
678
|
+
|
|
679
|
+
const mockPort: any = { postMessage: jest.fn() };
|
|
680
|
+
await executeAfterWait(() => {
|
|
681
|
+
postMessageToParent(
|
|
682
|
+
getIFrameEl().contentWindow,
|
|
683
|
+
{ type: EmbedEvent.APP_INIT, data: {} },
|
|
684
|
+
mockPort,
|
|
685
|
+
);
|
|
686
|
+
});
|
|
687
|
+
await executeAfterWait(() => {
|
|
688
|
+
const callArgs = mockPort.postMessage.mock.calls[0][0];
|
|
689
|
+
expect(callArgs.type).toBe(EmbedEvent.APP_INIT);
|
|
690
|
+
if (callArgs.data.embedParams) {
|
|
691
|
+
expect(callArgs.data.embedParams.spotterVizConfig).toBeUndefined();
|
|
692
|
+
}
|
|
693
|
+
});
|
|
694
|
+
});
|
|
695
|
+
|
|
696
|
+
test('should include spotterVizConfig alongside spotterSidebarConfig in APP_INIT', async () => {
|
|
697
|
+
const spotterViz = { brandName: 'MyBrand' };
|
|
698
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
699
|
+
...defaultViewConfig,
|
|
700
|
+
spotterViz,
|
|
701
|
+
spotterSidebarConfig: { enablePastConversationsSidebar: true },
|
|
702
|
+
} as AppViewConfig);
|
|
703
|
+
|
|
704
|
+
mockMessageChannel();
|
|
705
|
+
appEmbed.render();
|
|
706
|
+
|
|
707
|
+
const mockPort: any = { postMessage: jest.fn() };
|
|
708
|
+
await executeAfterWait(() => {
|
|
709
|
+
postMessageToParent(
|
|
710
|
+
getIFrameEl().contentWindow,
|
|
711
|
+
{ type: EmbedEvent.APP_INIT, data: {} },
|
|
712
|
+
mockPort,
|
|
713
|
+
);
|
|
714
|
+
});
|
|
715
|
+
await executeAfterWait(() => {
|
|
716
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
717
|
+
type: EmbedEvent.APP_INIT,
|
|
718
|
+
data: expect.objectContaining({
|
|
719
|
+
embedParams: expect.objectContaining({
|
|
720
|
+
spotterVizConfig: spotterViz,
|
|
721
|
+
spotterSidebarConfig: expect.objectContaining({
|
|
722
|
+
enablePastConversationsSidebar: true,
|
|
723
|
+
}),
|
|
724
|
+
}),
|
|
725
|
+
}),
|
|
726
|
+
});
|
|
727
|
+
});
|
|
728
|
+
});
|
|
729
|
+
|
|
582
730
|
test('should set toolResponseCardBrandingLabel in url via spotterChatConfig', async () => {
|
|
583
731
|
const appEmbed = new AppEmbed(getRootEl(), {
|
|
584
732
|
...defaultViewConfig,
|
|
@@ -595,6 +743,33 @@ describe('App embed tests', () => {
|
|
|
595
743
|
});
|
|
596
744
|
});
|
|
597
745
|
|
|
746
|
+
test('should set spotterFileUploadEnabled to true in url', async () => {
|
|
747
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
748
|
+
...defaultViewConfig,
|
|
749
|
+
spotterChatConfig: { spotterFileUploadEnabled: true },
|
|
750
|
+
} as AppViewConfig);
|
|
751
|
+
appEmbed.render();
|
|
752
|
+
await executeAfterWait(() => {
|
|
753
|
+
expectUrlMatchesWithParams(
|
|
754
|
+
getIFrameSrc(),
|
|
755
|
+
`http://${thoughtSpotHost}/?embedApp=true&profileAndHelpInNavBarHidden=false&spotterFileUploadEnabled=true${defaultParamsPost}#/home`,
|
|
756
|
+
);
|
|
757
|
+
});
|
|
758
|
+
});
|
|
759
|
+
|
|
760
|
+
test('should set spotterFileUploadFileTypes in url', async () => {
|
|
761
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
762
|
+
...defaultViewConfig,
|
|
763
|
+
spotterChatConfig: { spotterFileUploadFileTypes: { types: ['image/png', 'application/pdf'] } },
|
|
764
|
+
} as AppViewConfig);
|
|
765
|
+
appEmbed.render();
|
|
766
|
+
await executeAfterWait(() => {
|
|
767
|
+
expectUrlToHaveParamsWithValues(getIFrameSrc(), {
|
|
768
|
+
spotterFileUploadFileTypes: JSON.stringify({ types: ['image/png', 'application/pdf'] }),
|
|
769
|
+
});
|
|
770
|
+
});
|
|
771
|
+
});
|
|
772
|
+
|
|
598
773
|
test('should set isLiveboardXLSXCSVDownloadEnabled to false in url', async () => {
|
|
599
774
|
const appEmbed = new AppEmbed(getRootEl(), {
|
|
600
775
|
...defaultViewConfig,
|
|
@@ -987,6 +1162,47 @@ describe('App embed tests', () => {
|
|
|
987
1162
|
});
|
|
988
1163
|
});
|
|
989
1164
|
|
|
1165
|
+
test('should set newConnectionsExperience to true in url', async () => {
|
|
1166
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
1167
|
+
...defaultViewConfig,
|
|
1168
|
+
newConnectionsExperience: true,
|
|
1169
|
+
} as AppViewConfig);
|
|
1170
|
+
appEmbed.render();
|
|
1171
|
+
await executeAfterWait(() => {
|
|
1172
|
+
expectUrlMatchesWithParams(
|
|
1173
|
+
getIFrameSrc(),
|
|
1174
|
+
`http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&newConnectionsExperience=true${defaultParams}${defaultParamsPost}#/home`,
|
|
1175
|
+
);
|
|
1176
|
+
});
|
|
1177
|
+
});
|
|
1178
|
+
|
|
1179
|
+
test('should set newConnectionsExperience to false in url', async () => {
|
|
1180
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
1181
|
+
...defaultViewConfig,
|
|
1182
|
+
newConnectionsExperience: false,
|
|
1183
|
+
} as AppViewConfig);
|
|
1184
|
+
appEmbed.render();
|
|
1185
|
+
await executeAfterWait(() => {
|
|
1186
|
+
expectUrlMatchesWithParams(
|
|
1187
|
+
getIFrameSrc(),
|
|
1188
|
+
`http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&newConnectionsExperience=false${defaultParams}${defaultParamsPost}#/home`,
|
|
1189
|
+
);
|
|
1190
|
+
});
|
|
1191
|
+
});
|
|
1192
|
+
|
|
1193
|
+
test('should disable connection new experience by default in url', async () => {
|
|
1194
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
1195
|
+
...defaultViewConfig,
|
|
1196
|
+
} as AppViewConfig);
|
|
1197
|
+
appEmbed.render();
|
|
1198
|
+
await executeAfterWait(() => {
|
|
1199
|
+
expectUrlMatchesWithParams(
|
|
1200
|
+
getIFrameSrc(),
|
|
1201
|
+
`http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false${defaultParams}${defaultParamsPost}#/home`,
|
|
1202
|
+
);
|
|
1203
|
+
});
|
|
1204
|
+
});
|
|
1205
|
+
|
|
990
1206
|
test('Should add hideIrrelevantFiltersAtTabLevel flag to the iframe src', async () => {
|
|
991
1207
|
const appEmbed = new AppEmbed(getRootEl(), {
|
|
992
1208
|
...defaultViewConfig,
|
|
@@ -1720,6 +1936,36 @@ describe('App embed tests', () => {
|
|
|
1720
1936
|
addEventListenerSpy.mockRestore();
|
|
1721
1937
|
});
|
|
1722
1938
|
|
|
1939
|
+
test('should listen to scroll and resize changes from scrollable iframe ancestors', async () => {
|
|
1940
|
+
const scrollContainer = getRootEl();
|
|
1941
|
+
scrollContainer.style.overflow = 'auto';
|
|
1942
|
+
|
|
1943
|
+
const scrollContainerAddEventListenerSpy = jest.spyOn(scrollContainer, 'addEventListener');
|
|
1944
|
+
const resizeObserveSpy = jest.fn();
|
|
1945
|
+
const resizeDisconnectSpy = jest.fn();
|
|
1946
|
+
(window as any).ResizeObserver = jest.fn().mockImplementation(() => ({
|
|
1947
|
+
observe: resizeObserveSpy,
|
|
1948
|
+
disconnect: resizeDisconnectSpy,
|
|
1949
|
+
}));
|
|
1950
|
+
|
|
1951
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
1952
|
+
...defaultViewConfig,
|
|
1953
|
+
fullHeight: true,
|
|
1954
|
+
lazyLoadingForFullHeight: true,
|
|
1955
|
+
enableScrollableContainerLazyLoading: true,
|
|
1956
|
+
} as AppViewConfig);
|
|
1957
|
+
|
|
1958
|
+
await appEmbed.render();
|
|
1959
|
+
|
|
1960
|
+
await executeAfterWait(() => {
|
|
1961
|
+
expect(scrollContainerAddEventListenerSpy).toHaveBeenCalledWith('scroll', expect.any(Function));
|
|
1962
|
+
expect(resizeObserveSpy).toHaveBeenCalledWith(scrollContainer);
|
|
1963
|
+
}, 100);
|
|
1964
|
+
|
|
1965
|
+
appEmbed.destroy();
|
|
1966
|
+
expect(resizeDisconnectSpy).toHaveBeenCalled();
|
|
1967
|
+
});
|
|
1968
|
+
|
|
1723
1969
|
test('should remove window event listeners on destroy when fullHeight and lazyLoadingForFullHeight are enabled', async () => {
|
|
1724
1970
|
const removeEventListenerSpy = jest.spyOn(window, 'removeEventListener');
|
|
1725
1971
|
|
|
@@ -1734,7 +1980,7 @@ describe('App embed tests', () => {
|
|
|
1734
1980
|
appEmbed.destroy();
|
|
1735
1981
|
|
|
1736
1982
|
expect(removeEventListenerSpy).toHaveBeenCalledWith('resize', expect.any(Function));
|
|
1737
|
-
expect(removeEventListenerSpy).toHaveBeenCalledWith('scroll', expect.any(Function));
|
|
1983
|
+
expect(removeEventListenerSpy).toHaveBeenCalledWith('scroll', expect.any(Function), true);
|
|
1738
1984
|
|
|
1739
1985
|
removeEventListenerSpy.mockRestore();
|
|
1740
1986
|
});
|
|
@@ -1965,5 +2211,3 @@ describe('AppEmbed visualOverrides tests', () => {
|
|
|
1965
2211
|
await testVisualOverridesInEmbed(appEmbed, visualOverrides);
|
|
1966
2212
|
});
|
|
1967
2213
|
});
|
|
1968
|
-
|
|
1969
|
-
|