@thoughtspot/visual-embed-sdk 1.33.0-alpha.2 → 1.33.0-dc.1
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 +12 -28
- package/cjs/src/auth.d.ts +0 -1
- package/cjs/src/auth.d.ts.map +1 -1
- package/cjs/src/auth.js +1 -2
- package/cjs/src/auth.js.map +1 -1
- package/cjs/src/auth.spec.d.ts +1 -11
- package/cjs/src/auth.spec.d.ts.map +1 -1
- package/cjs/src/auth.spec.js +5 -14
- package/cjs/src/auth.spec.js.map +1 -1
- package/cjs/src/authToken.d.ts +4 -0
- package/cjs/src/authToken.d.ts.map +1 -1
- package/cjs/src/authToken.js +4 -0
- package/cjs/src/authToken.js.map +1 -1
- package/cjs/src/css-variables.d.ts +46 -3
- package/cjs/src/css-variables.d.ts.map +1 -1
- package/cjs/src/embed/app.d.ts +47 -14
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +10 -1
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +32 -0
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/base.d.ts +35 -33
- package/cjs/src/embed/base.d.ts.map +1 -1
- package/cjs/src/embed/base.js +35 -33
- package/cjs/src/embed/base.js.map +1 -1
- package/cjs/src/embed/bodyless-conversation.d.ts +26 -0
- package/cjs/src/embed/bodyless-conversation.d.ts.map +1 -0
- package/cjs/src/embed/bodyless-conversation.js +70 -0
- package/cjs/src/embed/bodyless-conversation.js.map +1 -0
- package/cjs/src/embed/bodyless-conversation.spec.d.ts +2 -0
- package/cjs/src/embed/bodyless-conversation.spec.d.ts.map +1 -0
- package/cjs/src/embed/bodyless-conversation.spec.js +125 -0
- package/cjs/src/embed/bodyless-conversation.spec.js.map +1 -0
- package/cjs/src/embed/conversation.d.ts +28 -0
- package/cjs/src/embed/conversation.d.ts.map +1 -0
- package/cjs/src/embed/conversation.js +34 -0
- package/cjs/src/embed/conversation.js.map +1 -0
- package/cjs/src/embed/conversation.spec.d.ts +2 -0
- package/cjs/src/embed/conversation.spec.d.ts.map +1 -0
- package/cjs/src/embed/conversation.spec.js +32 -0
- package/cjs/src/embed/conversation.spec.js.map +1 -0
- package/cjs/src/embed/embed.spec.js +0 -19
- package/cjs/src/embed/embed.spec.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +49 -0
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +21 -1
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +43 -0
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/search.d.ts +0 -13
- package/cjs/src/embed/search.d.ts.map +1 -1
- package/cjs/src/embed/search.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts +3 -2
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +10 -13
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +0 -9
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/index.d.ts +4 -1
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js +7 -1
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/mixpanel-service.d.ts +4 -0
- package/cjs/src/mixpanel-service.d.ts.map +1 -1
- package/cjs/src/mixpanel-service.js +4 -0
- package/cjs/src/mixpanel-service.js.map +1 -1
- package/cjs/src/react/index.d.ts +39 -1
- package/cjs/src/react/index.d.ts.map +1 -1
- package/cjs/src/react/index.js +37 -1
- package/cjs/src/react/index.js.map +1 -1
- package/cjs/src/test/test-utils.d.ts +13 -0
- package/cjs/src/test/test-utils.d.ts.map +1 -1
- package/cjs/src/test/test-utils.js +41 -4
- package/cjs/src/test/test-utils.js.map +1 -1
- package/cjs/src/tokenizedFetch.d.ts.map +1 -1
- package/cjs/src/tokenizedFetch.js +5 -1
- package/cjs/src/tokenizedFetch.js.map +1 -1
- package/cjs/src/types.d.ts +166 -22
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +143 -12
- 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/authService.spec.js +11 -2
- package/cjs/src/utils/authService/authService.spec.js.map +1 -1
- package/cjs/src/utils/authService/tokenizedAuthService.d.ts +0 -2
- package/cjs/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
- package/cjs/src/utils/authService/tokenizedAuthService.js +0 -2
- package/cjs/src/utils/authService/tokenizedAuthService.js.map +1 -1
- 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/global-styles.spec.d.ts +2 -0
- package/cjs/src/utils/global-styles.spec.d.ts.map +1 -0
- package/cjs/src/utils/global-styles.spec.js +21 -0
- package/cjs/src/utils/global-styles.spec.js.map +1 -0
- package/cjs/src/utils/graphql/answerService/answer-queries.d.ts +2 -0
- package/cjs/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -1
- package/cjs/src/utils/graphql/answerService/answer-queries.js +32 -2
- package/cjs/src/utils/graphql/answerService/answer-queries.js.map +1 -1
- package/cjs/src/utils/graphql/answerService/answerService.d.ts +23 -0
- package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/cjs/src/utils/graphql/answerService/answerService.js +76 -8
- package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -1
- package/cjs/src/utils/graphql/answerService/answerService.spec.js +109 -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/graphql/conversationService/conversation-queries.d.ts +3 -0
- package/cjs/src/utils/graphql/conversationService/conversation-queries.d.ts.map +1 -0
- package/cjs/src/utils/graphql/conversationService/conversation-queries.js +318 -0
- package/cjs/src/utils/graphql/conversationService/conversation-queries.js.map +1 -0
- package/cjs/src/utils/graphql/conversationService/conversation-service.d.ts +12 -0
- package/cjs/src/utils/graphql/conversationService/conversation-service.d.ts.map +1 -0
- package/cjs/src/utils/graphql/conversationService/conversation-service.js +89 -0
- package/cjs/src/utils/graphql/conversationService/conversation-service.js.map +1 -0
- package/cjs/src/utils/graphql/graphql-request.d.ts.map +1 -1
- package/cjs/src/utils/graphql/graphql-request.spec.d.ts +2 -0
- package/cjs/src/utils/graphql/graphql-request.spec.d.ts.map +1 -0
- package/cjs/src/utils/graphql/graphql-request.spec.js +48 -0
- package/cjs/src/utils/graphql/graphql-request.spec.js.map +1 -0
- package/cjs/src/utils/graphql/nlsService/conversation-queries.d.ts +3 -0
- package/cjs/src/utils/graphql/nlsService/conversation-queries.d.ts.map +1 -0
- package/cjs/src/utils/graphql/nlsService/conversation-queries.js +313 -0
- package/cjs/src/utils/graphql/nlsService/conversation-queries.js.map +1 -0
- package/cjs/src/utils/graphql/nlsService/conversation-service.d.ts +12 -0
- package/cjs/src/utils/graphql/nlsService/conversation-service.d.ts.map +1 -0
- package/cjs/src/utils/graphql/nlsService/conversation-service.js +75 -0
- package/cjs/src/utils/graphql/nlsService/conversation-service.js.map +1 -0
- package/cjs/src/utils/graphql/nlsService/nls-answer-queries.d.ts +2 -0
- package/cjs/src/utils/graphql/nlsService/nls-answer-queries.d.ts.map +1 -0
- package/cjs/src/utils/graphql/nlsService/nls-answer-queries.js +403 -0
- package/cjs/src/utils/graphql/nlsService/nls-answer-queries.js.map +1 -0
- package/cjs/src/utils/graphql/nlsService/nls-answer-service.d.ts +12 -0
- package/cjs/src/utils/graphql/nlsService/nls-answer-service.d.ts.map +1 -0
- package/cjs/src/utils/graphql/nlsService/nls-answer-service.js +55 -0
- package/cjs/src/utils/graphql/nlsService/nls-answer-service.js.map +1 -0
- package/cjs/src/utils/graphql/nlsService/nls-answer-service.spec.d.ts +2 -0
- package/cjs/src/utils/graphql/nlsService/nls-answer-service.spec.d.ts.map +1 -0
- package/cjs/src/utils/graphql/nlsService/nls-answer-service.spec.js +33 -0
- package/cjs/src/utils/graphql/nlsService/nls-answer-service.spec.js.map +1 -0
- package/cjs/src/utils/graphql/preview-service.d.ts +6 -0
- package/cjs/src/utils/graphql/preview-service.d.ts.map +1 -1
- package/cjs/src/utils/graphql/preview-service.js +6 -0
- package/cjs/src/utils/graphql/preview-service.js.map +1 -1
- package/cjs/src/utils/graphql/preview-service.spec.d.ts +2 -0
- package/cjs/src/utils/graphql/preview-service.spec.d.ts.map +1 -0
- package/cjs/src/utils/graphql/preview-service.spec.js +20 -0
- package/cjs/src/utils/graphql/preview-service.spec.js.map +1 -0
- package/cjs/src/utils/graphql/spotterService/conversation-queries.d.ts +3 -0
- package/cjs/src/utils/graphql/spotterService/conversation-queries.d.ts.map +1 -0
- package/cjs/src/utils/graphql/spotterService/conversation-queries.js +318 -0
- package/cjs/src/utils/graphql/spotterService/conversation-queries.js.map +1 -0
- package/cjs/src/utils/graphql/spotterService/conversation-service.d.ts +12 -0
- package/cjs/src/utils/graphql/spotterService/conversation-service.d.ts.map +1 -0
- package/cjs/src/utils/graphql/spotterService/conversation-service.js +89 -0
- package/cjs/src/utils/graphql/spotterService/conversation-service.js.map +1 -0
- package/cjs/src/utils/graphql/spotterService/nls-answer-queries.d.ts +2 -0
- package/cjs/src/utils/graphql/spotterService/nls-answer-queries.d.ts.map +1 -0
- package/cjs/src/utils/graphql/spotterService/nls-answer-queries.js +403 -0
- package/cjs/src/utils/graphql/spotterService/nls-answer-queries.js.map +1 -0
- package/cjs/src/utils/graphql/spotterService/nls-answer-service.d.ts +12 -0
- package/cjs/src/utils/graphql/spotterService/nls-answer-service.d.ts.map +1 -0
- package/cjs/src/utils/graphql/spotterService/nls-answer-service.js +55 -0
- package/cjs/src/utils/graphql/spotterService/nls-answer-service.js.map +1 -0
- package/cjs/src/utils/liveboardService/liveboardService.d.ts +3 -0
- package/cjs/src/utils/liveboardService/liveboardService.d.ts.map +1 -0
- package/cjs/src/utils/liveboardService/liveboardService.js +50 -0
- package/cjs/src/utils/liveboardService/liveboardService.js.map +1 -0
- package/cjs/src/utils/liveboardService/liveboardService.spec.d.ts +2 -0
- package/cjs/src/utils/liveboardService/liveboardService.spec.d.ts.map +1 -0
- package/cjs/src/utils/liveboardService/liveboardService.spec.js +64 -0
- package/cjs/src/utils/liveboardService/liveboardService.spec.js.map +1 -0
- package/cjs/src/utils/processData.js +2 -2
- package/cjs/src/utils/processData.js.map +1 -1
- package/cjs/src/utils/processData.spec.js +15 -0
- package/cjs/src/utils/processData.spec.js.map +1 -1
- package/cjs/src/utils/processTrigger.d.ts +1 -0
- package/cjs/src/utils/processTrigger.d.ts.map +1 -1
- package/cjs/src/utils/processTrigger.js +3 -3
- package/cjs/src/utils/processTrigger.js.map +1 -1
- package/cjs/src/utils/processTrigger.spec.js +10 -0
- package/cjs/src/utils/processTrigger.spec.js.map +1 -1
- package/cjs/src/utils.d.ts.map +1 -1
- package/cjs/src/utils.js +1 -3
- package/cjs/src/utils.js.map +1 -1
- package/dist/src/auth.d.ts +0 -1
- package/dist/src/auth.d.ts.map +1 -1
- package/dist/src/auth.spec.d.ts +1 -11
- package/dist/src/auth.spec.d.ts.map +1 -1
- package/dist/src/authToken.d.ts +4 -0
- package/dist/src/authToken.d.ts.map +1 -1
- package/dist/src/css-variables.d.ts +46 -3
- package/dist/src/css-variables.d.ts.map +1 -1
- package/dist/src/embed/app.d.ts +47 -14
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/base.d.ts +35 -33
- package/dist/src/embed/base.d.ts.map +1 -1
- package/dist/src/embed/bodyless-conversation.d.ts +26 -0
- package/dist/src/embed/bodyless-conversation.d.ts.map +1 -0
- package/dist/src/embed/bodyless-conversation.spec.d.ts +2 -0
- package/dist/src/embed/bodyless-conversation.spec.d.ts.map +1 -0
- package/dist/src/embed/conversation.d.ts +28 -0
- package/dist/src/embed/conversation.d.ts.map +1 -0
- package/dist/src/embed/conversation.spec.d.ts +2 -0
- package/dist/src/embed/conversation.spec.d.ts.map +1 -0
- package/dist/src/embed/liveboard.d.ts +49 -0
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/search.d.ts +0 -13
- package/dist/src/embed/search.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +3 -2
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/index.d.ts +4 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/mixpanel-service.d.ts +4 -0
- package/dist/src/mixpanel-service.d.ts.map +1 -1
- package/dist/src/react/index.d.ts +39 -1
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/test/test-utils.d.ts +13 -0
- package/dist/src/test/test-utils.d.ts.map +1 -1
- package/dist/src/tokenizedFetch.d.ts.map +1 -1
- package/dist/src/types.d.ts +166 -22
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/authService/tokenizedAuthService.d.ts +0 -2
- package/dist/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
- package/dist/src/utils/global-styles.spec.d.ts +2 -0
- package/dist/src/utils/global-styles.spec.d.ts.map +1 -0
- package/dist/src/utils/graphql/answerService/answer-queries.d.ts +2 -0
- package/dist/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -1
- package/dist/src/utils/graphql/answerService/answerService.d.ts +23 -0
- package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/dist/src/utils/graphql/graphql-request.d.ts.map +1 -1
- package/dist/src/utils/graphql/graphql-request.spec.d.ts +2 -0
- package/dist/src/utils/graphql/graphql-request.spec.d.ts.map +1 -0
- package/dist/src/utils/graphql/nlsService/conversation-queries.d.ts +3 -0
- package/dist/src/utils/graphql/nlsService/conversation-queries.d.ts.map +1 -0
- package/dist/src/utils/graphql/nlsService/conversation-service.d.ts +12 -0
- package/dist/src/utils/graphql/nlsService/conversation-service.d.ts.map +1 -0
- package/dist/src/utils/graphql/nlsService/nls-answer-queries.d.ts +2 -0
- package/dist/src/utils/graphql/nlsService/nls-answer-queries.d.ts.map +1 -0
- package/dist/src/utils/graphql/nlsService/nls-answer-service.d.ts +12 -0
- package/dist/src/utils/graphql/nlsService/nls-answer-service.d.ts.map +1 -0
- package/dist/src/utils/graphql/nlsService/nls-answer-service.spec.d.ts +2 -0
- package/dist/src/utils/graphql/nlsService/nls-answer-service.spec.d.ts.map +1 -0
- package/dist/src/utils/graphql/preview-service.d.ts +6 -0
- package/dist/src/utils/graphql/preview-service.d.ts.map +1 -1
- package/dist/src/utils/graphql/preview-service.spec.d.ts +2 -0
- package/dist/src/utils/graphql/preview-service.spec.d.ts.map +1 -0
- package/dist/src/utils/liveboardService/liveboardService.d.ts +3 -0
- package/dist/src/utils/liveboardService/liveboardService.d.ts.map +1 -0
- package/dist/src/utils/liveboardService/liveboardService.spec.d.ts +2 -0
- package/dist/src/utils/liveboardService/liveboardService.spec.d.ts.map +1 -0
- package/dist/src/utils/processTrigger.d.ts +1 -0
- package/dist/src/utils/processTrigger.d.ts.map +1 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +8087 -175
- package/dist/tsembed-react.js +8028 -170
- package/dist/tsembed.es.js +8981 -202
- package/dist/tsembed.js +8947 -221
- package/dist/visual-embed-sdk-react-full.d.ts +485 -98
- package/dist/visual-embed-sdk-react.d.ts +485 -98
- package/dist/visual-embed-sdk.d.ts +421 -97
- package/lib/package.json +12 -28
- package/lib/src/auth.d.ts +0 -1
- package/lib/src/auth.d.ts.map +1 -1
- package/lib/src/auth.js +1 -2
- package/lib/src/auth.js.map +1 -1
- package/lib/src/auth.spec.d.ts +1 -11
- package/lib/src/auth.spec.d.ts.map +1 -1
- package/lib/src/auth.spec.js +3 -12
- package/lib/src/auth.spec.js.map +1 -1
- package/lib/src/authToken.d.ts +4 -0
- package/lib/src/authToken.d.ts.map +1 -1
- package/lib/src/authToken.js +4 -0
- package/lib/src/authToken.js.map +1 -1
- package/lib/src/css-variables.d.ts +46 -3
- package/lib/src/css-variables.d.ts.map +1 -1
- package/lib/src/embed/app.d.ts +47 -14
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +10 -1
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +32 -0
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/base.d.ts +35 -33
- package/lib/src/embed/base.d.ts.map +1 -1
- package/lib/src/embed/base.js +35 -33
- package/lib/src/embed/base.js.map +1 -1
- package/lib/src/embed/bodyless-conversation.d.ts +26 -0
- package/lib/src/embed/bodyless-conversation.d.ts.map +1 -0
- package/lib/src/embed/bodyless-conversation.js +66 -0
- package/lib/src/embed/bodyless-conversation.js.map +1 -0
- package/lib/src/embed/bodyless-conversation.spec.d.ts +2 -0
- package/lib/src/embed/bodyless-conversation.spec.d.ts.map +1 -0
- package/lib/src/embed/bodyless-conversation.spec.js +122 -0
- package/lib/src/embed/bodyless-conversation.spec.js.map +1 -0
- package/lib/src/embed/conversation.d.ts +28 -0
- package/lib/src/embed/conversation.d.ts.map +1 -0
- package/lib/src/embed/conversation.js +30 -0
- package/lib/src/embed/conversation.js.map +1 -0
- package/lib/src/embed/conversation.spec.d.ts +2 -0
- package/lib/src/embed/conversation.spec.d.ts.map +1 -0
- package/lib/src/embed/conversation.spec.js +29 -0
- package/lib/src/embed/conversation.spec.js.map +1 -0
- package/lib/src/embed/embed.spec.js +0 -19
- package/lib/src/embed/embed.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +49 -0
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +21 -1
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +43 -0
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/search.d.ts +0 -13
- package/lib/src/embed/search.d.ts.map +1 -1
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +3 -2
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +10 -13
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +0 -9
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/index.d.ts +4 -1
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +4 -1
- package/lib/src/index.js.map +1 -1
- package/lib/src/mixpanel-service.d.ts +4 -0
- package/lib/src/mixpanel-service.d.ts.map +1 -1
- package/lib/src/mixpanel-service.js +4 -0
- package/lib/src/mixpanel-service.js.map +1 -1
- package/lib/src/react/index.d.ts +39 -1
- package/lib/src/react/index.d.ts.map +1 -1
- package/lib/src/react/index.js +36 -0
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/test/test-utils.d.ts +13 -0
- package/lib/src/test/test-utils.d.ts.map +1 -1
- package/lib/src/test/test-utils.js +38 -3
- package/lib/src/test/test-utils.js.map +1 -1
- package/lib/src/tokenizedFetch.d.ts.map +1 -1
- package/lib/src/tokenizedFetch.js +5 -1
- package/lib/src/tokenizedFetch.js.map +1 -1
- package/lib/src/types.d.ts +166 -22
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +143 -12
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/authService/authService.spec.js +11 -2
- package/lib/src/utils/authService/authService.spec.js.map +1 -1
- package/lib/src/utils/authService/tokenizedAuthService.d.ts +0 -2
- package/lib/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
- package/lib/src/utils/authService/tokenizedAuthService.js +0 -2
- package/lib/src/utils/authService/tokenizedAuthService.js.map +1 -1
- package/lib/src/utils/global-styles.spec.d.ts +2 -0
- package/lib/src/utils/global-styles.spec.d.ts.map +1 -0
- package/lib/src/utils/global-styles.spec.js +19 -0
- package/lib/src/utils/global-styles.spec.js.map +1 -0
- package/lib/src/utils/graphql/answerService/answer-queries.d.ts +2 -0
- package/lib/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -1
- package/lib/src/utils/graphql/answerService/answer-queries.js +31 -1
- package/lib/src/utils/graphql/answerService/answer-queries.js.map +1 -1
- package/lib/src/utils/graphql/answerService/answerService.d.ts +23 -0
- package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/lib/src/utils/graphql/answerService/answerService.js +76 -8
- package/lib/src/utils/graphql/answerService/answerService.js.map +1 -1
- package/lib/src/utils/graphql/answerService/answerService.spec.js +110 -1
- package/lib/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
- package/lib/src/utils/graphql/conversationService/conversation-queries.d.ts +3 -0
- package/lib/src/utils/graphql/conversationService/conversation-queries.d.ts.map +1 -0
- package/lib/src/utils/graphql/conversationService/conversation-queries.js +315 -0
- package/lib/src/utils/graphql/conversationService/conversation-queries.js.map +1 -0
- package/lib/src/utils/graphql/conversationService/conversation-service.d.ts +12 -0
- package/lib/src/utils/graphql/conversationService/conversation-service.d.ts.map +1 -0
- package/lib/src/utils/graphql/conversationService/conversation-service.js +84 -0
- package/lib/src/utils/graphql/conversationService/conversation-service.js.map +1 -0
- package/lib/src/utils/graphql/graphql-request.d.ts.map +1 -1
- package/lib/src/utils/graphql/graphql-request.spec.d.ts +2 -0
- package/lib/src/utils/graphql/graphql-request.spec.d.ts.map +1 -0
- package/lib/src/utils/graphql/graphql-request.spec.js +45 -0
- package/lib/src/utils/graphql/graphql-request.spec.js.map +1 -0
- package/lib/src/utils/graphql/nlsService/conversation-queries.d.ts +3 -0
- package/lib/src/utils/graphql/nlsService/conversation-queries.d.ts.map +1 -0
- package/lib/src/utils/graphql/nlsService/conversation-queries.js +310 -0
- package/lib/src/utils/graphql/nlsService/conversation-queries.js.map +1 -0
- package/lib/src/utils/graphql/nlsService/conversation-service.d.ts +12 -0
- package/lib/src/utils/graphql/nlsService/conversation-service.d.ts.map +1 -0
- package/lib/src/utils/graphql/nlsService/conversation-service.js +70 -0
- package/lib/src/utils/graphql/nlsService/conversation-service.js.map +1 -0
- package/lib/src/utils/graphql/nlsService/nls-answer-queries.d.ts +2 -0
- package/lib/src/utils/graphql/nlsService/nls-answer-queries.d.ts.map +1 -0
- package/lib/src/utils/graphql/nlsService/nls-answer-queries.js +400 -0
- package/lib/src/utils/graphql/nlsService/nls-answer-queries.js.map +1 -0
- package/lib/src/utils/graphql/nlsService/nls-answer-service.d.ts +12 -0
- package/lib/src/utils/graphql/nlsService/nls-answer-service.d.ts.map +1 -0
- package/lib/src/utils/graphql/nlsService/nls-answer-service.js +50 -0
- package/lib/src/utils/graphql/nlsService/nls-answer-service.js.map +1 -0
- package/lib/src/utils/graphql/nlsService/nls-answer-service.spec.d.ts +2 -0
- package/lib/src/utils/graphql/nlsService/nls-answer-service.spec.d.ts.map +1 -0
- package/lib/src/utils/graphql/nlsService/nls-answer-service.spec.js +31 -0
- package/lib/src/utils/graphql/nlsService/nls-answer-service.spec.js.map +1 -0
- package/lib/src/utils/graphql/preview-service.d.ts +6 -0
- package/lib/src/utils/graphql/preview-service.d.ts.map +1 -1
- package/lib/src/utils/graphql/preview-service.js +6 -0
- package/lib/src/utils/graphql/preview-service.js.map +1 -1
- package/lib/src/utils/graphql/preview-service.spec.d.ts +2 -0
- package/lib/src/utils/graphql/preview-service.spec.d.ts.map +1 -0
- package/lib/src/utils/graphql/preview-service.spec.js +18 -0
- package/lib/src/utils/graphql/preview-service.spec.js.map +1 -0
- package/lib/src/utils/graphql/spotterService/conversation-queries.d.ts +3 -0
- package/lib/src/utils/graphql/spotterService/conversation-queries.d.ts.map +1 -0
- package/lib/src/utils/graphql/spotterService/conversation-queries.js +315 -0
- package/lib/src/utils/graphql/spotterService/conversation-queries.js.map +1 -0
- package/lib/src/utils/graphql/spotterService/conversation-service.d.ts +12 -0
- package/lib/src/utils/graphql/spotterService/conversation-service.d.ts.map +1 -0
- package/lib/src/utils/graphql/spotterService/conversation-service.js +84 -0
- package/lib/src/utils/graphql/spotterService/conversation-service.js.map +1 -0
- package/lib/src/utils/graphql/spotterService/nls-answer-queries.d.ts +2 -0
- package/lib/src/utils/graphql/spotterService/nls-answer-queries.d.ts.map +1 -0
- package/lib/src/utils/graphql/spotterService/nls-answer-queries.js +400 -0
- package/lib/src/utils/graphql/spotterService/nls-answer-queries.js.map +1 -0
- package/lib/src/utils/graphql/spotterService/nls-answer-service.d.ts +12 -0
- package/lib/src/utils/graphql/spotterService/nls-answer-service.d.ts.map +1 -0
- package/lib/src/utils/graphql/spotterService/nls-answer-service.js +50 -0
- package/lib/src/utils/graphql/spotterService/nls-answer-service.js.map +1 -0
- package/lib/src/utils/liveboardService/liveboardService.d.ts +3 -0
- package/lib/src/utils/liveboardService/liveboardService.d.ts.map +1 -0
- package/lib/src/utils/liveboardService/liveboardService.js +46 -0
- package/lib/src/utils/liveboardService/liveboardService.js.map +1 -0
- package/lib/src/utils/liveboardService/liveboardService.spec.d.ts +2 -0
- package/lib/src/utils/liveboardService/liveboardService.spec.d.ts.map +1 -0
- package/lib/src/utils/liveboardService/liveboardService.spec.js +61 -0
- package/lib/src/utils/liveboardService/liveboardService.spec.js.map +1 -0
- package/lib/src/utils/processData.js +2 -2
- package/lib/src/utils/processData.js.map +1 -1
- package/lib/src/utils/processData.spec.js +15 -0
- package/lib/src/utils/processData.spec.js.map +1 -1
- package/lib/src/utils/processTrigger.d.ts +1 -0
- package/lib/src/utils/processTrigger.d.ts.map +1 -1
- package/lib/src/utils/processTrigger.js +1 -1
- package/lib/src/utils/processTrigger.js.map +1 -1
- package/lib/src/utils/processTrigger.spec.js +10 -0
- package/lib/src/utils/processTrigger.spec.js.map +1 -1
- package/lib/src/utils.d.ts.map +1 -1
- package/lib/src/utils.js +1 -3
- package/lib/src/utils.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +433 -97
- package/package.json +12 -28
- package/src/auth.spec.ts +3 -12
- package/src/auth.ts +1 -2
- package/src/authToken.ts +4 -0
- package/src/css-variables.ts +49 -3
- package/src/embed/app.spec.ts +47 -0
- package/src/embed/app.ts +54 -13
- package/src/embed/base.ts +35 -33
- package/src/embed/bodyless-conversation.spec.ts +141 -0
- package/src/embed/bodyless-conversation.ts +95 -0
- package/src/embed/conversation.spec.ts +46 -0
- package/src/embed/conversation.ts +58 -0
- package/src/embed/embed.spec.ts +0 -22
- package/src/embed/liveboard.spec.ts +62 -0
- package/src/embed/liveboard.ts +69 -0
- package/src/embed/search.ts +0 -13
- package/src/embed/ts-embed.spec.ts +0 -11
- package/src/embed/ts-embed.ts +13 -13
- package/src/index.ts +7 -0
- package/src/mixpanel-service.ts +4 -0
- package/src/react/index.tsx +89 -41
- package/src/test/test-utils.ts +46 -3
- package/src/tokenizedFetch.ts +5 -1
- package/src/types.ts +167 -21
- package/src/utils/authService/authService.spec.ts +11 -2
- package/src/utils/authService/tokenizedAuthService.ts +0 -2
- package/src/utils/global-styles.spec.ts +20 -0
- package/src/utils/graphql/answerService/answer-queries.ts +33 -1
- package/src/utils/graphql/answerService/answerService.spec.ts +131 -0
- package/src/utils/graphql/answerService/answerService.ts +102 -10
- package/src/utils/graphql/graphql-request.spec.ts +51 -0
- package/src/utils/graphql/graphql-request.ts +1 -1
- package/src/utils/graphql/nlsService/conversation-queries.ts +310 -0
- package/src/utils/graphql/nlsService/conversation-service.ts +81 -0
- package/src/utils/graphql/nlsService/nls-answer-queries.ts +399 -0
- package/src/utils/graphql/nlsService/nls-answer-service.spec.ts +35 -0
- package/src/utils/graphql/nlsService/nls-answer-service.ts +58 -0
- package/src/utils/graphql/preview-service.spec.ts +20 -0
- package/src/utils/graphql/preview-service.ts +6 -0
- package/src/utils/liveboardService/liveboardService.spec.ts +63 -0
- package/src/utils/liveboardService/liveboardService.ts +55 -0
- package/src/utils/processData.spec.ts +17 -0
- package/src/utils/processData.ts +2 -2
- package/src/utils/processTrigger.spec.ts +19 -0
- package/src/utils/processTrigger.ts +1 -1
- package/src/utils.ts +1 -3
- package/dist/src/embed/searchEmbed-basic-auth.spec.d.ts +0 -2
- package/dist/src/embed/searchEmbed-basic-auth.spec.d.ts.map +0 -1
- package/src/embed/searchEmbed-basic-auth.spec.ts +0 -110
package/src/react/index.tsx
CHANGED
|
@@ -10,6 +10,7 @@ import { TsEmbed } from '../embed/ts-embed';
|
|
|
10
10
|
|
|
11
11
|
import { EmbedEvent, ViewConfig } from '../types';
|
|
12
12
|
import { EmbedProps, getViewPropsAndListeners } from './util';
|
|
13
|
+
import { ConversationEmbed as _ConversationEmbed, ConversationViewConfig } from '../embed/conversation';
|
|
13
14
|
|
|
14
15
|
const componentFactory = <T extends typeof TsEmbed, U extends EmbedProps, V extends ViewConfig>(
|
|
15
16
|
EmbedConstructor: T,
|
|
@@ -39,11 +40,11 @@ const componentFactory = <T extends typeof TsEmbed, U extends EmbedProps, V exte
|
|
|
39
40
|
tsEmbed.destroy();
|
|
40
41
|
};
|
|
41
42
|
|
|
42
|
-
const handlePreRenderRendering = (tsEmbed
|
|
43
|
+
const handlePreRenderRendering = (tsEmbed: InstanceType<T>) => {
|
|
43
44
|
tsEmbed.preRender();
|
|
44
45
|
};
|
|
45
46
|
|
|
46
|
-
const handleDefaultRendering = (tsEmbed
|
|
47
|
+
const handleDefaultRendering = (tsEmbed: InstanceType<T>) => {
|
|
47
48
|
// if component is connected to a preRendered component
|
|
48
49
|
if (props.preRenderId) {
|
|
49
50
|
tsEmbed.showPreRender();
|
|
@@ -53,7 +54,7 @@ const componentFactory = <T extends typeof TsEmbed, U extends EmbedProps, V exte
|
|
|
53
54
|
tsEmbed.render();
|
|
54
55
|
};
|
|
55
56
|
|
|
56
|
-
const handleRendering = (tsEmbed
|
|
57
|
+
const handleRendering = (tsEmbed: InstanceType<T>) => {
|
|
57
58
|
if (isPreRenderedComponent) {
|
|
58
59
|
handlePreRenderRendering(tsEmbed);
|
|
59
60
|
return;
|
|
@@ -63,16 +64,16 @@ const componentFactory = <T extends typeof TsEmbed, U extends EmbedProps, V exte
|
|
|
63
64
|
|
|
64
65
|
useDeepCompareEffect(() => {
|
|
65
66
|
const tsEmbed = new EmbedConstructor(
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
},
|
|
67
|
+
ref!.current,
|
|
68
|
+
deepMerge(
|
|
69
|
+
{
|
|
70
|
+
insertAsSibling: viewConfig.insertAsSibling,
|
|
71
|
+
frameParams: {
|
|
72
|
+
class: viewConfig.insertAsSibling ? className || '' : '',
|
|
73
73
|
},
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
},
|
|
75
|
+
viewConfig,
|
|
76
|
+
),
|
|
76
77
|
) as InstanceType<T>;
|
|
77
78
|
Object.keys(listeners).forEach((eventName) => {
|
|
78
79
|
tsEmbed.on(eventName as EmbedEvent, listeners[eventName as EmbedEvent]);
|
|
@@ -98,33 +99,33 @@ const componentFactory = <T extends typeof TsEmbed, U extends EmbedProps, V exte
|
|
|
98
99
|
interface SearchProps extends EmbedProps, SearchViewConfig { }
|
|
99
100
|
|
|
100
101
|
interface PreRenderProps {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
102
|
+
/**
|
|
103
|
+
* PreRender id to be used for PreRendering the embed.
|
|
104
|
+
* Use PreRender to render the embed in the background and then
|
|
105
|
+
* show or hide the rendered embed using showPreRender or hidePreRender respectively.
|
|
106
|
+
* @example
|
|
107
|
+
* ```js
|
|
108
|
+
* const embed = new LiveboardEmbed('#embed', {
|
|
109
|
+
* ... // other liveboard view config
|
|
110
|
+
* preRenderId: "preRenderId-123"
|
|
111
|
+
* });
|
|
112
|
+
* embed.showPreRender();
|
|
113
|
+
* ```
|
|
114
|
+
*
|
|
115
|
+
* Use PreRendered react component for pre rendering embed components.
|
|
116
|
+
* @example
|
|
117
|
+
* ```tsx
|
|
118
|
+
* function LandingPageComponent() {
|
|
119
|
+
* return <PreRenderedLiveboardEmbed preRenderId="someId" liveboardId="libId" />
|
|
120
|
+
* }
|
|
121
|
+
* ```
|
|
122
|
+
* function MyComponent() {
|
|
123
|
+
* return <LiveboardEmbed preRenderId="someId" liveboardId="libId" />
|
|
124
|
+
* }
|
|
125
|
+
* ```
|
|
126
|
+
* @version SDK: 1.25.0 | Thoughtspot: 9.6.0.cl
|
|
127
|
+
*/
|
|
128
|
+
preRenderId: string;
|
|
128
129
|
}
|
|
129
130
|
|
|
130
131
|
/**
|
|
@@ -329,11 +330,58 @@ export const PreRenderedSageEmbed = componentFactory<
|
|
|
329
330
|
SageViewConfig
|
|
330
331
|
>(_SageEmbed, true);
|
|
331
332
|
|
|
333
|
+
interface ConversationEmbedProps extends EmbedProps, ConversationViewConfig { }
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* React component for LLM based conversation BI.
|
|
337
|
+
* @example
|
|
338
|
+
* ```tsx
|
|
339
|
+
* function Sage() {
|
|
340
|
+
* return <ConversationEmbed
|
|
341
|
+
* worksheetId="<worksheet-id-here>"
|
|
342
|
+
* searchOptions={{
|
|
343
|
+
* searchQuery: "<search query to start with>"
|
|
344
|
+
* }}
|
|
345
|
+
* ... other view config props or event listeners.
|
|
346
|
+
* />
|
|
347
|
+
* }
|
|
348
|
+
* ```
|
|
349
|
+
*/
|
|
350
|
+
export const ConversationEmbed = componentFactory<
|
|
351
|
+
typeof _ConversationEmbed, ConversationEmbedProps, ConversationViewConfig>(
|
|
352
|
+
_ConversationEmbed,
|
|
353
|
+
);
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* React component for PreRendered Conversation embed.
|
|
357
|
+
*
|
|
358
|
+
* PreRenderedConversationEmbed will preRender the ConversationEmbed and will be hidden by
|
|
359
|
+
* default.
|
|
360
|
+
*
|
|
361
|
+
* SageEmbed with preRenderId passed will call showPreRender on the embed.
|
|
362
|
+
* @example
|
|
363
|
+
* ```tsx
|
|
364
|
+
* function LandingPageComponent() {
|
|
365
|
+
* return <PreRenderedConversationEmbed preRenderId="someId" worksheetId={"id-"} />
|
|
366
|
+
* }
|
|
367
|
+
* ```
|
|
368
|
+
* function MyComponent() {
|
|
369
|
+
* return <ConversationEmbed preRenderId="someId" worksheetId="id" />
|
|
370
|
+
* }
|
|
371
|
+
* ```
|
|
372
|
+
*/
|
|
373
|
+
export const PreRenderedConversationEmbed = componentFactory<
|
|
374
|
+
typeof _ConversationEmbed,
|
|
375
|
+
SageEmbedProps & PreRenderProps,
|
|
376
|
+
ConversationViewConfig
|
|
377
|
+
>(_ConversationEmbed, true);
|
|
378
|
+
|
|
332
379
|
type EmbedComponent = typeof SearchEmbed
|
|
333
380
|
| typeof AppEmbed
|
|
334
381
|
| typeof LiveboardEmbed
|
|
335
382
|
| typeof SearchBarEmbed
|
|
336
|
-
| typeof SageEmbed
|
|
383
|
+
| typeof SageEmbed
|
|
384
|
+
| typeof ConversationEmbed;
|
|
337
385
|
|
|
338
386
|
/**
|
|
339
387
|
* Get a reference to the embed component to trigger events on the component.
|
|
@@ -352,7 +400,7 @@ type EmbedComponent = typeof SearchEmbed
|
|
|
352
400
|
* @returns {React.MutableRefObject<T extends TsEmbed>} ref
|
|
353
401
|
*/
|
|
354
402
|
export function useEmbedRef<T extends EmbedComponent>():
|
|
355
|
-
|
|
403
|
+
React.MutableRefObject<React.ComponentRef<T>> {
|
|
356
404
|
return React.useRef<React.ComponentRef<T>>(null);
|
|
357
405
|
}
|
|
358
406
|
|
package/src/test/test-utils.ts
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
|
+
import { has } from 'lodash';
|
|
1
2
|
import { version } from '../../package.json';
|
|
2
3
|
import { Action, AuthType } from '../types';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
Initialises fetch to the global object
|
|
6
7
|
*/
|
|
7
|
-
global.fetch
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
if (!(global.fetch as any).mockResponse) {
|
|
9
|
+
console.log('mocking fetch');
|
|
10
|
+
global.fetch = jest.fn(() => Promise.resolve({
|
|
11
|
+
json: () => ({ mixpanelAccessToken: '' }),
|
|
12
|
+
}));
|
|
13
|
+
}
|
|
10
14
|
|
|
11
15
|
export const defaultParamsWithoutHiddenActions = `hostAppUrl=local-host&viewPortHeight=768&viewPortWidth=1024&sdkVersion=${version}&authType=${AuthType.None}&blockNonEmbedFullAppAccess=true`;
|
|
12
16
|
export const defaultParams = `&${defaultParamsWithoutHiddenActions}&hideAction=[%22${Action.ReportError}%22]`;
|
|
@@ -106,6 +110,27 @@ export const expectUrlMatchesWithParams = (source: string, target: string) => {
|
|
|
106
110
|
const sourceParamsObj = Object.fromEntries(sourceUrl.searchParams);
|
|
107
111
|
const targetParamsObj = Object.fromEntries(targetUrl.searchParams);
|
|
108
112
|
expect(sourceParamsObj).toMatchObject(targetParamsObj);
|
|
113
|
+
|
|
114
|
+
const sourceHashParams = getHashQueryParams(sourceUrl.hash);
|
|
115
|
+
const targetHashParams = getHashQueryParams(targetUrl.hash);
|
|
116
|
+
expect(sourceHashParams).toMatchObject(targetHashParams);
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
export const expectUrlToHaveParamsWithValues = (
|
|
120
|
+
url: string, paramsWithValues: Record<string, any>,
|
|
121
|
+
) => {
|
|
122
|
+
const urlObj = new URL(url);
|
|
123
|
+
const urlParams = Object.fromEntries(urlObj.searchParams);
|
|
124
|
+
|
|
125
|
+
const sourceHashParams = getHashQueryParams(urlObj.hash);
|
|
126
|
+
const sourceParams = {
|
|
127
|
+
...urlParams, ...sourceHashParams,
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
Object.entries(paramsWithValues).forEach(([key, value]) => {
|
|
131
|
+
expect(has(sourceParams, key)).toBeTruthy();
|
|
132
|
+
expect(`${sourceParams[key]}`).toBe(`${value}`);
|
|
133
|
+
});
|
|
109
134
|
};
|
|
110
135
|
|
|
111
136
|
export const expectUrlMatch = (source: string, target: string) => {
|
|
@@ -123,3 +148,21 @@ export const createRootEleForEmbed = () => {
|
|
|
123
148
|
rootEle.appendChild(tsEmbedDiv);
|
|
124
149
|
document.body.appendChild(rootEle);
|
|
125
150
|
};
|
|
151
|
+
|
|
152
|
+
export const getHashQueryParams = (hash: string): any => {
|
|
153
|
+
const params = hash.split('?')[1];
|
|
154
|
+
const hashParams = new URLSearchParams(params);
|
|
155
|
+
return Object.fromEntries(hashParams);
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
export const mockSessionInfo = {
|
|
159
|
+
userGUID: '1234',
|
|
160
|
+
mixpanelToken: 'abc123',
|
|
161
|
+
isPublicUser: false,
|
|
162
|
+
sessionId: '6588e7d9-710c-453e-a7b4-535fb3a8cbb2',
|
|
163
|
+
genNo: 3,
|
|
164
|
+
acSession: {
|
|
165
|
+
sessionId: 'cb202c48-b14b-4466-8a70-899ea666d46q',
|
|
166
|
+
genNo: 5,
|
|
167
|
+
},
|
|
168
|
+
};
|
package/src/tokenizedFetch.ts
CHANGED
|
@@ -22,7 +22,11 @@ import { AuthType } from './types';
|
|
|
22
22
|
export const tokenizedFetch: typeof fetch = async (input, init): Promise<Response> => {
|
|
23
23
|
const embedConfig = getEmbedConfig();
|
|
24
24
|
if (embedConfig.authType !== AuthType.TrustedAuthTokenCookieless) {
|
|
25
|
-
return fetch(input,
|
|
25
|
+
return fetch(input, {
|
|
26
|
+
// ensure cookies are included for the non cookie-less api calls.
|
|
27
|
+
credentials: 'include',
|
|
28
|
+
...init,
|
|
29
|
+
});
|
|
26
30
|
}
|
|
27
31
|
|
|
28
32
|
const req = new Request(input, init);
|
package/src/types.ts
CHANGED
|
@@ -449,13 +449,6 @@ export interface EmbedConfig {
|
|
|
449
449
|
*/
|
|
450
450
|
queueMultiRenders?: boolean;
|
|
451
451
|
|
|
452
|
-
/**
|
|
453
|
-
* Dynamic CSS URL to be injected in the loaded application.
|
|
454
|
-
* You would also need to set `style-src` in the CSP settings.
|
|
455
|
-
* @version SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
|
|
456
|
-
* @default ''
|
|
457
|
-
*/
|
|
458
|
-
customCssUrl?: string;
|
|
459
452
|
/**
|
|
460
453
|
* [AuthServer|Basic] Detect if third-party party cookies are enabled by doing an
|
|
461
454
|
* additional call. This is slower and should be avoided. Listen to the
|
|
@@ -589,6 +582,13 @@ export interface EmbedConfig {
|
|
|
589
582
|
* @version SDK: 1.28.5 | Thoughtspot: *
|
|
590
583
|
*/
|
|
591
584
|
disableTokenVerification?: boolean;
|
|
585
|
+
|
|
586
|
+
/**
|
|
587
|
+
* This flag is used to disable showing the login failure page in the embedded app.
|
|
588
|
+
*
|
|
589
|
+
* @version SDK 1.32.3 | Thoughtspot: *
|
|
590
|
+
*/
|
|
591
|
+
disableLoginFailurePage?: boolean;
|
|
592
592
|
}
|
|
593
593
|
|
|
594
594
|
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
|
@@ -715,11 +715,12 @@ export interface ViewConfig {
|
|
|
715
715
|
*/
|
|
716
716
|
visibleActions?: Action[];
|
|
717
717
|
/**
|
|
718
|
-
* Show alert messages and toast messages in the embedded
|
|
718
|
+
* Show alert messages and toast messages in the embedded
|
|
719
|
+
* view in full app embed.
|
|
719
720
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
720
721
|
* @example
|
|
721
722
|
* ```js
|
|
722
|
-
* const embed = new
|
|
723
|
+
* const embed = new AppEmbed('#embed-container', {
|
|
723
724
|
* ... // other options
|
|
724
725
|
* showAlerts:true,
|
|
725
726
|
* })
|
|
@@ -1040,6 +1041,19 @@ export interface ViewConfig {
|
|
|
1040
1041
|
* @version SDK: 1.32.1 | ThoughtSpot: 10.3.0.cl
|
|
1041
1042
|
*/
|
|
1042
1043
|
disableRedirectionLinksInNewTab?: boolean;
|
|
1044
|
+
/**
|
|
1045
|
+
* Flag to control Data panel experience
|
|
1046
|
+
* @default true
|
|
1047
|
+
* @version SDK: 1.34.0 | Thoughtspot: 10.3.0.cl
|
|
1048
|
+
* @example
|
|
1049
|
+
* ```js
|
|
1050
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
1051
|
+
* ... // other options
|
|
1052
|
+
* dataPanelV2: true,
|
|
1053
|
+
* })
|
|
1054
|
+
* ```
|
|
1055
|
+
*/
|
|
1056
|
+
dataPanelV2?: boolean;
|
|
1043
1057
|
}
|
|
1044
1058
|
|
|
1045
1059
|
/**
|
|
@@ -1252,6 +1266,28 @@ export interface RuntimeParameter {
|
|
|
1252
1266
|
* console.log('Drilldown event', drilldown);
|
|
1253
1267
|
* }));
|
|
1254
1268
|
* ```
|
|
1269
|
+
*
|
|
1270
|
+
* If you are using React components for embedding, you can register to any
|
|
1271
|
+
* events from the `EmbedEvent` list by using the `on<EventName>` convention.
|
|
1272
|
+
* For example,`onAlert`, `onCopyToClipboard` and so on.
|
|
1273
|
+
*
|
|
1274
|
+
* @example
|
|
1275
|
+
* ```js
|
|
1276
|
+
* // ...
|
|
1277
|
+
* const MyComponent = ({ dataSources }) => {
|
|
1278
|
+
* const onLoad = () => {
|
|
1279
|
+
* console.log(EmbedEvent.Load, {});
|
|
1280
|
+
* };
|
|
1281
|
+
*
|
|
1282
|
+
* return (
|
|
1283
|
+
* <SearchEmbed
|
|
1284
|
+
* dataSources={dataSources}
|
|
1285
|
+
* onLoad = {logEvent("Load")}
|
|
1286
|
+
* />
|
|
1287
|
+
* );
|
|
1288
|
+
* };
|
|
1289
|
+
* ```
|
|
1290
|
+
*
|
|
1255
1291
|
* @group Events
|
|
1256
1292
|
*/
|
|
1257
1293
|
// eslint-disable-next-line no-shadow
|
|
@@ -2121,21 +2157,61 @@ export enum EmbedEvent {
|
|
|
2121
2157
|
*/
|
|
2122
2158
|
Rename = 'rename',
|
|
2123
2159
|
/**
|
|
2124
|
-
* Emitted
|
|
2160
|
+
* Emitted if the user wants to intercept the search execution
|
|
2161
|
+
* and implement logic to decide whether to run the search or not
|
|
2125
2162
|
*
|
|
2126
|
-
* Set
|
|
2127
|
-
* this embed event
|
|
2163
|
+
* Prerequisite: Set isOnBeforeGetVizDataInterceptEnabled : true
|
|
2164
|
+
* for this embed event to get emitted.
|
|
2128
2165
|
*
|
|
2166
|
+
* @param: payload
|
|
2167
|
+
* @param: responder
|
|
2168
|
+
* Contains elements that lets developers define whether ThoughtSpot
|
|
2169
|
+
* will run the search or not, and if not, which error message to provide.
|
|
2170
|
+
*
|
|
2171
|
+
* execute: When execute returns true, the search will be run.
|
|
2172
|
+
* When execute returns false, the search will not be executed.
|
|
2173
|
+
*
|
|
2174
|
+
* error: Developers can customize the user facing message when execute is
|
|
2175
|
+
* set to false using the error parameter in responder
|
|
2176
|
+
*
|
|
2177
|
+
* @version SDK : 1.29.0 | Thoughtspot : 10.2.0.cl
|
|
2178
|
+
*
|
|
2179
|
+
* @example
|
|
2129
2180
|
*```js
|
|
2130
|
-
*
|
|
2181
|
+
* .on(EmbedEvent.OnBeforeGetVizDataIntercept,
|
|
2131
2182
|
* (payload, responder) => {
|
|
2132
2183
|
* responder({
|
|
2133
2184
|
* data: {
|
|
2134
|
-
* execute:
|
|
2135
|
-
*
|
|
2185
|
+
* execute:false,
|
|
2186
|
+
* error: {
|
|
2187
|
+
* //Provide a custom error message to explain to your end user
|
|
2188
|
+
* //why their search did not run
|
|
2189
|
+
* errorText: "This search query cannot be run.
|
|
2190
|
+
* Please contact your administrator for more details."
|
|
2191
|
+
* }
|
|
2192
|
+
* }})
|
|
2193
|
+
* })
|
|
2194
|
+
* ```
|
|
2195
|
+
*
|
|
2196
|
+
*```js
|
|
2197
|
+
* .on(EmbedEvent.OnBeforeGetVizDataIntercept,
|
|
2198
|
+
* (payload, responder) => {
|
|
2199
|
+
* const query = payload.data.data.answer.search_query
|
|
2200
|
+
* responder({
|
|
2201
|
+
* data: {
|
|
2202
|
+
* // returns true as long as the query does not include
|
|
2203
|
+
* // both the 'sales' AND the 'county' column
|
|
2204
|
+
* execute: !(query.includes("sales")&&query.includes("county")),
|
|
2205
|
+
* error: {
|
|
2206
|
+
* //Provide a custom error message to explain to your end user
|
|
2207
|
+
* // why their search did not run, and which searches are accepted by your custom logic.
|
|
2208
|
+
* errorText: "You can't use this query :" + query + ".
|
|
2209
|
+
* The 'sales' measures can never be used at the 'county' level.
|
|
2210
|
+
* Please try another measure, or remove 'county' from your search."
|
|
2211
|
+
* }
|
|
2212
|
+
* }})
|
|
2136
2213
|
* })
|
|
2137
2214
|
*```
|
|
2138
|
-
* @version SDK : 1.29.0 | Thoughtspot : 10.2.0.cl
|
|
2139
2215
|
*/
|
|
2140
2216
|
OnBeforeGetVizDataIntercept = 'onBeforeGetVizDataIntercept',
|
|
2141
2217
|
/**
|
|
@@ -2154,7 +2230,7 @@ export enum EmbedEvent {
|
|
|
2154
2230
|
|
|
2155
2231
|
/**
|
|
2156
2232
|
* Event types that can be triggered by the host application
|
|
2157
|
-
* to the embedded ThoughtSpot app
|
|
2233
|
+
* to the embedded ThoughtSpot app.
|
|
2158
2234
|
*
|
|
2159
2235
|
* To trigger an event use the corresponding
|
|
2160
2236
|
* {@link LiveboardEmbed.trigger} or {@link AppEmbed.trigger} or {@link
|
|
@@ -2171,6 +2247,40 @@ export enum EmbedEvent {
|
|
|
2171
2247
|
* { columnName: 'state, operator: RuntimeFilterOp.EQ, values: ['california']}
|
|
2172
2248
|
* ]);
|
|
2173
2249
|
* ```
|
|
2250
|
+
* @example
|
|
2251
|
+
* If using React components to embed, use the format shown in this example:
|
|
2252
|
+
*
|
|
2253
|
+
* ```js
|
|
2254
|
+
* const selectVizs = () => {
|
|
2255
|
+
* embedRef.current.trigger(HostEvent.SetVisibleVizs, [
|
|
2256
|
+
* "715e4613-c891-4884-be44-aa8d13701c06",
|
|
2257
|
+
* "3f84d633-e325-44b2-be25-c6650e5a49cf"
|
|
2258
|
+
* ]);
|
|
2259
|
+
* };
|
|
2260
|
+
* ```
|
|
2261
|
+
*
|
|
2262
|
+
*
|
|
2263
|
+
* You can also attach an Embed event to a Host event to trigger
|
|
2264
|
+
* a specific action as shown in this example:
|
|
2265
|
+
*
|
|
2266
|
+
* @example
|
|
2267
|
+
* ```js
|
|
2268
|
+
* const EmbeddedComponent = () => {
|
|
2269
|
+
* const embedRef = useRef(null); // import { useRef } from react
|
|
2270
|
+
* const onLiveboardRendered = () => {
|
|
2271
|
+
* embedRef.current.trigger(HostEvent.SetVisibleVizs, ['viz1', 'viz2']);
|
|
2272
|
+
* };
|
|
2273
|
+
*
|
|
2274
|
+
* return (
|
|
2275
|
+
* <LiveboardEmbed
|
|
2276
|
+
* ref={embedRef}
|
|
2277
|
+
* liveboardId="<liveboard-guid>"
|
|
2278
|
+
* onLiveboardRendered={onLiveboardRendered}
|
|
2279
|
+
* />
|
|
2280
|
+
* );
|
|
2281
|
+
* }
|
|
2282
|
+
* ```
|
|
2283
|
+
*
|
|
2174
2284
|
* @group Events
|
|
2175
2285
|
*/
|
|
2176
2286
|
// eslint-disable-next-line no-shadow
|
|
@@ -2255,6 +2365,15 @@ export enum HostEvent {
|
|
|
2255
2365
|
* @hidden
|
|
2256
2366
|
*/
|
|
2257
2367
|
Reload = 'reload',
|
|
2368
|
+
/**
|
|
2369
|
+
* Get current iframe src
|
|
2370
|
+
* @example
|
|
2371
|
+
* ```js
|
|
2372
|
+
* const frameUrl = AppEmbed.trigger(HostEvent.GetIframeUrl)
|
|
2373
|
+
* ```
|
|
2374
|
+
* @version SDK: 1.35.0 | Thoughtspot: 10.4.0.cl
|
|
2375
|
+
*/
|
|
2376
|
+
GetIframeUrl = 'GetIframeUrl',
|
|
2258
2377
|
/**
|
|
2259
2378
|
* Display specific visualizations on a Liveboard.
|
|
2260
2379
|
* @param - An array of GUIDs of the visualization to show. The visualization IDs not passed
|
|
@@ -2856,10 +2975,23 @@ export enum HostEvent {
|
|
|
2856
2975
|
* filter: {
|
|
2857
2976
|
* column: "item type",
|
|
2858
2977
|
* oper: "IN",
|
|
2859
|
-
* values: ["bags","shirts"]
|
|
2978
|
+
* values: ["bags","shirts"]
|
|
2979
|
+
* }
|
|
2980
|
+
* });
|
|
2981
|
+
* ```
|
|
2982
|
+
* @example
|
|
2983
|
+
* ```js
|
|
2984
|
+
*
|
|
2985
|
+
* liveboardEmbed.trigger(HostEvent.UpdateFilters, {
|
|
2986
|
+
* filter: {
|
|
2987
|
+
* column: "date",
|
|
2988
|
+
* oper: "EQ",
|
|
2989
|
+
* values: ["JULY","2023"],
|
|
2990
|
+
* type: "MONTH_YEAR"
|
|
2860
2991
|
* }
|
|
2861
2992
|
* });
|
|
2862
2993
|
* ```
|
|
2994
|
+
*
|
|
2863
2995
|
* @example
|
|
2864
2996
|
*
|
|
2865
2997
|
* ```js
|
|
@@ -2877,7 +3009,8 @@ export enum HostEvent {
|
|
|
2877
3009
|
* {
|
|
2878
3010
|
* column: "Date",
|
|
2879
3011
|
* oper: 'EQ',
|
|
2880
|
-
* values: ["
|
|
3012
|
+
* values: ["2023-07-31"],
|
|
3013
|
+
* types: "EXACT_DATE"
|
|
2881
3014
|
* }]
|
|
2882
3015
|
* });
|
|
2883
3016
|
* ```
|
|
@@ -3067,7 +3200,6 @@ export enum Param {
|
|
|
3067
3200
|
ViewPortHeight = 'viewPortHeight',
|
|
3068
3201
|
ViewPortWidth = 'viewPortWidth',
|
|
3069
3202
|
VisibleActions = 'visibleAction',
|
|
3070
|
-
CustomCSSUrl = 'customCssUrl',
|
|
3071
3203
|
DisableLoginRedirect = 'disableLoginRedirect',
|
|
3072
3204
|
visibleVizs = 'pinboardVisibleVizs',
|
|
3073
3205
|
LiveboardV2Enabled = 'isPinboardV2Enabled',
|
|
@@ -3126,6 +3258,9 @@ export enum Param {
|
|
|
3126
3258
|
FocusSearchBarOnRender = 'focusSearchBarOnRender',
|
|
3127
3259
|
DisableRedirectionLinksInNewTab = 'disableRedirectionLinksInNewTab',
|
|
3128
3260
|
HomePageSearchBarMode = 'homePageSearchBarMode',
|
|
3261
|
+
ShowLiveboardVerifiedBadge = 'showLiveboardVerifiedBadge',
|
|
3262
|
+
ShowLiveboardReverifyBanner = 'showLiveboardReverifyBanner',
|
|
3263
|
+
LiveboardHeaderV2 = 'isLiveboardHeaderV2Enabled',
|
|
3129
3264
|
}
|
|
3130
3265
|
|
|
3131
3266
|
/**
|
|
@@ -4052,7 +4187,7 @@ export enum Action {
|
|
|
4052
4187
|
*
|
|
4053
4188
|
* @version SDK: 1.32.0 | Thoughtspot: 10.1.0.cl
|
|
4054
4189
|
*/
|
|
4055
|
-
CreateLiveboard = '
|
|
4190
|
+
CreateLiveboard = 'createLiveboard',
|
|
4056
4191
|
|
|
4057
4192
|
/**
|
|
4058
4193
|
* Action ID for to hide Verified Liveboard Banner
|
|
@@ -4154,6 +4289,17 @@ export enum Action {
|
|
|
4154
4289
|
*/
|
|
4155
4290
|
UnsubscribeScheduleHomepage = 'unsubscribeScheduleHomepage',
|
|
4156
4291
|
|
|
4292
|
+
/**
|
|
4293
|
+
* The **Manage Tags** action on Homepage Favourite Module.
|
|
4294
|
+
*
|
|
4295
|
+
* @example
|
|
4296
|
+
* ```js
|
|
4297
|
+
* disabledActions: [Action.ManageTags]
|
|
4298
|
+
* ```
|
|
4299
|
+
* @version SDK : 1.34.0 | Thoughtspot: 10.3.0.cl
|
|
4300
|
+
*/
|
|
4301
|
+
ManageTags = 'manageTags',
|
|
4302
|
+
|
|
4157
4303
|
/**
|
|
4158
4304
|
* Action ID for delete schedule action on schedule on homepage
|
|
4159
4305
|
* @example
|
|
@@ -29,7 +29,9 @@ describe('Unit test for authService', () => {
|
|
|
29
29
|
const response = await fetchSessionInfoService(thoughtSpotHost);
|
|
30
30
|
expect(response.success).toBe(true);
|
|
31
31
|
expect(fetch).toHaveBeenCalledTimes(1);
|
|
32
|
-
expect(fetch).toBeCalledWith(`${thoughtSpotHost}${EndPoints.SESSION_INFO}`, {
|
|
32
|
+
expect(fetch).toBeCalledWith(`${thoughtSpotHost}${EndPoints.SESSION_INFO}`, {
|
|
33
|
+
credentials: 'include',
|
|
34
|
+
});
|
|
33
35
|
});
|
|
34
36
|
|
|
35
37
|
test('fetchAuthTokenService', async () => {
|
|
@@ -112,9 +114,16 @@ describe('Unit test for authService', () => {
|
|
|
112
114
|
try {
|
|
113
115
|
await fetchSessionInfoService(authVerificationUrl);
|
|
114
116
|
} catch (e) {
|
|
115
|
-
|
|
117
|
+
//
|
|
116
118
|
}
|
|
117
119
|
expect(logger.error).toHaveBeenCalledWith('Failed to fetch http://localhost:3000/callosum/v1/session/info', 'error');
|
|
120
|
+
|
|
121
|
+
try {
|
|
122
|
+
await fetchBasicAuthService(thoughtSpotHost, username, password);
|
|
123
|
+
} catch (e) {
|
|
124
|
+
expect(e.message).toContain('Failed to fetch session info');
|
|
125
|
+
}
|
|
126
|
+
expect(logger.error).toHaveBeenCalledWith('Failure', 'error');
|
|
118
127
|
});
|
|
119
128
|
|
|
120
129
|
test('verifyTokenService if token api works', async () => {
|
|
@@ -18,7 +18,6 @@ function tokenizedFailureLoggedFetch(url: string, options: RequestInit = {}): Pr
|
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* Fetches the session info from the ThoughtSpot server.
|
|
21
|
-
*
|
|
22
21
|
* @param thoughtspotHost
|
|
23
22
|
* @returns {Promise<any>}
|
|
24
23
|
* @example
|
|
@@ -52,7 +51,6 @@ export async function fetchLogoutService(thoughtSpotHost: string): Promise<any>
|
|
|
52
51
|
|
|
53
52
|
/**
|
|
54
53
|
* Is active service to check if the user is logged in.
|
|
55
|
-
*
|
|
56
54
|
* @param thoughtSpotHost
|
|
57
55
|
* @version SDK: 1.28.4 | ThoughtSpot: *
|
|
58
56
|
*/
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { getDocumentBody } from '../test/test-utils';
|
|
2
|
+
import { addPreviewStylesIfNotPresent } from './global-styles';
|
|
3
|
+
|
|
4
|
+
describe('addPreviewStylesIfNotPresent', () => {
|
|
5
|
+
afterEach(() => {
|
|
6
|
+
document.body.innerHTML = getDocumentBody();
|
|
7
|
+
});
|
|
8
|
+
it('should not add preview styles if present', () => {
|
|
9
|
+
document.body.innerHTML = '<div id="ts-preview-style">test</div>';
|
|
10
|
+
addPreviewStylesIfNotPresent();
|
|
11
|
+
const styleEl = document.getElementById('ts-preview-style');
|
|
12
|
+
expect(styleEl.innerHTML).toBe('test');
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it('should add preview styles if not present', () => {
|
|
16
|
+
addPreviewStylesIfNotPresent();
|
|
17
|
+
const styleEl = document.getElementById('ts-preview-style');
|
|
18
|
+
expect(styleEl).not.toBeNull();
|
|
19
|
+
});
|
|
20
|
+
});
|
|
@@ -101,10 +101,10 @@ export const getAnswer = `
|
|
|
101
101
|
isDiscoverable
|
|
102
102
|
isHidden
|
|
103
103
|
modifiedAt
|
|
104
|
-
tags
|
|
105
104
|
}
|
|
106
105
|
visualizations {
|
|
107
106
|
... on TableViz {
|
|
107
|
+
id
|
|
108
108
|
columns {
|
|
109
109
|
column {
|
|
110
110
|
id
|
|
@@ -116,6 +116,9 @@ export const getAnswer = `
|
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
|
+
... on ChartViz {
|
|
120
|
+
id
|
|
121
|
+
}
|
|
119
122
|
}
|
|
120
123
|
}
|
|
121
124
|
}
|
|
@@ -164,3 +167,32 @@ export const addVizToLiveboard = `
|
|
|
164
167
|
}
|
|
165
168
|
}
|
|
166
169
|
`;
|
|
170
|
+
|
|
171
|
+
export const getSQLQuery = `
|
|
172
|
+
mutation GetSQLQuery($session: BachSessionIdInput!) {
|
|
173
|
+
Answer__getQuery(session: $session) {
|
|
174
|
+
${bachSessionId}
|
|
175
|
+
sql
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
`;
|
|
179
|
+
|
|
180
|
+
export const getAnswerTML = `
|
|
181
|
+
mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies: Boolean, $formatType: EDocFormatType, $exportPermissions: Boolean, $exportFqn: Boolean) {
|
|
182
|
+
UnsavedAnswer_getTML(
|
|
183
|
+
session: $session
|
|
184
|
+
exportDependencies: $exportDependencies
|
|
185
|
+
formatType: $formatType
|
|
186
|
+
exportPermissions: $exportPermissions
|
|
187
|
+
exportFqn: $exportFqn
|
|
188
|
+
) {
|
|
189
|
+
zipFile
|
|
190
|
+
object {
|
|
191
|
+
edoc
|
|
192
|
+
name
|
|
193
|
+
type
|
|
194
|
+
__typename
|
|
195
|
+
}
|
|
196
|
+
__typename
|
|
197
|
+
}
|
|
198
|
+
}`;
|