@thoughtspot/visual-embed-sdk 1.40.1-alpha.1 → 1.40.1-alpha.3
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 +7 -6
- package/cjs/src/css-variables.d.ts +316 -0
- package/cjs/src/css-variables.d.ts.map +1 -1
- package/cjs/src/embed/app.d.ts +6 -1
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +27 -1
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +72 -5
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/conversation.d.ts +63 -2
- package/cjs/src/embed/conversation.d.ts.map +1 -1
- package/cjs/src/embed/conversation.js +9 -1
- package/cjs/src/embed/conversation.js.map +1 -1
- package/cjs/src/embed/conversation.spec.js +102 -0
- package/cjs/src/embed/conversation.spec.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +11 -2
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +24 -17
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +202 -2
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts +22 -7
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +74 -56
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +175 -3
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/types.d.ts +190 -55
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +157 -52
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/liveboardService/liveboardService.d.ts +21 -6
- package/cjs/src/utils/liveboardService/liveboardService.d.ts.map +1 -1
- package/cjs/src/utils/liveboardService/liveboardService.js +21 -6
- package/cjs/src/utils/liveboardService/liveboardService.js.map +1 -1
- package/cjs/src/utils/processData.d.ts.map +1 -1
- package/cjs/src/utils/processData.js +10 -0
- package/cjs/src/utils/processData.js.map +1 -1
- package/cjs/src/utils/processData.spec.js +11 -0
- package/cjs/src/utils/processData.spec.js.map +1 -1
- package/dist/{index-D1pyb7RG.js → es/index-BwesxE_h.js} +0 -2
- package/dist/es/index.js +17539 -0
- package/dist/es/react/index.js +24039 -0
- package/dist/es/react/src/auth.d.ts +171 -0
- package/dist/es/react/src/auth.d.ts.map +1 -0
- package/dist/es/react/src/auth.spec.d.ts +15 -0
- package/dist/es/react/src/auth.spec.d.ts.map +1 -0
- package/dist/es/react/src/authToken.d.ts +17 -0
- package/dist/es/react/src/authToken.d.ts.map +1 -0
- package/dist/es/react/src/authToken.spec.d.ts +2 -0
- package/dist/es/react/src/authToken.spec.d.ts.map +1 -0
- package/dist/es/react/src/config.d.ts +21 -0
- package/dist/es/react/src/config.d.ts.map +1 -0
- package/dist/es/react/src/config.spec.d.ts +5 -0
- package/dist/es/react/src/config.spec.d.ts.map +1 -0
- package/dist/es/react/src/css-variables.d.ts +384 -0
- package/dist/es/react/src/css-variables.d.ts.map +1 -0
- package/dist/es/react/src/embed/app.d.ts +478 -0
- package/dist/es/react/src/embed/app.d.ts.map +1 -0
- package/dist/es/react/src/embed/app.spec.d.ts +2 -0
- package/dist/es/react/src/embed/app.spec.d.ts.map +1 -0
- package/dist/es/react/src/embed/base.d.ts +136 -0
- package/dist/es/react/src/embed/base.d.ts.map +1 -0
- package/dist/es/react/src/embed/base.spec.d.ts +2 -0
- package/dist/es/react/src/embed/base.spec.d.ts.map +1 -0
- package/dist/es/react/src/embed/bodyless-conversation.d.ts +26 -0
- package/dist/es/react/src/embed/bodyless-conversation.d.ts.map +1 -0
- package/dist/es/react/src/embed/bodyless-conversation.spec.d.ts +2 -0
- package/dist/es/react/src/embed/bodyless-conversation.spec.d.ts.map +1 -0
- package/dist/es/react/src/embed/conversation.d.ts +43 -0
- package/dist/es/react/src/embed/conversation.d.ts.map +1 -0
- package/dist/es/react/src/embed/conversation.spec.d.ts +2 -0
- package/dist/es/react/src/embed/conversation.spec.d.ts.map +1 -0
- package/dist/es/react/src/embed/embed.spec.d.ts +2 -0
- package/dist/es/react/src/embed/embed.spec.d.ts.map +1 -0
- package/dist/es/react/src/embed/embedConfig.d.ts +17 -0
- package/dist/es/react/src/embed/embedConfig.d.ts.map +1 -0
- package/dist/es/react/src/embed/events.spec.d.ts +2 -0
- package/dist/es/react/src/embed/events.spec.d.ts.map +1 -0
- package/dist/es/react/src/embed/liveboard.d.ts +379 -0
- package/dist/es/react/src/embed/liveboard.d.ts.map +1 -0
- package/dist/es/react/src/embed/liveboard.spec.d.ts +2 -0
- package/dist/es/react/src/embed/liveboard.spec.d.ts.map +1 -0
- package/dist/es/react/src/embed/pinboard.spec.d.ts +2 -0
- package/dist/es/react/src/embed/pinboard.spec.d.ts.map +1 -0
- package/dist/es/react/src/embed/sage.d.ts +148 -0
- package/dist/es/react/src/embed/sage.d.ts.map +1 -0
- package/dist/es/react/src/embed/sage.spec.d.ts +2 -0
- package/dist/es/react/src/embed/sage.spec.d.ts.map +1 -0
- package/dist/es/react/src/embed/search-bar.d.ts +93 -0
- package/dist/es/react/src/embed/search-bar.d.ts.map +1 -0
- package/dist/es/react/src/embed/search.d.ts +282 -0
- package/dist/es/react/src/embed/search.d.ts.map +1 -0
- package/dist/es/react/src/embed/search.spec.d.ts +2 -0
- package/dist/es/react/src/embed/search.spec.d.ts.map +1 -0
- package/dist/es/react/src/embed/ts-embed-trigger.spec.d.ts +2 -0
- package/dist/es/react/src/embed/ts-embed-trigger.spec.d.ts.map +1 -0
- package/dist/es/react/src/embed/ts-embed.d.ts +374 -0
- package/dist/es/react/src/embed/ts-embed.d.ts.map +1 -0
- package/dist/es/react/src/embed/ts-embed.spec.d.ts +2 -0
- package/dist/es/react/src/embed/ts-embed.spec.d.ts.map +1 -0
- package/dist/es/react/src/errors.d.ts +19 -0
- package/dist/es/react/src/errors.d.ts.map +1 -0
- package/dist/es/react/src/index.d.ts +29 -0
- package/dist/es/react/src/index.d.ts.map +1 -0
- package/dist/es/react/src/mixpanel-service.d.ts +35 -0
- package/dist/es/react/src/mixpanel-service.d.ts.map +1 -0
- package/dist/es/react/src/mixpanel-service.spec.d.ts +2 -0
- package/dist/es/react/src/mixpanel-service.spec.d.ts.map +1 -0
- package/dist/es/react/src/react/all-types-export.d.ts +3 -0
- package/dist/es/react/src/react/all-types-export.d.ts.map +1 -0
- package/dist/es/react/src/react/all-types-export.spec.d.ts +2 -0
- package/dist/es/react/src/react/all-types-export.spec.d.ts.map +1 -0
- package/dist/es/react/src/react/index.d.ts +254 -0
- package/dist/es/react/src/react/index.d.ts.map +1 -0
- package/dist/es/react/src/react/index.spec.d.ts +3 -0
- package/dist/es/react/src/react/index.spec.d.ts.map +1 -0
- package/dist/es/react/src/react/util.d.ts +19 -0
- package/dist/es/react/src/react/util.d.ts.map +1 -0
- package/dist/es/react/src/test/test-utils.d.ts +61 -0
- package/dist/es/react/src/test/test-utils.d.ts.map +1 -0
- package/dist/es/react/src/tokenizedFetch.d.ts +18 -0
- package/dist/es/react/src/tokenizedFetch.d.ts.map +1 -0
- package/dist/es/react/src/types.d.ts +4363 -0
- package/dist/es/react/src/types.d.ts.map +1 -0
- package/dist/es/react/src/utils/authService/authService.d.ts +45 -0
- package/dist/es/react/src/utils/authService/authService.d.ts.map +1 -0
- package/dist/es/react/src/utils/authService/authService.spec.d.ts +2 -0
- package/dist/es/react/src/utils/authService/authService.spec.d.ts.map +1 -0
- package/dist/es/react/src/utils/authService/index.d.ts +3 -0
- package/dist/es/react/src/utils/authService/index.d.ts.map +1 -0
- package/dist/es/react/src/utils/authService/tokenizedAuthService.d.ts +22 -0
- package/dist/es/react/src/utils/authService/tokenizedAuthService.d.ts.map +1 -0
- package/dist/es/react/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
- package/dist/es/react/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
- package/dist/es/react/src/utils/global-styles.d.ts +2 -0
- package/dist/es/react/src/utils/global-styles.d.ts.map +1 -0
- package/dist/es/react/src/utils/global-styles.spec.d.ts +2 -0
- package/dist/es/react/src/utils/global-styles.spec.d.ts.map +1 -0
- package/dist/es/react/src/utils/graphql/answerService/answer-queries.d.ts +10 -0
- package/dist/es/react/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -0
- package/dist/es/react/src/utils/graphql/answerService/answerService.d.ts +180 -0
- package/dist/es/react/src/utils/graphql/answerService/answerService.d.ts.map +1 -0
- package/dist/es/react/src/utils/graphql/answerService/answerService.spec.d.ts +2 -0
- package/dist/es/react/src/utils/graphql/answerService/answerService.spec.d.ts.map +1 -0
- package/dist/es/react/src/utils/graphql/graphql-request.d.ts +15 -0
- package/dist/es/react/src/utils/graphql/graphql-request.d.ts.map +1 -0
- package/dist/es/react/src/utils/graphql/graphql-request.spec.d.ts +2 -0
- package/dist/es/react/src/utils/graphql/graphql-request.spec.d.ts.map +1 -0
- package/dist/es/react/src/utils/graphql/nlsService/conversation-queries.d.ts +3 -0
- package/dist/es/react/src/utils/graphql/nlsService/conversation-queries.d.ts.map +1 -0
- package/dist/es/react/src/utils/graphql/nlsService/conversation-service.d.ts +12 -0
- package/dist/es/react/src/utils/graphql/nlsService/conversation-service.d.ts.map +1 -0
- package/dist/es/react/src/utils/graphql/nlsService/nls-answer-queries.d.ts +2 -0
- package/dist/es/react/src/utils/graphql/nlsService/nls-answer-queries.d.ts.map +1 -0
- package/dist/es/react/src/utils/graphql/nlsService/nls-answer-service.d.ts +17 -0
- package/dist/es/react/src/utils/graphql/nlsService/nls-answer-service.d.ts.map +1 -0
- package/dist/es/react/src/utils/graphql/nlsService/nls-answer-service.spec.d.ts +2 -0
- package/dist/es/react/src/utils/graphql/nlsService/nls-answer-service.spec.d.ts.map +1 -0
- package/dist/es/react/src/utils/graphql/preview-service.d.ts +9 -0
- package/dist/es/react/src/utils/graphql/preview-service.d.ts.map +1 -0
- package/dist/es/react/src/utils/graphql/preview-service.spec.d.ts +2 -0
- package/dist/es/react/src/utils/graphql/preview-service.spec.d.ts.map +1 -0
- package/dist/es/react/src/utils/graphql/sourceService.d.ts +8 -0
- package/dist/es/react/src/utils/graphql/sourceService.d.ts.map +1 -0
- package/dist/es/react/src/utils/graphql/sourceService.spec.d.ts +2 -0
- package/dist/es/react/src/utils/graphql/sourceService.spec.d.ts.map +1 -0
- package/dist/es/react/src/utils/liveboardService/liveboardService.d.ts +16 -0
- package/dist/es/react/src/utils/liveboardService/liveboardService.d.ts.map +1 -0
- package/dist/es/react/src/utils/liveboardService/liveboardService.spec.d.ts +2 -0
- package/dist/es/react/src/utils/liveboardService/liveboardService.spec.d.ts.map +1 -0
- package/dist/es/react/src/utils/logger.d.ts +18 -0
- package/dist/es/react/src/utils/logger.d.ts.map +1 -0
- package/dist/es/react/src/utils/logger.spec.d.ts +25 -0
- package/dist/es/react/src/utils/logger.spec.d.ts.map +1 -0
- package/dist/es/react/src/utils/processData.d.ts +22 -0
- package/dist/es/react/src/utils/processData.d.ts.map +1 -0
- package/dist/es/react/src/utils/processData.spec.d.ts +2 -0
- package/dist/es/react/src/utils/processData.spec.d.ts.map +1 -0
- package/dist/es/react/src/utils/processTrigger.d.ts +16 -0
- package/dist/es/react/src/utils/processTrigger.d.ts.map +1 -0
- package/dist/es/react/src/utils/processTrigger.spec.d.ts +2 -0
- package/dist/es/react/src/utils/processTrigger.spec.d.ts.map +1 -0
- package/dist/es/react/src/utils/reporting.d.ts +16 -0
- package/dist/es/react/src/utils/reporting.d.ts.map +1 -0
- package/dist/es/react/src/utils/reporting.spec.d.ts +2 -0
- package/dist/es/react/src/utils/reporting.spec.d.ts.map +1 -0
- package/dist/es/react/src/utils/sessionInfoService.d.ts +66 -0
- package/dist/es/react/src/utils/sessionInfoService.d.ts.map +1 -0
- package/dist/es/react/src/utils.d.ts +104 -0
- package/dist/es/react/src/utils.d.ts.map +1 -0
- package/dist/es/react/src/utils.spec.d.ts +2 -0
- package/dist/es/react/src/utils.spec.d.ts.map +1 -0
- package/dist/es/src/auth.d.ts +171 -0
- package/dist/es/src/auth.d.ts.map +1 -0
- package/dist/es/src/auth.spec.d.ts +15 -0
- package/dist/es/src/auth.spec.d.ts.map +1 -0
- package/dist/es/src/authToken.d.ts +17 -0
- package/dist/es/src/authToken.d.ts.map +1 -0
- package/dist/es/src/authToken.spec.d.ts +2 -0
- package/dist/es/src/authToken.spec.d.ts.map +1 -0
- package/dist/es/src/config.d.ts +21 -0
- package/dist/es/src/config.d.ts.map +1 -0
- package/dist/es/src/config.spec.d.ts +5 -0
- package/dist/es/src/config.spec.d.ts.map +1 -0
- package/dist/es/src/css-variables.d.ts +384 -0
- package/dist/es/src/css-variables.d.ts.map +1 -0
- package/dist/es/src/embed/app.d.ts +478 -0
- package/dist/es/src/embed/app.d.ts.map +1 -0
- package/dist/es/src/embed/app.spec.d.ts +2 -0
- package/dist/es/src/embed/app.spec.d.ts.map +1 -0
- package/dist/es/src/embed/base.d.ts +136 -0
- package/dist/es/src/embed/base.d.ts.map +1 -0
- package/dist/es/src/embed/base.spec.d.ts +2 -0
- package/dist/es/src/embed/base.spec.d.ts.map +1 -0
- package/dist/es/src/embed/bodyless-conversation.d.ts +26 -0
- package/dist/es/src/embed/bodyless-conversation.d.ts.map +1 -0
- package/dist/es/src/embed/bodyless-conversation.spec.d.ts +2 -0
- package/dist/es/src/embed/bodyless-conversation.spec.d.ts.map +1 -0
- package/dist/es/src/embed/conversation.d.ts +43 -0
- package/dist/es/src/embed/conversation.d.ts.map +1 -0
- package/dist/es/src/embed/conversation.spec.d.ts +2 -0
- package/dist/es/src/embed/conversation.spec.d.ts.map +1 -0
- package/dist/es/src/embed/embed.spec.d.ts +2 -0
- package/dist/es/src/embed/embed.spec.d.ts.map +1 -0
- package/dist/es/src/embed/embedConfig.d.ts +17 -0
- package/dist/es/src/embed/embedConfig.d.ts.map +1 -0
- package/dist/es/src/embed/events.spec.d.ts +2 -0
- package/dist/es/src/embed/events.spec.d.ts.map +1 -0
- package/dist/es/src/embed/liveboard.d.ts +379 -0
- package/dist/es/src/embed/liveboard.d.ts.map +1 -0
- package/dist/es/src/embed/liveboard.spec.d.ts +2 -0
- package/dist/es/src/embed/liveboard.spec.d.ts.map +1 -0
- package/dist/es/src/embed/pinboard.spec.d.ts +2 -0
- package/dist/es/src/embed/pinboard.spec.d.ts.map +1 -0
- package/dist/es/src/embed/sage.d.ts +148 -0
- package/dist/es/src/embed/sage.d.ts.map +1 -0
- package/dist/es/src/embed/sage.spec.d.ts +2 -0
- package/dist/es/src/embed/sage.spec.d.ts.map +1 -0
- package/dist/es/src/embed/search-bar.d.ts +93 -0
- package/dist/es/src/embed/search-bar.d.ts.map +1 -0
- package/dist/es/src/embed/search.d.ts +282 -0
- package/dist/es/src/embed/search.d.ts.map +1 -0
- package/dist/es/src/embed/search.spec.d.ts +2 -0
- package/dist/es/src/embed/search.spec.d.ts.map +1 -0
- package/dist/es/src/embed/ts-embed-trigger.spec.d.ts +2 -0
- package/dist/es/src/embed/ts-embed-trigger.spec.d.ts.map +1 -0
- package/dist/es/src/embed/ts-embed.d.ts +374 -0
- package/dist/es/src/embed/ts-embed.d.ts.map +1 -0
- package/dist/es/src/embed/ts-embed.spec.d.ts +2 -0
- package/dist/es/src/embed/ts-embed.spec.d.ts.map +1 -0
- package/dist/es/src/errors.d.ts +19 -0
- package/dist/es/src/errors.d.ts.map +1 -0
- package/dist/es/src/index.d.ts +29 -0
- package/dist/es/src/index.d.ts.map +1 -0
- package/dist/es/src/mixpanel-service.d.ts +35 -0
- package/dist/es/src/mixpanel-service.d.ts.map +1 -0
- package/dist/es/src/mixpanel-service.spec.d.ts +2 -0
- package/dist/es/src/mixpanel-service.spec.d.ts.map +1 -0
- package/dist/es/src/react/all-types-export.d.ts +3 -0
- package/dist/es/src/react/all-types-export.d.ts.map +1 -0
- package/dist/es/src/react/all-types-export.spec.d.ts +2 -0
- package/dist/es/src/react/all-types-export.spec.d.ts.map +1 -0
- package/dist/es/src/react/index.d.ts +254 -0
- package/dist/es/src/react/index.d.ts.map +1 -0
- package/dist/es/src/react/index.spec.d.ts +3 -0
- package/dist/es/src/react/index.spec.d.ts.map +1 -0
- package/dist/es/src/react/util.d.ts +19 -0
- package/dist/es/src/react/util.d.ts.map +1 -0
- package/dist/es/src/test/test-utils.d.ts +61 -0
- package/dist/es/src/test/test-utils.d.ts.map +1 -0
- package/dist/es/src/tokenizedFetch.d.ts +18 -0
- package/dist/es/src/tokenizedFetch.d.ts.map +1 -0
- package/dist/es/src/types.d.ts +4363 -0
- package/dist/es/src/types.d.ts.map +1 -0
- package/dist/es/src/utils/authService/authService.d.ts +45 -0
- package/dist/es/src/utils/authService/authService.d.ts.map +1 -0
- package/dist/es/src/utils/authService/authService.spec.d.ts +2 -0
- package/dist/es/src/utils/authService/authService.spec.d.ts.map +1 -0
- package/dist/es/src/utils/authService/index.d.ts +3 -0
- package/dist/es/src/utils/authService/index.d.ts.map +1 -0
- package/dist/es/src/utils/authService/tokenizedAuthService.d.ts +22 -0
- package/dist/es/src/utils/authService/tokenizedAuthService.d.ts.map +1 -0
- package/dist/es/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
- package/dist/es/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
- package/dist/es/src/utils/global-styles.d.ts +2 -0
- package/dist/es/src/utils/global-styles.d.ts.map +1 -0
- package/dist/es/src/utils/global-styles.spec.d.ts +2 -0
- package/dist/es/src/utils/global-styles.spec.d.ts.map +1 -0
- package/dist/es/src/utils/graphql/answerService/answer-queries.d.ts +10 -0
- package/dist/es/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -0
- package/dist/es/src/utils/graphql/answerService/answerService.d.ts +180 -0
- package/dist/es/src/utils/graphql/answerService/answerService.d.ts.map +1 -0
- package/dist/es/src/utils/graphql/answerService/answerService.spec.d.ts +2 -0
- package/dist/es/src/utils/graphql/answerService/answerService.spec.d.ts.map +1 -0
- package/dist/es/src/utils/graphql/graphql-request.d.ts +15 -0
- package/dist/es/src/utils/graphql/graphql-request.d.ts.map +1 -0
- package/dist/es/src/utils/graphql/graphql-request.spec.d.ts +2 -0
- package/dist/es/src/utils/graphql/graphql-request.spec.d.ts.map +1 -0
- package/dist/es/src/utils/graphql/nlsService/conversation-queries.d.ts +3 -0
- package/dist/es/src/utils/graphql/nlsService/conversation-queries.d.ts.map +1 -0
- package/dist/es/src/utils/graphql/nlsService/conversation-service.d.ts +12 -0
- package/dist/es/src/utils/graphql/nlsService/conversation-service.d.ts.map +1 -0
- package/dist/es/src/utils/graphql/nlsService/nls-answer-queries.d.ts +2 -0
- package/dist/es/src/utils/graphql/nlsService/nls-answer-queries.d.ts.map +1 -0
- package/dist/es/src/utils/graphql/nlsService/nls-answer-service.d.ts +17 -0
- package/dist/es/src/utils/graphql/nlsService/nls-answer-service.d.ts.map +1 -0
- package/dist/es/src/utils/graphql/nlsService/nls-answer-service.spec.d.ts +2 -0
- package/dist/es/src/utils/graphql/nlsService/nls-answer-service.spec.d.ts.map +1 -0
- package/dist/es/src/utils/graphql/preview-service.d.ts +9 -0
- package/dist/es/src/utils/graphql/preview-service.d.ts.map +1 -0
- package/dist/es/src/utils/graphql/preview-service.spec.d.ts +2 -0
- package/dist/es/src/utils/graphql/preview-service.spec.d.ts.map +1 -0
- package/dist/es/src/utils/graphql/sourceService.d.ts +8 -0
- package/dist/es/src/utils/graphql/sourceService.d.ts.map +1 -0
- package/dist/es/src/utils/graphql/sourceService.spec.d.ts +2 -0
- package/dist/es/src/utils/graphql/sourceService.spec.d.ts.map +1 -0
- package/dist/es/src/utils/liveboardService/liveboardService.d.ts +16 -0
- package/dist/es/src/utils/liveboardService/liveboardService.d.ts.map +1 -0
- package/dist/es/src/utils/liveboardService/liveboardService.spec.d.ts +2 -0
- package/dist/es/src/utils/liveboardService/liveboardService.spec.d.ts.map +1 -0
- package/dist/es/src/utils/logger.d.ts +18 -0
- package/dist/es/src/utils/logger.d.ts.map +1 -0
- package/dist/es/src/utils/logger.spec.d.ts +25 -0
- package/dist/es/src/utils/logger.spec.d.ts.map +1 -0
- package/dist/es/src/utils/processData.d.ts +22 -0
- package/dist/es/src/utils/processData.d.ts.map +1 -0
- package/dist/es/src/utils/processData.spec.d.ts +2 -0
- package/dist/es/src/utils/processData.spec.d.ts.map +1 -0
- package/dist/es/src/utils/processTrigger.d.ts +16 -0
- package/dist/es/src/utils/processTrigger.d.ts.map +1 -0
- package/dist/es/src/utils/processTrigger.spec.d.ts +2 -0
- package/dist/es/src/utils/processTrigger.spec.d.ts.map +1 -0
- package/dist/es/src/utils/reporting.d.ts +16 -0
- package/dist/es/src/utils/reporting.d.ts.map +1 -0
- package/dist/es/src/utils/reporting.spec.d.ts +2 -0
- package/dist/es/src/utils/reporting.spec.d.ts.map +1 -0
- package/dist/es/src/utils/sessionInfoService.d.ts +66 -0
- package/dist/es/src/utils/sessionInfoService.d.ts.map +1 -0
- package/dist/es/src/utils.d.ts +104 -0
- package/dist/es/src/utils.d.ts.map +1 -0
- package/dist/es/src/utils.spec.d.ts +2 -0
- package/dist/es/src/utils.spec.d.ts.map +1 -0
- package/dist/{index-CmEQfuE3.js → index-B0uCTBbm.js} +1 -1
- package/dist/src/css-variables.d.ts +316 -0
- package/dist/src/css-variables.d.ts.map +1 -1
- package/dist/src/embed/app.d.ts +6 -1
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/bodyless-conversation.d.ts +4 -0
- package/dist/src/embed/bodyless-conversation.d.ts.map +1 -1
- package/dist/src/embed/conversation.d.ts +63 -2
- package/dist/src/embed/conversation.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +10 -0
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +22 -0
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/react/index.d.ts +2 -0
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/types.d.ts +379 -31
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/graphql/nlsService/conversation-service.d.ts.map +1 -1
- package/dist/src/utils/liveboardService/liveboardService.d.ts +21 -6
- package/dist/src/utils/liveboardService/liveboardService.d.ts.map +1 -1
- package/dist/src/utils/processData.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +507 -52
- package/dist/tsembed-react.js +506 -51
- package/dist/tsembed.es.js +528 -58
- package/dist/tsembed.js +527 -57
- package/dist/visual-embed-sdk-react-full.d.ts +813 -39
- package/dist/visual-embed-sdk-react.d.ts +813 -39
- package/dist/visual-embed-sdk.d.ts +811 -39
- package/lib/package.json +7 -6
- package/lib/src/css-variables.d.ts +316 -0
- package/lib/src/css-variables.d.ts.map +1 -1
- package/lib/src/embed/app.d.ts +6 -1
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +27 -1
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +72 -5
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/conversation.d.ts +63 -2
- package/lib/src/embed/conversation.d.ts.map +1 -1
- package/lib/src/embed/conversation.js +10 -2
- package/lib/src/embed/conversation.js.map +1 -1
- package/lib/src/embed/conversation.spec.js +104 -2
- package/lib/src/embed/conversation.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +11 -2
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +24 -17
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +202 -2
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +22 -7
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +74 -56
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +175 -3
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/types.d.ts +190 -55
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +157 -52
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/liveboardService/liveboardService.d.ts +21 -6
- package/lib/src/utils/liveboardService/liveboardService.d.ts.map +1 -1
- package/lib/src/utils/liveboardService/liveboardService.js +21 -6
- package/lib/src/utils/liveboardService/liveboardService.js.map +1 -1
- package/lib/src/utils/processData.d.ts.map +1 -1
- package/lib/src/utils/processData.js +10 -0
- package/lib/src/utils/processData.js.map +1 -1
- package/lib/src/utils/processData.spec.js +11 -0
- package/lib/src/utils/processData.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +812 -40
- package/package.json +8 -6
- package/src/css-variables.ts +396 -1
- package/src/embed/app.spec.ts +102 -5
- package/src/embed/app.ts +29 -0
- package/src/embed/conversation.spec.ts +131 -5
- package/src/embed/conversation.ts +85 -10
- package/src/embed/liveboard.spec.ts +261 -2
- package/src/embed/liveboard.ts +25 -18
- package/src/embed/ts-embed.spec.ts +346 -114
- package/src/embed/ts-embed.ts +80 -65
- package/src/types.ts +190 -55
- package/src/utils/liveboardService/liveboardService.ts +21 -6
- package/src/utils/processData.spec.ts +12 -0
- package/src/utils/processData.ts +10 -0
- package/dist/index-DeFzsyFF.js +0 -7371
- package/dist/index-Dpf0rd6w.js +0 -7371
- package/dist/index-UuEbsISo.js +0 -7447
- package/dist/index-e3Uw3YFO.js +0 -7371
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
SpotterEmbedViewConfig,
|
|
4
|
-
} from './conversation';
|
|
1
|
+
import { SpotterEmbed, SpotterEmbedViewConfig, ConversationEmbed } from './conversation';
|
|
2
|
+
import { TsEmbed } from './ts-embed';
|
|
5
3
|
import * as authInstance from '../auth';
|
|
6
4
|
import { Action, init } from '../index';
|
|
7
|
-
import { AuthType, Param } from '../types';
|
|
5
|
+
import { AuthType, Param, RuntimeFilterOp } from '../types';
|
|
8
6
|
import {
|
|
9
7
|
getDocumentBody,
|
|
10
8
|
getIFrameSrc,
|
|
@@ -180,4 +178,132 @@ describe('ConversationEmbed', () => {
|
|
|
180
178
|
`http://${thoughtSpotHost}/v2/?${defaultParams}&${Param.DisableActions}=[%22${Action.InConversationTraining}%22]&${Param.DisableActionReason}=${disabledReason}&isSpotterExperienceEnabled=true&enableDataPanelV2=true#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`,
|
|
181
179
|
);
|
|
182
180
|
});
|
|
181
|
+
|
|
182
|
+
it('should render the conversation embed with runtime filters', async () => {
|
|
183
|
+
const viewConfig: SpotterEmbedViewConfig = {
|
|
184
|
+
worksheetId: 'worksheetId',
|
|
185
|
+
searchOptions: {
|
|
186
|
+
searchQuery: 'searchQuery',
|
|
187
|
+
},
|
|
188
|
+
runtimeFilters: [
|
|
189
|
+
{
|
|
190
|
+
columnName: 'revenue',
|
|
191
|
+
operator: RuntimeFilterOp.EQ,
|
|
192
|
+
values: [1000],
|
|
193
|
+
},
|
|
194
|
+
],
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig);
|
|
198
|
+
await conversationEmbed.render();
|
|
199
|
+
expectUrlMatchesWithParams(
|
|
200
|
+
getIFrameSrc(),
|
|
201
|
+
`http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true&col1=revenue&op1=EQ&val1=1000#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`,
|
|
202
|
+
);
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
it('should render the conversation embed with runtime parameters', async () => {
|
|
206
|
+
const viewConfig: SpotterEmbedViewConfig = {
|
|
207
|
+
worksheetId: 'worksheetId',
|
|
208
|
+
searchOptions: {
|
|
209
|
+
searchQuery: 'searchQuery',
|
|
210
|
+
},
|
|
211
|
+
runtimeParameters: [
|
|
212
|
+
{
|
|
213
|
+
name: 'Date Range',
|
|
214
|
+
value: '30',
|
|
215
|
+
},
|
|
216
|
+
],
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig);
|
|
220
|
+
await conversationEmbed.render();
|
|
221
|
+
expectUrlMatchesWithParams(
|
|
222
|
+
getIFrameSrc(),
|
|
223
|
+
`http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true¶m1=Date%20Range¶mVal1=30#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`,
|
|
224
|
+
);
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
it('should render the conversation embed with runtime parameters excluded from URL', async () => {
|
|
228
|
+
const viewConfig: SpotterEmbedViewConfig = {
|
|
229
|
+
worksheetId: 'worksheetId',
|
|
230
|
+
searchOptions: {
|
|
231
|
+
searchQuery: 'searchQuery',
|
|
232
|
+
},
|
|
233
|
+
runtimeParameters: [
|
|
234
|
+
{
|
|
235
|
+
name: 'Date Range',
|
|
236
|
+
value: '30',
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
name: 'Region',
|
|
240
|
+
value: 'North America',
|
|
241
|
+
},
|
|
242
|
+
],
|
|
243
|
+
excludeRuntimeParametersfromURL: true,
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig);
|
|
247
|
+
await conversationEmbed.render();
|
|
248
|
+
expectUrlMatchesWithParams(
|
|
249
|
+
getIFrameSrc(),
|
|
250
|
+
`http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`,
|
|
251
|
+
);
|
|
252
|
+
});
|
|
253
|
+
|
|
254
|
+
it('should render the conversation embed with both runtime filters and parameters', async () => {
|
|
255
|
+
const viewConfig: SpotterEmbedViewConfig = {
|
|
256
|
+
worksheetId: 'worksheetId',
|
|
257
|
+
searchOptions: {
|
|
258
|
+
searchQuery: 'searchQuery',
|
|
259
|
+
},
|
|
260
|
+
runtimeParameters: [
|
|
261
|
+
{
|
|
262
|
+
name: 'Date Range',
|
|
263
|
+
value: '30',
|
|
264
|
+
},
|
|
265
|
+
],
|
|
266
|
+
runtimeFilters: [
|
|
267
|
+
{
|
|
268
|
+
columnName: 'revenue',
|
|
269
|
+
operator: RuntimeFilterOp.EQ,
|
|
270
|
+
values: [1000],
|
|
271
|
+
},
|
|
272
|
+
],
|
|
273
|
+
excludeRuntimeParametersfromURL: false,
|
|
274
|
+
excludeRuntimeFiltersfromURL: false,
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig);
|
|
278
|
+
await conversationEmbed.render();
|
|
279
|
+
expectUrlMatchesWithParams(
|
|
280
|
+
getIFrameSrc(),
|
|
281
|
+
`http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true&col1=revenue&op1=EQ&val1=1000¶m1=Date%20Range¶mVal1=30#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`,
|
|
282
|
+
);
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
it('should ensure deprecated ConversationEmbed class maintains same functionality as SpotterEmbed', async () => {
|
|
286
|
+
const viewConfig: SpotterEmbedViewConfig = {
|
|
287
|
+
worksheetId: 'worksheetId',
|
|
288
|
+
searchOptions: {
|
|
289
|
+
searchQuery: 'searchQuery',
|
|
290
|
+
},
|
|
291
|
+
runtimeParameters: [
|
|
292
|
+
{
|
|
293
|
+
name: 'Date Range',
|
|
294
|
+
value: '30',
|
|
295
|
+
},
|
|
296
|
+
],
|
|
297
|
+
};
|
|
298
|
+
|
|
299
|
+
// Test with deprecated class
|
|
300
|
+
const conversationEmbed = new ConversationEmbed(getRootEl(), viewConfig);
|
|
301
|
+
await conversationEmbed.render();
|
|
302
|
+
|
|
303
|
+
// Verify it generates the same URL structure as SpotterEmbed
|
|
304
|
+
expectUrlMatchesWithParams(
|
|
305
|
+
getIFrameSrc(),
|
|
306
|
+
`http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true¶m1=Date%20Range¶mVal1=30#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`,
|
|
307
|
+
);
|
|
308
|
+
});
|
|
183
309
|
});
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import isUndefined from 'lodash/isUndefined';
|
|
2
2
|
import { ERROR_MESSAGE } from '../errors';
|
|
3
|
-
import { Param, BaseViewConfig } from '../types';
|
|
3
|
+
import { Param, BaseViewConfig, RuntimeFilter, RuntimeParameter } from '../types';
|
|
4
4
|
import { TsEmbed } from './ts-embed';
|
|
5
|
-
import { getQueryParamString } from '../utils';
|
|
5
|
+
import { getQueryParamString, getFilterQuery, getRuntimeParameters } from '../utils';
|
|
6
6
|
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
8
|
* Configuration for search options
|
|
9
9
|
*/
|
|
10
10
|
export interface SearchOptions {
|
|
@@ -20,7 +20,8 @@ export interface SearchOptions {
|
|
|
20
20
|
*/
|
|
21
21
|
export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAction'> {
|
|
22
22
|
/**
|
|
23
|
-
* The ID of the data source object. For example, Model, View, or Table. Spotter uses
|
|
23
|
+
* The ID of the data source object. For example, Model, View, or Table. Spotter uses
|
|
24
|
+
* this object to query data and generate Answers.
|
|
24
25
|
*/
|
|
25
26
|
worksheetId: string;
|
|
26
27
|
/**
|
|
@@ -30,7 +31,7 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
|
|
|
30
31
|
/**
|
|
31
32
|
* disableSourceSelection : Disables data source selection
|
|
32
33
|
* but still display the selected data source.
|
|
33
|
-
*
|
|
34
|
+
*
|
|
34
35
|
* Supported embed types: `SpotterEmbed`
|
|
35
36
|
* @example
|
|
36
37
|
* ```js
|
|
@@ -44,7 +45,7 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
|
|
|
44
45
|
disableSourceSelection?: boolean;
|
|
45
46
|
/**
|
|
46
47
|
* hideSourceSelection : Hide data source selection
|
|
47
|
-
*
|
|
48
|
+
*
|
|
48
49
|
* Supported embed types: `SpotterEmbed`
|
|
49
50
|
* @example
|
|
50
51
|
* ```js
|
|
@@ -58,7 +59,7 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
|
|
|
58
59
|
hideSourceSelection?: boolean;
|
|
59
60
|
/**
|
|
60
61
|
* Flag to control Data panel experience
|
|
61
|
-
*
|
|
62
|
+
*
|
|
62
63
|
* Supported embed types: `SageEmbed`, `AppEmbed`, `SearchBarEmbed`, `LiveboardEmbed`, `SearchEmbed`
|
|
63
64
|
* @default false
|
|
64
65
|
* @version SDK: 1.36.0 | ThoughtSpot Cloud: 10.4.0.cl
|
|
@@ -76,7 +77,7 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
|
|
|
76
77
|
* showSpotterLimitations : show limitation text
|
|
77
78
|
* of the spotter underneath the chat input.
|
|
78
79
|
* default is false.
|
|
79
|
-
*
|
|
80
|
+
*
|
|
80
81
|
* Supported embed types: `SpotterEmbed`
|
|
81
82
|
* @example
|
|
82
83
|
* ```js
|
|
@@ -91,7 +92,7 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
|
|
|
91
92
|
/**
|
|
92
93
|
* hideSampleQuestions : Hide sample questions on
|
|
93
94
|
* the initial screen of the conversation.
|
|
94
|
-
*
|
|
95
|
+
*
|
|
95
96
|
* Supported embed types: `SpotterEmbed`
|
|
96
97
|
* @example
|
|
97
98
|
* ```js
|
|
@@ -103,6 +104,66 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, 'primaryAct
|
|
|
103
104
|
* @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
|
|
104
105
|
*/
|
|
105
106
|
hideSampleQuestions?: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* The list of runtime filters to apply to a search Answer,
|
|
109
|
+
* visualization, or Liveboard.
|
|
110
|
+
*
|
|
111
|
+
* Supported embed types: `SpotterEmbed`
|
|
112
|
+
* @example
|
|
113
|
+
* ```js
|
|
114
|
+
* const embed = new SpotterEmbed('#tsEmbed', {
|
|
115
|
+
* // other embed view config
|
|
116
|
+
* runtimeFilters: [
|
|
117
|
+
* {
|
|
118
|
+
* columnName: 'color',
|
|
119
|
+
* operator: RuntimeFilterOp.EQ,
|
|
120
|
+
* values: ['red'],
|
|
121
|
+
* },
|
|
122
|
+
* ],
|
|
123
|
+
* })
|
|
124
|
+
* ```
|
|
125
|
+
* @version SDK: 1.41.0 | ThoughtSpot: 10.13.0.cl
|
|
126
|
+
*/
|
|
127
|
+
runtimeFilters?: RuntimeFilter[];
|
|
128
|
+
/**
|
|
129
|
+
* Flag to control whether runtime filters should be included in the URL.
|
|
130
|
+
* If true, filters will be passed via app initialization payload instead.
|
|
131
|
+
* If false/undefined, filters will be added to URL (default behavior).
|
|
132
|
+
*
|
|
133
|
+
* Supported embed types: `SpotterEmbed`
|
|
134
|
+
* @default false
|
|
135
|
+
* @version SDK: 1.41.0 | ThoughtSpot: 10.13.0.cl
|
|
136
|
+
*/
|
|
137
|
+
excludeRuntimeFiltersfromURL?: boolean;
|
|
138
|
+
/**
|
|
139
|
+
* The list of runtime parameters to apply to the conversation.
|
|
140
|
+
*
|
|
141
|
+
* Supported embed types: `SpotterEmbed`
|
|
142
|
+
* @example
|
|
143
|
+
* ```js
|
|
144
|
+
* const embed = new SpotterEmbed('#tsEmbed', {
|
|
145
|
+
* // other embed view config
|
|
146
|
+
* runtimeParameters: [
|
|
147
|
+
* {
|
|
148
|
+
* name: 'Integer Param',
|
|
149
|
+
* value: 10,
|
|
150
|
+
* },
|
|
151
|
+
* ],
|
|
152
|
+
* })
|
|
153
|
+
* ```
|
|
154
|
+
* @version SDK: 1.41.0 | ThoughtSpot: 10.13.0.cl
|
|
155
|
+
*/
|
|
156
|
+
runtimeParameters?: RuntimeParameter[];
|
|
157
|
+
/**
|
|
158
|
+
* Flag to control whether runtime parameters should be included in the URL.
|
|
159
|
+
* If true, parameters will be passed via app initialization payload instead.
|
|
160
|
+
* If false/undefined, parameters will be added to URL (default behavior).
|
|
161
|
+
*
|
|
162
|
+
* Supported embed types: `SpotterEmbed`
|
|
163
|
+
* @default false
|
|
164
|
+
* @version SDK: 1.41.0 | ThoughtSpot: 10.13.0.cl
|
|
165
|
+
*/
|
|
166
|
+
excludeRuntimeParametersfromURL?: boolean;
|
|
106
167
|
}
|
|
107
168
|
|
|
108
169
|
/**
|
|
@@ -144,6 +205,10 @@ export class SpotterEmbed extends TsEmbed {
|
|
|
144
205
|
dataPanelV2,
|
|
145
206
|
showSpotterLimitations,
|
|
146
207
|
hideSampleQuestions,
|
|
208
|
+
runtimeFilters,
|
|
209
|
+
excludeRuntimeFiltersfromURL,
|
|
210
|
+
runtimeParameters,
|
|
211
|
+
excludeRuntimeParametersfromURL,
|
|
147
212
|
} = this.viewConfig;
|
|
148
213
|
const path = 'insights/conv-assist';
|
|
149
214
|
if (!worksheetId) {
|
|
@@ -175,11 +240,21 @@ export class SpotterEmbed extends TsEmbed {
|
|
|
175
240
|
if (queryParamsString) {
|
|
176
241
|
query = `?${queryParamsString}`;
|
|
177
242
|
}
|
|
243
|
+
|
|
244
|
+
const filterQuery = getFilterQuery(runtimeFilters || []);
|
|
245
|
+
if (filterQuery && !excludeRuntimeFiltersfromURL) {
|
|
246
|
+
query += `&${filterQuery}`;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
const parameterQuery = getRuntimeParameters(runtimeParameters || []);
|
|
250
|
+
if (parameterQuery && !excludeRuntimeParametersfromURL) {
|
|
251
|
+
query += `&${parameterQuery}`;
|
|
252
|
+
}
|
|
253
|
+
|
|
178
254
|
const tsPostHashParams = this.getThoughtSpotPostUrlParams({
|
|
179
255
|
worksheet: worksheetId,
|
|
180
256
|
query: searchOptions?.searchQuery || '',
|
|
181
257
|
});
|
|
182
|
-
|
|
183
258
|
return `${this.getEmbedBasePath(query)}/embed/${path}${tsPostHashParams}`;
|
|
184
259
|
}
|
|
185
260
|
|
|
@@ -25,6 +25,7 @@ import * as tsEmbed from './ts-embed';
|
|
|
25
25
|
import * as processTriggerInstance from '../utils/processTrigger';
|
|
26
26
|
import * as auth from '../auth';
|
|
27
27
|
import * as previewService from '../utils/graphql/preview-service';
|
|
28
|
+
import * as SessionInfoService from '../utils/sessionInfoService';
|
|
28
29
|
|
|
29
30
|
const defaultViewConfig = {
|
|
30
31
|
frameParams: {
|
|
@@ -367,6 +368,36 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
367
368
|
});
|
|
368
369
|
});
|
|
369
370
|
|
|
371
|
+
test('should add liveboardXLSXCSVDownload flag and set value to true to the iframe src', async () => {
|
|
372
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
373
|
+
...defaultViewConfig,
|
|
374
|
+
liveboardId,
|
|
375
|
+
liveboardXLSXCSVDownload: true,
|
|
376
|
+
} as LiveboardViewConfig);
|
|
377
|
+
liveboardEmbed.render();
|
|
378
|
+
await executeAfterWait(() => {
|
|
379
|
+
expectUrlMatchesWithParams(
|
|
380
|
+
getIFrameSrc(),
|
|
381
|
+
`http://${thoughtSpotHost}/?embedApp=true${defaultParams}&isLiveboardXLSXCSVDownloadEnabled=true${prefixParams}#/embed/viz/${liveboardId}`,
|
|
382
|
+
);
|
|
383
|
+
});
|
|
384
|
+
});
|
|
385
|
+
|
|
386
|
+
test('should add liveboardXLSXCSVDownload flag and set value to false to the iframe src', async () => {
|
|
387
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
388
|
+
...defaultViewConfig,
|
|
389
|
+
liveboardId,
|
|
390
|
+
liveboardXLSXCSVDownload: false,
|
|
391
|
+
} as LiveboardViewConfig);
|
|
392
|
+
liveboardEmbed.render();
|
|
393
|
+
await executeAfterWait(() => {
|
|
394
|
+
expectUrlMatchesWithParams(
|
|
395
|
+
getIFrameSrc(),
|
|
396
|
+
`http://${thoughtSpotHost}/?embedApp=true${defaultParams}&isLiveboardXLSXCSVDownloadEnabled=false&${prefixParams}#/embed/viz/${liveboardId}`,
|
|
397
|
+
);
|
|
398
|
+
});
|
|
399
|
+
});
|
|
400
|
+
|
|
370
401
|
test('should not append runtime filters in URL if excludeRuntimeFiltersfromURL is true', async () => {
|
|
371
402
|
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
372
403
|
...defaultViewConfig,
|
|
@@ -761,7 +792,7 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
761
792
|
});
|
|
762
793
|
});
|
|
763
794
|
|
|
764
|
-
test('it should navigateToLiveboard with liveboard id is not passed', async (done) => {
|
|
795
|
+
test('it should navigateToLiveboard with liveboard id is not passed with EmbedListenerReady event', async (done) => {
|
|
765
796
|
mockMessageChannel();
|
|
766
797
|
const consoleSpy = jest.spyOn(console, 'error');
|
|
767
798
|
const testPreRenderId = 'testPreRender';
|
|
@@ -790,10 +821,19 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
790
821
|
libEmbed,
|
|
791
822
|
);
|
|
792
823
|
|
|
824
|
+
await executeAfterWait(() => {
|
|
825
|
+
const iframe = getIFrameEl();
|
|
826
|
+
postMessageToParent(iframe.contentWindow, {
|
|
827
|
+
type: EmbedEvent.EmbedListenerReady,
|
|
828
|
+
});
|
|
829
|
+
});
|
|
830
|
+
|
|
793
831
|
const testLiveboardId = 'testLiveboardId';
|
|
794
832
|
const newLibEmbed = new LiveboardEmbed(getRootEl(), {
|
|
795
833
|
preRenderId: testPreRenderId,
|
|
796
834
|
liveboardId: testLiveboardId,
|
|
835
|
+
vizId: 'testVizId',
|
|
836
|
+
activeTabId: 'testActiveTabId',
|
|
797
837
|
});
|
|
798
838
|
const navigateToLiveboardSpy = jest.spyOn(newLibEmbed, 'navigateToLiveboard');
|
|
799
839
|
await newLibEmbed.showPreRender();
|
|
@@ -804,7 +844,7 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
804
844
|
) as HTMLIFrameElement;
|
|
805
845
|
|
|
806
846
|
// should render the generic link
|
|
807
|
-
expect(navigateToLiveboardSpy).toHaveBeenCalledWith(testLiveboardId);
|
|
847
|
+
expect(navigateToLiveboardSpy).toHaveBeenCalledWith(testLiveboardId, 'testVizId', 'testActiveTabId');
|
|
808
848
|
expect(iFrame.src).toMatch(/http:\/\/tshost\/.*&isLiveboardEmbed=true.*#$/);
|
|
809
849
|
|
|
810
850
|
expect(consoleSpy).toHaveBeenCalledTimes(0);
|
|
@@ -812,6 +852,72 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
812
852
|
done();
|
|
813
853
|
});
|
|
814
854
|
});
|
|
855
|
+
|
|
856
|
+
test('it should navigateToLiveboard with liveboard id is not passed with AuthInit event', async (done) => {
|
|
857
|
+
mockMessageChannel();
|
|
858
|
+
const consoleSpy = jest.spyOn(console, 'error');
|
|
859
|
+
const testPreRenderId = 'testPreRender';
|
|
860
|
+
const libEmbed = new LiveboardEmbed(getRootEl(), {
|
|
861
|
+
preRenderId: testPreRenderId,
|
|
862
|
+
});
|
|
863
|
+
|
|
864
|
+
jest.spyOn(SessionInfoService, 'getSessionInfo').mockResolvedValue({
|
|
865
|
+
releaseVersion: '1.0.0',
|
|
866
|
+
userGUID: '1234567890',
|
|
867
|
+
currentOrgId: 1,
|
|
868
|
+
privileges: [],
|
|
869
|
+
mixpanelToken: '1234567890',
|
|
870
|
+
});
|
|
871
|
+
let resizeObserverCb: any;
|
|
872
|
+
(window as any).ResizeObserver =
|
|
873
|
+
window.ResizeObserver ||
|
|
874
|
+
jest.fn().mockImplementation((resizeObserverCbParam: any) => {
|
|
875
|
+
resizeObserverCb = resizeObserverCbParam;
|
|
876
|
+
return {
|
|
877
|
+
disconnect: jest.fn(),
|
|
878
|
+
observe: jest.fn(),
|
|
879
|
+
unobserve: jest.fn(),
|
|
880
|
+
};
|
|
881
|
+
});
|
|
882
|
+
await libEmbed.preRender();
|
|
883
|
+
await waitFor(() => !!getIFrameEl());
|
|
884
|
+
const ts = '__tsEmbed';
|
|
885
|
+
expect((document.getElementById(libEmbed.getPreRenderIds().wrapper) as any)[ts]).toEqual(
|
|
886
|
+
libEmbed,
|
|
887
|
+
);
|
|
888
|
+
const testLiveboardId = 'testLiveboardId';
|
|
889
|
+
const newLibEmbed = new LiveboardEmbed(getRootEl(), {
|
|
890
|
+
preRenderId: testPreRenderId,
|
|
891
|
+
liveboardId: testLiveboardId,
|
|
892
|
+
vizId: 'testVizId',
|
|
893
|
+
activeTabId: 'testActiveTabId',
|
|
894
|
+
});
|
|
895
|
+
const navigateToLiveboardSpy = jest.spyOn(newLibEmbed, 'navigateToLiveboard');
|
|
896
|
+
|
|
897
|
+
await newLibEmbed.showPreRender();
|
|
898
|
+
|
|
899
|
+
await executeAfterWait(() => {
|
|
900
|
+
const iFrame = document.getElementById(
|
|
901
|
+
newLibEmbed.getPreRenderIds().child,
|
|
902
|
+
) as HTMLIFrameElement;
|
|
903
|
+
postMessageToParent(iFrame.contentWindow, {
|
|
904
|
+
type: EmbedEvent.AuthInit,
|
|
905
|
+
});
|
|
906
|
+
});
|
|
907
|
+
|
|
908
|
+
|
|
909
|
+
await executeAfterWait(() => {
|
|
910
|
+
const iFrame = document.getElementById(
|
|
911
|
+
libEmbed.getPreRenderIds().child,
|
|
912
|
+
) as HTMLIFrameElement;
|
|
913
|
+
// should render the generic link
|
|
914
|
+
expect(navigateToLiveboardSpy).toHaveBeenCalledWith(testLiveboardId, 'testVizId', 'testActiveTabId');
|
|
915
|
+
expect(iFrame.src).toMatch(/http:\/\/tshost\/.*&isLiveboardEmbed=true.*#$/);
|
|
916
|
+
expect(consoleSpy).toHaveBeenCalledTimes(0);
|
|
917
|
+
done();
|
|
918
|
+
}, 1005);
|
|
919
|
+
});
|
|
920
|
+
|
|
815
921
|
});
|
|
816
922
|
|
|
817
923
|
describe('LazyLoadingForFullHeight functionality', () => {
|
|
@@ -1085,4 +1191,157 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
1085
1191
|
});
|
|
1086
1192
|
});
|
|
1087
1193
|
});
|
|
1194
|
+
|
|
1195
|
+
describe('Liveboard Embed Container Loading and PreRender', () => {
|
|
1196
|
+
beforeEach(() => {
|
|
1197
|
+
document.body.innerHTML = getDocumentBody();
|
|
1198
|
+
});
|
|
1199
|
+
|
|
1200
|
+
test('should call navigateToLiveboard after embed container is loaded in beforePrerenderVisible', async () => {
|
|
1201
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
1202
|
+
liveboardId,
|
|
1203
|
+
vizId,
|
|
1204
|
+
activeTabId,
|
|
1205
|
+
...defaultViewConfig,
|
|
1206
|
+
});
|
|
1207
|
+
|
|
1208
|
+
const navigateToLiveboardSpy = jest.spyOn(liveboardEmbed, 'navigateToLiveboard').mockResolvedValue(undefined);
|
|
1209
|
+
|
|
1210
|
+
// Mock embed container as not loaded initially
|
|
1211
|
+
liveboardEmbed.isEmbedContainerLoaded = false;
|
|
1212
|
+
|
|
1213
|
+
// Call beforePrerenderVisible
|
|
1214
|
+
liveboardEmbed['beforePrerenderVisible']();
|
|
1215
|
+
|
|
1216
|
+
// navigateToLiveboard should not be called immediately
|
|
1217
|
+
expect(navigateToLiveboardSpy).not.toHaveBeenCalled();
|
|
1218
|
+
|
|
1219
|
+
// Simulate embed container becoming ready
|
|
1220
|
+
liveboardEmbed.isEmbedContainerLoaded = true;
|
|
1221
|
+
liveboardEmbed['executeEmbedContainerReadyCallbacks']();
|
|
1222
|
+
|
|
1223
|
+
// Now navigateToLiveboard should be called
|
|
1224
|
+
expect(navigateToLiveboardSpy).toHaveBeenCalledWith(liveboardId, vizId, activeTabId);
|
|
1225
|
+
});
|
|
1226
|
+
|
|
1227
|
+
test('should update currentLiveboardState for prerender object when embed container loads', async () => {
|
|
1228
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
1229
|
+
liveboardId,
|
|
1230
|
+
vizId,
|
|
1231
|
+
activeTabId,
|
|
1232
|
+
...defaultViewConfig,
|
|
1233
|
+
});
|
|
1234
|
+
|
|
1235
|
+
const mockPreRenderObj = {
|
|
1236
|
+
currentLiveboardState: {},
|
|
1237
|
+
};
|
|
1238
|
+
|
|
1239
|
+
jest.spyOn(liveboardEmbed as any, 'getPreRenderObj').mockReturnValue(mockPreRenderObj as any);
|
|
1240
|
+
jest.spyOn(liveboardEmbed, 'navigateToLiveboard').mockResolvedValue(undefined);
|
|
1241
|
+
|
|
1242
|
+
// Mock embed container as not loaded initially
|
|
1243
|
+
liveboardEmbed.isEmbedContainerLoaded = false;
|
|
1244
|
+
|
|
1245
|
+
// Call beforePrerenderVisible
|
|
1246
|
+
liveboardEmbed['beforePrerenderVisible']();
|
|
1247
|
+
|
|
1248
|
+
// Simulate embed container becoming ready
|
|
1249
|
+
liveboardEmbed.isEmbedContainerLoaded = true;
|
|
1250
|
+
liveboardEmbed['executeEmbedContainerReadyCallbacks']();
|
|
1251
|
+
|
|
1252
|
+
// Check that currentLiveboardState was updated
|
|
1253
|
+
expect(mockPreRenderObj.currentLiveboardState).toEqual({
|
|
1254
|
+
liveboardId,
|
|
1255
|
+
vizId,
|
|
1256
|
+
activeTabId,
|
|
1257
|
+
});
|
|
1258
|
+
});
|
|
1259
|
+
|
|
1260
|
+
test('should handle beforePrerenderVisible when embed container is already loaded', async () => {
|
|
1261
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
1262
|
+
liveboardId,
|
|
1263
|
+
vizId,
|
|
1264
|
+
activeTabId,
|
|
1265
|
+
...defaultViewConfig,
|
|
1266
|
+
});
|
|
1267
|
+
|
|
1268
|
+
const navigateToLiveboardSpy = jest.spyOn(liveboardEmbed, 'navigateToLiveboard').mockResolvedValue(undefined);
|
|
1269
|
+
|
|
1270
|
+
// Mock embed container as already loaded
|
|
1271
|
+
liveboardEmbed.isEmbedContainerLoaded = true;
|
|
1272
|
+
|
|
1273
|
+
// Call beforePrerenderVisible
|
|
1274
|
+
liveboardEmbed['beforePrerenderVisible']();
|
|
1275
|
+
|
|
1276
|
+
// navigateToLiveboard should be called immediately
|
|
1277
|
+
expect(navigateToLiveboardSpy).toHaveBeenCalledWith(liveboardId, vizId, activeTabId);
|
|
1278
|
+
});
|
|
1279
|
+
|
|
1280
|
+
test('should handle beforePrerenderVisible without prerender object', async () => {
|
|
1281
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
1282
|
+
liveboardId,
|
|
1283
|
+
vizId,
|
|
1284
|
+
activeTabId,
|
|
1285
|
+
...defaultViewConfig,
|
|
1286
|
+
});
|
|
1287
|
+
|
|
1288
|
+
jest.spyOn(liveboardEmbed as any, 'getPreRenderObj').mockReturnValue(null);
|
|
1289
|
+
const navigateToLiveboardSpy = jest.spyOn(liveboardEmbed, 'navigateToLiveboard').mockResolvedValue(undefined);
|
|
1290
|
+
|
|
1291
|
+
// Mock embed container as not loaded initially
|
|
1292
|
+
liveboardEmbed.isEmbedContainerLoaded = false;
|
|
1293
|
+
|
|
1294
|
+
// Call beforePrerenderVisible
|
|
1295
|
+
liveboardEmbed['beforePrerenderVisible']();
|
|
1296
|
+
|
|
1297
|
+
// Simulate embed container becoming ready
|
|
1298
|
+
liveboardEmbed.isEmbedContainerLoaded = true;
|
|
1299
|
+
liveboardEmbed['executeEmbedContainerReadyCallbacks']();
|
|
1300
|
+
|
|
1301
|
+
// navigateToLiveboard should still be called
|
|
1302
|
+
expect(navigateToLiveboardSpy).toHaveBeenCalledWith(liveboardId, vizId, activeTabId);
|
|
1303
|
+
});
|
|
1304
|
+
|
|
1305
|
+
test('should work with all liveboard parameters', async () => {
|
|
1306
|
+
const customLiveboardId = 'custom-liveboard-id';
|
|
1307
|
+
const customVizId = 'custom-viz-id';
|
|
1308
|
+
const customActiveTabId = 'custom-active-tab-id';
|
|
1309
|
+
|
|
1310
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
1311
|
+
liveboardId: customLiveboardId,
|
|
1312
|
+
vizId: customVizId,
|
|
1313
|
+
activeTabId: customActiveTabId,
|
|
1314
|
+
...defaultViewConfig,
|
|
1315
|
+
});
|
|
1316
|
+
|
|
1317
|
+
const navigateToLiveboardSpy = jest.spyOn(liveboardEmbed, 'navigateToLiveboard').mockResolvedValue(undefined);
|
|
1318
|
+
|
|
1319
|
+
// Mock embed container as already loaded
|
|
1320
|
+
liveboardEmbed.isEmbedContainerLoaded = true;
|
|
1321
|
+
|
|
1322
|
+
// Call beforePrerenderVisible
|
|
1323
|
+
liveboardEmbed['beforePrerenderVisible']();
|
|
1324
|
+
|
|
1325
|
+
// Check that all parameters are passed correctly
|
|
1326
|
+
expect(navigateToLiveboardSpy).toHaveBeenCalledWith(customLiveboardId, customVizId, customActiveTabId);
|
|
1327
|
+
});
|
|
1328
|
+
|
|
1329
|
+
test('should work with minimal liveboard parameters', async () => {
|
|
1330
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
1331
|
+
liveboardId,
|
|
1332
|
+
...defaultViewConfig,
|
|
1333
|
+
});
|
|
1334
|
+
|
|
1335
|
+
const navigateToLiveboardSpy = jest.spyOn(liveboardEmbed, 'navigateToLiveboard').mockResolvedValue(undefined);
|
|
1336
|
+
|
|
1337
|
+
// Mock embed container as already loaded
|
|
1338
|
+
liveboardEmbed.isEmbedContainerLoaded = true;
|
|
1339
|
+
|
|
1340
|
+
// Call beforePrerenderVisible
|
|
1341
|
+
liveboardEmbed['beforePrerenderVisible']();
|
|
1342
|
+
|
|
1343
|
+
// Check that undefined parameters are passed correctly
|
|
1344
|
+
expect(navigateToLiveboardSpy).toHaveBeenCalledWith(liveboardId, undefined, undefined);
|
|
1345
|
+
});
|
|
1346
|
+
});
|
|
1088
1347
|
});
|