@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,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useEmbedRef = exports.SearchBarEmbed = exports.PinboardEmbed = exports.LiveboardEmbed = exports.AppEmbed = exports.SearchEmbed = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
const use_deep_compare_effect_1 = tslib_1.__importDefault(require("use-deep-compare-effect"));
|
|
7
|
+
const utils_1 = require("../utils");
|
|
8
|
+
const search_bar_1 = require("../embed/search-bar");
|
|
9
|
+
const search_1 = require("../embed/search");
|
|
10
|
+
const app_1 = require("../embed/app");
|
|
11
|
+
const liveboard_1 = require("../embed/liveboard");
|
|
12
|
+
const util_1 = require("./util");
|
|
13
|
+
const componentFactory = (EmbedConstructor) => react_1.default.forwardRef((props, forwardedRef) => {
|
|
14
|
+
const ref = react_1.default.useRef(null);
|
|
15
|
+
const { className, ...embedProps } = props;
|
|
16
|
+
const { viewConfig, listeners } = (0, util_1.getViewPropsAndListeners)(embedProps);
|
|
17
|
+
(0, use_deep_compare_effect_1.default)(() => {
|
|
18
|
+
const tsEmbed = new EmbedConstructor(ref.current, (0, utils_1.deepMerge)({
|
|
19
|
+
insertAsSibling: viewConfig.insertAsSibling,
|
|
20
|
+
frameParams: {
|
|
21
|
+
class: viewConfig.insertAsSibling
|
|
22
|
+
? className || ''
|
|
23
|
+
: '',
|
|
24
|
+
},
|
|
25
|
+
}, viewConfig));
|
|
26
|
+
Object.keys(listeners).forEach((eventName) => {
|
|
27
|
+
tsEmbed.on(eventName, listeners[eventName]);
|
|
28
|
+
});
|
|
29
|
+
tsEmbed.render();
|
|
30
|
+
if (forwardedRef) {
|
|
31
|
+
// eslint-disable-next-line no-param-reassign
|
|
32
|
+
forwardedRef.current = tsEmbed;
|
|
33
|
+
}
|
|
34
|
+
return () => {
|
|
35
|
+
tsEmbed.destroy();
|
|
36
|
+
};
|
|
37
|
+
}, [viewConfig, listeners]);
|
|
38
|
+
return ((viewConfig.insertAsSibling)
|
|
39
|
+
? react_1.default.createElement("span", { "data-testid": "tsEmbed", ref: ref, style: { position: 'absolute' } })
|
|
40
|
+
: react_1.default.createElement("div", { "data-testid": "tsEmbed", ref: ref, className: className }));
|
|
41
|
+
});
|
|
42
|
+
/**
|
|
43
|
+
* React component for Search Embed.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```tsx
|
|
47
|
+
* function Search() {
|
|
48
|
+
* return <SearchEmbed
|
|
49
|
+
* dataSource="dataSourceId"
|
|
50
|
+
* searchOptions={{ searchTokenString: "[revenue]" }}
|
|
51
|
+
* />
|
|
52
|
+
* }
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
exports.SearchEmbed = componentFactory(search_1.SearchEmbed);
|
|
56
|
+
/**
|
|
57
|
+
* React component for Full app Embed.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```tsx
|
|
61
|
+
* function Search() {
|
|
62
|
+
* return <AppEmbed
|
|
63
|
+
* showPrimaryNavbar={false}
|
|
64
|
+
* pageId={Page.Liveboards}
|
|
65
|
+
* onError={(error) => console.error(error)}
|
|
66
|
+
* />
|
|
67
|
+
* }
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
exports.AppEmbed = componentFactory(app_1.AppEmbed);
|
|
71
|
+
/**
|
|
72
|
+
* React component for Liveboard embed.
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```tsx
|
|
76
|
+
* function Liveboard() {
|
|
77
|
+
* return <LiveboardEmbed
|
|
78
|
+
* liveboardId="liveboardId"
|
|
79
|
+
* fullHeight={true} {/* default false *\/}
|
|
80
|
+
* onLiveboardRendered={() => console.log('Liveboard rendered')}
|
|
81
|
+
* vizId="vizId" {/* if doing viz embed *\/}
|
|
82
|
+
* />
|
|
83
|
+
* }
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
exports.LiveboardEmbed = componentFactory(liveboard_1.LiveboardEmbed);
|
|
87
|
+
exports.PinboardEmbed = exports.LiveboardEmbed;
|
|
88
|
+
/**
|
|
89
|
+
* React component for Search bar embed.
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```tsx
|
|
93
|
+
* function SearchBar() {
|
|
94
|
+
* return <SearchBarEmbed
|
|
95
|
+
* dataSource="dataSourceId"
|
|
96
|
+
* searchOptions={{ searchTokenString: "[revenue]" }}
|
|
97
|
+
* />
|
|
98
|
+
* }
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
exports.SearchBarEmbed = componentFactory(search_bar_1.SearchBarEmbed);
|
|
102
|
+
/**
|
|
103
|
+
* Get a reference to the embed component to trigger events on the component.
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```
|
|
107
|
+
* function Component() {
|
|
108
|
+
* const ref = useEmbedRef();
|
|
109
|
+
* useEffect(() => {
|
|
110
|
+
* ref.current.trigger(
|
|
111
|
+
* EmbedEvent.UpdateRuntimeFilter,
|
|
112
|
+
* [{ columnName: 'name', operator: 'EQ', values: ['value']}]);
|
|
113
|
+
* }, [])
|
|
114
|
+
* return <LiveboardEmbed ref={ref} liveboardId={<id>} />
|
|
115
|
+
* }
|
|
116
|
+
* ```
|
|
117
|
+
* @returns {React.MutableRefObject<TsEmbed>} ref
|
|
118
|
+
*/
|
|
119
|
+
const useEmbedRef = () => react_1.default.useRef(null);
|
|
120
|
+
exports.useEmbedRef = useEmbedRef;
|
|
121
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/index.tsx"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,8FAA2D;AAC3D,oCAAqC;AACrC,oDAA6F;AAC7F,4CAAgF;AAChF,sCAAoE;AACpE,kDAA4F;AAI5F,iCAA8D;AAE9D,MAAM,gBAAgB,GAAG,CACrB,gBAAmB,EACrB,EAAE,CAAC,eAAK,CAAC,UAAU,CACjB,CAAC,KAAQ,EAAE,YAA6C,EAAE,EAAE;IACxD,MAAM,GAAG,GAAG,eAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC/C,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IAC3C,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAA,+BAAwB,EAGpD,UAAU,CAAC,CAAC;IAClB,IAAA,iCAAoB,EAAC,GAAG,EAAE;QACtB,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAC5B,GAAI,CAAC,OAAO,EACZ,IAAA,iBAAS,EACL;YACI,eAAe,EAAE,UAAU,CAAC,eAAe;YAC3C,WAAW,EAAE;gBACT,KAAK,EAAE,UAAU,CAAC,eAAe;oBAC7B,CAAC,CAAC,SAAS,IAAI,EAAE;oBACjB,CAAC,CAAC,EAAE;aACX;SACJ,EACD,UAAU,CACb,CACR,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YACzC,OAAO,CAAC,EAAE,CACF,SAAuB,EACvB,SAAS,CAAC,SAAuB,CAAC,CACzC,CAAC;QACN,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,IAAI,YAAY,EAAE;YACd,6CAA6C;YAC7C,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC;SAClC;QACD,OAAO,GAAG,EAAE;YACR,OAAO,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IAE5B,OAAO,CACH,CAAC,UAAU,CAAC,eAAe,CAAC;QACxB,CAAC,CAAC,uDACc,SAAS,EACrB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAC3B;QACR,CAAC,CAAC,sDACc,SAAS,EACrB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,GAClB,CACb,CAAC;AACN,CAAC,CACJ,CAAC;AAIF;;;;;;;;;;;;GAYG;AACU,QAAA,WAAW,GAAG,gBAAgB,CACvC,oBAAY,CACf,CAAC;AAIF;;;;;;;;;;;;;GAaG;AACU,QAAA,QAAQ,GAAG,gBAAgB,CAA4C,cAAS,CAAC,CAAC;AAI/F;;;;;;;;;;;;;;GAcG;AACU,QAAA,cAAc,GAAG,gBAAgB,CAI5C,0BAAe,CAAC,CAAC;AAEN,QAAA,aAAa,GAAG,sBAAc,CAAC;AAI5C;;;;;;;;;;;;GAYG;AACU,QAAA,cAAc,GAAG,gBAAgB,CAI5C,2BAAe,CAAC,CAAC;AAEnB;;;;;;;;;;;;;;;;GAgBG;AACI,MAAM,WAAW,GAAG,GAAoC,EAAE,CAAC,eAAK,CAAC,MAAM,CAAU,IAAI,CAAC,CAAC;AAAjF,QAAA,WAAW,eAAsE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../../../src/react/index.spec.tsx"],"names":[],"mappings":"AACA,OAAO,2BAA2B,CAAC;AACnC,OAAO,yCAAyC,CAAC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
5
|
+
require("@testing-library/jest-dom");
|
|
6
|
+
require("@testing-library/jest-dom/extend-expect");
|
|
7
|
+
const react_2 = require("@testing-library/react");
|
|
8
|
+
const types_1 = require("../types");
|
|
9
|
+
const test_utils_1 = require("../test/test-utils");
|
|
10
|
+
const index_1 = require("./index");
|
|
11
|
+
const index_2 = require("../index");
|
|
12
|
+
const package_json_1 = require("../../package.json");
|
|
13
|
+
const thoughtSpotHost = 'localhost';
|
|
14
|
+
beforeAll(() => {
|
|
15
|
+
(0, index_2.init)({
|
|
16
|
+
thoughtSpotHost,
|
|
17
|
+
authType: index_2.AuthType.None,
|
|
18
|
+
});
|
|
19
|
+
spyOn(window, 'alert');
|
|
20
|
+
});
|
|
21
|
+
describe('React Components', () => {
|
|
22
|
+
describe('SearchEmbed', () => {
|
|
23
|
+
it('Should Render the Iframe with props', async () => {
|
|
24
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(index_1.SearchEmbed, { hideDataSources: true, className: "embedClass" }));
|
|
25
|
+
await (0, react_2.waitFor)(() => (0, test_utils_1.getIFrameEl)(container));
|
|
26
|
+
expect((0, test_utils_1.getIFrameEl)(container).parentElement.classList.contains('embedClass')).toBe(true);
|
|
27
|
+
expect((0, test_utils_1.getIFrameSrc)(container)).toBe(`http://${thoughtSpotHost}/?hostAppUrl=local-host&viewPortHeight=768&viewPortWidth=1024&sdkVersion=${package_json_1.version}&authType=None&hideAction=[%22${types_1.Action.ReportError}%22,%22editACopy%22,%22saveAsView%22,%22updateTSL%22,%22editTSL%22,%22onDeleteAnswer%22]&dataSourceMode=hide&useLastSelectedSources=false&isSearchEmbed=true#/embed/answer`);
|
|
28
|
+
});
|
|
29
|
+
it('Should attach event listeners', async (done) => {
|
|
30
|
+
const userGUID = 'absfdfgd';
|
|
31
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(index_1.SearchEmbed, { onInit: (e) => {
|
|
32
|
+
expect(e.data).toHaveProperty('timestamp');
|
|
33
|
+
}, onAuthInit: (e) => {
|
|
34
|
+
expect(e.data.userGUID).toEqual(userGUID);
|
|
35
|
+
done();
|
|
36
|
+
} }));
|
|
37
|
+
await (0, react_2.waitFor)(() => (0, test_utils_1.getIFrameEl)(container));
|
|
38
|
+
const iframe = (0, test_utils_1.getIFrameEl)(container);
|
|
39
|
+
(0, test_utils_1.postMessageToParent)(iframe.contentWindow, {
|
|
40
|
+
type: types_1.EmbedEvent.AuthInit,
|
|
41
|
+
data: {
|
|
42
|
+
userGUID,
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe('AppEmbed', () => {
|
|
48
|
+
//
|
|
49
|
+
});
|
|
50
|
+
describe('LiveboardEmbed', () => {
|
|
51
|
+
//
|
|
52
|
+
it('Should be able to trigger events on the embed using refs', async () => {
|
|
53
|
+
(0, test_utils_1.mockMessageChannel)();
|
|
54
|
+
const TestComponent = () => {
|
|
55
|
+
const embedRef = (0, index_1.useEmbedRef)();
|
|
56
|
+
const onLiveboardRendered = () => {
|
|
57
|
+
embedRef.current.trigger(types_1.HostEvent.SetVisibleVizs, ['viz1', 'viz2']);
|
|
58
|
+
};
|
|
59
|
+
return (react_1.default.createElement(index_1.LiveboardEmbed, { ref: embedRef, liveboardId: "abcd", onLiveboardRendered: onLiveboardRendered }));
|
|
60
|
+
};
|
|
61
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(TestComponent, null));
|
|
62
|
+
await (0, react_2.waitFor)(() => (0, test_utils_1.getIFrameEl)(container));
|
|
63
|
+
const iframe = (0, test_utils_1.getIFrameEl)(container);
|
|
64
|
+
jest.spyOn(iframe.contentWindow, 'postMessage');
|
|
65
|
+
(0, test_utils_1.postMessageToParent)(iframe.contentWindow, {
|
|
66
|
+
type: types_1.EmbedEvent.LiveboardRendered,
|
|
67
|
+
data: {
|
|
68
|
+
userGUID: 'abcd',
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
await (0, test_utils_1.executeAfterWait)(() => {
|
|
72
|
+
expect(iframe.contentWindow.postMessage).toHaveBeenCalledWith({
|
|
73
|
+
type: types_1.HostEvent.SetVisibleVizs,
|
|
74
|
+
data: ['viz1', 'viz2'],
|
|
75
|
+
}, `http://${thoughtSpotHost}`, expect.anything());
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
it('Should render liveboard with runtime filters', async () => {
|
|
79
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(index_1.LiveboardEmbed, { liveboardId: "abcd", runtimeFilters: [
|
|
80
|
+
{
|
|
81
|
+
columnName: 'revenue',
|
|
82
|
+
operator: types_1.RuntimeFilterOp.EQ,
|
|
83
|
+
values: [100],
|
|
84
|
+
},
|
|
85
|
+
] }));
|
|
86
|
+
await (0, react_2.waitFor)(() => (0, test_utils_1.getIFrameEl)(container));
|
|
87
|
+
expect((0, test_utils_1.getIFrameSrc)(container)).toContain('col1=revenue&op1=EQ&val1=100');
|
|
88
|
+
});
|
|
89
|
+
it('Should have the correct container element', async () => {
|
|
90
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(index_1.LiveboardEmbed, { liveboardId: "abcd", className: "def" }));
|
|
91
|
+
await (0, react_2.waitFor)(() => (0, test_utils_1.getIFrameEl)(container));
|
|
92
|
+
expect(container.querySelector('div')).not.toBe(null);
|
|
93
|
+
expect(container.querySelector('div').classList.contains('def')).toBe(true);
|
|
94
|
+
const { container: containerSibling } = (0, react_2.render)(react_1.default.createElement(index_1.LiveboardEmbed, { liveboardId: "abcd", className: "def", insertAsSibling: true }));
|
|
95
|
+
await (0, react_2.waitFor)(() => (0, test_utils_1.getIFrameEl)(containerSibling));
|
|
96
|
+
expect(containerSibling.querySelector('span')).not.toBe(null);
|
|
97
|
+
expect(containerSibling.querySelector('span').style.position).toBe('absolute');
|
|
98
|
+
expect((0, test_utils_1.getIFrameEl)(containerSibling).classList.contains('def')).toBe(true);
|
|
99
|
+
expect(containerSibling.querySelector('div')).toBe(null);
|
|
100
|
+
});
|
|
101
|
+
it('Should have the correct container element', async () => {
|
|
102
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(index_1.LiveboardEmbed, { liveboardId: "abcd", className: "def" }));
|
|
103
|
+
await (0, react_2.waitFor)(() => (0, test_utils_1.getIFrameEl)(container));
|
|
104
|
+
expect(container.querySelector('div')).not.toBe(null);
|
|
105
|
+
expect(container.querySelector('div').classList.contains('def')).toBe(true);
|
|
106
|
+
const { container: containerSibling } = (0, react_2.render)(react_1.default.createElement(index_1.LiveboardEmbed, { liveboardId: "abcd", className: "def", insertAsSibling: true }));
|
|
107
|
+
await (0, react_2.waitFor)(() => (0, test_utils_1.getIFrameEl)(containerSibling));
|
|
108
|
+
expect(containerSibling.querySelector('span')).not.toBe(null);
|
|
109
|
+
expect(containerSibling.querySelector('span').style.position).toBe('absolute');
|
|
110
|
+
expect((0, test_utils_1.getIFrameEl)(containerSibling).classList.contains('def')).toBe(true);
|
|
111
|
+
expect(containerSibling.querySelector('div')).toBe(null);
|
|
112
|
+
});
|
|
113
|
+
it('Should have the correct container element', async () => {
|
|
114
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(index_1.LiveboardEmbed, { liveboardId: "abcd", className: "def" }));
|
|
115
|
+
await (0, react_2.waitFor)(() => (0, test_utils_1.getIFrameEl)(container));
|
|
116
|
+
expect(container.querySelector('div')).not.toBe(null);
|
|
117
|
+
expect(container.querySelector('div').classList.contains('def')).toBe(true);
|
|
118
|
+
const { container: containerSibling } = (0, react_2.render)(react_1.default.createElement(index_1.LiveboardEmbed, { liveboardId: "abcd", className: "def", insertAsSibling: true }));
|
|
119
|
+
await (0, react_2.waitFor)(() => (0, test_utils_1.getIFrameEl)(containerSibling));
|
|
120
|
+
expect(containerSibling.querySelector('span')).not.toBe(null);
|
|
121
|
+
expect(containerSibling.querySelector('span').style.position).toBe('absolute');
|
|
122
|
+
expect((0, test_utils_1.getIFrameEl)(containerSibling).classList.contains('def')).toBe(true);
|
|
123
|
+
expect(containerSibling.querySelector('div')).toBe(null);
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
describe('SearchBarEmbed', () => {
|
|
127
|
+
it('Should Render the Iframe with props', async () => {
|
|
128
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(index_1.SearchBarEmbed, { className: "embedClass", dataSource: 'test', searchOptions: {
|
|
129
|
+
searchTokenString: '[revenue]',
|
|
130
|
+
executeSearch: true,
|
|
131
|
+
} }));
|
|
132
|
+
await (0, react_2.waitFor)(() => (0, test_utils_1.getIFrameEl)(container));
|
|
133
|
+
expect((0, test_utils_1.getIFrameEl)(container).parentElement.classList.contains('embedClass')).toBe(true);
|
|
134
|
+
expect((0, test_utils_1.getIFrameSrc)(container)).toBe(`http://${thoughtSpotHost}/?hostAppUrl=local-host&viewPortHeight=768&viewPortWidth=1024&sdkVersion=${package_json_1.version}&authType=None&hideAction=[%22${types_1.Action.ReportError}%22]&dataSources=[%22test%22]&searchTokenString=%5Brevenue%5D&executeSearch=true&useLastSelectedSources=false&isSearchEmbed=true#/embed/search-bar-embed`);
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
//# sourceMappingURL=index.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../../../src/react/index.spec.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { EmbedEvent, MessageCallback, ViewConfig } from '../types';
|
|
2
|
+
export type EmbedEventHandlers = {
|
|
3
|
+
[key in keyof typeof EmbedEvent as `on${Capitalize<key>}`]?: MessageCallback;
|
|
4
|
+
};
|
|
5
|
+
export interface EmbedProps extends ViewConfig, EmbedEventHandlers {
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ViewConfigAndListeners<T extends ViewConfig> {
|
|
9
|
+
viewConfig: T;
|
|
10
|
+
listeners: {
|
|
11
|
+
[key in EmbedEvent]?: MessageCallback;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
* @param props
|
|
17
|
+
*/
|
|
18
|
+
export declare function getViewPropsAndListeners<T extends EmbedProps, U extends ViewConfig>(props: T): ViewConfigAndListeners<U>;
|
|
19
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/react/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEnE,MAAM,MAAM,kBAAkB,GAAG;KAAG,GAAG,IAAI,MAAM,OAAO,UAAU,IAAI,KAAK,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe;CAAE,CAAC;AAElH,MAAM,WAAW,UAAW,SAAQ,UAAU,EAAE,kBAAkB;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,UAAU;IACxD,UAAU,EAAE,CAAC,CAAC;IACd,SAAS,EAAE;SAAG,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,eAAe;KAAE,CAAC;CACxD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACpC,CAAC,SAAS,UAAU,EACpB,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAgB7D"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getViewPropsAndListeners = void 0;
|
|
4
|
+
const types_1 = require("../types");
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
* @param props
|
|
8
|
+
*/
|
|
9
|
+
function getViewPropsAndListeners(props) {
|
|
10
|
+
return Object.keys(props).reduce((accu, key) => {
|
|
11
|
+
if (key.startsWith('on')) {
|
|
12
|
+
const eventName = key.substr(2);
|
|
13
|
+
accu.listeners[types_1.EmbedEvent[eventName]] = props[key];
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
accu.viewConfig[key] = props[key];
|
|
17
|
+
}
|
|
18
|
+
return accu;
|
|
19
|
+
}, {
|
|
20
|
+
viewConfig: {},
|
|
21
|
+
listeners: {},
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
exports.getViewPropsAndListeners = getViewPropsAndListeners;
|
|
25
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/react/util.ts"],"names":[],"mappings":";;;AAAA,oCAAmE;AAanE;;;GAGG;AACH,SAAgB,wBAAwB,CAEd,KAAQ;IAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAC5B,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACV,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACtB,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,kBAAU,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;SACtD;aAAM;YACH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;SACrC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,EACD;QACI,UAAU,EAAE,EAAO;QACnB,SAAS,EAAE,EAAE;KAChB,CACJ,CAAC;AACN,CAAC;AAlBD,4DAkBC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export declare const defaultParamsWithoutHiddenActions: string;
|
|
2
|
+
export declare const defaultParams: string;
|
|
3
|
+
export declare const defaultParamsForPinboardEmbed: string;
|
|
4
|
+
export declare const getDocumentBody: () => string;
|
|
5
|
+
type DOMElement = HTMLElement | Document;
|
|
6
|
+
export declare const getRootEl: () => HTMLElement;
|
|
7
|
+
export declare const getRootEl2: () => HTMLElement;
|
|
8
|
+
export declare const getIFrameEl: (container?: DOMElement) => HTMLIFrameElement;
|
|
9
|
+
export declare const getAllIframeEl: () => NodeListOf<HTMLIFrameElement>;
|
|
10
|
+
export declare const getIFrameSrc: (container?: DOMElement) => string;
|
|
11
|
+
export declare const waitFor: (fn: () => boolean) => Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* jsdom does not set event source, therefore we do it
|
|
14
|
+
* programmatically and use dispatchEvent instead of the
|
|
15
|
+
* postMessage API
|
|
16
|
+
* Reference: https://github.com/jsdom/jsdom/issues/2745
|
|
17
|
+
*
|
|
18
|
+
* @param window
|
|
19
|
+
* @param data
|
|
20
|
+
* @param port
|
|
21
|
+
*/
|
|
22
|
+
export declare const postMessageToParent: (window: WindowProxy, data: any, port?: any) => void;
|
|
23
|
+
/**
|
|
24
|
+
* Execute a given function after a certain time has elapsed
|
|
25
|
+
*
|
|
26
|
+
* @param fn The function to be executed after the wait period
|
|
27
|
+
* @param waitTime The wait period in milliseconds
|
|
28
|
+
*/
|
|
29
|
+
export declare const executeAfterWait: (fn: (...args: any[]) => void, waitTime?: number) => Promise<unknown>;
|
|
30
|
+
/**
|
|
31
|
+
* Time (in milliseconds) to wait for async events to be triggered
|
|
32
|
+
*/
|
|
33
|
+
export declare const EVENT_WAIT_TIME = 1000;
|
|
34
|
+
/**
|
|
35
|
+
*
|
|
36
|
+
* @param str
|
|
37
|
+
*/
|
|
38
|
+
export declare function fixedEncodeURI(str: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* MessageChannel is available in Node > 15.0.0. Since the current node
|
|
41
|
+
* environment's used for github actions is not above 14, we are mocking this
|
|
42
|
+
* for the current unit tests.
|
|
43
|
+
*/
|
|
44
|
+
export declare const messageChannelMock: any;
|
|
45
|
+
export declare const mockMessageChannel: () => void;
|
|
46
|
+
export declare const expectUrlMatchesWithParams: (source: string, target: string) => void;
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=test-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../../src/test/test-utils.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,iCAAiC,QAAgH,CAAC;AAC/J,eAAO,MAAM,aAAa,QAAmF,CAAC;AAC9G,eAAO,MAAM,6BAA6B,QAA6I,CAAC;AACxL,eAAO,MAAM,eAAe,cAAyD,CAAC;AAEtF,KAAK,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEzC,eAAO,MAAM,SAAS,mBAAyC,CAAC;AAEhE,eAAO,MAAM,UAAU,mBAA2C,CAAC;AAEnE,eAAO,MAAM,WAAW,eAAe,UAAU,sBAAiD,CAAC;AAEnG,eAAO,MAAM,cAAc,qCAA4C,CAAC;AAExE,eAAO,MAAM,YAAY,eAAe,UAAU,WAA0C,CAAC;AAE7F,eAAO,MAAM,OAAO,OAAQ,MAAM,OAAO,KAAG,QAAQ,IAAI,CAQtD,CAAC;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,WAAY,WAAW,QAAQ,GAAG,SAAS,GAAG,SAO7E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,iBACX,GAAG,EAAE,KAAK,IAAI,wCAO9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,UAEzC;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,GAGhC,CAAC;AACF,eAAO,MAAM,kBAAkB,YAM9B,CAAC;AAEF,eAAO,MAAM,0BAA0B,WAAY,MAAM,UAAU,MAAM,SAQxE,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.expectUrlMatchesWithParams = exports.mockMessageChannel = exports.messageChannelMock = exports.fixedEncodeURI = exports.EVENT_WAIT_TIME = exports.executeAfterWait = exports.postMessageToParent = exports.waitFor = exports.getIFrameSrc = exports.getAllIframeEl = exports.getIFrameEl = exports.getRootEl2 = exports.getRootEl = exports.getDocumentBody = exports.defaultParamsForPinboardEmbed = exports.defaultParams = exports.defaultParamsWithoutHiddenActions = void 0;
|
|
4
|
+
const package_json_1 = require("../../package.json");
|
|
5
|
+
const types_1 = require("../types");
|
|
6
|
+
/**
|
|
7
|
+
Initialises fetch to the global object
|
|
8
|
+
*/
|
|
9
|
+
global.fetch = jest.fn(() => Promise.resolve({
|
|
10
|
+
json: () => ({ mixpanelAccessToken: '' }),
|
|
11
|
+
}));
|
|
12
|
+
exports.defaultParamsWithoutHiddenActions = `hostAppUrl=local-host&viewPortHeight=768&viewPortWidth=1024&sdkVersion=${package_json_1.version}&authType=${types_1.AuthType.None}`;
|
|
13
|
+
exports.defaultParams = `&${exports.defaultParamsWithoutHiddenActions}&hideAction=[%22${types_1.Action.ReportError}%22]`;
|
|
14
|
+
exports.defaultParamsForPinboardEmbed = `hostAppUrl=local-host&viewPortHeight=768&viewPortWidth=1024&sdkVersion=${package_json_1.version}&authType=None&hideAction=[%22${types_1.Action.ReportError}%22]`;
|
|
15
|
+
const getDocumentBody = () => '<div id="embed"></div><div id="embed-2"></div>';
|
|
16
|
+
exports.getDocumentBody = getDocumentBody;
|
|
17
|
+
const getRootEl = () => document.getElementById('embed');
|
|
18
|
+
exports.getRootEl = getRootEl;
|
|
19
|
+
const getRootEl2 = () => document.getElementById('embed-2');
|
|
20
|
+
exports.getRootEl2 = getRootEl2;
|
|
21
|
+
const getIFrameEl = (container = document) => container.querySelector('iframe');
|
|
22
|
+
exports.getIFrameEl = getIFrameEl;
|
|
23
|
+
const getAllIframeEl = () => document.querySelectorAll('iframe');
|
|
24
|
+
exports.getAllIframeEl = getAllIframeEl;
|
|
25
|
+
const getIFrameSrc = (container = document) => (0, exports.getIFrameEl)(container).src;
|
|
26
|
+
exports.getIFrameSrc = getIFrameSrc;
|
|
27
|
+
const waitFor = (fn) => new Promise((resolve) => {
|
|
28
|
+
const interval = setInterval(() => {
|
|
29
|
+
const value = fn();
|
|
30
|
+
if (value) {
|
|
31
|
+
clearInterval(interval);
|
|
32
|
+
resolve();
|
|
33
|
+
}
|
|
34
|
+
}, 100);
|
|
35
|
+
});
|
|
36
|
+
exports.waitFor = waitFor;
|
|
37
|
+
/**
|
|
38
|
+
* jsdom does not set event source, therefore we do it
|
|
39
|
+
* programmatically and use dispatchEvent instead of the
|
|
40
|
+
* postMessage API
|
|
41
|
+
* Reference: https://github.com/jsdom/jsdom/issues/2745
|
|
42
|
+
*
|
|
43
|
+
* @param window
|
|
44
|
+
* @param data
|
|
45
|
+
* @param port
|
|
46
|
+
*/
|
|
47
|
+
const postMessageToParent = (window, data, port) => {
|
|
48
|
+
const message = new MessageEvent('message', {
|
|
49
|
+
data,
|
|
50
|
+
source: window,
|
|
51
|
+
ports: [port],
|
|
52
|
+
});
|
|
53
|
+
window.parent.dispatchEvent(message);
|
|
54
|
+
};
|
|
55
|
+
exports.postMessageToParent = postMessageToParent;
|
|
56
|
+
/**
|
|
57
|
+
* Execute a given function after a certain time has elapsed
|
|
58
|
+
*
|
|
59
|
+
* @param fn The function to be executed after the wait period
|
|
60
|
+
* @param waitTime The wait period in milliseconds
|
|
61
|
+
*/
|
|
62
|
+
const executeAfterWait = (fn, waitTime = 0) => new Promise((resolve, reject) => {
|
|
63
|
+
setTimeout(() => {
|
|
64
|
+
const value = fn();
|
|
65
|
+
resolve(value);
|
|
66
|
+
}, waitTime);
|
|
67
|
+
});
|
|
68
|
+
exports.executeAfterWait = executeAfterWait;
|
|
69
|
+
/**
|
|
70
|
+
* Time (in milliseconds) to wait for async events to be triggered
|
|
71
|
+
*/
|
|
72
|
+
exports.EVENT_WAIT_TIME = 1000;
|
|
73
|
+
/**
|
|
74
|
+
*
|
|
75
|
+
* @param str
|
|
76
|
+
*/
|
|
77
|
+
function fixedEncodeURI(str) {
|
|
78
|
+
return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']');
|
|
79
|
+
}
|
|
80
|
+
exports.fixedEncodeURI = fixedEncodeURI;
|
|
81
|
+
/**
|
|
82
|
+
* MessageChannel is available in Node > 15.0.0. Since the current node
|
|
83
|
+
* environment's used for github actions is not above 14, we are mocking this
|
|
84
|
+
* for the current unit tests.
|
|
85
|
+
*/
|
|
86
|
+
exports.messageChannelMock = {
|
|
87
|
+
port1: {},
|
|
88
|
+
port2: {},
|
|
89
|
+
};
|
|
90
|
+
const mockMessageChannel = () => {
|
|
91
|
+
exports.messageChannelMock.port1.close = jest.fn();
|
|
92
|
+
exports.messageChannelMock.port2.onmessage = jest.fn();
|
|
93
|
+
window.MessageChannel = function MessageChannelMock() {
|
|
94
|
+
return exports.messageChannelMock;
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
exports.mockMessageChannel = mockMessageChannel;
|
|
98
|
+
const expectUrlMatchesWithParams = (source, target) => {
|
|
99
|
+
const sourceUrl = new URL(source);
|
|
100
|
+
const targetUrl = new URL(target);
|
|
101
|
+
expect(sourceUrl.origin).toBe(targetUrl.origin);
|
|
102
|
+
expect(sourceUrl.pathname).toBe(targetUrl.pathname);
|
|
103
|
+
const sourceParamsObj = Object.fromEntries(sourceUrl.searchParams);
|
|
104
|
+
const targetParamsObj = Object.fromEntries(targetUrl.searchParams);
|
|
105
|
+
expect(sourceParamsObj).toMatchObject(targetParamsObj);
|
|
106
|
+
};
|
|
107
|
+
exports.expectUrlMatchesWithParams = expectUrlMatchesWithParams;
|
|
108
|
+
//# sourceMappingURL=test-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../../src/test/test-utils.ts"],"names":[],"mappings":"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"}
|