@thoughtspot/visual-embed-sdk 1.24.0-preRender.0 → 1.24.0-preRender.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/embed/TsEmbed.d.ts +302 -0
  3. package/cjs/src/embed/TsEmbed.d.ts.map +1 -0
  4. package/cjs/src/embed/TsEmbed.js +851 -0
  5. package/cjs/src/embed/TsEmbed.js.map +1 -0
  6. package/cjs/src/embed/app.d.ts +1 -0
  7. package/cjs/src/embed/app.d.ts.map +1 -1
  8. package/cjs/src/embed/app.js +1 -0
  9. package/cjs/src/embed/app.js.map +1 -1
  10. package/cjs/src/embed/ts-embed.d.ts +7 -6
  11. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  12. package/cjs/src/embed/ts-embed.js +50 -49
  13. package/cjs/src/embed/ts-embed.js.map +1 -1
  14. package/cjs/src/react/index.d.ts.map +1 -1
  15. package/cjs/src/react/index.js.map +1 -1
  16. package/cjs/src/types.d.ts +14 -1
  17. package/cjs/src/types.d.ts.map +1 -1
  18. package/cjs/src/types.js.map +1 -1
  19. package/cjs/src/utils.d.ts +1 -1
  20. package/cjs/src/utils.d.ts.map +1 -1
  21. package/cjs/src/utils.js +7 -7
  22. package/cjs/src/utils.js.map +1 -1
  23. package/dist/src/embed/app.d.ts +1 -0
  24. package/dist/src/embed/app.d.ts.map +1 -1
  25. package/dist/src/embed/ts-embed.d.ts +7 -6
  26. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  27. package/dist/src/react/index.d.ts.map +1 -1
  28. package/dist/src/types.d.ts +14 -1
  29. package/dist/src/types.d.ts.map +1 -1
  30. package/dist/src/utils.d.ts +1 -1
  31. package/dist/src/utils.d.ts.map +1 -1
  32. package/dist/tsembed-react.es.js +57 -55
  33. package/dist/tsembed-react.js +57 -55
  34. package/dist/tsembed.es.js +57 -55
  35. package/dist/tsembed.js +57 -55
  36. package/dist/visual-embed-sdk-react-full.d.ts +22 -7
  37. package/dist/visual-embed-sdk-react.d.ts +22 -7
  38. package/dist/visual-embed-sdk.d.ts +22 -7
  39. package/lib/package.json +1 -1
  40. package/lib/src/embed/TsEmbed.d.ts +302 -0
  41. package/lib/src/embed/TsEmbed.d.ts.map +1 -0
  42. package/lib/src/embed/TsEmbed.js +847 -0
  43. package/lib/src/embed/TsEmbed.js.map +1 -0
  44. package/lib/src/embed/app.d.ts +1 -0
  45. package/lib/src/embed/app.d.ts.map +1 -1
  46. package/lib/src/embed/app.js +1 -0
  47. package/lib/src/embed/app.js.map +1 -1
  48. package/lib/src/embed/ts-embed.d.ts +7 -6
  49. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  50. package/lib/src/embed/ts-embed.js +50 -49
  51. package/lib/src/embed/ts-embed.js.map +1 -1
  52. package/lib/src/react/index.d.ts.map +1 -1
  53. package/lib/src/react/index.js.map +1 -1
  54. package/lib/src/types.d.ts +14 -1
  55. package/lib/src/types.d.ts.map +1 -1
  56. package/lib/src/types.js.map +1 -1
  57. package/lib/src/utils.d.ts +1 -1
  58. package/lib/src/utils.d.ts.map +1 -1
  59. package/lib/src/utils.js +5 -5
  60. package/lib/src/utils.js.map +1 -1
  61. package/lib/src/visual-embed-sdk.d.ts +22 -7
  62. package/package.json +1 -1
  63. package/src/embed/app.ts +3 -6
  64. package/src/embed/ts-embed.ts +61 -48
  65. package/src/react/index.tsx +13 -11
  66. package/src/types.ts +14 -2
  67. package/src/utils.ts +6 -7
@@ -239,6 +239,11 @@ function getDOMNode(domSelector) {
239
239
  return typeof domSelector === 'string' ? document.querySelector(domSelector) : domSelector;
240
240
  }
