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

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 (83) 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/liveboard.d.ts +1 -0
  11. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  12. package/cjs/src/embed/liveboard.js +2 -1
  13. package/cjs/src/embed/liveboard.js.map +1 -1
  14. package/cjs/src/embed/search.js +1 -1
  15. package/cjs/src/embed/search.js.map +1 -1
  16. package/cjs/src/embed/ts-embed.d.ts +9 -8
  17. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  18. package/cjs/src/embed/ts-embed.js +103 -77
  19. package/cjs/src/embed/ts-embed.js.map +1 -1
  20. package/cjs/src/react/index.d.ts.map +1 -1
  21. package/cjs/src/react/index.js.map +1 -1
  22. package/cjs/src/types.d.ts +14 -1
  23. package/cjs/src/types.d.ts.map +1 -1
  24. package/cjs/src/types.js.map +1 -1
  25. package/cjs/src/utils.d.ts +1 -1
  26. package/cjs/src/utils.d.ts.map +1 -1
  27. package/cjs/src/utils.js +7 -11
  28. package/cjs/src/utils.js.map +1 -1
  29. package/dist/src/embed/app.d.ts +1 -0
  30. package/dist/src/embed/app.d.ts.map +1 -1
  31. package/dist/src/embed/liveboard.d.ts +1 -0
  32. package/dist/src/embed/liveboard.d.ts.map +1 -1
  33. package/dist/src/embed/ts-embed.d.ts +9 -8
  34. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  35. package/dist/src/react/index.d.ts.map +1 -1
  36. package/dist/src/types.d.ts +14 -1
  37. package/dist/src/types.d.ts.map +1 -1
  38. package/dist/src/utils.d.ts +1 -1
  39. package/dist/src/utils.d.ts.map +1 -1
  40. package/dist/tsembed-react.es.js +113 -89
  41. package/dist/tsembed-react.js +113 -89
  42. package/dist/tsembed.es.js +113 -89
  43. package/dist/tsembed.js +113 -89
  44. package/dist/visual-embed-sdk-react-full.d.ts +25 -9
  45. package/dist/visual-embed-sdk-react.d.ts +25 -9
  46. package/dist/visual-embed-sdk.d.ts +25 -9
  47. package/lib/package.json +1 -1
  48. package/lib/src/embed/TsEmbed.d.ts +302 -0
  49. package/lib/src/embed/TsEmbed.d.ts.map +1 -0
  50. package/lib/src/embed/TsEmbed.js +847 -0
  51. package/lib/src/embed/TsEmbed.js.map +1 -0
  52. package/lib/src/embed/app.d.ts +1 -0
  53. package/lib/src/embed/app.d.ts.map +1 -1
  54. package/lib/src/embed/app.js +1 -0
  55. package/lib/src/embed/app.js.map +1 -1
  56. package/lib/src/embed/liveboard.d.ts +1 -0
  57. package/lib/src/embed/liveboard.d.ts.map +1 -1
  58. package/lib/src/embed/liveboard.js +2 -1
  59. package/lib/src/embed/liveboard.js.map +1 -1
  60. package/lib/src/embed/search.js +1 -1
  61. package/lib/src/embed/search.js.map +1 -1
  62. package/lib/src/embed/ts-embed.d.ts +9 -8
  63. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  64. package/lib/src/embed/ts-embed.js +103 -77
  65. package/lib/src/embed/ts-embed.js.map +1 -1
  66. package/lib/src/react/index.d.ts.map +1 -1
  67. package/lib/src/react/index.js.map +1 -1
  68. package/lib/src/types.d.ts +14 -1
  69. package/lib/src/types.d.ts.map +1 -1
  70. package/lib/src/types.js.map +1 -1
  71. package/lib/src/utils.d.ts +1 -1
  72. package/lib/src/utils.d.ts.map +1 -1
  73. package/lib/src/utils.js +5 -9
  74. package/lib/src/utils.js.map +1 -1
  75. package/lib/src/visual-embed-sdk.d.ts +25 -9
  76. package/package.json +1 -1
  77. package/src/embed/app.ts +3 -6
  78. package/src/embed/liveboard.ts +2 -1
  79. package/src/embed/search.ts +1 -1
  80. package/src/embed/ts-embed.ts +121 -85
  81. package/src/react/index.tsx +13 -11
  82. package/src/types.ts +14 -2
  83. package/src/utils.ts +7 -13
