@thoughtspot/visual-embed-sdk 1.24.0-preRender.1 → 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 (46) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/embed/liveboard.d.ts +1 -0
  3. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  4. package/cjs/src/embed/liveboard.js +2 -1
  5. package/cjs/src/embed/liveboard.js.map +1 -1
  6. package/cjs/src/embed/search.js +1 -1
  7. package/cjs/src/embed/search.js.map +1 -1
  8. package/cjs/src/embed/ts-embed.d.ts +3 -3
  9. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  10. package/cjs/src/embed/ts-embed.js +57 -32
  11. package/cjs/src/embed/ts-embed.js.map +1 -1
  12. package/cjs/src/utils.d.ts.map +1 -1
  13. package/cjs/src/utils.js +0 -4
  14. package/cjs/src/utils.js.map +1 -1
  15. package/dist/src/embed/liveboard.d.ts +1 -0
  16. package/dist/src/embed/liveboard.d.ts.map +1 -1
  17. package/dist/src/embed/ts-embed.d.ts +3 -3
  18. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  19. package/dist/src/utils.d.ts.map +1 -1
  20. package/dist/tsembed-react.es.js +61 -39
  21. package/dist/tsembed-react.js +61 -39
  22. package/dist/tsembed.es.js +61 -39
  23. package/dist/tsembed.js +61 -39
  24. package/dist/visual-embed-sdk-react-full.d.ts +4 -3
  25. package/dist/visual-embed-sdk-react.d.ts +4 -3
  26. package/dist/visual-embed-sdk.d.ts +4 -3
  27. package/lib/package.json +1 -1
  28. package/lib/src/embed/liveboard.d.ts +1 -0
  29. package/lib/src/embed/liveboard.d.ts.map +1 -1
  30. package/lib/src/embed/liveboard.js +2 -1
  31. package/lib/src/embed/liveboard.js.map +1 -1
  32. package/lib/src/embed/search.js +1 -1
  33. package/lib/src/embed/search.js.map +1 -1
  34. package/lib/src/embed/ts-embed.d.ts +3 -3
  35. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  36. package/lib/src/embed/ts-embed.js +57 -32
  37. package/lib/src/embed/ts-embed.js.map +1 -1
  38. package/lib/src/utils.d.ts.map +1 -1
  39. package/lib/src/utils.js +0 -4
  40. package/lib/src/utils.js.map +1 -1
  41. package/lib/src/visual-embed-sdk.d.ts +4 -3
  42. package/package.json +1 -1
  43. package/src/embed/liveboard.ts +2 -1
  44. package/src/embed/search.ts +1 -1
  45. package/src/embed/ts-embed.ts +72 -49
  46. package/src/utils.ts +1 -6
@@ -263,15 +263,11 @@ function removeTypename(obj) {
263
263
  return obj;
264
264
  }
265
265
  const setStyleProperties = (element, styleProperties) => {
266
- if (!element || !styleProperties)
267
- return;
268
266
  Object.keys(styleProperties).forEach((styleProperty) => {
269
267
  element.style[styleProperty] = styleProperties[styleProperty].toString();
270
268
  });
271
269
  };
272
270
  const removeStyleProperties = (element, styleProperties) => {
273
- if (!element || !styleProperties)
274
- return;
275
271
  styleProperties.forEach((styleProperty) => {
276
272
  element.style.removeProperty(styleProperty);
277
273
  });
@@ -11625,7 +11621,7 @@ function processTrigger(iFrame, messageType, thoughtSpotHost, data) {
11625
11621
  });
11626
11622
  }