241
241
  const deepMerge = (target, source) => merge(target, source);
242
+ const getOperationNameFromQuery = (query) => {
243
+ const regex = /(?:query|mutation)\s+(\w+)/;
244
+ const matches = query.match(regex);
245
+ return matches === null || matches === void 0 ? void 0 : matches[1];
246
+ };
242
247
  /**
243
248
  *
244
249
  * @param obj
@@ -270,11 +275,6 @@ const removeStyleProperties = (element, styleProperties) => {
270
275
  styleProperties.forEach((styleProperty) => {
271
276
  element.style.removeProperty(styleProperty);
272
277
  });
273
- };
274
- const getOperationNameFromQuery = (query) => {
275
- const regex = /(?:query|mutation)\s+(\w+)/;
276
- const matches = query.match(regex);
277
- return matches === null || matches === void 0 ? void 0 : matches[1];
278
278
  };
279
279
 
280
280
  /**
@@ -11625,7 +11625,7 @@ function processTrigger(iFrame, messageType, thoughtSpotHost, data) {
11625
11625
  });
11626
11626
  }
11627
11627
 
11628
- var name="@thoughtspot/visual-embed-sdk";var version="1.24.0-preRender.0";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-fetch-mock":"^3.0.3",jsdom:"^17.0.0","node-sass":"^8.0.0",prettier:"2.1.2",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};
11628
+ var name="@thoughtspot/visual-embed-sdk";var version="1.24.0-preRender.1";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-fetch-mock":"^3.0.3",jsdom:"^17.0.0","node-sass":"^8.0.0",prettier:"2.1.2",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};
11629
11629
 
11630
11630
  /**
11631
11631
  * Copyright (c) 2022
@@ -11809,6 +11809,7 @@ class TsEmbed {
11809
11809
  * and executes the registered callbacks accordingly.
11810
11810
  */