@@ -361,6 +361,11 @@
361
361
  return typeof domSelector === 'string' ? document.querySelector(domSelector) : domSelector;
362
362
  }
363
363
  const deepMerge = (target, source) => merge(target, source);
364
+ const getOperationNameFromQuery = (query) => {
365
+ const regex = /(?:query|mutation)\s+(\w+)/;
366
+ const matches = query.match(regex);
367
+ return matches === null || matches === void 0 ? void 0 : matches[1];
368
+ };
364
369
  /**
365
370
  *
366
371
  * @param obj
@@ -380,23 +385,14 @@
380
385
  return obj;
381
386
  }
382
387
  const setStyleProperties = (element, styleProperties) => {
383
- if (!element || !styleProperties)
384
- return;
385
388
  Object.keys(styleProperties).forEach((styleProperty) => {
386
389
  element.style[styleProperty] = styleProperties[styleProperty].toString();
387
390
  });
388
391
  };
389
392
  const removeStyleProperties = (element, styleProperties) => {
390
- if (!element || !styleProperties)
391
- return;
392
393
  styleProperties.forEach((styleProperty) => {
393
394
  element.style.removeProperty(styleProperty);
394
395
  });
395
- };
396
- const getOperationNameFromQuery = (query) => {
397
- const regex = /(?:query|mutation)\s+(\w+)/;
398
- const matches = query.match(regex);
399
- return matches === null || matches === void 0 ? void 0 : matches[1];
400
396
  };
401
397
 
402
398
  /**
@@ -10640,7 +10636,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
10640
10636
  });
10641
10637
  }
10642
10638
 
10643
- 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};
10639
+ var name="@thoughtspot/visual-embed-sdk";var version="1.24.0-preRender.2";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};
10644
10640
 
10645
10641
  /**
10646
10642
  * Copyright (c) 2022
@@ -10824,6 +10820,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
10824
10820
  * and executes the registered callbacks accordingly.
10825
10821
  */