11627
11623
 
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};
11624
+ 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={".":{"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
11625
 
11630
11626
  /**
11631
11627
  * Copyright (c) 2022
@@ -11930,8 +11926,7 @@ class TsEmbed {
11930
11926
  else if (contextMenuTrigger === ContextMenuTriggerOptions.RIGHT_CLICK) {
11931
11927
  queryParams[Param.ContextMenuTrigger] = false;
11932
11928
  }
11933
- const spriteUrl = (customizations === null || customizations === void 0 ? void 0 : customizations.iconSpriteUrl)
11934
- || ((_d = this.embedConfig.customizations) === null || _d === void 0 ? void 0 : _d.iconSpriteUrl);
11929
+ const spriteUrl = (customizations === null || customizations === void 0 ? void 0 : customizations.iconSpriteUrl) || ((_d = this.embedConfig.customizations) === null || _d === void 0 ? void 0 : _d.iconSpriteUrl);
11935
11930
  if (spriteUrl) {
11936
11931
  queryParams[Param.IconSpriteUrl] = spriteUrl.replace('https://', '');
11937
11932
  }
@@ -12013,10 +12008,13 @@ class TsEmbed {
12013
12008
  }
12014
12009
  handleInsertionIntoDOM(child, showPreRenderByDefault = false) {
12015
12010
  if (this.isPreRendered) {
12016
- this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage, showPreRenderByDefault);
12011
+ if (!this.viewConfig.preRenderId) {
12012
+ throw Error('PreRender id is required for preRender');
12013
+ }
12014
+ this.insertIntoDOMForPreRender(child, showPreRenderByDefault);
12017
12015
  }
12018
12016
  else {
12019
- this.insertIntoDOM(this.embedConfig.loginFailedMessage);
12017
+ this.insertIntoDOM(child);
12020
12018
  }
12021
12019
  }
12022
12020
  /**
@@ -12089,32 +12087,34 @@ class TsEmbed {
12089
12087
  getPreRenderIds() {
12090
12088
  return {
12091
12089
  wrapper: `tsEmbed-pre-render-wrapper-${this.viewConfig.preRenderId}`,
12092
- shield: `tsEmbed-pre-render-shield-${this.viewConfig.preRenderId}`,
12090
+ // shield:
12091
+ // `tsEmbed-pre-render-shield-${this.viewConfig.preRenderId}`,
12093
12092
  child: `tsEmbed-pre-render-child-${this.viewConfig.preRenderId}`,
12094
12093
  };
12095
12094
  }
12096
- createPreRenderWrapper(child) {
12095
+ createPreRenderWrapper() {
12096
+ var _a;
12097
12097
  if (!this.viewConfig.preRenderId) {
12098
- throw new Error('PreRender id is required');
12098
+ throw new Error('PreRender id is required to create PreRender wrapper');
12099
12099
  }
12100
12100
  const preRenderIds = this.getPreRenderIds();
12101
- [preRenderIds.wrapper, preRenderIds.shield, preRenderIds.child]
12102
- .map((id) => document.getElementById(id))
12103
- .filter((element) => element)
12104
- .forEach((existingElement) => existingElement.remove());
12101
+ (_a = document.getElementById(preRenderIds.wrapper)) === null || _a === void 0 ? void 0 : _a.remove();
12105
12102
  const preRenderWrapper = document.createElement('div');
12106
12103
  preRenderWrapper.id = preRenderIds.wrapper;
12107
- setStyleProperties(preRenderWrapper, { position: 'absolute', width: '100vw', height: '100vh' });
12104
+ const initialPreRenderWrapperStyle = {
12105
+ position: 'absolute',
12106
+ width: '100vw',
12107
+ height: '100vh',
12108
+ };
12109
+ setStyleProperties(preRenderWrapper, initialPreRenderWrapperStyle);
12108
12110
  // const preRenderShield = document.createElement('div');
12109
12111
  // preRenderShield.id = preRenderIds.shield;
12110
12112
  // setStyleProperties(preRenderShield, { position: 'absolute',
12111
12113
  // width: '100%', height: '100%' });
12112
- child.id = preRenderIds.child;
12113
- preRenderWrapper.appendChild(child);
12114
12114
  // preRenderWrapper.appendChild(preRenderShield);
12115
- this.preRenderWrapper = preRenderWrapper;
12115
+ // this.preRenderWrapper = preRenderWrapper;
12116
12116
  // this.preRenderShield = preRenderShield;
12117
- this.preRenderChild = child;
12117
+ // this.preRenderChild = child;
12118
12118
  return preRenderWrapper;
12119
12119
  }
12120
12120
  connectPreRendered() {
@@ -12123,8 +12123,7 @@ class TsEmbed {
12123
12123
  || document.getElementById(preRenderIds.wrapper);
12124
12124
  // this.preRenderShield = this.preRenderShield
12125
12125
  // || document.getElementById(preRenderIds.shield);
12126
- this.preRenderChild = this.preRenderChild
12127
- || document.getElementById(preRenderIds.child);
12126
+ this.preRenderChild = this.preRenderChild || document.getElementById(preRenderIds.child);
12128
12127
  if (this.preRenderWrapper && this.preRenderChild) {
12129
12128
  this.isPreRendered = true;
12130
12129
  this.iFrame = this.preRenderChild;
@@ -12134,17 +12133,34 @@ class TsEmbed {
12134
12133
  isPreRenderAvailable() {
12135
12134
  return this.isPreRendered;
12136
12135
  }
12137
- insertIntoDOMForPreRender(child, showPreRenderByDefault = false) {
12138
- let childNode;
12136
+ createPreRenderChild(child) {
12137
+ var _a;
12138
+ const preRenderIds = this.getPreRenderIds();
12139
+ (_a = document.getElementById(preRenderIds.child)) === null || _a === void 0 ? void 0 : _a.remove();
12140
+ if (child instanceof HTMLElement) {
12141
+ child.id = preRenderIds.child;
12142
+ return child;
12143
+ }
12144
+ const divChildNode = document.createElement('div');
12145
+ setStyleProperties(divChildNode, { width: '100%', height: '100%' });
12146
+ divChildNode.id = preRenderIds.child;
12139
12147
  if (typeof child === 'string') {
12140
- const divChildNode = document.createElement('div');
12141
12148
  divChildNode.innerHTML = child;
12142
- childNode = divChildNode;
12143
12149
  }
12144
12150
  else {
12145
- childNode = child;
12151
+ divChildNode.appendChild(child);
12152
+ }
12153
+ return divChildNode;
12154
+ }
12155
+ insertIntoDOMForPreRender(child, showPreRenderByDefault = false) {
12156
+ const preRenderChild = this.createPreRenderChild(child);
12157
+ const preRenderWrapper = this.createPreRenderWrapper();
12158
+ preRenderWrapper.appendChild(preRenderChild);
12159
+ this.preRenderChild = preRenderChild;
12160
+ this.preRenderWrapper = preRenderWrapper;
12161
+ if (preRenderChild instanceof HTMLIFrameElement) {
12162
+ this.iFrame = preRenderChild;
12146
12163
  }
12147
- const preRenderWrapper = this.createPreRenderWrapper(childNode);
12148
12164
  if (showPreRenderByDefault) {
12149
12165
  this.showPreRender();
12150
12166
  }
@@ -12156,18 +12172,20 @@ class TsEmbed {
12156
12172
  hidePreRender() {
12157
12173
  if (!this.isPreRenderAvailable()) {
12158
12174
  // if the embed component is not preRendered , nothing to hide
12159
- console.log('No preRender found, not hiding ');
12175
+ console.warn('Warning: You should call PreRender before hiding it using hidePreRender.');
12160
12176
  return;
12161
12177
  }
12162
- setStyleProperties(this.preRenderWrapper, {
12178
+ const preRenderHideStyles = {
12163
12179
  opacity: '0',
12164
12180
  pointerEvents: 'none',
12165
12181
  zIndex: '-1000',
12166
12182
  position: 'absolute ',
12167
12183
  top: '0',
12168
12184
  left: '0',
12169
- });
12170
- const childBoundingRect = this.preRenderChild.getBoundingClientRect();
12185
+ };
12186
+ setStyleProperties(this.preRenderWrapper, preRenderHideStyles);
12187
+ // const childBoundingRect = this.preRenderChild.getBoundingClientRect();
12188
+ //
12171
12189
  // setStyleProperties(this.preRenderShield, {
12172
12190
  // opacity: '0',
12173
12191
  // pointerEvents: 'none',
@@ -12184,10 +12202,10 @@ class TsEmbed {
12184
12202
  if (!this.isPreRenderAvailable()) {
12185
12203
  const isAvailable = this.connectPreRendered();
12186
12204
  if (!isAvailable) {
12187
- // if the Embed component is nor preRendered , Render it now and
12188
- // show it (hide is defalt behaviour)
12189
- console.log('No preRender found, creating new ');
12205
+ // if the Embed component is not preRendered , Render it now and
12190
12206
  this.preRender(true);
12207
+ // show it (hide is defalt behaviour)
12208
+ // console.log('No preRender found, creating new ');
12191
12209
  return;
12192
12210
  }
12193
12211
  }
@@ -12202,7 +12220,10 @@ class TsEmbed {
12202
12220
  }
12203
12221
  const elBoundingClient = this.el.getBoundingClientRect();
12204
12222
  setStyleProperties(this.preRenderWrapper, {
12205
- top: `${elBoundingClient.y}px`, left: `${elBoundingClient.x}px`, width: `${elBoundingClient.width}px`, height: `${elBoundingClient.height}px`,
12223
+ top: `${elBoundingClient.y}px`,
12224
+ left: `${elBoundingClient.x}px`,
12225
+ width: `${elBoundingClient.width}px`,
12226
+ height: `${elBoundingClient.height}px`,
12206
12227
  });
12207
12228
  }
12208
12229
  insertIntoDOM(child) {
@@ -12913,6 +12934,7 @@ class LiveboardEmbed extends V1Embed {
12913
12934
  *
12914
12935
  * @param renderOptions An object specifying the Liveboard ID,
12915
12936
  * visualization ID and the runtime filters.
12937
+ * @param showPreRenderByDefault
12916
12938
  */
12917
12939
  render(showPreRenderByDefault = false) {
12918
12940
  super.render();
@@ -12921,7 +12943,7 @@ class LiveboardEmbed extends V1Embed {
12921
12943
  return this;
12922
12944
  }
12923
12945
  preRender(showPreRenderByDefault = false) {
12924
- super.preRender(showPreRenderByDefault);
12946
+ super.preRender();
12925
12947
  this.render(showPreRenderByDefault);
12926
12948
  return this;
12927
12949
  }
@@ -13064,7 +13086,7 @@ class SearchEmbed extends TsEmbed {
13064
13086
  return this;
13065
13087
  }
13066
13088
  preRender(showPreRenderByDefault = false) {
13067
- super.preRender(showPreRenderByDefault);
13089
+ super.preRender();
13068
13090
  this.render(showPreRenderByDefault);
13069
13091
  return this;
13070
13092
  }
package/dist/tsembed.js CHANGED
@@ -269,15 +269,11 @@
269
269
  return obj;
270
270
  }
271
271
  const setStyleProperties = (element, styleProperties) => {
272
- if (!element || !styleProperties)
273
- return;
274
272
  Object.keys(styleProperties).forEach((styleProperty) => {
275
273
  element.style[styleProperty] = styleProperties[styleProperty].toString();
276
274
  });
277
275
  };
278
276
  const removeStyleProperties = (element, styleProperties) => {
279
- if (!element || !styleProperties)
280
- return;
281
277
  styleProperties.forEach((styleProperty) => {
282
278
  element.style.removeProperty(styleProperty);
283
279
  });
@@ -11507,7 +11503,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11507
11503
  });
11508
11504
  }