11811
11811
  subscribeToEvents() {
11812
+ this.unsubscribeToEvents();
11812
11813
  const messageEventListener = (event) => {
11813
11814
  const eventType = this.getEventType(event);
11814
11815
  const eventPort = this.getEventPort(event);
@@ -12010,14 +12011,20 @@ class TsEmbed {
12010
12011
  iFrame.name = 'ThoughtSpot Embedded Analytics';
12011
12012
  return iFrame;
12012
12013
  }
12014
+ handleInsertionIntoDOM(child, showPreRenderByDefault = false) {
12015
+ if (this.isPreRendered) {
12016
+ this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage, showPreRenderByDefault);
12017
+ }
12018
+ else {
12019
+ this.insertIntoDOM(this.embedConfig.loginFailedMessage);
12020
+ }
12021
+ }
12013
12022
  /**
12014
12023
  * Renders the embedded ThoughtSpot app in an iframe and sets up
12015
12024
  * event listeners.
12016
12025
  *
12017
- * @param url
12018
- * @param frameOptions
12019
- * @param showPreRender
12020
- * @param showPreRenderByDefault
12026
+ * @param url - The URL of the embedded ThoughtSpot app.
12027
+ * @param showPreRenderByDefault - The flag to show the preRender by default.
12021
12028
  */
12022
12029
  async renderIFrame(url, showPreRenderByDefault = false) {
12023
12030
  if (this.isError) {
@@ -12039,12 +12046,7 @@ class TsEmbed {
12039
12046
  uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_START);
12040
12047
  return (_a = getAuthPromise()) === null || _a === void 0 ? void 0 : _a.then((isLoggedIn) => {
12041
12048
  if (!isLoggedIn) {
12042
- if (this.isPreRendered) {
12043
- this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage);
12044
- }
12045
- else {
12046
- this.insertIntoDOM(this.embedConfig.loginFailedMessage);
12047
- }
12049
+ this.handleInsertionIntoDOM(this.embedConfig.loginFailedMessage, showPreRenderByDefault);
12048
12050
  return;
12049
12051
  }
12050
12052
  this.iFrame = this.iFrame || this.createIframeEl(url);
@@ -12066,15 +12068,7 @@ class TsEmbed {
12066
12068
  this.iFrame.addEventListener('error', () => {
12067
12069
  nextInQueue();
12068
12070
  });
12069
- if (this.isPreRendered) {
12070
- this.insertIntoDOMForPreRender(this.iFrame);
12071
- if (showPreRenderByDefault) {
12072
- this.showPreRender();
12073
- }
12074
- }
12075
- else {
12076
- this.insertIntoDOM(this.iFrame);
12077
- }
12071
+ this.handleInsertionIntoDOM(this.iFrame, showPreRenderByDefault);
12078
12072
  const prefetchIframe = document.querySelectorAll('.prefetchIframe');
12079
12073
  if (prefetchIframe.length) {
12080
12074
  prefetchIframe.forEach((el) => {
@@ -12087,12 +12081,7 @@ class TsEmbed {
12087
12081
  uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_FAILED, {
12088
12082
  error: JSON.stringify(error),
12089
12083
  });
12090
- if (this.isPreRendered) {
12091
- this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage);
12092
- }
12093
- else {
12094
- this.insertIntoDOM(this.embedConfig.loginFailedMessage);
12095
- }
12084
+ this.handleInsertionIntoDOM(this.embedConfig.loginFailedMessage);
12096
12085
  this.handleError(error);
12097
12086
  });
12098
12087
  });
@@ -12106,7 +12095,7 @@ class TsEmbed {
12106
12095
  }
12107
12096
  createPreRenderWrapper(child) {
12108
12097
  if (!this.viewConfig.preRenderId) {
12109
- throw new Error('Pre render id is required');
12098
+ throw new Error('PreRender id is required');
12110
12099
  }
12111
12100
  const preRenderIds = this.getPreRenderIds();
12112
12101
  [preRenderIds.wrapper, preRenderIds.shield, preRenderIds.child]
@@ -12116,14 +12105,15 @@ class TsEmbed {
12116
12105
  const preRenderWrapper = document.createElement('div');
12117
12106
  preRenderWrapper.id = preRenderIds.wrapper;
12118
12107
  setStyleProperties(preRenderWrapper, { position: 'absolute', width: '100vw', height: '100vh' });
12119
- const preRenderShield = document.createElement('div');
12120
- preRenderShield.id = preRenderIds.shield;
12121
- setStyleProperties(preRenderShield, { position: 'absolute', width: '100%', height: '100%' });
12108
+ // const preRenderShield = document.createElement('div');
12109
+ // preRenderShield.id = preRenderIds.shield;
12110
+ // setStyleProperties(preRenderShield, { position: 'absolute',
12111
+ // width: '100%', height: '100%' });
12122
12112
  child.id = preRenderIds.child;
12123
12113
  preRenderWrapper.appendChild(child);
12124
- preRenderWrapper.appendChild(preRenderShield);
12114
+ // preRenderWrapper.appendChild(preRenderShield);
12125
12115
  this.preRenderWrapper = preRenderWrapper;
12126
- this.preRenderShield = preRenderShield;
12116
+ // this.preRenderShield = preRenderShield;
12127
12117
  this.preRenderChild = child;
12128
12118
  return preRenderWrapper;
12129
12119
  }
@@ -12131,18 +12121,20 @@ class TsEmbed {
12131
12121
  const preRenderIds = this.getPreRenderIds();
12132
12122
  this.preRenderWrapper = this.preRenderWrapper
12133
12123
  || document.getElementById(preRenderIds.wrapper);
12134
- this.preRenderShield = this.preRenderShield
12135
- || document.getElementById(preRenderIds.shield);
12124
+ // this.preRenderShield = this.preRenderShield
12125
+ // || document.getElementById(preRenderIds.shield);
12136
12126
  this.preRenderChild = this.preRenderChild
12137
12127
  || document.getElementById(preRenderIds.child);
12138
- this.iFrame = this.preRenderChild;
12128
+ if (this.preRenderWrapper && this.preRenderChild) {
12129
+ this.isPreRendered = true;
12130
+ this.iFrame = this.preRenderChild;
12131
+ }
12139
12132
  return this.isPreRenderAvailable();
12140
12133
  }
12141
12134
  isPreRenderAvailable() {
12142
- return !!this.preRenderWrapper && !!this.preRenderShield
12143
- && !!this.preRenderChild;
12135
+ return this.isPreRendered;
12144
12136
  }
12145
- insertIntoDOMForPreRender(child) {
12137
+ insertIntoDOMForPreRender(child, showPreRenderByDefault = false) {
12146
12138
  let childNode;
12147
12139
  if (typeof child === 'string') {
12148
12140
  const divChildNode = document.createElement('div');
@@ -12153,8 +12145,13 @@ class TsEmbed {
12153
12145
  childNode = child;
12154
12146
  }
12155
12147
  const preRenderWrapper = this.createPreRenderWrapper(childNode);
12148
+ if (showPreRenderByDefault) {
12149
+ this.showPreRender();
12150
+ }
12151
+ else {
12152
+ this.hidePreRender();
12153
+ }
12156
12154
  document.body.appendChild(preRenderWrapper);
12157
- this.hidePreRender();
12158
12155
  }
12159
12156
  hidePreRender() {
12160
12157
  if (!this.isPreRenderAvailable()) {
@@ -12171,16 +12168,16 @@ class TsEmbed {
12171
12168
  left: '0',
12172
12169
  });
12173
12170
  const childBoundingRect = this.preRenderChild.getBoundingClientRect();
12174
- setStyleProperties(this.preRenderShield, {
12175
- opacity: '0',
12176
- pointerEvents: 'none',
12177
- zIndex: '1',
12178
- width: `${childBoundingRect.width}px`,
12179
- height: `${childBoundingRect.height}px`,
12180
- position: 'absolute',
12181
- top: '0',
12182
- left: '0',
12183
- });
12171
+ // setStyleProperties(this.preRenderShield, {
12172
+ // opacity: '0',
12173
+ // pointerEvents: 'none',
12174
+ // zIndex: '1',
12175
+ // width: `${childBoundingRect.width}px`,
12176
+ // height: `${childBoundingRect.height}px`,
12177
+ // position: 'absolute',
12178
+ // top: '0',
12179
+ // left: '0',
12180
+ // });
12184
12181
  this.unsubscribeToEvents();
12185
12182
  }
12186
12183
  showPreRender() {
@@ -12196,7 +12193,7 @@ class TsEmbed {
12196
12193
  }
12197
12194
  this.syncPreRenderStyle();
12198
12195
  removeStyleProperties(this.preRenderWrapper, ['z-index', 'opacity', 'pointer-events']);
12199
- setStyleProperties(this.preRenderShield, { zIndex: '-1' });
12196
+ // setStyleProperties(this.preRenderShield, { zIndex: '-1' });
12200
12197
  this.subscribeToEvents();
12201
12198
  }
12202
12199
  syncPreRenderStyle() {
@@ -12424,6 +12421,8 @@ class TsEmbed {
12424
12421
  }
12425
12422
  /**
12426
12423
  * Creates the preRender shell
12424
+ *
12425
+ * @param showPreRenderByDefault
12427
12426
  */
12428
12427
  preRender(showPreRenderByDefault = false) {
12429
12428
  this.isPreRendered = true;
@@ -12464,6 +12463,7 @@ class TsEmbed {
12464
12463
  var _a;
12465
12464
  try {
12466
12465
  (_a = this.insertedDomEl) === null || _a === void 0 ? void 0 : _a.parentNode.removeChild(this.insertedDomEl);
12466
+ this.unsubscribeToEvents();
12467
12467
  }
12468
12468
  catch (e) {
12469
12469
  console.log('Error destroying TS Embed', e);
@@ -12501,6 +12501,7 @@ class V1Embed extends TsEmbed {
12501
12501
  * Render the app in an iframe and set up event handlers
12502
12502
  *
12503
12503
  * @param iframeSrc
12504
+ * @param showPreRenderByDefault - if true the preRender will be shown by default
12504
12505
  */
12505
12506
  renderV1Embed(iframeSrc, showPreRenderByDefault = false) {
12506
12507
  return this.renderIFrame(iframeSrc, showPreRenderByDefault);
@@ -12746,6 +12747,7 @@ class AppEmbed extends V1Embed {
12746
12747
  *
12747
12748
  * @param renderOptions An object containing the page ID
12748
12749
  * to be embedded.
12750
+ * @param showPreRenderByDefault
12749
12751
  */
12750
12752
  render(showPreRenderByDefault = false) {
12751
12753
  super.render();
package/dist/tsembed.js CHANGED
@@ -245,6 +245,11 @@
245
245
  return typeof domSelector === 'string' ? document.querySelector(domSelector) : domSelector;
246
246
  }
247
247
  const deepMerge = (target, source) => merge(target, source);
248
+ const getOperationNameFromQuery = (query) => {
249
+ const regex = /(?:query|mutation)\s+(\w+)/;
250
+ const matches = query.match(regex);
251
+ return matches === null || matches === void 0 ? void 0 : matches[1];
252
+ };
248
253
  /**
249
254
  *
250
255
  * @param obj
@@ -276,11 +281,6 @@
276
281
  styleProperties.forEach((styleProperty) => {
277
282
  element.style.removeProperty(styleProperty);
278
283
  });
279
- };
280
- const getOperationNameFromQuery = (query) => {
281
- const regex = /(?:query|mutation)\s+(\w+)/;
282
- const matches = query.match(regex);
283
- return matches === null || matches === void 0 ? void 0 : matches[1];
284
284
  };
285
285
 
286
286
  /**
@@ -11507,7 +11507,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11507
11507
  });
11508
11508
  }
11509
11509
 
11510
- var name="@thoughtspot/visual-embed-sdk";var version="1.24.0-preRender.0";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$1={".":{"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-fetch-mock":"^3.0.3",jsdom:"^17.0.0","node-sass":"^8.0.0",prettier:"2.1.2",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$1,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};
11510
+ var name="@thoughtspot/visual-embed-sdk";var version="1.24.0-preRender.1";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$1={".":{"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-fetch-mock":"^3.0.3",jsdom:"^17.0.0","node-sass":"^8.0.0",prettier:"2.1.2",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$1,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};
11511
11511
 
11512
11512
  /**
11513
11513
  * Copyright (c) 2022
@@ -11691,6 +11691,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11691
11691
  * and executes the registered callbacks accordingly.
11692
11692
  */
11693
11693
  subscribeToEvents() {
11694
+ this.unsubscribeToEvents();
11694
11695
  const messageEventListener = (event) => {
11695
11696
  const eventType = this.getEventType(event);
11696
11697
  const eventPort = this.getEventPort(event);
@@ -11892,14 +11893,20 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11892
11893
  iFrame.name = 'ThoughtSpot Embedded Analytics';
11893
11894
  return iFrame;
11894
11895
  }
11896
+ handleInsertionIntoDOM(child, showPreRenderByDefault = false) {
11897
+ if (this.isPreRendered) {
11898
+ this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage, showPreRenderByDefault);
11899
+ }
11900
+ else {
11901
+ this.insertIntoDOM(this.embedConfig.loginFailedMessage);
11902
+ }
11903
+ }
11895
11904
  /**
11896
11905
  * Renders the embedded ThoughtSpot app in an iframe and sets up
11897
11906
  * event listeners.
11898
11907
  *
11899
- * @param url
11900
- * @param frameOptions
11901
- * @param showPreRender
11902
- * @param showPreRenderByDefault
11908
+ * @param url - The URL of the embedded ThoughtSpot app.
11909
+ * @param showPreRenderByDefault - The flag to show the preRender by default.
11903
11910
  */
11904
11911
  async renderIFrame(url, showPreRenderByDefault = false) {
11905
11912
  if (this.isError) {
@@ -11921,12 +11928,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11921
11928
  uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_START);
11922
11929
  return (_a = getAuthPromise()) === null || _a === void 0 ? void 0 : _a.then((isLoggedIn) => {
11923
11930
  if (!isLoggedIn) {
11924
- if (this.isPreRendered) {
11925
- this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage);
11926
- }
11927
- else {
11928
- this.insertIntoDOM(this.embedConfig.loginFailedMessage);
11929
- }
11931
+ this.handleInsertionIntoDOM(this.embedConfig.loginFailedMessage, showPreRenderByDefault);
11930
11932
  return;
11931
11933
  }
11932
11934
  this.iFrame = this.iFrame || this.createIframeEl(url);
@@ -11948,15 +11950,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11948
11950
  this.iFrame.addEventListener('error', () => {
11949
11951
  nextInQueue();
11950
11952
  });
11951
- if (this.isPreRendered) {
11952
- this.insertIntoDOMForPreRender(this.iFrame);
11953
- if (showPreRenderByDefault) {
11954
- this.showPreRender();
11955
- }
11956
- }
11957
- else {
11958
- this.insertIntoDOM(this.iFrame);
11959
- }
11953
+ this.handleInsertionIntoDOM(this.iFrame, showPreRenderByDefault);
11960
11954
  const prefetchIframe = document.querySelectorAll('.prefetchIframe');
11961
11955
  if (prefetchIframe.length) {
11962
11956
  prefetchIframe.forEach((el) => {
@@ -11969,12 +11963,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11969
11963
  uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_FAILED, {
11970
11964
  error: JSON.stringify(error),
11971
11965
  });
11972
- if (this.isPreRendered) {
11973
- this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage);
11974
- }
11975
- else {
11976
- this.insertIntoDOM(this.embedConfig.loginFailedMessage);
11977
- }
11966
+ this.handleInsertionIntoDOM(this.embedConfig.loginFailedMessage);
11978
11967
  this.handleError(error);
11979
11968
  });
11980
11969
  });
@@ -11988,7 +11977,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11988
11977
  }
11989
11978
  createPreRenderWrapper(child) {
11990
11979
  if (!this.viewConfig.preRenderId) {
11991
- throw new Error('Pre render id is required');
11980
+ throw new Error('PreRender id is required');
11992
11981
  }
11993
11982
  const preRenderIds = this.getPreRenderIds();
11994
11983
  [preRenderIds.wrapper, preRenderIds.shield, preRenderIds.child]
@@ -11998,14 +11987,15 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11998
11987
  const preRenderWrapper = document.createElement('div');
11999
11988
  preRenderWrapper.id = preRenderIds.wrapper;
12000
11989
  setStyleProperties(preRenderWrapper, { position: 'absolute', width: '100vw', height: '100vh' });
12001
- const preRenderShield = document.createElement('div');
12002
- preRenderShield.id = preRenderIds.shield;
12003
- setStyleProperties(preRenderShield, { position: 'absolute', width: '100%', height: '100%' });
11990
+ // const preRenderShield = document.createElement('div');
11991
+ // preRenderShield.id = preRenderIds.shield;
11992
+ // setStyleProperties(preRenderShield, { position: 'absolute',
11993
+ // width: '100%', height: '100%' });
12004
11994
  child.id = preRenderIds.child;
12005
11995
  preRenderWrapper.appendChild(child);
12006
- preRenderWrapper.appendChild(preRenderShield);
11996
+ // preRenderWrapper.appendChild(preRenderShield);
12007
11997
  this.preRenderWrapper = preRenderWrapper;
12008
- this.preRenderShield = preRenderShield;
11998
+ // this.preRenderShield = preRenderShield;
12009
11999
  this.preRenderChild = child;
12010
12000
  return preRenderWrapper;
12011
12001
  }
@@ -12013,18 +12003,20 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12013
12003
  const preRenderIds = this.getPreRenderIds();
12014
12004
  this.preRenderWrapper = this.preRenderWrapper
12015
12005
  || document.getElementById(preRenderIds.wrapper);
12016
- this.preRenderShield = this.preRenderShield
12017
- || document.getElementById(preRenderIds.shield);
12006
+ // this.preRenderShield = this.preRenderShield
12007
+ // || document.getElementById(preRenderIds.shield);
12018
12008
  this.preRenderChild = this.preRenderChild
12019
12009
  || document.getElementById(preRenderIds.child);
12020
- this.iFrame = this.preRenderChild;
12010
+ if (this.preRenderWrapper && this.preRenderChild) {
12011
+ this.isPreRendered = true;
12012
+ this.iFrame = this.preRenderChild;
12013
+ }
12021
12014
  return this.isPreRenderAvailable();
12022
12015
  }
12023
12016
  isPreRenderAvailable() {
12024
- return !!this.preRenderWrapper && !!this.preRenderShield
12025
- && !!this.preRenderChild;
12017
+ return this.isPreRendered;
12026
12018
  }
12027
- insertIntoDOMForPreRender(child) {
12019
+ insertIntoDOMForPreRender(child, showPreRenderByDefault = false) {
12028
12020
  let childNode;
12029
12021
  if (typeof child === 'string') {
12030
12022
  const divChildNode = document.createElement('div');
@@ -12035,8 +12027,13 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12035
12027
  childNode = child;
12036
12028
  }
12037
12029
  const preRenderWrapper = this.createPreRenderWrapper(childNode);
12030
+ if (showPreRenderByDefault) {
12031
+ this.showPreRender();
12032
+ }
12033
+ else {
12034
+ this.hidePreRender();
12035
+ }
12038
12036
  document.body.appendChild(preRenderWrapper);
12039
- this.hidePreRender();
12040
12037
  }
12041
12038
  hidePreRender() {
12042
12039
  if (!this.isPreRenderAvailable()) {
@@ -12053,16 +12050,16 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12053
12050
  left: '0',
12054
12051
  });
12055
12052
  const childBoundingRect = this.preRenderChild.getBoundingClientRect();
12056
- setStyleProperties(this.preRenderShield, {
12057
- opacity: '0',
12058
- pointerEvents: 'none',
12059
- zIndex: '1',
12060
- width: `${childBoundingRect.width}px`,
12061
- height: `${childBoundingRect.height}px`,
12062
- position: 'absolute',
12063
- top: '0',
12064
- left: '0',
12065
- });
12053
+ // setStyleProperties(this.preRenderShield, {
12054
+ // opacity: '0',
12055
+ // pointerEvents: 'none',
12056
+ // zIndex: '1',
12057
+ // width: `${childBoundingRect.width}px`,
12058
+ // height: `${childBoundingRect.height}px`,
12059
+ // position: 'absolute',
12060
+ // top: '0',
12061
+ // left: '0',
12062
+ // });
12066
12063
  this.unsubscribeToEvents();
12067
12064
  }
12068
12065
  showPreRender() {
@@ -12078,7 +12075,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12078
12075
  }
12079
12076
  this.syncPreRenderStyle();
12080
12077
  removeStyleProperties(this.preRenderWrapper, ['z-index', 'opacity', 'pointer-events']);
12081
- setStyleProperties(this.preRenderShield, { zIndex: '-1' });
12078
+ // setStyleProperties(this.preRenderShield, { zIndex: '-1' });
12082
12079
  this.subscribeToEvents();
12083
12080
  }
12084
12081
  syncPreRenderStyle() {
@@ -12306,6 +12303,8 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12306
12303
  }
12307
12304
  /**
12308
12305
  * Creates the preRender shell
12306
+ *
12307
+ * @param showPreRenderByDefault
12309
12308
  */
12310
12309
  preRender(showPreRenderByDefault = false) {
12311
12310
  this.isPreRendered = true;
@@ -12346,6 +12345,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12346
12345
  var _a;
12347
12346
  try {
12348
12347
  (_a = this.insertedDomEl) === null || _a === void 0 ? void 0 : _a.parentNode.removeChild(this.insertedDomEl);
12348
+ this.unsubscribeToEvents();
12349
12349
  }
12350
12350
  catch (e) {
12351
12351
  console.log('Error destroying TS Embed', e);
@@ -12383,6 +12383,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12383
12383
  * Render the app in an iframe and set up event handlers
12384
12384
  *
12385
12385
  * @param iframeSrc
12386
+ * @param showPreRenderByDefault - if true the preRender will be shown by default
12386
12387
  */
12387
12388
  renderV1Embed(iframeSrc, showPreRenderByDefault = false) {
12388
12389
  return this.renderIFrame(iframeSrc, showPreRenderByDefault);
@@ -12623,6 +12624,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12623
12624
  *
12624
12625
  * @param renderOptions An object containing the page ID
12625
12626
  * to be embedded.
12627
+ * @param showPreRenderByDefault
12626
12628
  */
12627
12629
  render(showPreRenderByDefault = false) {
12628
12630
  super.render();
@@ -595,6 +595,7 @@ export declare class AppEmbed extends V1Embed {
595
595
  *
596
596
  * @param renderOptions An object containing the page ID
597
597
  * to be embedded.
598
+ * @param showPreRenderByDefault
598
599
  */
599
600
  render(showPreRenderByDefault?: boolean): AppEmbed;
600
601
  preRender(showPreRenderByDefault?: boolean): AppEmbed;
@@ -1787,6 +1788,7 @@ export interface ViewConfig {
1787
1788
  /**
1788
1789
  * reordering the home page modules
1789
1790
  * eg: reorderedHomepageModules = [HomepageModule.MyLibrary, HomepageModule.Watchlist]
1791
+ *
1790
1792
  * @version SDK: 1.28.0 | Thoughtspot: 9.9.0.cl
1791
1793
  */
1792
1794
  reorderedHomepageModules?: HomepageModule[];
@@ -1819,7 +1821,19 @@ export interface ViewConfig {
1819
1821
  */
1820
1822
  hiddenHomeLeftNavItems?: HomeLeftNavItem[];
1821
1823
  /**
1822
- * TBD
1824
+ * PreRender id to be used for PreRendering the embed.
1825
+ * Use PreRender to render the embed in the background and then
1826
+ * show or hide the rendered embed using showPreRender or hidePreRender respectively.
1827
+ *
1828
+ * @example
1829
+ * ```js
1830
+ * const embed = new LiveboardEmbed('#embed', {
1831
+ * ... // other liveboard view config
1832
+ * preRenderId: "preRenderId-123"
1833
+ * });
1834
+ * embed.showPreRender();
1835
+ * ```
1836
+ * @version SDK: 1.25.0 | Thoughtspot: 9.6.0.cl
1823
1837
  */
1824
1838
  preRenderId?: string;
1825
1839
  }
@@ -4642,14 +4656,13 @@ export declare class TsEmbed {
4642
4656
  protected getEmbedParams(): string;
4643
4657
  protected getRootIframeSrc(): string;
4644
4658
  protected createIframeEl(frameSrc: string): HTMLIFrameElement;
4659
+ protected handleInsertionIntoDOM(child: string | Node, showPreRenderByDefault?: boolean): void;
4645
4660
  /**
4646
4661
  * Renders the embedded ThoughtSpot app in an iframe and sets up
4647
4662
  * event listeners.
4648
4663
  *
4649
- * @param url
4650
- * @param frameOptions
4651
- * @param showPreRender
4652
- * @param showPreRenderByDefault
4664
+ * @param url - The URL of the embedded ThoughtSpot app.
4665
+ * @param showPreRenderByDefault - The flag to show the preRender by default.
4653
4666
  */
4654
4667
  protected renderIFrame(url: string, showPreRenderByDefault?: boolean): Promise<any>;
4655
4668
  getPreRenderIds(): {
@@ -4659,11 +4672,10 @@ export declare class TsEmbed {
4659
4672
  };
4660
4673
  protected createPreRenderWrapper(child: HTMLElement): HTMLDivElement;
4661
4674
  protected preRenderWrapper: HTMLElement;
4662
- protected preRenderShield: HTMLElement;
4663
4675
  protected preRenderChild: HTMLElement;
4664
4676
  protected connectPreRendered(): boolean;
4665
4677
  protected isPreRenderAvailable(): boolean;
4666
- protected insertIntoDOMForPreRender(child: string | HTMLElement): void;
4678
+ protected insertIntoDOMForPreRender(child: string | HTMLElement, showPreRenderByDefault?: boolean): void;
4667
4679
  hidePreRender(): void;
4668
4680
  showPreRender(): void;
4669
4681
  syncPreRenderStyle(): void;
@@ -4765,6 +4777,8 @@ export declare class TsEmbed {
4765
4777
  render(): TsEmbed;
4766
4778
  /**
4767
4779
  * Creates the preRender shell
4780
+ *
4781
+ * @param showPreRenderByDefault
4768
4782
  */
4769
4783
  preRender(showPreRenderByDefault?: boolean): TsEmbed;
4770
4784
  /**
@@ -4806,6 +4820,7 @@ export declare class V1Embed extends TsEmbed {
4806
4820
  * Render the app in an iframe and set up event handlers
4807
4821
  *
4808
4822
  * @param iframeSrc
4823
+ * @param showPreRenderByDefault - if true the preRender will be shown by default
4809
4824
  */
4810
4825
  protected renderV1Embed(iframeSrc: string, showPreRenderByDefault?: boolean): any;
4811
4826
  protected getRootIframeSrc(): string;