@thoughtspot/visual-embed-sdk 1.24.0-alpha.6 → 1.24.0-dev
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 +2 -2
- package/cjs/src/embed/app.d.ts +1 -0
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +1 -0
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +6 -1
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +10 -2
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +23 -7
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/search.d.ts +5 -1
- package/cjs/src/embed/search.d.ts.map +1 -1
- package/cjs/src/embed/search.js +4 -1
- package/cjs/src/embed/search.js.map +1 -1
- package/cjs/src/embed/search.spec.js +15 -0
- package/cjs/src/embed/search.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts +19 -0
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +136 -6
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +38 -1
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/react/all-types-export.d.ts +1 -1
- package/cjs/src/react/all-types-export.d.ts.map +1 -1
- package/cjs/src/react/all-types-export.js +2 -1
- package/cjs/src/react/all-types-export.js.map +1 -1
- package/cjs/src/react/index.d.ts +1 -0
- package/cjs/src/react/index.d.ts.map +1 -1
- package/cjs/src/react/index.js +18 -4
- package/cjs/src/react/index.js.map +1 -1
- package/cjs/src/types.d.ts +87 -7
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +60 -5
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils.d.ts +9 -1
- package/cjs/src/utils.d.ts.map +1 -1
- package/cjs/src/utils.js +36 -1
- package/cjs/src/utils.js.map +1 -1
- package/cjs/src/utils.spec.js +24 -0
- package/cjs/src/utils.spec.js.map +1 -1
- package/dist/src/embed/app.d.ts +1 -0
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +6 -1
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/search.d.ts +5 -1
- package/dist/src/embed/search.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +19 -0
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/react/all-types-export.d.ts +1 -1
- package/dist/src/react/all-types-export.d.ts.map +1 -1
- package/dist/src/react/index.d.ts +1 -0
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/types.d.ts +87 -7
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils.d.ts +9 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +264 -21
- package/dist/tsembed-react.js +264 -20
- package/dist/tsembed.es.js +245 -16
- package/dist/tsembed.js +245 -16
- package/dist/visual-embed-sdk-react-full.d.ts +115 -7
- package/dist/visual-embed-sdk-react.d.ts +115 -7
- package/dist/visual-embed-sdk.d.ts +114 -7
- package/lib/package.json +2 -2
- package/lib/src/embed/app.d.ts +1 -0
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +1 -0
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +6 -1
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +11 -3
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +23 -7
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/search.d.ts +5 -1
- package/lib/src/embed/search.d.ts.map +1 -1
- package/lib/src/embed/search.js +5 -2
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/search.spec.js +15 -0
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +19 -0
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +137 -7
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +38 -1
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/react/all-types-export.d.ts +1 -1
- package/lib/src/react/all-types-export.d.ts.map +1 -1
- package/lib/src/react/all-types-export.js +1 -1
- package/lib/src/react/all-types-export.js.map +1 -1
- package/lib/src/react/index.d.ts +1 -0
- package/lib/src/react/index.d.ts.map +1 -1
- package/lib/src/react/index.js +17 -3
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/types.d.ts +87 -7
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +60 -5
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils.d.ts +9 -1
- package/lib/src/utils.d.ts.map +1 -1
- package/lib/src/utils.js +32 -0
- package/lib/src/utils.js.map +1 -1
- package/lib/src/utils.spec.js +25 -1
- package/lib/src/utils.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +116 -9
- package/package.json +5 -5
- package/src/embed/app.ts +1 -0
- package/src/embed/liveboard.spec.ts +29 -10
- package/src/embed/liveboard.ts +19 -2
- package/src/embed/search.spec.ts +18 -0
- package/src/embed/search.ts +16 -1
- package/src/embed/ts-embed.spec.ts +40 -1
- package/src/embed/ts-embed.ts +174 -14
- package/src/react/all-types-export.ts +1 -0
- package/src/react/index.tsx +25 -8
- package/src/types.ts +97 -16
- package/src/utils.spec.ts +31 -0
- package/src/utils.ts +43 -0
package/dist/tsembed.es.js
CHANGED
|
@@ -28,6 +28,24 @@ const getFilterQuery = (runtimeFilters) => {
|
|
|
28
28
|
}
|
|
29
29
|
return null;
|
|
30
30
|
};
|
|
31
|
+
/**
|
|
32
|
+
* Construct a runtime parameter override query string from the given option.
|
|
33
|
+
*
|
|
34
|
+
* @param runtimeParameters
|
|
35
|
+
*/
|
|
36
|
+
const getRuntimeParameters = (runtimeParameters) => {
|
|
37
|
+
if (runtimeParameters && runtimeParameters.length) {
|
|
38
|
+
const params = runtimeParameters.map((param, valueIndex) => {
|
|
39
|
+
const index = valueIndex + 1;
|
|
40
|
+
const filterExpr = [];
|
|
41
|
+
filterExpr.push(`param${index}=${encodeURIComponent(param.name)}`);
|
|
42
|
+
filterExpr.push(`paramVal${index}=${encodeURIComponent(param.value)}`);
|
|
43
|
+
return filterExpr.join('&');
|
|
44
|
+
});
|
|
45
|
+
return `${params.join('&')}`;
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
};
|
|
31
49
|
/**
|
|
32
50
|
* Convert a value to a string representation to be sent as a query
|
|
33
51
|
* parameter to the ThoughtSpot app.
|
|
@@ -175,7 +193,21 @@ const getRuntimeFilters = (runtimefilters) => getFilterQuery(runtimefilters || [
|
|
|
175
193
|
*/
|
|
176
194
|
function getDOMNode(domSelector) {
|
|
177
195
|
return typeof domSelector === 'string' ? document.querySelector(domSelector) : domSelector;
|
|
178
|
-
}
|
|
196
|
+
}
|
|
197
|
+
const setStyleProperties = (element, styleProperties) => {
|
|
198
|
+
if (!element || !styleProperties)
|
|
199
|
+
return;
|
|
200
|
+
Object.keys(styleProperties).forEach((styleProperty) => {
|
|
201
|
+
element.style[styleProperty] = styleProperties[styleProperty].toString();
|
|
202
|
+
});
|
|
203
|
+
};
|
|
204
|
+
const removeStyleProperties = (element, styleProperties) => {
|
|
205
|
+
if (!element || !styleProperties)
|
|
206
|
+
return;
|
|
207
|
+
styleProperties.forEach((styleProperty) => {
|
|
208
|
+
element.style.removeProperty(styleProperty);
|
|
209
|
+
});
|
|
210
|
+
};
|
|
179
211
|
|
|
180
212
|
/**
|
|
181
213
|
* Copyright (c) 2023
|
|
@@ -886,21 +918,21 @@ var EmbedEvent;
|
|
|
886
918
|
*/
|
|
887
919
|
EmbedEvent["InsertIntoSlide"] = "insertInToSlide";
|
|
888
920
|
/**
|
|
921
|
+
* @hidden
|
|
889
922
|
* Emitted when a user changes any filter on a Liveboard.
|
|
890
|
-
*
|
|
891
923
|
* @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
|
|
892
924
|
*/
|
|
893
925
|
EmbedEvent["FilterChanged"] = "filterChanged";
|
|
894
926
|
/**
|
|
895
927
|
* Emitted when a user click on Go button in Sage Embed
|
|
896
928
|
*
|
|
897
|
-
* @version SDK : 1.
|
|
929
|
+
* @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
898
930
|
*/
|
|
899
931
|
EmbedEvent["SageEmbedQuery"] = "sageEmbedQuery";
|
|
900
932
|
/**
|
|
901
933
|
* Emitten when a user select data source in Sage Embed
|
|
902
934
|
*
|
|
903
|
-
* @version SDK : 1.
|
|
935
|
+
* @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
904
936
|
*/
|
|
905
937
|
EmbedEvent["SageWorksheetUpdated"] = "sageWorksheetUpdated";
|
|
906
938
|
/**
|
|
@@ -909,6 +941,51 @@ var EmbedEvent;
|
|
|
909
941
|
* @version SDK : 1.27.0 | Thoughtspot: 9.8.0.cl
|
|
910
942
|
*/
|
|
911
943
|
EmbedEvent["UpdateConnection"] = "updateConnection";
|
|
944
|
+
/**
|
|
945
|
+
* Emitted when name, status (private or public) or filter values of a
|
|
946
|
+
* PersonalisedView is updated.
|
|
947
|
+
*
|
|
948
|
+
* @returns viewName: string
|
|
949
|
+
* @returns viewId: string
|
|
950
|
+
* @returns liveboardId: string
|
|
951
|
+
* @returns isPublic: boolean
|
|
952
|
+
* @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
953
|
+
*/
|
|
954
|
+
EmbedEvent["UpdatePersonalisedView"] = "updatePersonalisedView";
|
|
955
|
+
/**
|
|
956
|
+
* Emitted when a PersonalisedView is saved.
|
|
957
|
+
*
|
|
958
|
+
* @returns viewName: string
|
|
959
|
+
* @returns viewId: string
|
|
960
|
+
* @returns liveboardId: string
|
|
961
|
+
* @returns isPublic: boolean
|
|
962
|
+
* @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
963
|
+
*/
|
|
964
|
+
EmbedEvent["SavePersonalisedView"] = "savePersonalisedView";
|
|
965
|
+
/**
|
|
966
|
+
* Emitted when a Liveboard is reset.
|
|
967
|
+
*
|
|
968
|
+
* @returns viewName: string
|
|
969
|
+
* @returns viewId: string
|
|
970
|
+
* @returns liveboardId: string
|
|
971
|
+
* @returns isPublic: boolean
|
|
972
|
+
* @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
973
|
+
*/
|
|
974
|
+
EmbedEvent["ResetLiveboard"] = "resetLiveboard";
|
|
975
|
+
/**
|
|
976
|
+
* Emitted when a PersonalisedView is deleted.
|
|
977
|
+
*
|
|
978
|
+
* @returns views: string[]
|
|
979
|
+
* @returns liveboardId: string
|
|
980
|
+
* @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
981
|
+
*/
|
|
982
|
+
EmbedEvent["DeletePersonalisedView"] = "deletePersonalisedView";
|
|
983
|
+
/**
|
|
984
|
+
* Emitten when a user creates a new worksheet
|
|
985
|
+
*
|
|
986
|
+
* @version SDK : 1.27.0 | Thoughtspot: 9.8.0.cl
|
|
987
|
+
*/
|
|
988
|
+
EmbedEvent["CreateWorksheet"] = "createWorksheet";
|
|
912
989
|
})(EmbedEvent || (EmbedEvent = {}));
|
|
913
990
|
/**
|
|
914
991
|
* Event types that can be triggered by the host application
|
|
@@ -1553,16 +1630,16 @@ var HostEvent;
|
|
|
1553
1630
|
*/
|
|
1554
1631
|
HostEvent["ResetSearch"] = "resetSearch";
|
|
1555
1632
|
/**
|
|
1633
|
+
* @hidden
|
|
1556
1634
|
* Gets the currents visible and runtime filters applied on a Liveboard
|
|
1557
|
-
*
|
|
1558
1635
|
* @example
|
|
1559
1636
|
* liveboardEmbed.trigger(HostEvent.GetFilters)
|
|
1560
1637
|
* @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
|
|
1561
1638
|
*/
|
|
1562
1639
|
HostEvent["GetFilters"] = "getFilters";
|
|
1563
1640
|
/**
|
|
1641
|
+
* @hidden
|
|
1564
1642
|
* Updates the visible filters on the Liveboard.
|
|
1565
|
-
*
|
|
1566
1643
|
* @param - filter: filter object containing column name and filter operation and values
|
|
1567
1644
|
* @example
|
|
1568
1645
|
*
|
|
@@ -2550,6 +2627,16 @@ var Action;
|
|
|
2550
2627
|
* ```
|
|
2551
2628
|
*/
|
|
2552
2629
|
Action["ManageMonitor"] = "ManageMonitor";
|
|
2630
|
+
/**
|
|
2631
|
+
* Action ID for Liveboard Personalised Views dropdown
|
|
2632
|
+
*
|
|
2633
|
+
* @example
|
|
2634
|
+
* ```js
|
|
2635
|
+
* disabledActions: [Action.PersonalisedViewsDropdown]
|
|
2636
|
+
* ```
|
|
2637
|
+
* @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
2638
|
+
*/
|
|
2639
|
+
Action["PersonalisedViewsDropdown"] = "personalisedViewsDropdown";
|
|
2553
2640
|
})(Action || (Action = {}));
|
|
2554
2641
|
// eslint-disable-next-line no-shadow
|
|
2555
2642
|
var OperationType;
|
|
@@ -11183,7 +11270,7 @@ function processTrigger(iFrame, messageType, thoughtSpotHost, data) {
|
|
|
11183
11270
|
});
|
|
11184
11271
|
}
|
|
11185
11272
|
|
|
11186
|
-
var name="@thoughtspot/visual-embed-sdk";var version="1.24.0-
|
|
11273
|
+
var name="@thoughtspot/visual-embed-sdk";var version="1.24.0-dev";var description="ThoughtSpot Embed SDK";var module="lib/src/index.js";var main="dist/tsembed.js";var types="lib/src/index.d.ts";var files=["dist/**","lib/**","src/**","cjs/**"];var exports={".":{"import":"./lib/src/index.js",require:"./cjs/src/index.js",types:"./lib/src/index.d.ts"},"./react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"},"./lib/src/react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"}};var typesVersions={"*":{react:["./lib/src/react/all-types-export.d.ts"]}};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p . --incremental false; tsc -p . --incremental false --module commonjs --outDir cjs",start:"gatsby develop","build:gatsby":"npm run clean:gatsby && gatsby build --prefix-paths","build:gatsby:noprefix":"npm run clean:gatsby && gatsby build","serve:gatsby":"gatsby serve","clean:gatsby":"gatsby clean","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts-file":"dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts","bundle-dts":"dts-bundle --name ../../dist/visual-embed-sdk --main lib/src/index.d.ts --outputAsModuleFolder=true","bundle-dts-react":"dts-bundle --name ../../../dist/visual-embed-sdk-react --main lib/src/react/index.d.ts --outputAsModuleFolder=true","bundle-dts-react-full":"dts-bundle --name ../../../dist/visual-embed-sdk-react-full --main lib/src/react/all-types-export.d.ts --outputAsModuleFolder=true",build:"rollup -c",watch:"rollup -cw","docs-cmd":"node scripts/gatsby-commands.js",docgen:"typedoc --tsconfig tsconfig.json --theme typedoc-theme","test-sdk":"jest -c jest.config.sdk.js --runInBand","test-docs":"jest -c jest.config.docs.js",test:"npm run test-sdk && npm run test-docs",posttest:"cat ./coverage/sdk/lcov.info | coveralls","is-publish-allowed":"node scripts/is-publish-allowed.js",prepublishOnly:"npm run tsc && npm run bundle-dts-file && npm run bundle-dts && npm run bundle-dts-react && npm run bundle-dts-react-full && npm run build","check-size":"npm run build && size-limit","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={algoliasearch:"^4.10.5",classnames:"^2.3.1",dompurify:"^2.3.4","eslint-plugin-comment-length":"^0.9.2","eslint-plugin-jsdoc":"^40.1.0",eventemitter3:"^4.0.7","gatsby-plugin-vercel":"^1.0.3","html-react-parser":"^1.4.12",lodash:"^4.17.21","mixpanel-browser":"^2.45.0","ts-deepmerge":"^6.0.2",tslib:"^2.5.3","use-deep-compare-effect":"^1.8.1"};var devDependencies={"@mdx-js/mdx":"^1.6.22","@mdx-js/react":"^1.6.22","@react-icons/all-files":"^4.1.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^11.2.1","@rollup/plugin-replace":"^5.0.2","@size-limit/preset-big-lib":"^8.2.6","@testing-library/dom":"^7.31.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^11.2.7","@testing-library/user-event":"^13.1.8","@types/jest":"^22.2.3","@types/mixpanel-browser":"^2.35.6","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0",asciidoctor:"^2.2.1","babel-jest":"^26.6.3","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1",coveralls:"^3.1.0","current-git-branch":"^1.1.0","dts-bundle":"^0.7.3",eslint:"^7.12.1","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.15.0","eslint-import-resolver-typescript":"^2.3.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.1.4","eslint-plugin-react-hooks":"^4.2.0","fs-extra":"^10.0.0",gatsby:"3.13.1","gatsby-plugin-algolia":"^0.22.2","gatsby-plugin-catch-links":"^3.1.0","gatsby-plugin-env-variables":"^2.1.0","gatsby-plugin-intl":"^0.3.3","gatsby-plugin-manifest":"^3.2.0","gatsby-plugin-output":"^0.1.3","gatsby-plugin-sass":"6.7.0","gatsby-plugin-sitemap":"^4.10.0","gatsby-source-filesystem":"3.1.0","gatsby-transformer-asciidoc":"2.1.0","gatsby-transformer-rehype":"2.0.0","gh-pages":"^3.1.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^1.1.1",jest:"^26.6.3","jest-puppeteer":"^4.4.0",jsdom:"^17.0.0","node-sass":"^8.0.0",prettier:"2.1.2",puppeteer:"^7.0.1",react:"^16.14.0","react-dom":"^16.14.0","react-resizable":"^1.11.0","react-resize-detector":"^6.6.0","react-test-renderer":"^17.0.2","react-use-flexsearch":"^0.1.1",rollup:"2.30.0","rollup-plugin-typescript2":"0.27.3","ts-jest":"^26.5.5","ts-loader":"8.0.4",typedoc:"0.21.6","typedoc-plugin-toc-group":"thoughtspot/typedoc-plugin-toc-group",typescript:"^4.9.4","url-search-params-polyfill":"^8.1.0",util:"^0.12.4"};var author="ThoughtSpot";var email="support@thoughtspot.com";var license="ThoughtSpot Development Tools End User License Agreement";var directories={lib:"lib"};var repository={type:"git",url:"git+https://github.com/thoughtspot/visual-embed-sdk.git"};var publishConfig={registry:"https://registry.npmjs.org"};var keywords=["thoughtspot","everywhere","embed","sdk","analytics"];var bugs={url:"https://github.com/thoughtspot/visual-embed-sdk/issues"};var homepage="https://github.com/thoughtspot/visual-embed-sdk#readme";var globals={window:{}};var pkgInfo = {name:name,version:version,description:description,module:module,main:main,types:types,files:files,exports:exports,typesVersions:typesVersions,"size-limit":[{path:"dist/tsembed.js",limit:"40 kB"}],scripts:scripts,peerDependencies:peerDependencies,dependencies:dependencies,devDependencies:devDependencies,author:author,email:email,license:license,directories:directories,repository:repository,publishConfig:publishConfig,keywords:keywords,bugs:bugs,homepage:homepage,globals:globals};
|
|
11187
11274
|
|
|
11188
11275
|
/**
|
|
11189
11276
|
* Copyright (c) 2022
|
|
@@ -11242,11 +11329,14 @@ class TsEmbed {
|
|
|
11242
11329
|
data: {
|
|
11243
11330
|
customisations: getCustomisations(this.embedConfig, this.viewConfig),
|
|
11244
11331
|
authToken,
|
|
11245
|
-
runtimeFilterParams:
|
|
11332
|
+
runtimeFilterParams: this.viewConfig.excludeRuntimeFiltersfromURL
|
|
11333
|
+
? getRuntimeFilters(this.viewConfig.runtimeFilters)
|
|
11334
|
+
: null,
|
|
11246
11335
|
hiddenHomepageModules: this.viewConfig.hiddenHomepageModules || [],
|
|
11247
11336
|
hostConfig: this.embedConfig.hostConfig,
|
|
11248
11337
|
hiddenHomeLeftNavItems: ((_a = this.viewConfig) === null || _a === void 0 ? void 0 : _a.hiddenHomeLeftNavItems)
|
|
11249
|
-
? (_b = this.viewConfig) === null || _b === void 0 ? void 0 : _b.hiddenHomeLeftNavItems
|
|
11338
|
+
? (_b = this.viewConfig) === null || _b === void 0 ? void 0 : _b.hiddenHomeLeftNavItems
|
|
11339
|
+
: [],
|
|
11250
11340
|
},
|
|
11251
11341
|
});
|
|
11252
11342
|
};
|
|
@@ -11575,7 +11665,12 @@ class TsEmbed {
|
|
|
11575
11665
|
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_START);
|
|
11576
11666
|
return (_a = getAuthPromise()) === null || _a === void 0 ? void 0 : _a.then((isLoggedIn) => {
|
|
11577
11667
|
if (!isLoggedIn) {
|
|
11578
|
-
|
|
11668
|
+
if (this.isPreRendered) {
|
|
11669
|
+
this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage);
|
|
11670
|
+
}
|
|
11671
|
+
else {
|
|
11672
|
+
this.insertIntoDOM(this.embedConfig.loginFailedMessage);
|
|
11673
|
+
}
|
|
11579
11674
|
return;
|
|
11580
11675
|
}
|
|
11581
11676
|
this.iFrame = this.iFrame || this.createIframeEl(url);
|
|
@@ -11597,7 +11692,12 @@ class TsEmbed {
|
|
|
11597
11692
|
this.iFrame.addEventListener('error', () => {
|
|
11598
11693
|
nextInQueue();
|
|
11599
11694
|
});
|
|
11600
|
-
|
|
11695
|
+
if (this.isPreRendered) {
|
|
11696
|
+
this.insertIntoDOMForPreRender(this.iFrame);
|
|
11697
|
+
}
|
|
11698
|
+
else {
|
|
11699
|
+
this.insertIntoDOM(this.iFrame);
|
|
11700
|
+
}
|
|
11601
11701
|
const prefetchIframe = document.querySelectorAll('.prefetchIframe');
|
|
11602
11702
|
if (prefetchIframe.length) {
|
|
11603
11703
|
prefetchIframe.forEach((el) => {
|
|
@@ -11610,11 +11710,119 @@ class TsEmbed {
|
|
|
11610
11710
|
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_FAILED, {
|
|
11611
11711
|
error: JSON.stringify(error),
|
|
11612
11712
|
});
|
|
11613
|
-
|
|
11713
|
+
if (this.isPreRendered) {
|
|
11714
|
+
this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage);
|
|
11715
|
+
}
|
|
11716
|
+
else {
|
|
11717
|
+
this.insertIntoDOM(this.embedConfig.loginFailedMessage);
|
|
11718
|
+
}
|
|
11614
11719
|
this.handleError(error);
|
|
11615
11720
|
});
|
|
11616
11721
|
});
|
|
11617
11722
|
}
|
|
11723
|
+
getPreRenderIds() {
|
|
11724
|
+
return {
|
|
11725
|
+
wrapper: `tsEmbed-pre-render-wrapper-${this.viewConfig.preRenderId}`,
|
|
11726
|
+
shield: `tsEmbed-pre-render-shield-${this.viewConfig.preRenderId}`,
|
|
11727
|
+
child: `tsEmbed-pre-render-child-${this.viewConfig.preRenderId}`,
|
|
11728
|
+
};
|
|
11729
|
+
}
|
|
11730
|
+
createPreRenderWrapper(child) {
|
|
11731
|
+
if (!this.viewConfig.preRenderId) {
|
|
11732
|
+
throw new Error('Pre render id is required');
|
|
11733
|
+
}
|
|
11734
|
+
const preRenderIds = this.getPreRenderIds();
|
|
11735
|
+
const stalePreRenderWrapper = document.getElementById(preRenderIds.wrapper);
|
|
11736
|
+
if (stalePreRenderWrapper) {
|
|
11737
|
+
console.log('Found stale wrapper , removing');
|
|
11738
|
+
stalePreRenderWrapper.remove();
|
|
11739
|
+
}
|
|
11740
|
+
const preRenderWrapper = document.createElement('div');
|
|
11741
|
+
preRenderWrapper.id = preRenderIds.wrapper;
|
|
11742
|
+
setStyleProperties(preRenderWrapper, { position: 'absolute', width: '100vw', height: '100vh' });
|
|
11743
|
+
const preRenderShield = document.createElement('div');
|
|
11744
|
+
preRenderShield.id = preRenderIds.shield;
|
|
11745
|
+
setStyleProperties(preRenderShield, { position: 'absolute', width: '100%', height: '100%' });
|
|
11746
|
+
child.id = preRenderIds.child;
|
|
11747
|
+
preRenderWrapper.appendChild(child);
|
|
11748
|
+
preRenderWrapper.appendChild(preRenderShield);
|
|
11749
|
+
this.preRenderWrapper = preRenderWrapper;
|
|
11750
|
+
this.preRenderShield = preRenderShield;
|
|
11751
|
+
this.preRenderChild = child;
|
|
11752
|
+
return preRenderWrapper;
|
|
11753
|
+
}
|
|
11754
|
+
isPreRenderAvailable() {
|
|
11755
|
+
const preRenderIds = this.getPreRenderIds();
|
|
11756
|
+
this.preRenderWrapper = this.preRenderWrapper
|
|
11757
|
+
|| document.getElementById(preRenderIds.wrapper);
|
|
11758
|
+
this.preRenderShield = this.preRenderShield
|
|
11759
|
+
|| document.getElementById(preRenderIds.shield);
|
|
11760
|
+
this.preRenderChild = this.preRenderChild
|
|
11761
|
+
|| document.getElementById(preRenderIds.child);
|
|
11762
|
+
return !!this.preRenderWrapper && !!this.preRenderShield
|
|
11763
|
+
&& !!this.preRenderChild;
|
|
11764
|
+
}
|
|
11765
|
+
insertIntoDOMForPreRender(child) {
|
|
11766
|
+
let childNode;
|
|
11767
|
+
if (typeof child === 'string') {
|
|
11768
|
+
const divChildNode = document.createElement('div');
|
|
11769
|
+
divChildNode.innerHTML = child;
|
|
11770
|
+
childNode = divChildNode;
|
|
11771
|
+
}
|
|
11772
|
+
else {
|
|
11773
|
+
childNode = child;
|
|
11774
|
+
}
|
|
11775
|
+
const preRenderWrapper = this.createPreRenderWrapper(childNode);
|
|
11776
|
+
document.body.appendChild(preRenderWrapper);
|
|
11777
|
+
this.hidePreRender();
|
|
11778
|
+
}
|
|
11779
|
+
hidePreRender() {
|
|
11780
|
+
if (!this.isPreRenderAvailable()) {
|
|
11781
|
+
// if the embed component is not preRendered , nothing to hide
|
|
11782
|
+
console.log('No preRender found, not hiding ');
|
|
11783
|
+
return;
|
|
11784
|
+
}
|
|
11785
|
+
setStyleProperties(this.preRenderWrapper, {
|
|
11786
|
+
opacity: '0',
|
|
11787
|
+
pointerEvents: 'none',
|
|
11788
|
+
zIndex: '-1000',
|
|
11789
|
+
position: 'absolute ',
|
|
11790
|
+
top: '0',
|
|
11791
|
+
left: '0',
|
|
11792
|
+
});
|
|
11793
|
+
const childBoundingRect = this.preRenderChild.getBoundingClientRect();
|
|
11794
|
+
setStyleProperties(this.preRenderShield, {
|
|
11795
|
+
opacity: '0',
|
|
11796
|
+
pointerEvents: 'none',
|
|
11797
|
+
zIndex: '1',
|
|
11798
|
+
width: `${childBoundingRect.width}px`,
|
|
11799
|
+
height: `${childBoundingRect.height}px`,
|
|
11800
|
+
position: 'absolute',
|
|
11801
|
+
top: '0',
|
|
11802
|
+
left: '0',
|
|
11803
|
+
});
|
|
11804
|
+
}
|
|
11805
|
+
showPreRender() {
|
|
11806
|
+
if (!this.isPreRenderAvailable()) {
|
|
11807
|
+
// if the Embed component is nor preRendered , Render it now and
|
|
11808
|
+
// show it (hide is defalt behaviour)
|
|
11809
|
+
console.log('No preRender found, creating new ');
|
|
11810
|
+
this.render();
|
|
11811
|
+
return;
|
|
11812
|
+
}
|
|
11813
|
+
this.syncPreRenderStyle();
|
|
11814
|
+
removeStyleProperties(this.preRenderWrapper, ['z-index', 'opacity', 'pointer-events']);
|
|
11815
|
+
setStyleProperties(this.preRenderShield, { zIndex: '-1' });
|
|
11816
|
+
}
|
|
11817
|
+
syncPreRenderStyle() {
|
|
11818
|
+
if (!this.el) {
|
|
11819
|
+
throw new Error('Embed element is not defined');
|
|
11820
|
+
}
|
|
11821
|
+
const elBoundingClient = this.el.getBoundingClientRect();
|
|
11822
|
+
setStyleProperties(this.preRenderWrapper, {
|
|
11823
|
+
top: `${elBoundingClient.y}px`, left: `${elBoundingClient.x}px`, width: `${elBoundingClient.width}px`, height: `${elBoundingClient.height}px`,
|
|
11824
|
+
});
|
|
11825
|
+
}
|
|
11618
11826
|
insertIntoDOM(child) {
|
|
11619
11827
|
var _a;
|
|
11620
11828
|
if (this.viewConfig.insertAsSibling) {
|
|
@@ -11829,6 +12037,13 @@ class TsEmbed {
|
|
|
11829
12037
|
this.isRendered = true;
|
|
11830
12038
|
return this;
|
|
11831
12039
|
}
|
|
12040
|
+
/**
|
|
12041
|
+
* Creates the preRender shell
|
|
12042
|
+
*/
|
|
12043
|
+
preRender() {
|
|
12044
|
+
this.isPreRendered = true;
|
|
12045
|
+
return this;
|
|
12046
|
+
}
|
|
11832
12047
|
/**
|
|
11833
12048
|
* Get the Post Url Params for THOUGHTSPOT from the current
|
|
11834
12049
|
* host app URL.
|
|
@@ -11910,8 +12125,10 @@ class V1Embed extends TsEmbed {
|
|
|
11910
12125
|
let queryString = queryParams;
|
|
11911
12126
|
if (!this.viewConfig.excludeRuntimeFiltersfromURL) {
|
|
11912
12127
|
const runtimeFilters = this.viewConfig.runtimeFilters;
|
|
12128
|
+
const runtimeParameters = this.viewConfig.runtimeParameters;
|
|
12129
|
+
const parameterQuery = getRuntimeParameters(runtimeParameters || []);
|
|
11913
12130
|
const filterQuery = getFilterQuery(runtimeFilters || []);
|
|
11914
|
-
queryString = [filterQuery, queryParams].filter(Boolean).join('&');
|
|
12131
|
+
queryString = [parameterQuery, filterQuery, queryParams].filter(Boolean).join('&');
|
|
11915
12132
|
}
|
|
11916
12133
|
return this.getV1EmbedBasePath(queryString);
|
|
11917
12134
|
}
|
|
@@ -12070,6 +12287,7 @@ class AppEmbed extends V1Embed {
|
|
|
12070
12287
|
* Gets the ThoughtSpot route of the page for a particular page ID.
|
|
12071
12288
|
*
|
|
12072
12289
|
* @param pageId The identifier for a page in the ThoughtSpot app.
|
|
12290
|
+
* @param modularHomeExperience
|
|
12073
12291
|
*/
|
|
12074
12292
|
getPageRoute(pageId, modularHomeExperience = false) {
|
|
12075
12293
|
switch (pageId) {
|
|
@@ -12213,7 +12431,7 @@ class LiveboardEmbed extends V1Embed {
|
|
|
12213
12431
|
let params = {};
|
|
12214
12432
|
params[Param.EmbedApp] = true;
|
|
12215
12433
|
params = this.getBaseQueryParams(params);
|
|
12216
|
-
const { enableVizTransformations, fullHeight, defaultHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, } = this.viewConfig;
|
|
12434
|
+
const { enableVizTransformations, fullHeight, defaultHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, runtimeParameters, } = this.viewConfig;
|
|
12217
12435
|
const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
|
|
12218
12436
|
|| this.viewConfig.preventPinboardFilterRemoval;
|
|
12219
12437
|
if (fullHeight === true) {
|
|
@@ -12241,7 +12459,10 @@ class LiveboardEmbed extends V1Embed {
|
|
|
12241
12459
|
if (hideTabPanel) {
|
|
12242
12460
|
params[Param.HideTabPanel] = hideTabPanel;
|
|
12243
12461
|
}
|
|
12244
|
-
|
|
12462
|
+
let queryParams = getQueryParamString(params, true);
|
|
12463
|
+
const parameterQuery = getRuntimeParameters(runtimeParameters || []);
|
|
12464
|
+
if (parameterQuery)
|
|
12465
|
+
queryParams += `&${parameterQuery}`;
|
|
12245
12466
|
return queryParams;
|
|
12246
12467
|
}
|
|
12247
12468
|
getIframeSuffixSrc(liveboardId, vizId, activeTabId) {
|
|
@@ -12305,6 +12526,11 @@ class LiveboardEmbed extends V1Embed {
|
|
|
12305
12526
|
this.renderV1Embed(src);
|
|
12306
12527
|
return this;
|
|
12307
12528
|
}
|
|
12529
|
+
preRender() {
|
|
12530
|
+
super.preRender();
|
|
12531
|
+
this.render();
|
|
12532
|
+
return this;
|
|
12533
|
+
}
|
|
12308
12534
|
navigateToLiveboard(liveboardId, vizId, activeTabId) {
|
|
12309
12535
|
const path = this.getIframeSuffixSrc(liveboardId, vizId, activeTabId);
|
|
12310
12536
|
this.viewConfig.liveboardId = liveboardId;
|
|
@@ -12365,7 +12591,7 @@ class SearchEmbed extends TsEmbed {
|
|
|
12365
12591
|
}
|
|
12366
12592
|
getEmbedParams() {
|
|
12367
12593
|
var _a;
|
|
12368
|
-
const { hideResults, enableSearchAssist, forceTable, searchOptions, runtimeFilters, dataSource, dataSources, excludeRuntimeFiltersfromURL, dataPanelV2 = false, useLastSelectedSources = false, } = this.viewConfig;
|
|
12594
|
+
const { hideResults, enableSearchAssist, forceTable, searchOptions, runtimeFilters, dataSource, dataSources, excludeRuntimeFiltersfromURL, dataPanelV2 = false, useLastSelectedSources = false, runtimeParameters, } = this.viewConfig;
|
|
12369
12595
|
const queryParams = this.getBaseQueryParams();
|
|
12370
12596
|
queryParams[Param.HideActions] = [
|
|
12371
12597
|
...((_a = queryParams[Param.HideActions]) !== null && _a !== void 0 ? _a : []),
|
|
@@ -12404,6 +12630,9 @@ class SearchEmbed extends TsEmbed {
|
|
|
12404
12630
|
if (queryParamsString) {
|
|
12405
12631
|
query = `?${queryParamsString}`;
|
|
12406
12632
|
}
|
|
12633
|
+
const parameterQuery = getRuntimeParameters(runtimeParameters || []);
|
|
12634
|
+
if (parameterQuery)
|
|
12635
|
+
query += `&${parameterQuery}`;
|
|
12407
12636
|
const filterQuery = getFilterQuery(runtimeFilters || []);
|
|
12408
12637
|
if (filterQuery && !excludeRuntimeFiltersfromURL) {
|
|
12409
12638
|
query += `&${filterQuery}`;
|