@thoughtspot/visual-embed-sdk 1.20.2 → 1.20.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/README.md +1 -1
- package/cjs/package.json +171 -0
- package/cjs/src/auth.d.ts +183 -0
- package/cjs/src/auth.d.ts.map +1 -0
- package/cjs/src/auth.js +457 -0
- package/cjs/src/auth.js.map +1 -0
- package/cjs/src/auth.spec.d.ts +13 -0
- package/cjs/src/auth.spec.d.ts.map +1 -0
- package/cjs/src/auth.spec.js +397 -0
- package/cjs/src/auth.spec.js.map +1 -0
- package/cjs/src/config.d.ts +22 -0
- package/cjs/src/config.d.ts.map +1 -0
- package/cjs/src/config.js +70 -0
- package/cjs/src/config.js.map +1 -0
- package/cjs/src/config.spec.d.ts +5 -0
- package/cjs/src/config.spec.d.ts.map +1 -0
- package/cjs/src/config.spec.js +65 -0
- package/cjs/src/config.spec.js.map +1 -0
- package/cjs/src/embed/app.d.ts +168 -0
- package/cjs/src/embed/app.d.ts.map +1 -0
- package/cjs/src/embed/app.js +215 -0
- package/cjs/src/embed/app.js.map +1 -0
- package/cjs/src/embed/app.spec.d.ts +2 -0
- package/cjs/src/embed/app.spec.d.ts.map +1 -0
- package/cjs/src/embed/app.spec.js +239 -0
- package/cjs/src/embed/app.spec.js.map +1 -0
- package/cjs/src/embed/base.d.ts +79 -0
- package/cjs/src/embed/base.d.ts.map +1 -0
- package/cjs/src/embed/base.js +229 -0
- package/cjs/src/embed/base.js.map +1 -0
- package/cjs/src/embed/base.spec.d.ts +2 -0
- package/cjs/src/embed/base.spec.d.ts.map +1 -0
- package/cjs/src/embed/base.spec.js +198 -0
- package/cjs/src/embed/base.spec.js.map +1 -0
- package/cjs/src/embed/embed.spec.d.ts +2 -0
- package/cjs/src/embed/embed.spec.d.ts.map +1 -0
- package/cjs/src/embed/embed.spec.js +74 -0
- package/cjs/src/embed/embed.spec.js.map +1 -0
- package/cjs/src/embed/events.spec.d.ts +2 -0
- package/cjs/src/embed/events.spec.d.ts.map +1 -0
- package/cjs/src/embed/events.spec.js +238 -0
- package/cjs/src/embed/events.spec.js.map +1 -0
- package/cjs/src/embed/liveboard.d.ts +150 -0
- package/cjs/src/embed/liveboard.d.ts.map +1 -0
- package/cjs/src/embed/liveboard.js +168 -0
- package/cjs/src/embed/liveboard.js.map +1 -0
- package/cjs/src/embed/liveboard.spec.d.ts +2 -0
- package/cjs/src/embed/liveboard.spec.d.ts.map +1 -0
- package/cjs/src/embed/liveboard.spec.js +229 -0
- package/cjs/src/embed/liveboard.spec.js.map +1 -0
- package/cjs/src/embed/pinboard.spec.d.ts +2 -0
- package/cjs/src/embed/pinboard.spec.d.ts.map +1 -0
- package/cjs/src/embed/pinboard.spec.js +148 -0
- package/cjs/src/embed/pinboard.spec.js.map +1 -0
- package/cjs/src/embed/search-bar.d.ts +50 -0
- package/cjs/src/embed/search-bar.d.ts.map +1 -0
- package/cjs/src/embed/search-bar.js +63 -0
- package/cjs/src/embed/search-bar.js.map +1 -0
- package/cjs/src/embed/search.d.ts +129 -0
- package/cjs/src/embed/search.d.ts.map +1 -0
- package/cjs/src/embed/search.js +121 -0
- package/cjs/src/embed/search.js.map +1 -0
- package/cjs/src/embed/search.spec.d.ts +2 -0
- package/cjs/src/embed/search.spec.d.ts.map +1 -0
- package/cjs/src/embed/search.spec.js +238 -0
- package/cjs/src/embed/search.spec.js.map +1 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.js +103 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.js.map +1 -0
- package/cjs/src/embed/ts-embed.d.ts +323 -0
- package/cjs/src/embed/ts-embed.d.ts.map +1 -0
- package/cjs/src/embed/ts-embed.js +719 -0
- package/cjs/src/embed/ts-embed.js.map +1 -0
- package/cjs/src/embed/ts-embed.spec.d.ts +2 -0
- package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -0
- package/cjs/src/embed/ts-embed.spec.js +771 -0
- package/cjs/src/embed/ts-embed.spec.js.map +1 -0
- package/cjs/src/errors.d.ts +7 -0
- package/cjs/src/errors.d.ts.map +1 -0
- package/cjs/src/errors.js +10 -0
- package/cjs/src/errors.js.map +1 -0
- package/cjs/src/index.d.ts +18 -0
- package/cjs/src/index.d.ts.map +1 -0
- package/cjs/src/index.js +42 -0
- package/cjs/src/index.js.map +1 -0
- package/cjs/src/mixpanel-service.d.ts +29 -0
- package/cjs/src/mixpanel-service.d.ts.map +1 -0
- package/cjs/src/mixpanel-service.js +76 -0
- package/cjs/src/mixpanel-service.js.map +1 -0
- package/cjs/src/mixpanel-service.spec.d.ts +2 -0
- package/cjs/src/mixpanel-service.spec.d.ts.map +1 -0
- package/cjs/src/mixpanel-service.spec.js +63 -0
- package/cjs/src/mixpanel-service.spec.js.map +1 -0
- package/cjs/src/react/all-types-export.d.ts +3 -0
- package/cjs/src/react/all-types-export.d.ts.map +1 -0
- package/cjs/src/react/all-types-export.js +29 -0
- package/cjs/src/react/all-types-export.js.map +1 -0
- package/cjs/src/react/all-types-export.spec.d.ts +2 -0
- package/cjs/src/react/all-types-export.spec.d.ts.map +1 -0
- package/cjs/src/react/all-types-export.spec.js +13 -0
- package/cjs/src/react/all-types-export.spec.js.map +1 -0
- package/cjs/src/react/index.d.ts +95 -0
- package/cjs/src/react/index.d.ts.map +1 -0
- package/cjs/src/react/index.js +121 -0
- package/cjs/src/react/index.js.map +1 -0
- package/cjs/src/react/index.spec.d.ts +3 -0
- package/cjs/src/react/index.spec.d.ts.map +1 -0
- package/cjs/src/react/index.spec.js +138 -0
- package/cjs/src/react/index.spec.js.map +1 -0
- package/cjs/src/react/util.d.ts +19 -0
- package/cjs/src/react/util.d.ts.map +1 -0
- package/cjs/src/react/util.js +25 -0
- package/cjs/src/react/util.js.map +1 -0
- package/cjs/src/test/test-utils.d.ts +48 -0
- package/cjs/src/test/test-utils.d.ts.map +1 -0
- package/cjs/src/test/test-utils.js +108 -0
- package/cjs/src/test/test-utils.js.map +1 -0
- package/cjs/src/types.d.ts +2020 -0
- package/cjs/src/types.d.ts.map +1 -0
- package/cjs/src/types.js +1543 -0
- package/cjs/src/types.js.map +1 -0
- package/cjs/src/utils/answerService.d.ts +10 -0
- package/cjs/src/utils/answerService.d.ts.map +1 -0
- package/cjs/src/utils/answerService.js +61 -0
- package/cjs/src/utils/answerService.js.map +1 -0
- package/cjs/src/utils/answerService.spec.d.ts +2 -0
- package/cjs/src/utils/answerService.spec.d.ts.map +1 -0
- package/cjs/src/utils/answerService.spec.js +31 -0
- package/cjs/src/utils/answerService.spec.js.map +1 -0
- package/cjs/src/utils/authService.d.ts +37 -0
- package/cjs/src/utils/authService.d.ts.map +1 -0
- package/cjs/src/utils/authService.js +106 -0
- package/cjs/src/utils/authService.js.map +1 -0
- package/cjs/src/utils/authService.spec.d.ts +2 -0
- package/cjs/src/utils/authService.spec.d.ts.map +1 -0
- package/cjs/src/utils/authService.spec.js +72 -0
- package/cjs/src/utils/authService.spec.js.map +1 -0
- package/cjs/src/utils/processData.d.ts +16 -0
- package/cjs/src/utils/processData.d.ts.map +1 -0
- package/cjs/src/utils/processData.js +110 -0
- package/cjs/src/utils/processData.js.map +1 -0
- package/cjs/src/utils/processData.spec.d.ts +2 -0
- package/cjs/src/utils/processData.spec.d.ts.map +1 -0
- package/cjs/src/utils/processData.spec.js +142 -0
- package/cjs/src/utils/processData.spec.js.map +1 -0
- package/cjs/src/utils/processTrigger.d.ts +10 -0
- package/cjs/src/utils/processTrigger.d.ts.map +1 -0
- package/cjs/src/utils/processTrigger.js +63 -0
- package/cjs/src/utils/processTrigger.js.map +1 -0
- package/cjs/src/utils/processTrigger.spec.d.ts +2 -0
- package/cjs/src/utils/processTrigger.spec.d.ts.map +1 -0
- package/cjs/src/utils/processTrigger.spec.js +58 -0
- package/cjs/src/utils/processTrigger.spec.js.map +1 -0
- package/cjs/src/utils.d.ts +68 -0
- package/cjs/src/utils.d.ts.map +1 -0
- package/cjs/src/utils.js +196 -0
- package/cjs/src/utils.js.map +1 -0
- package/cjs/src/utils.spec.d.ts +5 -0
- package/cjs/src/utils.spec.d.ts.map +1 -0
- package/cjs/src/utils.spec.js +98 -0
- package/cjs/src/utils.spec.js.map +1 -0
- package/dist/src/auth.d.ts +54 -5
- package/dist/src/auth.d.ts.map +1 -1
- package/dist/src/auth.spec.d.ts +3 -0
- package/dist/src/auth.spec.d.ts.map +1 -1
- package/dist/src/config.d.ts +1 -0
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/embed/app.d.ts +35 -6
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/base.d.ts +20 -9
- package/dist/src/embed/base.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +17 -5
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/search-bar.d.ts +3 -0
- package/dist/src/embed/search-bar.d.ts.map +1 -1
- package/dist/src/embed/search.d.ts +9 -1
- package/dist/src/embed/search.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +65 -7
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/mixpanel-service.d.ts +8 -0
- package/dist/src/mixpanel-service.d.ts.map +1 -1
- package/dist/src/react/all-types-export.d.ts +3 -0
- package/dist/src/react/all-types-export.d.ts.map +1 -0
- package/dist/src/react/all-types-export.spec.d.ts +2 -0
- package/dist/src/react/all-types-export.spec.d.ts.map +1 -0
- package/dist/src/react/index.d.ts +72 -0
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/react/util.d.ts +4 -0
- package/dist/src/react/util.d.ts.map +1 -1
- package/dist/src/test/test-utils.d.ts +11 -2
- package/dist/src/test/test-utils.d.ts.map +1 -1
- package/dist/src/types.d.ts +499 -96
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/answerService.d.ts +7 -0
- package/dist/src/utils/answerService.d.ts.map +1 -1
- package/dist/src/utils/authService.d.ts +30 -0
- package/dist/src/utils/authService.d.ts.map +1 -1
- package/dist/src/utils/processData.d.ts +12 -0
- package/dist/src/utils/processData.d.ts.map +1 -1
- package/dist/src/utils/processTrigger.d.ts +7 -0
- package/dist/src/utils/processTrigger.d.ts.map +1 -1
- package/dist/src/utils.d.ts +12 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +28024 -0
- package/dist/tsembed-react.js +27966 -0
- package/dist/tsembed.es.js +18114 -305
- package/dist/tsembed.js +18088 -327
- package/dist/visual-embed-sdk-react-full.d.ts +3092 -0
- package/dist/visual-embed-sdk-react.d.ts +2781 -0
- package/dist/visual-embed-sdk.d.ts +2944 -0
- package/lib/package.json +15 -14
- package/lib/src/auth.d.ts +54 -5
- package/lib/src/auth.d.ts.map +1 -1
- package/lib/src/auth.js +91 -31
- package/lib/src/auth.js.map +1 -1
- package/lib/src/auth.spec.d.ts +3 -0
- package/lib/src/auth.spec.d.ts.map +1 -1
- package/lib/src/auth.spec.js +37 -6
- package/lib/src/auth.spec.js.map +1 -1
- package/lib/src/config.d.ts +1 -0
- package/lib/src/config.d.ts.map +1 -1
- package/lib/src/config.js +5 -3
- package/lib/src/config.js.map +1 -1
- package/lib/src/config.spec.js.map +1 -1
- package/lib/src/embed/app.d.ts +35 -6
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +55 -16
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +41 -12
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/base.d.ts +20 -9
- package/lib/src/embed/base.d.ts.map +1 -1
- package/lib/src/embed/base.js +31 -15
- package/lib/src/embed/base.js.map +1 -1
- package/lib/src/embed/base.spec.js.map +1 -1
- package/lib/src/embed/embed.spec.js +1 -1
- package/lib/src/embed/embed.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +17 -5
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +49 -37
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +37 -30
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/pinboard.spec.js +14 -26
- package/lib/src/embed/pinboard.spec.js.map +1 -1
- package/lib/src/embed/search-bar.d.ts +3 -0
- package/lib/src/embed/search-bar.d.ts.map +1 -1
- package/lib/src/embed/search-bar.js +5 -6
- package/lib/src/embed/search-bar.js.map +1 -1
- package/lib/src/embed/search.d.ts +9 -1
- package/lib/src/embed/search.d.ts.map +1 -1
- package/lib/src/embed/search.js +18 -14
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/search.spec.js +16 -19
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/searchEmbed-basic-auth.spec.js +4 -0
- package/lib/src/embed/searchEmbed-basic-auth.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +65 -7
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +154 -77
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +46 -24
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/errors.d.ts.map +1 -1
- package/lib/src/errors.js.map +1 -1
- package/lib/src/index.d.ts +2 -2
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +4 -4
- package/lib/src/index.js.map +1 -1
- package/lib/src/mixpanel-service.d.ts +8 -0
- package/lib/src/mixpanel-service.d.ts.map +1 -1
- package/lib/src/mixpanel-service.js +13 -1
- package/lib/src/mixpanel-service.js.map +1 -1
- package/lib/src/mixpanel-service.spec.js.map +1 -1
- package/lib/src/react/all-types-export.d.ts +3 -0
- package/lib/src/react/all-types-export.d.ts.map +1 -0
- package/lib/src/react/all-types-export.js +5 -0
- package/lib/src/react/all-types-export.js.map +1 -0
- package/lib/src/react/all-types-export.spec.d.ts +2 -0
- package/lib/src/react/all-types-export.spec.d.ts.map +1 -0
- package/lib/src/react/all-types-export.spec.js +10 -0
- package/lib/src/react/all-types-export.spec.js.map +1 -0
- package/lib/src/react/index.d.ts +72 -0
- package/lib/src/react/index.d.ts.map +1 -1
- package/lib/src/react/index.js +79 -7
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/react/index.spec.js +27 -6
- package/lib/src/react/index.spec.js.map +1 -1
- package/lib/src/react/util.d.ts +4 -0
- package/lib/src/react/util.d.ts.map +1 -1
- package/lib/src/react/util.js +4 -0
- package/lib/src/react/util.js.map +1 -1
- package/lib/src/test/test-utils.d.ts +11 -2
- package/lib/src/test/test-utils.d.ts.map +1 -1
- package/lib/src/test/test-utils.js +36 -25
- package/lib/src/test/test-utils.js.map +1 -1
- package/lib/src/types.d.ts +499 -96
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +374 -68
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/answerService.d.ts +7 -0
- package/lib/src/utils/answerService.d.ts.map +1 -1
- package/lib/src/utils/answerService.js +7 -0
- package/lib/src/utils/answerService.js.map +1 -1
- package/lib/src/utils/answerService.spec.js.map +1 -1
- package/lib/src/utils/authService.d.ts +30 -0
- package/lib/src/utils/authService.d.ts.map +1 -1
- package/lib/src/utils/authService.js +39 -2
- package/lib/src/utils/authService.js.map +1 -1
- package/lib/src/utils/authService.spec.js.map +1 -1
- package/lib/src/utils/processData.d.ts +12 -0
- package/lib/src/utils/processData.d.ts.map +1 -1
- package/lib/src/utils/processData.js +33 -5
- package/lib/src/utils/processData.js.map +1 -1
- package/lib/src/utils/processData.spec.js.map +1 -1
- package/lib/src/utils/processTrigger.d.ts +7 -0
- package/lib/src/utils/processTrigger.d.ts.map +1 -1
- package/lib/src/utils/processTrigger.js +17 -3
- package/lib/src/utils/processTrigger.js.map +1 -1
- package/lib/src/utils/processTrigger.spec.js.map +1 -1
- package/lib/src/utils.d.ts +12 -0
- package/lib/src/utils.d.ts.map +1 -1
- package/lib/src/utils.js +24 -19
- package/lib/src/utils.js.map +1 -1
- package/lib/src/utils.spec.js.map +1 -1
- package/package.json +15 -14
- package/src/auth.spec.ts +83 -133
- package/src/auth.ts +148 -115
- package/src/config.spec.ts +2 -4
- package/src/config.ts +5 -3
- package/src/embed/app.spec.ts +57 -14
- package/src/embed/app.ts +91 -36
- package/src/embed/base.spec.ts +3 -9
- package/src/embed/base.ts +51 -53
- package/src/embed/embed.spec.ts +5 -6
- package/src/embed/liveboard.spec.ts +56 -37
- package/src/embed/liveboard.ts +66 -64
- package/src/embed/pinboard.spec.ts +26 -29
- package/src/embed/search-bar.tsx +10 -8
- package/src/embed/search.spec.ts +31 -21
- package/src/embed/search.ts +26 -20
- package/src/embed/searchEmbed-basic-auth.spec.ts +22 -28
- package/src/embed/ts-embed.spec.ts +99 -144
- package/src/embed/ts-embed.ts +188 -162
- package/src/errors.ts +3 -6
- package/src/index.ts +6 -10
- package/src/mixpanel-service.spec.ts +1 -3
- package/src/mixpanel-service.ts +13 -1
- package/src/react/index.spec.tsx +66 -13
- package/src/react/index.tsx +111 -62
- package/src/react/util.ts +8 -4
- package/src/test/test-utils.ts +43 -39
- package/src/types.ts +498 -98
- package/src/utils/answerService.spec.ts +3 -5
- package/src/utils/answerService.ts +21 -17
- package/src/utils/authService.spec.ts +26 -41
- package/src/utils/authService.ts +47 -21
- package/src/utils/processData.spec.ts +26 -59
- package/src/utils/processData.ts +36 -14
- package/src/utils/processTrigger.spec.ts +1 -6
- package/src/utils/processTrigger.ts +18 -9
- package/src/utils.spec.ts +8 -12
- package/src/utils.ts +25 -26
- package/lib/src/visual-embed-sdk.d.ts +0 -2419
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const index_1 = require("../index");
|
|
4
|
+
const test_utils_1 = require("../test/test-utils");
|
|
5
|
+
const thoughtSpotHost = 'tshost';
|
|
6
|
+
const defaultViewConfig = {
|
|
7
|
+
frameParams: {
|
|
8
|
+
width: 1280,
|
|
9
|
+
height: 720,
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
const PAYLOAD = 'Sample payload';
|
|
13
|
+
beforeAll(() => {
|
|
14
|
+
(0, index_1.init)({
|
|
15
|
+
thoughtSpotHost,
|
|
16
|
+
authType: index_1.AuthType.None,
|
|
17
|
+
});
|
|
18
|
+
spyOn(window, 'alert');
|
|
19
|
+
});
|
|
20
|
+
describe('test communication between host app and ThoughtSpot', () => {
|
|
21
|
+
beforeEach(() => {
|
|
22
|
+
document.body.innerHTML = (0, test_utils_1.getDocumentBody)();
|
|
23
|
+
});
|
|
24
|
+
test('should capture event from ThoughtSpot app', (done) => {
|
|
25
|
+
const searchEmbed = new index_1.SearchEmbed((0, test_utils_1.getRootEl)(), defaultViewConfig);
|
|
26
|
+
searchEmbed
|
|
27
|
+
.on(index_1.EmbedEvent.CustomAction, (data) => {
|
|
28
|
+
expect(data.data).toBe(PAYLOAD);
|
|
29
|
+
done();
|
|
30
|
+
})
|
|
31
|
+
.render();
|
|
32
|
+
(0, test_utils_1.executeAfterWait)(() => {
|
|
33
|
+
const iframe = (0, test_utils_1.getIFrameEl)();
|
|
34
|
+
(0, test_utils_1.postMessageToParent)(iframe.contentWindow, {
|
|
35
|
+
type: index_1.EmbedEvent.CustomAction,
|
|
36
|
+
data: PAYLOAD,
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
// TODO: enable test once we are actually able to load stuff in the iframe
|
|
41
|
+
xtest('should trigger iframe load event', async () => {
|
|
42
|
+
const onLoadSpy = jest.fn();
|
|
43
|
+
const searchEmbed = new index_1.SearchEmbed((0, test_utils_1.getRootEl)(), {});
|
|
44
|
+
searchEmbed.on(index_1.EmbedEvent.Load, onLoadSpy).render();
|
|
45
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
46
|
+
expect(onLoadSpy).toHaveBeenCalled();
|
|
47
|
+
}, test_utils_1.EVENT_WAIT_TIME);
|
|
48
|
+
});
|
|
49
|
+
test('should trigger event to ThoughtSpot app', (done) => {
|
|
50
|
+
(0, test_utils_1.mockMessageChannel)();
|
|
51
|
+
const searchEmbed = new index_1.SearchEmbed((0, test_utils_1.getRootEl)(), {});
|
|
52
|
+
searchEmbed.render();
|
|
53
|
+
setTimeout(() => {
|
|
54
|
+
searchEmbed.trigger(index_1.HostEvent.Search, {
|
|
55
|
+
body: PAYLOAD,
|
|
56
|
+
});
|
|
57
|
+
}, test_utils_1.EVENT_WAIT_TIME);
|
|
58
|
+
(0, test_utils_1.executeAfterWait)(() => {
|
|
59
|
+
const iframe = (0, test_utils_1.getIFrameEl)();
|
|
60
|
+
iframe.contentWindow.addEventListener('message', (e) => {
|
|
61
|
+
expect(e.data.type).toBe(index_1.HostEvent.Search);
|
|
62
|
+
expect(e.data.data.body).toBe(PAYLOAD);
|
|
63
|
+
done();
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
test('should execute multiple event handlers if registered', async () => {
|
|
68
|
+
const handlerOne = jest.fn();
|
|
69
|
+
const handlerTwo = jest.fn();
|
|
70
|
+
const searchEmbed = new index_1.SearchEmbed((0, test_utils_1.getRootEl)(), defaultViewConfig);
|
|
71
|
+
searchEmbed
|
|
72
|
+
.on(index_1.EmbedEvent.CustomAction, handlerOne)
|
|
73
|
+
.on(index_1.EmbedEvent.CustomAction, handlerTwo)
|
|
74
|
+
.render();
|
|
75
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
76
|
+
const iframe = (0, test_utils_1.getIFrameEl)();
|
|
77
|
+
(0, test_utils_1.postMessageToParent)(iframe.contentWindow, {
|
|
78
|
+
type: index_1.EmbedEvent.CustomAction,
|
|
79
|
+
data: PAYLOAD,
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
83
|
+
expect(handlerOne).toHaveBeenCalled();
|
|
84
|
+
expect(handlerTwo).toHaveBeenCalled();
|
|
85
|
+
}, test_utils_1.EVENT_WAIT_TIME);
|
|
86
|
+
});
|
|
87
|
+
test('should capture event from correct iframe', async () => {
|
|
88
|
+
const spyOne = jest.fn();
|
|
89
|
+
const embedOne = new index_1.SearchEmbed((0, test_utils_1.getRootEl)(), defaultViewConfig);
|
|
90
|
+
embedOne.on(index_1.EmbedEvent.CustomAction, spyOne).render();
|
|
91
|
+
const spyTwo = jest.fn();
|
|
92
|
+
const embedTwo = new index_1.PinboardEmbed((0, test_utils_1.getRootEl2)(), {
|
|
93
|
+
...defaultViewConfig,
|
|
94
|
+
pinboardId: 'eca215d4-0d2c-4a55-90e3-d81ef6848ae0',
|
|
95
|
+
});
|
|
96
|
+
const spyThree = jest.fn();
|
|
97
|
+
const embedThree = new index_1.LiveboardEmbed((0, test_utils_1.getRootEl2)(), {
|
|
98
|
+
...defaultViewConfig,
|
|
99
|
+
liveboardId: 'eca215d4-0d2c-4a55-90e3-d81ef6848ae0',
|
|
100
|
+
});
|
|
101
|
+
embedTwo.on(index_1.EmbedEvent.CustomAction, spyTwo).render();
|
|
102
|
+
embedThree.on(index_1.EmbedEvent.CustomAction, spyThree).render();
|
|
103
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
104
|
+
const iframeOne = (0, test_utils_1.getIFrameEl)();
|
|
105
|
+
(0, test_utils_1.postMessageToParent)(iframeOne.contentWindow, {
|
|
106
|
+
type: index_1.EmbedEvent.CustomAction,
|
|
107
|
+
data: PAYLOAD,
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
111
|
+
expect(spyOne).toHaveBeenCalled();
|
|
112
|
+
expect(spyTwo).not.toHaveBeenCalled();
|
|
113
|
+
expect(spyThree).not.toHaveBeenCalled();
|
|
114
|
+
}, test_utils_1.EVENT_WAIT_TIME);
|
|
115
|
+
});
|
|
116
|
+
test('send getIframeCenter Event without eventPort', async () => {
|
|
117
|
+
const liveboardEmbed = new index_1.LiveboardEmbed((0, test_utils_1.getRootEl)(), {
|
|
118
|
+
...defaultViewConfig,
|
|
119
|
+
fullHeight: true,
|
|
120
|
+
pinboardId: 'eca215d4-0d2c-4a55-90e3-d81ef6848ae0',
|
|
121
|
+
});
|
|
122
|
+
liveboardEmbed.render();
|
|
123
|
+
const spy1 = jest.spyOn(global.console, 'log');
|
|
124
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
125
|
+
const iframe = (0, test_utils_1.getIFrameEl)();
|
|
126
|
+
(0, test_utils_1.postMessageToParent)(iframe.contentWindow, {
|
|
127
|
+
type: index_1.EmbedEvent.EmbedIframeCenter,
|
|
128
|
+
data: PAYLOAD,
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
expect(spy1).toHaveBeenCalledWith('Event Port is not defined');
|
|
132
|
+
});
|
|
133
|
+
test('send getIframeCenter Event without eventPort - pinboard', async () => {
|
|
134
|
+
const pinboardEmbed = new index_1.PinboardEmbed((0, test_utils_1.getRootEl)(), {
|
|
135
|
+
...defaultViewConfig,
|
|
136
|
+
fullHeight: true,
|
|
137
|
+
pinboardId: 'eca215d4-0d2c-4a55-90e3-d81ef6848ae0',
|
|
138
|
+
});
|
|
139
|
+
pinboardEmbed.render();
|
|
140
|
+
const spy1 = jest.spyOn(global.console, 'log');
|
|
141
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
142
|
+
const iframe = (0, test_utils_1.getIFrameEl)();
|
|
143
|
+
(0, test_utils_1.postMessageToParent)(iframe.contentWindow, {
|
|
144
|
+
type: index_1.EmbedEvent.EmbedIframeCenter,
|
|
145
|
+
data: PAYLOAD,
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
expect(spy1).toHaveBeenCalledWith('Event Port is not defined');
|
|
149
|
+
});
|
|
150
|
+
test('send getIframeCenter Event with eventPort - pinboard', async () => {
|
|
151
|
+
const pinboardEmbed = new index_1.PinboardEmbed((0, test_utils_1.getRootEl)(), {
|
|
152
|
+
...defaultViewConfig,
|
|
153
|
+
fullHeight: true,
|
|
154
|
+
pinboardId: 'eca215d4-0d2c-4a55-90e3-d81ef6848ae0',
|
|
155
|
+
});
|
|
156
|
+
pinboardEmbed.render();
|
|
157
|
+
const mockPort = {
|
|
158
|
+
postMessage: jest.fn(),
|
|
159
|
+
};
|
|
160
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
161
|
+
const iframe = (0, test_utils_1.getIFrameEl)();
|
|
162
|
+
(0, test_utils_1.postMessageToParent)(iframe.contentWindow, {
|
|
163
|
+
type: index_1.EmbedEvent.EmbedIframeCenter,
|
|
164
|
+
data: PAYLOAD,
|
|
165
|
+
}, mockPort);
|
|
166
|
+
});
|
|
167
|
+
const heightObj = {
|
|
168
|
+
data: {
|
|
169
|
+
iframeCenter: 0,
|
|
170
|
+
iframeHeight: 0,
|
|
171
|
+
iframeScrolled: 0,
|
|
172
|
+
iframeVisibleViewPort: 0,
|
|
173
|
+
viewPortHeight: 768,
|
|
174
|
+
},
|
|
175
|
+
type: index_1.EmbedEvent.EmbedIframeCenter,
|
|
176
|
+
};
|
|
177
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith(heightObj);
|
|
178
|
+
});
|
|
179
|
+
test('send getIframeCenter Event with eventPort', async () => {
|
|
180
|
+
const liveboardEmbed = new index_1.LiveboardEmbed((0, test_utils_1.getRootEl)(), {
|
|
181
|
+
...defaultViewConfig,
|
|
182
|
+
fullHeight: true,
|
|
183
|
+
pinboardId: 'eca215d4-0d2c-4a55-90e3-d81ef6848ae0',
|
|
184
|
+
});
|
|
185
|
+
liveboardEmbed.render();
|
|
186
|
+
const mockPort = {
|
|
187
|
+
postMessage: jest.fn(),
|
|
188
|
+
};
|
|
189
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
190
|
+
const iframe = (0, test_utils_1.getIFrameEl)();
|
|
191
|
+
(0, test_utils_1.postMessageToParent)(iframe.contentWindow, {
|
|
192
|
+
type: index_1.EmbedEvent.EmbedIframeCenter,
|
|
193
|
+
data: PAYLOAD,
|
|
194
|
+
}, mockPort);
|
|
195
|
+
});
|
|
196
|
+
const heightObj = {
|
|
197
|
+
data: {
|
|
198
|
+
iframeCenter: 0,
|
|
199
|
+
iframeHeight: 0,
|
|
200
|
+
iframeScrolled: 0,
|
|
201
|
+
iframeVisibleViewPort: 0,
|
|
202
|
+
viewPortHeight: 768,
|
|
203
|
+
},
|
|
204
|
+
type: index_1.EmbedEvent.EmbedIframeCenter,
|
|
205
|
+
};
|
|
206
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith(heightObj);
|
|
207
|
+
});
|
|
208
|
+
test('ALL event listener should fire for all events with the event type set correctly', async () => {
|
|
209
|
+
const embed = new index_1.AppEmbed((0, test_utils_1.getRootEl)(), defaultViewConfig);
|
|
210
|
+
const spy = jest.fn();
|
|
211
|
+
embed.on(index_1.EmbedEvent.ALL, spy);
|
|
212
|
+
embed.render();
|
|
213
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
214
|
+
const iframe = (0, test_utils_1.getIFrameEl)();
|
|
215
|
+
(0, test_utils_1.postMessageToParent)(iframe.contentWindow, {
|
|
216
|
+
type: index_1.EmbedEvent.CustomAction,
|
|
217
|
+
data: PAYLOAD,
|
|
218
|
+
});
|
|
219
|
+
(0, test_utils_1.postMessageToParent)(iframe.contentWindow, {
|
|
220
|
+
type: index_1.EmbedEvent.DialogOpen,
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
224
|
+
expect(spy).toHaveBeenCalledTimes(3);
|
|
225
|
+
expect(spy.mock.calls[0][0]).toMatchObject({
|
|
226
|
+
type: index_1.EmbedEvent.Init,
|
|
227
|
+
});
|
|
228
|
+
expect(spy.mock.calls[1][0]).toMatchObject({
|
|
229
|
+
type: index_1.EmbedEvent.CustomAction,
|
|
230
|
+
data: PAYLOAD,
|
|
231
|
+
});
|
|
232
|
+
expect(spy.mock.calls[2][0]).toMatchObject({
|
|
233
|
+
type: index_1.EmbedEvent.DialogOpen,
|
|
234
|
+
});
|
|
235
|
+
}, test_utils_1.EVENT_WAIT_TIME);
|
|
236
|
+
});
|
|
237
|
+
});
|
|
238
|
+
//# sourceMappingURL=events.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.spec.js","sourceRoot":"","sources":["../../../src/embed/events.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022
|
|
3
|
+
*
|
|
4
|
+
* Embed a ThoughtSpot Liveboard or visualization
|
|
5
|
+
* https://developers.thoughtspot.com/docs/?pageid=embed-pinboard
|
|
6
|
+
* https://developers.thoughtspot.com/docs/?pageid=embed-a-viz
|
|
7
|
+
*
|
|
8
|
+
* @summary Liveboard & visualization embed
|
|
9
|
+
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
10
|
+
*/
|
|
11
|
+
import { DOMSelector, HostEvent, ViewConfig } from '../types';
|
|
12
|
+
import { V1Embed } from './ts-embed';
|
|
13
|
+
/**
|
|
14
|
+
* The configuration for the embedded Liveboard or visualization page view.
|
|
15
|
+
*
|
|
16
|
+
* @group Embed components
|
|
17
|
+
*/
|
|
18
|
+
export interface LiveboardViewConfig extends ViewConfig {
|
|
19
|
+
/**
|
|
20
|
+
* If set to true, the embedded object container dynamically resizes
|
|
21
|
+
* according to the height of the Liveboard.
|
|
22
|
+
*
|
|
23
|
+
* @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1
|
|
24
|
+
*/
|
|
25
|
+
fullHeight?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* This is the minimum height(in pixels) for a full height Liveboard.
|
|
28
|
+
* Setting this height helps resolves issues with empty Liveboards and
|
|
29
|
+
* other screens navigable from a Liveboard.
|
|
30
|
+
*
|
|
31
|
+
* @version SDK: 1.5.0 | ThoughtSpot: ts7.oct.cl, 7.2.1
|
|
32
|
+
* @default 500
|
|
33
|
+
*/
|
|
34
|
+
defaultHeight?: number;
|
|
35
|
+
/**
|
|
36
|
+
* @Deprecated If set to true, the context menu in visualizations will be enabled.
|
|
37
|
+
*/
|
|
38
|
+
enableVizTransformations?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* The Liveboard to display in the embedded view.
|
|
41
|
+
* Use either of liveboardId or pinboardId to reference the Liveboard to embed.
|
|
42
|
+
*
|
|
43
|
+
* @version SDK: 1.3.0 | ThoughtSpot ts7.aug.cl, 7.2.1
|
|
44
|
+
*/
|
|
45
|
+
liveboardId?: string;
|
|
46
|
+
/**
|
|
47
|
+
* To support backward compatibility
|
|
48
|
+
*
|
|
49
|
+
* @hidden
|
|
50
|
+
*/
|
|
51
|
+
pinboardId?: string;
|
|
52
|
+
/**
|
|
53
|
+
* The visualization within the Liveboard to display.
|
|
54
|
+
*/
|
|
55
|
+
vizId?: string;
|
|
56
|
+
/**
|
|
57
|
+
* If set to true, all filter chips from a
|
|
58
|
+
* Liveboard page will be read-only (no X buttons)
|
|
59
|
+
*
|
|
60
|
+
* @version SDK: 1.3.0 | ThoughtSpot ts7.aug.cl, 7.2.1
|
|
61
|
+
*/
|
|
62
|
+
preventLiveboardFilterRemoval?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Array of viz ids which should be visible when the liveboard
|
|
65
|
+
* first renders. This can be changed by triggering the "SetVisibleVizs"
|
|
66
|
+
* event.
|
|
67
|
+
*
|
|
68
|
+
* @version SDK: 1.9.1 | ThoughtSpot: 8.1.0.cl, 8.4.1-sw
|
|
69
|
+
*/
|
|
70
|
+
visibleVizs?: string[];
|
|
71
|
+
/**
|
|
72
|
+
* To support backward compatibilty
|
|
73
|
+
*
|
|
74
|
+
* @hidden
|
|
75
|
+
*/
|
|
76
|
+
preventPinboardFilterRemoval?: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Render embedded Liveboards and visualizations in the new Liveboard experience mode
|
|
79
|
+
*
|
|
80
|
+
* @version SDK: 1.14.0 | ThoughtSpot: 8.6.0.cl, 8.8.1-sw
|
|
81
|
+
*/
|
|
82
|
+
liveboardV2?: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Tab Id of the Liveboard that is supposed to be active
|
|
85
|
+
*
|
|
86
|
+
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1-sw
|
|
87
|
+
*/
|
|
88
|
+
activeTabId?: string;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Embed a ThoughtSpot Liveboard or a Thoughtspot visualization. When rendered it already
|
|
92
|
+
* waits for the authentication to complete, so no need to wait for AuthStatus.SUCCESS.
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```js
|
|
96
|
+
* import { .. } from '@thoughtspot/visual-embed-sdk';
|
|
97
|
+
* init({ ... });
|
|
98
|
+
* const embed = new LiveboardEmbed("#container", {
|
|
99
|
+
* liveboardId: <your-id-here>,
|
|
100
|
+
* // .. other params here.
|
|
101
|
+
* })
|
|
102
|
+
* ```
|
|
103
|
+
* @group Embed components
|
|
104
|
+
*/
|
|
105
|
+
export declare class LiveboardEmbed extends V1Embed {
|
|
106
|
+
protected viewConfig: LiveboardViewConfig;
|
|
107
|
+
private defaultHeight;
|
|
108
|
+
constructor(domSelector: DOMSelector, viewConfig: LiveboardViewConfig);
|
|
109
|
+
/**
|
|
110
|
+
* Construct a map of params to be passed on to the
|
|
111
|
+
* embedded Liveboard or visualization.
|
|
112
|
+
*/
|
|
113
|
+
protected getEmbedParams(): string;
|
|
114
|
+
private getIframeSuffixSrc;
|
|
115
|
+
/**
|
|
116
|
+
* Construct the URL of the embedded ThoughtSpot Liveboard or visualization
|
|
117
|
+
* to be loaded within the iframe.
|
|
118
|
+
*/
|
|
119
|
+
private getIFrameSrc;
|
|
120
|
+
/**
|
|
121
|
+
* Set the iframe height as per the computed height received
|
|
122
|
+
* from the ThoughtSpot app.
|
|
123
|
+
*
|
|
124
|
+
* @param data The event payload
|
|
125
|
+
*/
|
|
126
|
+
private updateIFrameHeight;
|
|
127
|
+
private embedIframeCenter;
|
|
128
|
+
private setIframeHeightForNonEmbedLiveboard;
|
|
129
|
+
/**
|
|
130
|
+
* Triggers an event to the embedded app
|
|
131
|
+
*
|
|
132
|
+
* @param messageType The event type
|
|
133
|
+
* @param data The payload to send with the message
|
|
134
|
+
*/
|
|
135
|
+
trigger(messageType: HostEvent, data?: any): Promise<any>;
|
|
136
|
+
/**
|
|
137
|
+
* Render an embedded ThoughtSpot Liveboard or visualization
|
|
138
|
+
*
|
|
139
|
+
* @param renderOptions An object specifying the Liveboard ID,
|
|
140
|
+
* visualization ID and the runtime filters.
|
|
141
|
+
*/
|
|
142
|
+
render(): LiveboardEmbed;
|
|
143
|
+
navigateToLiveboard(liveboardId: string, vizId?: string, activeTabId?: string): void;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* @hidden
|
|
147
|
+
*/
|
|
148
|
+
export declare class PinboardEmbed extends LiveboardEmbed {
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=liveboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liveboard.d.ts","sourceRoot":"","sources":["../../../src/embed/liveboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAKH,WAAW,EACX,SAAS,EACT,UAAU,EACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;GAIG;AACH,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACnD;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;;OAIG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,cAAe,SAAQ,OAAO;IACvC,SAAS,CAAC,UAAU,EAAE,mBAAmB,CAAC;IAE1C,OAAO,CAAC,aAAa,CAAO;gBAGhB,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB;IASrE;;;OAGG;IACH,SAAS,CAAC,cAAc;IA4CxB,OAAO,CAAC,kBAAkB;IAa1B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAcpB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,iBAAiB,CAGvB;IAEF,OAAO,CAAC,mCAAmC,CAIzC;IAEF;;;;;OAKG;IACI,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,GAAE,GAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAQpE;;;;;OAKG;IACI,MAAM,IAAI,cAAc;IASxB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;CAWvF;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,cAAc;CAAI"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) 2022
|
|
4
|
+
*
|
|
5
|
+
* Embed a ThoughtSpot Liveboard or visualization
|
|
6
|
+
* https://developers.thoughtspot.com/docs/?pageid=embed-pinboard
|
|
7
|
+
* https://developers.thoughtspot.com/docs/?pageid=embed-a-viz
|
|
8
|
+
*
|
|
9
|
+
* @summary Liveboard & visualization embed
|
|
10
|
+
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.PinboardEmbed = exports.LiveboardEmbed = void 0;
|
|
14
|
+
const errors_1 = require("../errors");
|
|
15
|
+
const types_1 = require("../types");
|
|
16
|
+
const utils_1 = require("../utils");
|
|
17
|
+
const ts_embed_1 = require("./ts-embed");
|
|
18
|
+
/**
|
|
19
|
+
* Embed a ThoughtSpot Liveboard or a Thoughtspot visualization. When rendered it already
|
|
20
|
+
* waits for the authentication to complete, so no need to wait for AuthStatus.SUCCESS.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```js
|
|
24
|
+
* import { .. } from '@thoughtspot/visual-embed-sdk';
|
|
25
|
+
* init({ ... });
|
|
26
|
+
* const embed = new LiveboardEmbed("#container", {
|
|
27
|
+
* liveboardId: <your-id-here>,
|
|
28
|
+
* // .. other params here.
|
|
29
|
+
* })
|
|
30
|
+
* ```
|
|
31
|
+
* @group Embed components
|
|
32
|
+
*/
|
|
33
|
+
class LiveboardEmbed extends ts_embed_1.V1Embed {
|
|
34
|
+
// eslint-disable-next-line no-useless-constructor
|
|
35
|
+
constructor(domSelector, viewConfig) {
|
|
36
|
+
super(domSelector, viewConfig);
|
|
37
|
+
this.defaultHeight = 500;
|
|
38
|
+
/**
|
|
39
|
+
* Set the iframe height as per the computed height received
|
|
40
|
+
* from the ThoughtSpot app.
|
|
41
|
+
*
|
|
42
|
+
* @param data The event payload
|
|
43
|
+
*/
|
|
44
|
+
this.updateIFrameHeight = (data) => {
|
|
45
|
+
this.setIFrameHeight(Math.max(data.data, this.defaultHeight));
|
|
46
|
+
};
|
|
47
|
+
this.embedIframeCenter = (data, responder) => {
|
|
48
|
+
const obj = this.getIframeCenter();
|
|
49
|
+
responder({ type: types_1.EmbedEvent.EmbedIframeCenter, data: obj });
|
|
50
|
+
};
|
|
51
|
+
this.setIframeHeightForNonEmbedLiveboard = (data) => {
|
|
52
|
+
if (!data.data.currentPath.startsWith('/embed/viz/')) {
|
|
53
|
+
this.setIFrameHeight(this.defaultHeight);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
if (this.viewConfig.fullHeight === true) {
|
|
57
|
+
this.on(types_1.EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
|
|
58
|
+
this.on(types_1.EmbedEvent.EmbedHeight, this.updateIFrameHeight);
|
|
59
|
+
this.on(types_1.EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Construct a map of params to be passed on to the
|
|
64
|
+
* embedded Liveboard or visualization.
|
|
65
|
+
*/
|
|
66
|
+
getEmbedParams() {
|
|
67
|
+
let params = {};
|
|
68
|
+
params[types_1.Param.EmbedApp] = true;
|
|
69
|
+
params = this.getBaseQueryParams(params);
|
|
70
|
+
const { enableVizTransformations, fullHeight, defaultHeight, visibleVizs, liveboardV2, vizId, activeTabId, } = this.viewConfig;
|
|
71
|
+
const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
|
|
72
|
+
|| this.viewConfig.preventPinboardFilterRemoval;
|
|
73
|
+
if (fullHeight === true) {
|
|
74
|
+
params[types_1.Param.fullHeight] = true;
|
|
75
|
+
}
|
|
76
|
+
if (defaultHeight) {
|
|
77
|
+
this.defaultHeight = defaultHeight;
|
|
78
|
+
}
|
|
79
|
+
if (enableVizTransformations !== undefined) {
|
|
80
|
+
params[types_1.Param.EnableVizTransformations] = enableVizTransformations.toString();
|
|
81
|
+
}
|
|
82
|
+
if (preventLiveboardFilterRemoval) {
|
|
83
|
+
params[types_1.Param.preventLiveboardFilterRemoval] = true;
|
|
84
|
+
}
|
|
85
|
+
if (visibleVizs) {
|
|
86
|
+
params[types_1.Param.visibleVizs] = visibleVizs;
|
|
87
|
+
}
|
|
88
|
+
params[types_1.Param.livedBoardEmbed] = true;
|
|
89
|
+
if (vizId) {
|
|
90
|
+
params[types_1.Param.vizEmbed] = true;
|
|
91
|
+
}
|
|
92
|
+
if (liveboardV2 !== undefined) {
|
|
93
|
+
params[types_1.Param.LiveboardV2Enabled] = liveboardV2;
|
|
94
|
+
}
|
|
95
|
+
const queryParams = (0, utils_1.getQueryParamString)(params, true);
|
|
96
|
+
return queryParams;
|
|
97
|
+
}
|
|
98
|
+
getIframeSuffixSrc(liveboardId, vizId, activeTabId) {
|
|
99
|
+
let suffix = `/embed/viz/${liveboardId}`;
|
|
100
|
+
if (activeTabId) {
|
|
101
|
+
suffix = `${suffix}/tab/${activeTabId} `;
|
|
102
|
+
}
|
|
103
|
+
if (vizId) {
|
|
104
|
+
suffix = `${suffix}/${vizId}`;
|
|
105
|
+
}
|
|
106
|
+
const tsPostHashParams = this.getThoughtSpotPostUrlParams();
|
|
107
|
+
suffix = `${suffix}${tsPostHashParams}`;
|
|
108
|
+
return suffix;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Construct the URL of the embedded ThoughtSpot Liveboard or visualization
|
|
112
|
+
* to be loaded within the iframe.
|
|
113
|
+
*/
|
|
114
|
+
getIFrameSrc() {
|
|
115
|
+
var _a;
|
|
116
|
+
const { vizId, activeTabId } = this.viewConfig;
|
|
117
|
+
const liveboardId = (_a = this.viewConfig.liveboardId) !== null && _a !== void 0 ? _a : this.viewConfig.pinboardId;
|
|
118
|
+
if (!liveboardId) {
|
|
119
|
+
this.handleError(errors_1.ERROR_MESSAGE.LIVEBOARD_VIZ_ID_VALIDATION);
|
|
120
|
+
}
|
|
121
|
+
return `${this.getRootIframeSrc()}${this.getIframeSuffixSrc(liveboardId, vizId, activeTabId)}`;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Triggers an event to the embedded app
|
|
125
|
+
*
|
|
126
|
+
* @param messageType The event type
|
|
127
|
+
* @param data The payload to send with the message
|
|
128
|
+
*/
|
|
129
|
+
trigger(messageType, data = {}) {
|
|
130
|
+
const dataWithVizId = data;
|
|
131
|
+
if (typeof dataWithVizId === 'object' && this.viewConfig.vizId) {
|
|
132
|
+
dataWithVizId.vizId = this.viewConfig.vizId;
|
|
133
|
+
}
|
|
134
|
+
return super.trigger(messageType, dataWithVizId);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Render an embedded ThoughtSpot Liveboard or visualization
|
|
138
|
+
*
|
|
139
|
+
* @param renderOptions An object specifying the Liveboard ID,
|
|
140
|
+
* visualization ID and the runtime filters.
|
|
141
|
+
*/
|
|
142
|
+
render() {
|
|
143
|
+
super.render();
|
|
144
|
+
const src = this.getIFrameSrc();
|
|
145
|
+
this.renderV1Embed(src);
|
|
146
|
+
return this;
|
|
147
|
+
}
|
|
148
|
+
navigateToLiveboard(liveboardId, vizId, activeTabId) {
|
|
149
|
+
const path = this.getIframeSuffixSrc(liveboardId, vizId, activeTabId);
|
|
150
|
+
this.viewConfig.liveboardId = liveboardId;
|
|
151
|
+
this.viewConfig.activeTabId = activeTabId;
|
|
152
|
+
this.viewConfig.vizId = vizId;
|
|
153
|
+
if (this.isAppInitialized) {
|
|
154
|
+
this.trigger(types_1.HostEvent.Navigate, path.substring(1));
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
this.render();
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
exports.LiveboardEmbed = LiveboardEmbed;
|
|
162
|
+
/**
|
|
163
|
+
* @hidden
|
|
164
|
+
*/
|
|
165
|
+
class PinboardEmbed extends LiveboardEmbed {
|
|
166
|
+
}
|
|
167
|
+
exports.PinboardEmbed = PinboardEmbed;
|
|
168
|
+
//# sourceMappingURL=liveboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liveboard.js","sourceRoot":"","sources":["../../../src/embed/liveboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liveboard.spec.d.ts","sourceRoot":"","sources":["../../../src/embed/liveboard.spec.ts"],"names":[],"mappings":""}
|