11509
11505
 
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};
11506
+ 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};
11511
11507
 
11512
11508
  /**
11513
11509
  * Copyright (c) 2022
@@ -11812,8 +11808,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11812
11808
  else if (contextMenuTrigger === exports.ContextMenuTriggerOptions.RIGHT_CLICK) {
11813
11809
  queryParams[Param.ContextMenuTrigger] = false;
11814
11810
  }
11815
- const spriteUrl = (customizations === null || customizations === void 0 ? void 0 : customizations.iconSpriteUrl)
11816
- || ((_d = this.embedConfig.customizations) === null || _d === void 0 ? void 0 : _d.iconSpriteUrl);
11811
+ const spriteUrl = (customizations === null || customizations === void 0 ? void 0 : customizations.iconSpriteUrl) || ((_d = this.embedConfig.customizations) === null || _d === void 0 ? void 0 : _d.iconSpriteUrl);
11817
11812
  if (spriteUrl) {
11818
11813
  queryParams[Param.IconSpriteUrl] = spriteUrl.replace('https://', '');
11819
11814
  }
@@ -11895,10 +11890,13 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11895
11890
  }
11896
11891
  handleInsertionIntoDOM(child, showPreRenderByDefault = false) {
11897
11892
  if (this.isPreRendered) {
11898
- this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage, showPreRenderByDefault);
11893
+ if (!this.viewConfig.preRenderId) {
11894
+ throw Error('PreRender id is required for preRender');
11895
+ }
11896
+ this.insertIntoDOMForPreRender(child, showPreRenderByDefault);
11899
11897
  }
11900
11898
  else {
11901
- this.insertIntoDOM(this.embedConfig.loginFailedMessage);
11899
+ this.insertIntoDOM(child);
11902
11900
  }
11903
11901
  }
11904
11902
  /**
@@ -11971,32 +11969,34 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11971
11969
  getPreRenderIds() {
11972
11970
  return {
11973
11971
  wrapper: `tsEmbed-pre-render-wrapper-${this.viewConfig.preRenderId}`,
11974
- shield: `tsEmbed-pre-render-shield-${this.viewConfig.preRenderId}`,
11972
+ // shield:
11973
+ // `tsEmbed-pre-render-shield-${this.viewConfig.preRenderId}`,
11975
11974
  child: `tsEmbed-pre-render-child-${this.viewConfig.preRenderId}`,
11976
11975
  };
11977
11976
  }
11978
- createPreRenderWrapper(child) {
11977
+ createPreRenderWrapper() {
11978
+ var _a;
11979
11979
  if (!this.viewConfig.preRenderId) {
11980
- throw new Error('PreRender id is required');
11980
+ throw new Error('PreRender id is required to create PreRender wrapper');
11981
11981
  }
11982
11982
  const preRenderIds = this.getPreRenderIds();
11983
- [preRenderIds.wrapper, preRenderIds.shield, preRenderIds.child]
11984
- .map((id) => document.getElementById(id))
11985
- .filter((element) => element)
11986
- .forEach((existingElement) => existingElement.remove());
11983
+ (_a = document.getElementById(preRenderIds.wrapper)) === null || _a === void 0 ? void 0 : _a.remove();
11987
11984
  const preRenderWrapper = document.createElement('div');
11988
11985
  preRenderWrapper.id = preRenderIds.wrapper;
11989
- setStyleProperties(preRenderWrapper, { position: 'absolute', width: '100vw', height: '100vh' });
11986
+ const initialPreRenderWrapperStyle = {
11987
+ position: 'absolute',
11988
+ width: '100vw',
11989
+ height: '100vh',
11990
+ };
11991
+ setStyleProperties(preRenderWrapper, initialPreRenderWrapperStyle);
11990
11992
  // const preRenderShield = document.createElement('div');
11991
11993
  // preRenderShield.id = preRenderIds.shield;
11992
11994
  // setStyleProperties(preRenderShield, { position: 'absolute',
11993
11995
  // width: '100%', height: '100%' });
11994
- child.id = preRenderIds.child;
11995
- preRenderWrapper.appendChild(child);
11996
11996
  // preRenderWrapper.appendChild(preRenderShield);
11997
- this.preRenderWrapper = preRenderWrapper;
11997
+ // this.preRenderWrapper = preRenderWrapper;
11998
11998
  // this.preRenderShield = preRenderShield;
11999
- this.preRenderChild = child;
11999
+ // this.preRenderChild = child;
12000
12000
  return preRenderWrapper;
12001
12001
  }
12002
12002
  connectPreRendered() {
@@ -12005,8 +12005,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12005
12005
  || document.getElementById(preRenderIds.wrapper);
12006
12006
  // this.preRenderShield = this.preRenderShield
12007
12007
  // || document.getElementById(preRenderIds.shield);
12008
- this.preRenderChild = this.preRenderChild
12009
- || document.getElementById(preRenderIds.child);
12008
+ this.preRenderChild = this.preRenderChild || document.getElementById(preRenderIds.child);
12010
12009
  if (this.preRenderWrapper && this.preRenderChild) {
12011
12010
  this.isPreRendered = true;
12012
12011
  this.iFrame = this.preRenderChild;
@@ -12016,17 +12015,34 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12016
12015
  isPreRenderAvailable() {
12017
12016
  return this.isPreRendered;
12018
12017
  }
12019
- insertIntoDOMForPreRender(child, showPreRenderByDefault = false) {
12020
- let childNode;
12018
+ createPreRenderChild(child) {
12019
+ var _a;
12020
+ const preRenderIds = this.getPreRenderIds();
12021
+ (_a = document.getElementById(preRenderIds.child)) === null || _a === void 0 ? void 0 : _a.remove();
12022
+ if (child instanceof HTMLElement) {
12023
+ child.id = preRenderIds.child;
12024
+ return child;
12025
+ }
12026
+ const divChildNode = document.createElement('div');
12027
+ setStyleProperties(divChildNode, { width: '100%', height: '100%' });
12028
+ divChildNode.id = preRenderIds.child;
12021
12029
  if (typeof child === 'string') {
12022
- const divChildNode = document.createElement('div');
12023
12030
  divChildNode.innerHTML = child;
12024
- childNode = divChildNode;
12025
12031
  }
12026
12032
  else {
12027
- childNode = child;
12033
+ divChildNode.appendChild(child);
12034
+ }
12035
+ return divChildNode;
12036
+ }
12037
+ insertIntoDOMForPreRender(child, showPreRenderByDefault = false) {
12038
+ const preRenderChild = this.createPreRenderChild(child);
12039
+ const preRenderWrapper = this.createPreRenderWrapper();
12040
+ preRenderWrapper.appendChild(preRenderChild);
12041
+ this.preRenderChild = preRenderChild;
12042
+ this.preRenderWrapper = preRenderWrapper;
12043
+ if (preRenderChild instanceof HTMLIFrameElement) {
12044
+ this.iFrame = preRenderChild;
12028
12045
  }
12029
- const preRenderWrapper = this.createPreRenderWrapper(childNode);
12030
12046
  if (showPreRenderByDefault) {
12031
12047
  this.showPreRender();
12032
12048
  }
@@ -12038,18 +12054,20 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12038
12054
  hidePreRender() {
12039
12055
  if (!this.isPreRenderAvailable()) {
12040
12056
  // if the embed component is not preRendered , nothing to hide
12041
- console.log('No preRender found, not hiding ');
12057
+ console.warn('Warning: You should call PreRender before hiding it using hidePreRender.');
12042
12058
  return;
12043
12059
  }
12044
- setStyleProperties(this.preRenderWrapper, {
12060
+ const preRenderHideStyles = {
12045
12061
  opacity: '0',
12046
12062
  pointerEvents: 'none',
12047
12063
  zIndex: '-1000',
12048
12064
  position: 'absolute ',
12049
12065
  top: '0',
12050
12066
  left: '0',
12051
- });
12052
- const childBoundingRect = this.preRenderChild.getBoundingClientRect();
12067
+ };
12068
+ setStyleProperties(this.preRenderWrapper, preRenderHideStyles);
12069
+ // const childBoundingRect = this.preRenderChild.getBoundingClientRect();
12070
+ //
12053
12071
  // setStyleProperties(this.preRenderShield, {
12054
12072
  // opacity: '0',
12055
12073
  // pointerEvents: 'none',
@@ -12066,10 +12084,10 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12066
12084
  if (!this.isPreRenderAvailable()) {
12067
12085
  const isAvailable = this.connectPreRendered();
12068
12086
  if (!isAvailable) {
12069
- // if the Embed component is nor preRendered , Render it now and
12070
- // show it (hide is defalt behaviour)
12071
- console.log('No preRender found, creating new ');
12087
+ // if the Embed component is not preRendered , Render it now and
12072
12088
  this.preRender(true);
12089
+ // show it (hide is defalt behaviour)
12090
+ // console.log('No preRender found, creating new ');
12073
12091
  return;
12074
12092
  }
12075
12093
  }
@@ -12084,7 +12102,10 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12084
12102
  }
12085
12103
  const elBoundingClient = this.el.getBoundingClientRect();
12086
12104
  setStyleProperties(this.preRenderWrapper, {
12087
- top: `${elBoundingClient.y}px`, left: `${elBoundingClient.x}px`, width: `${elBoundingClient.width}px`, height: `${elBoundingClient.height}px`,
12105
+ top: `${elBoundingClient.y}px`,
12106
+ left: `${elBoundingClient.x}px`,
12107
+ width: `${elBoundingClient.width}px`,
12108
+ height: `${elBoundingClient.height}px`,
12088
12109
  });
12089
12110
  }
12090
12111
  insertIntoDOM(child) {
@@ -12790,6 +12811,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12790
12811
  *
12791
12812
  * @param renderOptions An object specifying the Liveboard ID,
12792
12813
  * visualization ID and the runtime filters.
12814
+ * @param showPreRenderByDefault
12793
12815
  */