10826
10822
  subscribeToEvents() {
10823
+ this.unsubscribeToEvents();
10827
10824
  const messageEventListener = (event) => {
10828
10825
  const eventType = this.getEventType(event);
10829
10826
  const eventPort = this.getEventPort(event);
@@ -10944,8 +10941,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
10944
10941
  else if (contextMenuTrigger === ContextMenuTriggerOptions.RIGHT_CLICK) {
10945
10942
  queryParams[Param.ContextMenuTrigger] = false;
10946
10943
  }
10947
- const spriteUrl = (customizations === null || customizations === void 0 ? void 0 : customizations.iconSpriteUrl)
10948
- || ((_d = this.embedConfig.customizations) === null || _d === void 0 ? void 0 : _d.iconSpriteUrl);
10944
+ const spriteUrl = (customizations === null || customizations === void 0 ? void 0 : customizations.iconSpriteUrl) || ((_d = this.embedConfig.customizations) === null || _d === void 0 ? void 0 : _d.iconSpriteUrl);
10949
10945
  if (spriteUrl) {
10950
10946
  queryParams[Param.IconSpriteUrl] = spriteUrl.replace('https://', '');
10951
10947
  }
@@ -11025,14 +11021,23 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11025
11021
  iFrame.name = 'ThoughtSpot Embedded Analytics';
11026
11022
  return iFrame;
11027
11023
  }
11024
+ handleInsertionIntoDOM(child, showPreRenderByDefault = false) {
11025
+ if (this.isPreRendered) {
11026
+ if (!this.viewConfig.preRenderId) {
11027
+ throw Error('PreRender id is required for preRender');
11028
+ }
11029
+ this.insertIntoDOMForPreRender(child, showPreRenderByDefault);
11030
+ }
11031
+ else {
11032
+ this.insertIntoDOM(child);
11033
+ }
11034
+ }
11028
11035
  /**
11029
11036
  * Renders the embedded ThoughtSpot app in an iframe and sets up
11030
11037
  * event listeners.
11031
11038
  *
11032
- * @param url
11033
- * @param frameOptions
11034
- * @param showPreRender
11035
- * @param showPreRenderByDefault
11039
+ * @param url - The URL of the embedded ThoughtSpot app.
11040
+ * @param showPreRenderByDefault - The flag to show the preRender by default.
11036
11041
  */
11037
11042
  async renderIFrame(url, showPreRenderByDefault = false) {
11038
11043
  if (this.isError) {
@@ -11054,12 +11059,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11054
11059
  uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_START);
11055
11060
  return (_a = getAuthPromise()) === null || _a === void 0 ? void 0 : _a.then((isLoggedIn) => {
11056
11061
  if (!isLoggedIn) {
11057
- if (this.isPreRendered) {
11058
- this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage);
11059
- }
11060
- else {
11061
- this.insertIntoDOM(this.embedConfig.loginFailedMessage);
11062
- }
11062
+ this.handleInsertionIntoDOM(this.embedConfig.loginFailedMessage, showPreRenderByDefault);
11063
11063
  return;
11064
11064
  }
11065
11065
  this.iFrame = this.iFrame || this.createIframeEl(url);
@@ -11081,15 +11081,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11081
11081
  this.iFrame.addEventListener('error', () => {
11082
11082
  nextInQueue();
11083
11083
  });
11084
- if (this.isPreRendered) {
11085
- this.insertIntoDOMForPreRender(this.iFrame);
11086
- if (showPreRenderByDefault) {
11087
- this.showPreRender();
11088
- }
11089
- }
11090
- else {
11091
- this.insertIntoDOM(this.iFrame);
11092
- }
11084
+ this.handleInsertionIntoDOM(this.iFrame, showPreRenderByDefault);
11093
11085
  const prefetchIframe = document.querySelectorAll('.prefetchIframe');
11094
11086
  if (prefetchIframe.length) {
11095
11087
  prefetchIframe.forEach((el) => {
@@ -11102,12 +11094,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11102
11094
  uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_FAILED, {
11103
11095
  error: JSON.stringify(error),
11104
11096
  });
11105
- if (this.isPreRendered) {
11106
- this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage);
11107
- }
11108
- else {
11109
- this.insertIntoDOM(this.embedConfig.loginFailedMessage);
11110
- }
11097
+ this.handleInsertionIntoDOM(this.embedConfig.loginFailedMessage);
11111
11098
  this.handleError(error);
11112
11099
  });
11113
11100
  });
@@ -11115,103 +11102,131 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11115
11102
  getPreRenderIds() {
11116
11103
  return {
11117
11104
  wrapper: `tsEmbed-pre-render-wrapper-${this.viewConfig.preRenderId}`,
11118
- shield: `tsEmbed-pre-render-shield-${this.viewConfig.preRenderId}`,
11105
+ // shield:
11106
+ // `tsEmbed-pre-render-shield-${this.viewConfig.preRenderId}`,
11119
11107
  child: `tsEmbed-pre-render-child-${this.viewConfig.preRenderId}`,
11120
11108
  };
11121
11109
  }