12794
12816
  render(showPreRenderByDefault = false) {
12795
12817
  super.render();
@@ -12798,7 +12820,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12798
12820
  return this;
12799
12821
  }
12800
12822
  preRender(showPreRenderByDefault = false) {
12801
- super.preRender(showPreRenderByDefault);
12823
+ super.preRender();
12802
12824
  this.render(showPreRenderByDefault);
12803
12825
  return this;
12804
12826
  }
@@ -12941,7 +12963,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12941
12963
  return this;
12942
12964
  }
12943
12965
  preRender(showPreRenderByDefault = false) {
12944
- super.preRender(showPreRenderByDefault);
12966
+ super.preRender();
12945
12967
  this.render(showPreRenderByDefault);
12946
12968
  return this;
12947
12969
  }
@@ -734,6 +734,7 @@ export declare class LiveboardEmbed extends V1Embed {
734
734
  *
735
735
  * @param renderOptions An object specifying the Liveboard ID,
736
736
  * visualization ID and the runtime filters.
737
+ * @param showPreRenderByDefault
737
738
  */
738
739
  render(showPreRenderByDefault?: boolean): LiveboardEmbed;
739
740
  preRender(showPreRenderByDefault?: boolean): LiveboardEmbed;
@@ -4667,15 +4668,15 @@ export declare class TsEmbed {
4667
4668
  protected renderIFrame(url: string, showPreRenderByDefault?: boolean): Promise<any>;
4668
4669
  getPreRenderIds(): {
4669
4670
  wrapper: string;
4670
- shield: string;
4671
4671
  child: string;
4672
4672
  };
4673
- protected createPreRenderWrapper(child: HTMLElement): HTMLDivElement;
4673
+ protected createPreRenderWrapper(): HTMLDivElement;
4674
4674
  protected preRenderWrapper: HTMLElement;
4675
4675
  protected preRenderChild: HTMLElement;
4676
4676
  protected connectPreRendered(): boolean;
4677
4677
  protected isPreRenderAvailable(): boolean;
4678
- protected insertIntoDOMForPreRender(child: string | HTMLElement, showPreRenderByDefault?: boolean): void;
4678
+ protected createPreRenderChild(child: string | Node): HTMLElement;
4679
+ protected insertIntoDOMForPreRender(child: string | Node, showPreRenderByDefault?: boolean): void;
4679
4680
  hidePreRender(): void;
4680
4681
  showPreRender(): void;
4681
4682
  syncPreRenderStyle(): void;
@@ -723,6 +723,7 @@ export declare class LiveboardEmbed extends V1Embed {
723
723
  *
724
724
  * @param renderOptions An object specifying the Liveboard ID,
725
725
  * visualization ID and the runtime filters.
726
+ * @param showPreRenderByDefault
726
727
  */
727
728
  render(showPreRenderByDefault?: boolean): LiveboardEmbed;
728
729
  preRender(showPreRenderByDefault?: boolean): LiveboardEmbed;
@@ -3979,15 +3980,15 @@ export declare class TsEmbed {
3979
3980
  protected renderIFrame(url: string, showPreRenderByDefault?: boolean): Promise<any>;
3980
3981
  getPreRenderIds(): {
3981
3982
  wrapper: string;
3982
- shield: string;
3983
3983
  child: string;
3984
3984
  };
3985
- protected createPreRenderWrapper(child: HTMLElement): HTMLDivElement;
3985
+ protected createPreRenderWrapper(): HTMLDivElement;
3986
3986
  protected preRenderWrapper: HTMLElement;
3987
3987
  protected preRenderChild: HTMLElement;
3988
3988
  protected connectPreRendered(): boolean;
3989
3989
  protected isPreRenderAvailable(): boolean;
3990
- protected insertIntoDOMForPreRender(child: string | HTMLElement, showPreRenderByDefault?: boolean): void;
3990
+ protected createPreRenderChild(child: string | Node): HTMLElement;
3991
+ protected insertIntoDOMForPreRender(child: string | Node, showPreRenderByDefault?: boolean): void;
3991
3992
  hidePreRender(): void;
3992
3993
  showPreRender(): void;
3993
3994
  syncPreRenderStyle(): void;
@@ -451,6 +451,7 @@ export class LiveboardEmbed extends V1Embed {
451
451
  *
452
452
  * @param renderOptions An object specifying the Liveboard ID,
453
453
  * visualization ID and the runtime filters.
454
+ * @param showPreRenderByDefault
454
455
  */
455
456
  render(showPreRenderByDefault?: boolean): LiveboardEmbed;
456
457
  preRender(showPreRenderByDefault?: boolean): LiveboardEmbed;
@@ -4538,15 +4539,15 @@ export class TsEmbed {
4538
4539
  protected renderIFrame(url: string, showPreRenderByDefault?: boolean): Promise<any>;
4539
4540
  getPreRenderIds(): {
4540
4541
  wrapper: string;
4541
- shield: string;
4542
4542
  child: string;
4543
4543
  };
4544
- protected createPreRenderWrapper(child: HTMLElement): HTMLDivElement;
4544
+ protected createPreRenderWrapper(): HTMLDivElement;
4545
4545
  protected preRenderWrapper: HTMLElement;
4546
4546
  protected preRenderChild: HTMLElement;
4547
4547
  protected connectPreRendered(): boolean;
4548
4548
  protected isPreRenderAvailable(): boolean;
4549
- protected insertIntoDOMForPreRender(child: string | HTMLElement, showPreRenderByDefault?: boolean): void;
4549
+ protected createPreRenderChild(child: string | Node): HTMLElement;
4550
+ protected insertIntoDOMForPreRender(child: string | Node, showPreRenderByDefault?: boolean): void;
4550
4551
  hidePreRender(): void;
4551
4552
  showPreRender(): void;
4552
4553
  syncPreRenderStyle(): void;
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thoughtspot/visual-embed-sdk",
3
- "version": "1.24.0-preRender.1",
3
+ "version": "1.24.0-preRender.2",
4
4
  "description": "ThoughtSpot Embed SDK",
5
5
  "module": "lib/src/index.js",
6
6
  "main": "dist/tsembed.js",
@@ -150,6 +150,7 @@ export declare class LiveboardEmbed extends V1Embed {
150
150
  *
151
151
  * @param renderOptions An object specifying the Liveboard ID,
152
152
  * visualization ID and the runtime filters.
153
+ * @param showPreRenderByDefault
153
154
  */
154
155
  render(showPreRenderByDefault?: boolean): LiveboardEmbed;
155
156
  preRender(showPreRenderByDefault?: boolean): LiveboardEmbed;
@@ -1 +1 @@
1
- {"version":3,"file":"liveboard.d.ts","sourceRoot":"","sources":["../../../src/embed/liveboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAKH,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,UAAU,EACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;GAIG;AACH,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACnD;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;;OAIG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC1C;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,cAAe,SAAQ,OAAO;IACvC,SAAS,CAAC,UAAU,EAAE,mBAAmB,CAAC;IAE1C,OAAO,CAAC,aAAa,CAAO;IAE5B,SAAS,CAAC,kBAAkB,SAAoB;gBAGpC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB;IASrE;;;OAGG;IACH,SAAS,CAAC,cAAc;IAoDxB,OAAO,CAAC,kBAAkB;IAa1B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAcpB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,iBAAiB,CAGvB;IAEF,OAAO,CAAC,mCAAmC,CAIzC;IAEF,OAAO,CAAC,YAAY;IAQpB;;;;;OAKG;IACI,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,GAAE,GAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAYpE;;;;;OAKG;IACI,MAAM,CAAC,sBAAsB,UAAQ,GAAG,cAAc;IAStD,SAAS,CAAC,sBAAsB,UAAQ,GAAG,cAAc;IAQzD,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;CAWvF;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,cAAc;CAAG"}
1
+ {"version":3,"file":"liveboard.d.ts","sourceRoot":"","sources":["../../../src/embed/liveboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAKH,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,UAAU,EACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;GAIG;AACH,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACnD;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;;OAIG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC1C;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,cAAe,SAAQ,OAAO;IACvC,SAAS,CAAC,UAAU,EAAE,mBAAmB,CAAC;IAE1C,OAAO,CAAC,aAAa,CAAO;IAE5B,SAAS,CAAC,kBAAkB,SAAoB;gBAGpC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB;IASrE;;;OAGG;IACH,SAAS,CAAC,cAAc;IAoDxB,OAAO,CAAC,kBAAkB;IAa1B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAcpB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,iBAAiB,CAGvB;IAEF,OAAO,CAAC,mCAAmC,CAIzC;IAEF,OAAO,CAAC,YAAY;IAQpB;;;;;OAKG;IACI,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,GAAE,GAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAYpE;;;;;;OAMG;IACI,MAAM,CAAC,sBAAsB,UAAQ,GAAG,cAAc;IAStD,SAAS,CAAC,sBAAsB,UAAQ,GAAG,cAAc;IAQzD,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;CAWvF;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,cAAc;CAAG"}