11122
- createPreRenderWrapper(child) {
11110
+ createPreRenderWrapper() {
11111
+ var _a;
11123
11112
  if (!this.viewConfig.preRenderId) {
11124
- throw new Error('Pre render id is required');
11113
+ throw new Error('PreRender id is required to create PreRender wrapper');
11125
11114
  }
11126
11115
  const preRenderIds = this.getPreRenderIds();
11127
- [preRenderIds.wrapper, preRenderIds.shield, preRenderIds.child]
11128
- .map((id) => document.getElementById(id))
11129
- .filter((element) => element)
11130
- .forEach((existingElement) => existingElement.remove());
11116
+ (_a = document.getElementById(preRenderIds.wrapper)) === null || _a === void 0 ? void 0 : _a.remove();
11131
11117
  const preRenderWrapper = document.createElement('div');
11132
11118
  preRenderWrapper.id = preRenderIds.wrapper;
11133
- setStyleProperties(preRenderWrapper, { position: 'absolute', width: '100vw', height: '100vh' });
11134
- const preRenderShield = document.createElement('div');
11135
- preRenderShield.id = preRenderIds.shield;
11136
- setStyleProperties(preRenderShield, { position: 'absolute', width: '100%', height: '100%' });
11137
- child.id = preRenderIds.child;
11138
- preRenderWrapper.appendChild(child);
11139
- preRenderWrapper.appendChild(preRenderShield);
11140
- this.preRenderWrapper = preRenderWrapper;
11141
- this.preRenderShield = preRenderShield;
11142
- this.preRenderChild = child;
11119
+ const initialPreRenderWrapperStyle = {
11120
+ position: 'absolute',
11121
+ width: '100vw',
11122
+ height: '100vh',
11123
+ };
11124
+ setStyleProperties(preRenderWrapper, initialPreRenderWrapperStyle);
11125
+ // const preRenderShield = document.createElement('div');
11126
+ // preRenderShield.id = preRenderIds.shield;
11127
+ // setStyleProperties(preRenderShield, { position: 'absolute',
11128
+ // width: '100%', height: '100%' });
11129
+ // preRenderWrapper.appendChild(preRenderShield);
11130
+ // this.preRenderWrapper = preRenderWrapper;
11131
+ // this.preRenderShield = preRenderShield;
11132
+ // this.preRenderChild = child;
11143
11133
  return preRenderWrapper;
11144
11134
  }
11145
11135
  connectPreRendered() {
11146
11136
  const preRenderIds = this.getPreRenderIds();
11147
11137
  this.preRenderWrapper = this.preRenderWrapper
11148
11138
  || document.getElementById(preRenderIds.wrapper);
11149
- this.preRenderShield = this.preRenderShield
11150
- || document.getElementById(preRenderIds.shield);
11151
- this.preRenderChild = this.preRenderChild
11152
- || document.getElementById(preRenderIds.child);
11153
- this.iFrame = this.preRenderChild;
11139
+ // this.preRenderShield = this.preRenderShield
11140
+ // || document.getElementById(preRenderIds.shield);
11141
+ this.preRenderChild = this.preRenderChild || document.getElementById(preRenderIds.child);
11142
+ if (this.preRenderWrapper && this.preRenderChild) {
11143
+ this.isPreRendered = true;
11144
+ this.iFrame = this.preRenderChild;
11145
+ }
11154
11146
  return this.isPreRenderAvailable();
11155
11147
  }
11156
11148
  isPreRenderAvailable() {
11157
- return !!this.preRenderWrapper && !!this.preRenderShield
11158
- && !!this.preRenderChild;
11149
+ return this.isPreRendered;
11159
11150
  }
11160
- insertIntoDOMForPreRender(child) {
11161
- let childNode;
11151
+ createPreRenderChild(child) {
11152
+ var _a;
11153
+ const preRenderIds = this.getPreRenderIds();
11154
+ (_a = document.getElementById(preRenderIds.child)) === null || _a === void 0 ? void 0 : _a.remove();
11155
+ if (child instanceof HTMLElement) {
11156
+ child.id = preRenderIds.child;
11157
+ return child;
11158
+ }
11159
+ const divChildNode = document.createElement('div');
11160
+ setStyleProperties(divChildNode, { width: '100%', height: '100%' });
11161
+ divChildNode.id = preRenderIds.child;
11162
11162
  if (typeof child === 'string') {
11163
- const divChildNode = document.createElement('div');
11164
11163
  divChildNode.innerHTML = child;
11165
- childNode = divChildNode;
11166
11164
  }
11167
11165
  else {
11168
- childNode = child;
11166
+ divChildNode.appendChild(child);
11167
+ }
11168
+ return divChildNode;
11169
+ }
11170
+ insertIntoDOMForPreRender(child, showPreRenderByDefault = false) {
11171
+ const preRenderChild = this.createPreRenderChild(child);
11172
+ const preRenderWrapper = this.createPreRenderWrapper();
11173
+ preRenderWrapper.appendChild(preRenderChild);
11174
+ this.preRenderChild = preRenderChild;
11175
+ this.preRenderWrapper = preRenderWrapper;
11176
+ if (preRenderChild instanceof HTMLIFrameElement) {
11177
+ this.iFrame = preRenderChild;
11178
+ }
11179
+ if (showPreRenderByDefault) {
11180
+ this.showPreRender();
11181
+ }
11182
+ else {
11183
+ this.hidePreRender();
11169
11184
  }
11170
- const preRenderWrapper = this.createPreRenderWrapper(childNode);
11171
11185
  document.body.appendChild(preRenderWrapper);
11172
- this.hidePreRender();
11173
11186
  }
11174
11187
  hidePreRender() {
11175
11188
  if (!this.isPreRenderAvailable()) {
11176
11189
  // if the embed component is not preRendered , nothing to hide
11177
- console.log('No preRender found, not hiding ');
11190
+ console.warn('Warning: You should call PreRender before hiding it using hidePreRender.');
11178
11191
  return;
11179
11192
  }
11180
- setStyleProperties(this.preRenderWrapper, {
11193
+ const preRenderHideStyles = {
11181
11194
  opacity: '0',
11182
11195
  pointerEvents: 'none',
11183
11196
  zIndex: '-1000',
11184
11197
  position: 'absolute ',
11185
11198
  top: '0',
11186
11199
  left: '0',
11187
- });
11188
- const childBoundingRect = this.preRenderChild.getBoundingClientRect();
11189
- setStyleProperties(this.preRenderShield, {
11190
- opacity: '0',
11191
- pointerEvents: 'none',
11192
- zIndex: '1',
11193
- width: `${childBoundingRect.width}px`,
11194
- height: `${childBoundingRect.height}px`,
11195
- position: 'absolute',
11196
- top: '0',
11197
- left: '0',
11198
- });
11200
+ };
11201
+ setStyleProperties(this.preRenderWrapper, preRenderHideStyles);
11202
+ // const childBoundingRect = this.preRenderChild.getBoundingClientRect();
11203
+ //
11204
+ // setStyleProperties(this.preRenderShield, {
11205
+ // opacity: '0',
11206
+ // pointerEvents: 'none',
11207
+ // zIndex: '1',
11208
+ // width: `${childBoundingRect.width}px`,
11209
+ // height: `${childBoundingRect.height}px`,
11210
+ // position: 'absolute',
11211
+ // top: '0',
11212
+ // left: '0',
11213
+ // });
11199
11214
  this.unsubscribeToEvents();
11200
11215
  }
11201
11216
  showPreRender() {
11202
11217
  if (!this.isPreRenderAvailable()) {
11203
11218
  const isAvailable = this.connectPreRendered();
11204
11219
  if (!isAvailable) {
11205
- // if the Embed component is nor preRendered , Render it now and
11206
- // show it (hide is defalt behaviour)
11207
- console.log('No preRender found, creating new ');
11220
+ // if the Embed component is not preRendered , Render it now and
11208
11221
  this.preRender(true);
11222
+ // show it (hide is defalt behaviour)
11223
+ // console.log('No preRender found, creating new ');
11209
11224
  return;
11210
11225
  }
11211
11226
  }
11212
11227
  this.syncPreRenderStyle();
11213
11228
  removeStyleProperties(this.preRenderWrapper, ['z-index', 'opacity', 'pointer-events']);
11214
- setStyleProperties(this.preRenderShield, { zIndex: '-1' });
11229
+ // setStyleProperties(this.preRenderShield, { zIndex: '-1' });
11215
11230
  this.subscribeToEvents();
11216
11231
  }
11217
11232
  syncPreRenderStyle() {
@@ -11220,7 +11235,10 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11220
11235
  }
11221
11236
  const elBoundingClient = this.el.getBoundingClientRect();
11222
11237
  setStyleProperties(this.preRenderWrapper, {
11223
- top: `${elBoundingClient.y}px`, left: `${elBoundingClient.x}px`, width: `${elBoundingClient.width}px`, height: `${elBoundingClient.height}px`,
11238
+ top: `${elBoundingClient.y}px`,
11239
+ left: `${elBoundingClient.x}px`,
11240
+ width: `${elBoundingClient.width}px`,
11241
+ height: `${elBoundingClient.height}px`,
11224
11242
  });
11225
11243
  }
11226
11244
  insertIntoDOM(child) {
@@ -11439,6 +11457,8 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11439
11457
  }
11440
11458
  /**
11441
11459
  * Creates the preRender shell
11460
+ *
11461
+ * @param showPreRenderByDefault
11442
11462
  */
11443
11463
  preRender(showPreRenderByDefault = false) {
11444
11464
  this.isPreRendered = true;
@@ -11479,6 +11499,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11479
11499
  var _a;
11480
11500
  try {
11481
11501
  (_a = this.insertedDomEl) === null || _a === void 0 ? void 0 : _a.parentNode.removeChild(this.insertedDomEl);
11502
+ this.unsubscribeToEvents();
11482
11503
  }
11483
11504
  catch (e) {
11484
11505
  console.log('Error destroying TS Embed', e);
@@ -11516,6 +11537,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11516
11537
  * Render the app in an iframe and set up event handlers
11517
11538
  *
11518
11539
  * @param iframeSrc
11540
+ * @param showPreRenderByDefault - if true the preRender will be shown by default
11519
11541
  */
11520
11542
  renderV1Embed(iframeSrc, showPreRenderByDefault = false) {
11521
11543
  return this.renderIFrame(iframeSrc, showPreRenderByDefault);
@@ -11831,7 +11853,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11831
11853
  return this;
11832
11854
  }
11833
11855
  preRender(showPreRenderByDefault = false) {
11834
- super.preRender(showPreRenderByDefault);
11856
+ super.preRender();
11835
11857
  this.render(showPreRenderByDefault);
11836
11858
  return this;
11837
11859
  }
@@ -12038,6 +12060,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12038
12060
  *
12039
12061
  * @param renderOptions An object containing the page ID
12040
12062
  * to be embedded.
12063
+ * @param showPreRenderByDefault
12041
12064
  */
12042
12065
  render(showPreRenderByDefault = false) {
12043
12066
  super.render();
@@ -12203,6 +12226,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12203
12226
  *
12204
12227
  * @param renderOptions An object specifying the Liveboard ID,
12205
12228
  * visualization ID and the runtime filters.
12229
+ * @param showPreRenderByDefault
12206
12230
  */
12207
12231
  render(showPreRenderByDefault = false) {
12208
12232
  super.render();
@@ -12211,7 +12235,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12211
12235
  return this;
12212
12236
  }
12213
12237
  preRender(showPreRenderByDefault = false) {
12214
- super.preRender(showPreRenderByDefault);
12238
+ super.preRender();
12215
12239
  this.render(showPreRenderByDefault);
12216
12240
  return this;
12217
12241
  }